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

【AI实战】拒绝“伪”提效:从 Copilot 到 AI Agent,重塑全栈开发者的“核武器”

【AI实战】拒绝“伪”提效:从 Copilot 到 AI Agent,重塑全栈开发者的“核武器”

前言:2026,我们不再只是“对话” 站在2026年的开端回望,短短三年,AI对于开发者而言,已经从最初那个会写“冒泡排序”的聊天机器人,进化为嵌入在 IDE 每一个像素中的“硅基合伙人”。 作为一名摸爬滚打多年的全栈开发者,我经历了从“怀疑 AI 写出的代码能不能跑”到“离开 AI 甚至不想打开编辑器”的心路历程。在这个由算法定义生产力的时代,AI 不仅仅是工具,更是我们在数字世界的“外骨骼”。 本文将结合我个人的实战经验,探讨如何利用 Python 和大模型构建一个简易的 “代码审计 AI Agent”,并聊聊 AI 是如何重塑我们的开发流与思维模型的。 一、 从“补全代码”到“理解意图”:AI 编程的质变 在 2023 年前后,我们对

如何使用ChatDoctor:基于LLaMA的医疗AI助手打造智能问诊新体验

如何使用ChatDoctor:基于LLaMA的医疗AI助手打造智能问诊新体验 【免费下载链接】ChatDoctor 项目地址: https://gitcode.com/gh_mirrors/ch/ChatDoctor ChatDoctor是一款基于LLaMA模型的下一代AI医生助手,旨在为用户提供智能可靠的医疗健康咨询服务。通过自然语言交互,患者可以方便地咨询健康问题、描述症状,获取个性化的医疗建议和初步分析。 📌 什么是ChatDoctor? ChatDoctor是一个基于Meta AI的LLaMA大语言模型,通过医疗领域知识进行微调的专业医疗对话模型。该项目的核心目标是为患者提供智能、可靠的健康伴侣,能够回答医疗问题并提供个性化的医疗建议。 ChatDoctor系统架构展示了从医疗对话数据到LLaMA模型微调的完整流程 核心功能特点 * 专业医疗知识库:基于100k真实医患对话数据训练,涵盖常见疾病和症状分析 * 多模式交互:支持基础对话、CSV数据库查询和维基百科知识检索 * 自主知识获取:能够自动从疾病数据库和百科资源中检索相关医学知识 * 本地化部署

断点续训神器:Llama Factory云环境自动保存checkpoint实践

断点续训神器:Llama Factory云环境自动保存checkpoint实践 训练大型语言模型(如72B参数的Qwen或Baichuan)时,最令人头疼的问题莫过于云实例突然被回收,导致训练进度全部丢失。本文将介绍如何利用Llama Factory框架在云环境中实现自动保存checkpoint,确保训练进度可随时恢复。 这类任务通常需要GPU环境,目前ZEEKLOG算力平台提供了包含该镜像的预置环境,可快速部署验证。Llama Factory是一个专为大模型微调设计的开源框架,支持全参数微调、LoRA等多种方法,特别适合在云环境中进行长时间训练任务。 为什么需要断点续训功能 训练72B级别的大模型往往需要数天甚至数周时间,而云实例可能因各种原因(如计费周期、维护回收)被中断。传统的手动保存方式存在几个痛点: * 忘记保存导致进度丢失 * 保存间隔过长,恢复后仍需重复计算 * 检查点文件管理混乱 Llama Factory通过以下机制解决这些问题: * 自动定时保存训练状态 * 支持从任意检查点恢复训练 * 优化检查点存储策略,平衡IO开销和安全性 环境

5分钟掌握llama-cpp-python:从零部署本地AI模型

5分钟掌握llama-cpp-python:从零部署本地AI模型 【免费下载链接】llama-cpp-pythonPython bindings for llama.cpp 项目地址: https://gitcode.com/gh_mirrors/ll/llama-cpp-python 你是否曾经想要在本地运行大语言模型,却被复杂的安装配置劝退?llama-cpp-python正是为你量身打造的解决方案,这个Python绑定库让你能够轻松访问强大的llama.cpp推理引擎。今天,我将带你用最简单的方式,从零开始搭建属于你自己的AI应用! 项目认知:理解llama-cpp-python的核心价值 llama-cpp-python不仅仅是一个简单的Python包,它是连接Python生态与llama.cpp高性能推理引擎的桥梁。通过它,你可以: * 🚀 在本地CPU或GPU上高效运行各种大语言模型 * 🛠️ 使用简洁的Python API进行文本生成、对话交互 * 📦 无缝集成到现有的Python项目中 想象一下,你不再需要依赖云端API,所有的AI推理都在你的