Mac基于LLaMA Factory微调模型导入Ollama踩坑记录

Mac基于LLaMA Factory微调模型导入Ollama踩坑记录

Mac基于LLaMA Factory微调模型导入Ollama踩坑记录

记录下完成大模型微调demo遇到的问题及最终效果

一、llama Factory安装

# 通过git下载项目git clone https://github.com/hiyouga/LLaMA-Factory.git # 进入目录cd LLaMA-Factory # 安装 pip install -e ".[torch,metrics]"

遇到问题1:ERROR: Package 'llamafactory' requires a different Python: 3.9.6 not in '>=3.11.0'。然后升级到python最高版本3.14解决(不建议选最新版本,后面使用数据集遇到新的问题
问题2:

error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try brew install xyz, where xyz is the package you are trying to install. note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. 

选择安装虚拟环境

# 安装anaconda brew install --cask anaconda # 创建虚拟环境 lora conda create -n lora python=3.14# 激活该环境 conda activate lora 

再执行pip install -e ".[torch,metrics]" 依然有同样问题,添加对应参数
pip install --break-system-packages -e ".[torch,metrics]"
成功安装后在目录执行
llamafactory-cli webui ,会创建一个web服务,能访问http://localhost:7860/ 说明安装成功

在这里插入图片描述

二、模型下载&验证

在modelscope找一个较小的模型: DeepSeek-R1-Distill-Qwen-1.5B,可以通过git方式下载

# 因为存在大文件下载,需要安装 lfsgit lfs install# 下载模型git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B.git 

下载完成后可通过页面配置模型名称、路径,然后在Chat中加载模型,进行测试

在这里插入图片描述


我这边在初次加载抛出异常

 self.model = load_model( ~~~~~~~~~~^ self.tokenizer, model_args, finetuning_args, is_trainable=False, add_valuehead=(not self.can_generate) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) # must after fixing tokenizer to resize vocab ^ File "/Users/xxx/Documents/workspace/python/LLaMA-Factory/src/llamafactory/model/loader.py", line 178, in load_model model = load_class.from_pretrained(**init_kwargs) File "/opt/homebrew/lib/python3.14/site-packages/transformers/models/auto/auto_factory.py", line 372, in from_pretrained return model_class.from_pretrained( ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ pretrained_model_name_or_path, *model_args, config=config, **hub_kwargs, **kwargs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/opt/homebrew/lib/python3.14/site-packages/transformers/modeling_utils.py", line 4109, in from_pretrained load_info = cls._load_pretrained_model(model, state_dict, checkpoint_files, load_config) File "/opt/homebrew/lib/python3.14/site-packages/transformers/modeling_utils.py", line 4218, in _load_pretrained_model file_pointer = safe_open(file, framework="pt", device="cpu") safetensors_rust.SafetensorError: Error while deserializing header: header too large 

原因是git下载大文件不全,可以检测下模型DeepSeek-R1-Distill-Qwen-1.5B 目录下 model.safetensors的文件大小是不是和下载页面大小一致。可以通过页面上手动下载然后移动到文件夹。

在这里插入图片描述


加载成功后可以通过聊天测试

在这里插入图片描述

三、数据集准备

微调需要导入一份数据集,同样在modelscope中下载一份小的 甄嬛1M数据集,将huanhuan.json 移动到${dir}/LLaMA-Factory/data下,然后在修改该目录下的文件dataset_info.json ,在末尾中添加下面配置

{ // 原本的不动 ,"huanhuan": { "file_name": "huanhuan.json" } } 

在页面Train中数据集能搜到文件名huanhuan

在这里插入图片描述


预览有数据则配置成功

四、训练&验证效果

直接用默认的配置点击开始

在这里插入图片描述


我这边之前使用python3.14遇到的问题,导入数据集函数不兼容。

 File "/opt/homebrew/lib/python3.14/site-packages/dill/_dill.py", line 1217, in save_module_dict StockPickler.save_dict(pickler, obj) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/[email protected]/3.14.3_1/Frameworks/Python.framework/Versions/3.14/lib/python3.14/pickle.py", line 1064, in save_dict self._batch_setitems(obj.items(), obj) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ TypeError: Pickler._batch_setitems() takes 2 positional arguments but 3 were given 

后换成3.12版本调通微调,训练完成的日志,用了46分钟。

***** train metrics ***** epoch = 3.0 num_input_tokens_seen = 776520 total_flos = 6738458GF train_loss = 4.5287 train_runtime = 0:46:36.50 train_samples_per_second = 4.0 train_steps_per_second = 0.251 Figure saved at: saves/DeepSeek-R1-1.5B-Distill/lora/train_2026-02-12-16-14-47/training_loss.png [WARNING|2026-02-12 17:01:53] llamafactory.extras.ploting:149 >> No metric eval_loss to plot. [WARNING|2026-02-12 17:01:53] llamafactory.extras.ploting:149 >> No metric eval_accuracy to plot. 

在检查点路径选择我们自己训练后输出的数据集,然后需要先卸载模型,再重新加载。最后在聊天测试“我是谁”,它的答案就不是之前的 deepseek深度求索了。

在这里插入图片描述

五、导出ollama

ollama可以提供API接口,给到后台服务直接调用。 这里通过Export,配置对应的导出路径,就可以导出镜像

在这里插入图片描述


然后通过ollama的创建指令加载刚才导出的目录后面下的Modelfile,名称test_DeepSeek 可自定义

# 安装导出的模型 ollama create test_DeepSeek -f /Users/xxx/Documents/workspace/model/Modelfile # 查看 ollama list # 运行模型, 名称默认带上:latest标签 ollama run test_DeepSeek:latest 

后台就可以通过接口来调用ollama的服务

Read more

软件使用教程(二):VS Code的Copilot、Git设置与使用

软件使用教程(二):VS Code的Copilot、Git设置与使用

文章目录 * 前言 * 一、Copilot设置 * 1. Copilot的作用 * 2. Copilot设置步骤 * 二、Git集成设置 * 1. 初始设置 * 2. 核心功能与日常使用 * 总结 前言 在追求效率的编程世界里,两款强大的工具正在改变我们的开发方式:Git 让我们能从容管理代码的每一次变化,而 GitHub Copilot 则以其AI智能为我们提供编码建议,甚至自动补全整段代码。 但对于许多开发者,尤其是初学者来说,如何正确配置和高效使用它们,仍是一个挑战。本文将聚焦于 Visual Studio Code,手把手带你完成从Git环境配置到Commit、Push的完整工作流,以及从安装登录到实战应用Copilot的全过程。无论你是想告别命令行焦虑,还是希望拥有一个AI编程伙伴,这篇教程都将为你提供清晰的指引,让你的开发效率获得立竿见影的提升。 一、Copilot设置 1. Copilot的作用 VS Code 中的 Copilot 是一个由 GitHub

论文ai率太高,自己怎么快速降aigc率【2025保姆级指南】

论文ai率太高,自己怎么快速降aigc率【2025保姆级指南】

说实话,谁没经历过被知网、维普那些冰冷的红色数字支配的恐惧?但这就是2025年的现状,高校对于论文降aigc的审查只会越来越严。为了帮大家解决这个燃眉之急,不让大家因为AI率延毕,我花了一周时间,自费测试了市面上十几款工具,整理出了这篇2025最新版的降低ai实战指南。 这篇文章不仅会告诉你降ai率工具怎么选,还会手把手教你我自己总结的“底层逻辑降重法”。 一、降AI的底层逻辑与实操方法 在直接甩工具之前,我必须先泼一盆冷水:如果你不懂怎么快速降aigc率的核心逻辑,盲目使用工具,只会把论文改得逻辑不通、面目全非,最后不仅AI率没降下来,导师还把你骂一顿。 想要实现免费降低ai率,首先我们要搞清楚对手是谁。现在的AI检测算法(无论是Turnitin还是知网AIGC),它们的核心逻辑是基于“预测概率”。AI大模型生成文本是基于概率选择下一个最可能出现的词,因此AI生成的文章通常极其顺滑、用词平均、缺乏意外感。 检测系统测的其实是两个指标:困惑度和突发性 * 困惑度:代表文本的复杂程度。AI写的文章困惑度很低,读起来像白开水。 * 突发性:代表句子结构和节奏的变化。人类写

极致效率:用 Copilot 加速你的 Android 开发

极致效率:用 Copilot 加速你的 Android 开发

GitHub Copilot 是一个强大的 AI 编程助手,它可以极大地提升您在 Android 开发中的效率,提供代码补全、生成整段代码、注释转换代码、甚至解释代码等功能。 以下是在 Android Studio 中安装、配置和使用的完整指南。 第一步:安装 Copilot 插件 1. 打开 Android Studio。 2. 进入插件市场: · Windows/Linux: File -> Settings -> Plugins · Mac: Android Studio -> Settings -> Plugins 3. 在 Marketplace 选项卡中,搜索