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 的特点包括:
-
支持多种微调方法:它集成了连续预训练、有监督微调(SFT)、偏好对齐(RLHF)等多种微调方 法。
-
高效的微调技术:与 ChatGLM 官方的 P-Tuning 微调相比,LLaMA Factory 的 LoRA 微调提供了 显著的加速比,并且在特定任务上取得了更高的性能分数。
-
易用性:LLaMA-Factory 提供了高层次的抽象接口,使得开发者可以开箱即用,快速上手操作。
-
WebUI 支持:借鉴 Stable Diffusion WebUI,该项目提供了基于 gradio 的网页版工作台,方便初 学者可以迅速上手操作。
-
模型导出和推理:支持模型的导出和推理,包括动态合并 LoRA 模型进行推理。
-
API Server:支持启动 API Server,使得训练好的模型可以通过网络接口被远程访问和调用。
-
评测 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%免费】