LLaMA-Factory微调指南:llama3模型的高效调优方法!

1. LLaMA-Factory模型介绍

https://github.com/hiyouga/LLaMA-Factory

图片

LLaMA-Factory 是一个用于大型语言模型(LLM)微调的工具,它旨在简化大型语言模型的微调过程, 使得用户可以快速地对模型进行训练和优化,以提高模型在特定任务上的性能。

这个工具支持多种预训练的大型语言模型,例如 LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Yi、 Gemma、Baichuan、ChatGLM 和 Phi 等。

LLaMA-Factory 的特点包括:

  1. 支持多种微调方法:它集成了连续预训练、有监督微调(SFT)、偏好对齐(RLHF)等多种微调方 法。

  2. 高效的微调技术:与 ChatGLM 官方的 P-Tuning 微调相比,LLaMA Factory 的 LoRA 微调提供了 显著的加速比,并且在特定任务上取得了更高的性能分数。

  3. 易用性:LLaMA-Factory 提供了高层次的抽象接口,使得开发者可以开箱即用,快速上手操作。

  4. WebUI 支持:借鉴 Stable Diffusion WebUI,该项目提供了基于 gradio 的网页版工作台,方便初 学者可以迅速上手操作。

  5. 模型导出和推理:支持模型的导出和推理,包括动态合并 LoRA 模型进行推理。

  6. API Server:支持启动 API Server,使得训练好的模型可以通过网络接口被远程访问和调用。

  7. 评测 benchmark:提供了主流评测 benchmark 支持,如 mmlu、cmmlu、ceval 等,用于评估 模型的泛化能力。

LLaMA-Factory 旨在降低大型语言模型微调的门槛,使得更多的研究者和开发者能够利用这些强大的模 型来解决具体的实际问题。

图片

1.1 环境配置

/mnt/workspace路径下执行

git clone https://github.com/hiyouga/LLaMA-Factory.git
conda create -n llama_factory python=3.10
conda activate llama_factory
cd LLaMA-Factory
pip install -e .[metrics]

1.2 下载llama3模型

/mnt/workspace路径下执行

mkdir models
cd models

/mnt/workspace/models路径下执行

pip install modelscope
git clone https://www.modelscope.cn/LLM-Research/Meta-Llama-3-8B-Instruct.git

2 llama3中文增强大模型(lora微调)

使用预训练模型+LoRA适配器的方式, 可以在不重新训练整个模型的情况下, 快速且高效地将模型适应到 新的任务或领域, 如将英文模型适应到中文对话。这是一种常见且实用的微调方法。

2.1 模型训练

修改文件 /mnt/workspace/LLaMA-Factory/examples/train_lora/llama3_lora_sft.yaml

!上传配置文件
llama3_lora_sft.yaml
### model
model_name_or_path: /mnt/workspace/models/Meta-Llama-3-8B-Instruct

### method
stage: sft
do_train:true
finetuning_type: lora
lora_target: all

### dataset
dataset: alpaca_gpt4_zh
template: llama3
cutoff_len:2048
max_samples:1000
overwrite_cache:true
preprocessing_num_workers:16

### output
output_dir: /mnt/workspace/models/llama3-lora-zh
logging_steps:10
save_steps:500
plot_loss:true
overwrite_output_dir:true

### train
per_device_train_batch_size:1
gradient_accumulation_steps:8
learning_rate:1.0e-4
num_train_epochs:3.0
lr_scheduler_type: cosine
warmup_ratio:0.1
bf16:true
ddp_timeout:180000000

### eval
val_size:0.1
per_device_eval_batch_size:1
eval_strategy: steps
eval_steps:500

yaml文件中的主要参数:

model

  • model_name_or_path: 指定预训练模型的路径或名称, 这里使用的是

    /mnt/workspace/models/Meta-Llama-3-8B-Instruct 路径下的 Meta-Llama 3.8B 模型作为基础模 型。

  • method

    • stage: 表示训练阶段, 这里是 sft(Supervised Fine-Tuning)。

    • do_train: 表示要进行训练。

    • finetuning_type: 微调方法, 这里使用 LoRA(Low-Rank Adaptation)。

    • lora_target: LoRA 作用的对象, 这里是 attention 层的 query 和 value 映射矩阵。

  • dataset

    • dataset: 训练数据集名称,这里用的是 alpaca_gpt4_zh 数据集。(注意:数据集可以选择多个 alpaca_zh,alpaca_gpt4_zh,oaast_sft_zh)

    • template: 数据集的格式模板,这里是 llama3。

    • cutoff_len: 输入序列的最大长度, 超过会截断, 这里设为1024。

    • max_samples: 从数据集中取的最大样本数, 这里取前1000个样本。

    • preprocessing_num_workers: 数据预处理的进程数, 这里用16个进程并行处理。

  • output

    • output_dir: 训练日志和模型的保存路径。

    • logging_steps: 每隔多少步记录一次日志, 这里每100步记录一次。

    • save_steps: 每隔多少步保存一次模型, 这里每500步保存一次。

    • plot_loss: 是否绘制loss曲线图。

  • train

    • per_device_train_batch_size: 每个设备上的训练批大小, 这里设为1。

    • gradient_accumulation_steps: 梯度累积的步数, 这里累积8步才更新一次模型参数。

    • learning_rate: 学习率, 这里设为0.0001。

    • num_train_epochs: 训练的epoch数, 这里训练1个epoch。(还可以指定max_steps 3000 : 训练 3000步。注意:真正项目训练增大总步数;注意:num_train_epochs和max_steps之中选择一 个)

    • lr_scheduler_type: 学习率调度器类型, 这里用cosine, 即先warmup再降温。

    • warmup_steps: 用初始学习率warmup的步数, 这里取总步数的10%。 fp16: 是否使用fp16混合精度训练, 以加速训练并减少显存占用。

  • eval

    • val_size: 从训练集中划分出的验证集比例, 这里取10%作为验证集。

    • per_device_eval_batch_size: 验证时每个设备的批大小,这里为1。

    • evaluation_strategy: 验证策略, 这里根据steps数来验证。

    • eval_steps: 每隔多少步验证一次, 这里每500步验证一次。

以上就是这个yaml配置文件的主要参数解释。这些参数设置了一个使用LoRA对Meta-Llama-3-8BInstruct模型在alpaca_gpt4_zh数据集上进行微调的训练过程。

2.2 克隆数据集

在/mnt/workspace/LLaMA-Factory/data路径下使用下面的命令克隆alpaca_gpt4_zh数据集

git clone https://www.modelscope.cn/datasets/llamafactory/alpaca_gpt4_zh.git

然后,修改dataset_info.json文件

!上传配置文件
data_info.json

上传alpaca_gpt4_data_zh.json到data目录下

2.3 训练

llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml

1.4 推理

修改examples/inference/llama3_lora_sft.yaml

model_name_or_path: /mnt/workspace/models/Meta-Llama-3-8B-Instruct
adapter_name_or_path: /mnt/workspace/models/llama3-lora-zh
template: llama3
finetuning_type: lora
  • –model_name_or_path /mnt/workspace/models/Meta-Llama-3-8B-Instruct : 这个参数指定了 预训练语言模型的名称或路径。在这个例子中, 使用的是位于 /mnt/workspace/models/MetaLlama-3-8B-Instruct 的Meta的Llama-3-8B-Instruct模型。这个模型将作为基础模型,在其上进行 微调。

  • –adapter_name_or_path /mnt/workspace/models/llama3-lora-zh : 这个参数指定了用于微调 的适配器(Adapter)的名称或路径。在这个例子中, 使用的是位 于 /mnt/workspace/models/llama3-lora-zh 的适配器。这个适配器是通过LoRA技术在基础模型 上微调得到的。

  • –template llama3 : 这个参数指定了对话模板的名称。模板定义了对话的格式和风格。在这个例 子中, 使用的是名为 llama3 的模板。

  • –finetuning_type lora : 这个参数指定了微调的类型。在这个例子中, 使用的是LoRA技术进行微 调。

/mnt/workspace/LLaMA-Factory路径下执行

llamafactory-cli chat examples/inference/llama3_lora_sft.yaml

 

 一、大模型风口已至:月薪30K+的AI岗正在批量诞生

2025年大模型应用呈现爆发式增长,根据工信部最新数据:

国内大模型相关岗位缺口达47万

初级工程师平均薪资28K(数据来源:BOSS直聘报告)

70%企业存在"能用模型不会调优"的痛点

真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!

二、如何学习大模型 AI ?


🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工

📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)

 

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

*   大模型 AI 能干什么?
*   大模型是怎样获得「智能」的?
*   用好 AI 的核心心法
*   大模型应用业务架构
*   大模型应用技术架构
*   代码示例:向 GPT-3.5 灌入新知识
*   提示工程的意义和核心思想
*   Prompt 典型构成
*   指令调优方法论
*   思维链和思维树
*   Prompt 攻击和防范
*   …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

*   为什么要做 RAG
*   搭建一个简单的 ChatPDF
*   检索的基础概念
*   什么是向量表示(Embeddings)
*   向量数据库与向量检索
*   基于向量检索的 RAG
*   搭建 RAG 系统的扩展知识
*   混合检索与 RAG-Fusion 简介
*   向量模型本地部署
*   …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

*   为什么要做 RAG
*   什么是模型
*   什么是模型训练
*   求解器 & 损失函数简介
*   小实验2:手写一个简单的神经网络并训练它
*   什么是训练/预训练/微调/轻量化微调
*   Transformer结构简介
*   轻量化微调
*   实验数据集的构建
*   …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

*   硬件选型
*   带你了解全球大模型
*   使用国产大模型服务
*   搭建 OpenAI 代理
*   热身:基于阿里云 PAI 部署 Stable Diffusion
*   在本地计算机运行大模型
*   大模型的私有化部署
*   基于 vLLM 部署大模型
*   案例:如何优雅地在阿里云私有部署开源大模型
*   部署一套开源 LLM 项目
*   内容安全
*   互联网信息服务算法备案
*   …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

<think>好的,我现在需要帮助用户了解如何使用Llama-Factory对Ollama中的大模型进行微调。首先,我应该回顾一下用户提供的引用内容,确保信息准确。 用户提到了三个引用,其中引用[3]提到了使用Llama-Factory微调通义千问qwen1.5-1.8B模型的实例,并提到在model_config.py中配置模型路径。引用[1]和[2]则涉及在Ollama中创建模型方法。结合这些信息,我需要将步骤拆分为准备环境、配置模型、数据准备、启动微调、转换格式和部署到Ollama等步骤。 首先,安装Llama-Factory是基础步骤,需要确保用户克隆仓库并安装依赖。然后,模型配置部分需要指导用户如何修改model_config.py,添加本地模型路径,这里可能需要引用引用[3]的内容。数据准备部分需要说明如何准备数据集文件,比如使用JSON格式,并参考示例数据。 接下来,启动微调的命令可能需要指定模型名称、数据集和训练参数,这部分需要结合Llama-Factory的文档,确保命令正确。微调完成后,将模型转换为Ollama支持的GGUF格式是关键,这里可能需要使用llama.cpp的转换脚本,但用户可能需要额外安装,需要提醒他们注意。 最后,创建Ollama模型需要编写Modelfile,并引用转换后的模型文件,这里可以引用引用[1]和[2]中的命令。同时,注意事项部分需要强路径正确性和资源需求,特别是显存问题,可能影响微调效果。 在生成相关问题时,要覆盖用户可能遇到的后续步骤,比如模型部署、效果评估、多数据集处理和微调失败处理,这样能帮助用户全面了解整个流程。需要确保每个步骤都清晰,并且引用正确,避免用户混淆。同时,保持语言简洁,避免技术术语过多,让新手也能理解。</think>### 使用 Llama-Factory 微调 Ollama 大模型的步骤教程 #### 1. 环境准备 - **安装 Ollama** 确保已安装 Ollama 并配置基础环境[^2]。 - **安装 Llama-Factory** 克隆仓库并安装依赖: ```bash git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -r requirements.txt ``` #### 2. 配置模型路径 - **修改 `model_config.py`** 在 Llama-Factory 的配置文件中添加模型路径(参考引用[3]): ```python # model_config.py 示例 "your_model_name": { "pretrained_model_name": "ollama_model_path", "local_model_path": "/path/to/your/ollama_model" } ``` #### 3. 准备数据集 - **数据集格式** 使用 JSON 文件存储训练数据,格式示例: ```json [ {"instruction": "问题示例", "input": "", "output": "回答示例"}, {"instruction": "解释量子力学", "input": "", "output": "量子力学是研究微观粒子..."} ] ``` #### 4. 启动微调 - **运行训练命令** 使用以下命令启动微调(类似引用[3]中流程): ```bash python src/train_bash.py \ --model_name your_model_name \ --dataset your_dataset.json \ --batch_size 8 \ --num_epochs 3 ``` #### 5. 转换为 Ollama 格式 - **生成 GGUF 文件** 使用 `llama.cpp` 转换模型为 Ollama 支持的 GGUF 格式: ```bash python convert.py --input-dir ./output_model --output-dir ./gguf_model ``` #### 6. 部署到 Ollama - **创建 Modelfile** 编写包含模型参数的配置文件: ```modelfile FROM ./gguf_model/q4_0.gguf PARAMETER num_ctx 4096 ``` - **构建模型** 执行 Ollama 创建命令(参考引用[1][2]): ```bash ollama create your_model_name -f ./Modelfile ``` #### 注意事项 1. **路径一致性**:确保配置文件中模型路径与本地实际路径完全匹配[^3] 2. **显存需求**:微调 7B 模型至少需要 24GB 显存 3. **量化建议**:可使用 `--quantization 4bit` 参数减少显存占用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值