基于魔搭社区环境从零开始微调 Yi 开源大模型
在阿里云魔搭社区免费 GPU 环境下,使用 LLaMA-Factory 框架对零一万物 Yi-1.5-6B 开源大语言模型进行微调的完整流程。内容涵盖账号注册、环境初始化、依赖安装、模型权重下载、配置文件修改、训练脚本执行以及推理测试验证。通过修改数据集实现模型身份认知的自定义,展示了从准备到验证的大模型微调基础操作,并补充了模型合并与部署建议及常见问题排查指南。

在阿里云魔搭社区免费 GPU 环境下,使用 LLaMA-Factory 框架对零一万物 Yi-1.5-6B 开源大语言模型进行微调的完整流程。内容涵盖账号注册、环境初始化、依赖安装、模型权重下载、配置文件修改、训练脚本执行以及推理测试验证。通过修改数据集实现模型身份认知的自定义,展示了从准备到验证的大模型微调基础操作,并补充了模型合并与部署建议及常见问题排查指南。

大模型微调本身是一项技术门槛较高的任务,涉及 GPU 资源、依赖配置及参数调优。为了降低入门难度,本文将演示如何在阿里云魔搭(ModelScope)社区提供的免费集成环境中,使用 LLaMA-Factory 框架对零一万物(01AI)的 Yi-1.5-6B 开源大语言模型进行微调。
本教程无需本地高性能显卡,只需浏览器即可完成全流程操作。
首先访问魔搭社区注册并登录账号: https://modelscope.cn/home
登录后进入目标模型页面: https://www.modelscope.cn/models/01ai/Yi-1.5-6B
点击'在线运行'或类似入口,选择方式二:GPU 环境并点击'启动'。等待约 2 分钟环境初始化完成后,点击'查看 Notebook'进入开发界面。
魔搭社区内置 JupyterLab 功能。在 Notebook 标签页新建一个 Notebook 文件,或在 Terminal 中执行命令。
在 Notebook 代码块中执行以下命令升级 pip 并安装量化库:
!pip3 install --upgrade pip
!pip3 install bitsandbytes>=0.39.0
LLaMA-Factory 是一款集成了业界广泛微调技术的开源低代码框架。克隆仓库:
!git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
切换到 Launcher > Terminal,进入 LLaMA-Factory 目录并安装依赖(耗时较长):
cd LLaMA-Factory
pip3 install -e ".[torch,metrics]"
Yi-1.5-6B-Chat 模型权重可在 ModelScope 获取。该模型大小约 12GB,下载时间视网络状况而定。
在 Notebook 或 Terminal 中执行:
!git clone https://www.modelscope.cn/01ai/Yi-1.5-6B-Chat.git
微调的核心在于配置文件。在 examples/train_qlora 目录下找到 llama3_lora_sft_awq.yaml,复制并重命名为 yi_lora_sft_bitsandbytes.yaml。
打开该文件,修改关键参数:
### model
model_name_or_path: ../Yi-1.5-6B-Chat
template: chatml
finetuning_type: lora
### dataset
dataset: identity
dataset_dir: data
template_file: templates/chatml_template.txt
### training
output_dir: saves/yi-lora
per_device_train_batch_size: 1
gradient_accumulation_steps: 4
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
fp16: true
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true
参数说明:
model_name_or_path: 指向已下载的模型路径。finetuning_type: 设置为 lora 表示使用 LoRA 高效微调。dataset: 默认使用 identity 数据集,用于测试模型身份认知能力。per_device_train_batch_size: 单设备训练批次大小,显存不足时可减小。gradient_accumulation_steps: 梯度累积步数,用于模拟更大 batch size。learning_rate: 学习率,LoRA 微调通常较小。fp16: 开启半精度计算以节省显存。若需自定义模型身份,可编辑 data/identity.json,将 {{name}} 替换为你希望模型自称的名字。
确保当前目录为 LLaMA-Factory,执行训练脚本:
llamafactory-cli train examples/train_qlora/yi_lora_sft_bitsandbytes.yaml
观察终端输出,当看到 Loss 下降且进度条完成时,微调结束。此过程大约需要 10 分钟(取决于 GPU 性能)。
微调后需验证效果。复制 examples/inference/llama3_lora_sft.yaml 为 yi_lora_sft.yaml,修改内容如下:
model_name_or_path: ../saves/yi-lora/checkpoint-final
adapter_name_or_path: ../saves/yi-lora
template: chatml
finetuning_type: lora
运行推理命令:
llamafactory-cli chat examples/inference/yi_lora_sft.yaml
输入问题'你好你是谁',观察模型回答是否变为自定义的身份信息,同时保持通用对话能力。
对比原始模型(不加载 adapter),可明显看出微调后的差异。
微调生成的 LoRA 权重是独立的适配器文件,实际部署时常需将其合并到基座模型中以便直接加载。
使用以下命令合并权重:
llamafactory-cli export \
--model_name_or_path ../Yi-1.5-6B-Chat \
--adapter_name_or_path ../saves/yi-lora \
--template chatml \
--export_dir ./merged_model \
--export_size 2 \
--export_legacy_format false
合并后的模型位于 ./merged_model 目录,可直接用于生产环境部署。
per_device_train_batch_size 至 1,或启用 bf16 替代 fp16。本文完整展示了从环境搭建、模型下载、配置编写、训练执行到推理验证的大模型微调流程。通过 LLaMA-Factory 框架,开发者可以低成本地实现垂直领域模型的定制化训练。掌握此流程后,可进一步探索更多数据集和超参数优化,构建适合特定业务场景的智能助手。
后续可关注模型量化、多卡分布式训练等进阶主题,以应对更大规模模型的微调需求。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online