Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

基于LLaMA-Factory的大模型训练 #104

Open
winterpi opened this issue Dec 25, 2024 · 0 comments
Open

基于LLaMA-Factory的大模型训练 #104

winterpi opened this issue Dec 25, 2024 · 0 comments

Comments

@winterpi
Copy link
Owner

winterpi commented Dec 25, 2024

LLaMA-Factory 是什么

  • 定位:可以本地化训练大模型的开源框架,支持 Pre-train、SFT、inference 等几种不同的训练方式;
  • 提供多种操作方式:可基于命令行、配置文件、可视化页面进行操作;
  • 支持的模型较多:一些开源的大小模型都可以

基于 LLaMA-Factory 微调的实践

安装

  • 参考 LLaMA Factory的安装文档
  • 最有问题的是几个架包的软件版本冲突,我是安装了 vllm == 0.5.0 相匹配的其它架包才稳定下来

准备数据

  • 根据需要将数据转成相应的 json 格式,最好要求 1K 以上;
  • 数据放在 /data 文件夹下,并注册在 /data/dataset_info.json ;

训练及评估

Lora 微调

  • lora 微调的配置:参考 examples/train_lora/llama3_lora.sft.yaml;
  • 微调的命令:
llamafactory-cli train examples/train_lora/llama3_lora.sft.yaml
  • 因为 RTX 4000 的显卡跟 A系列的不同,需要设置 NCCL_P2P_DISABLE="1" 及 NCCL_IB_DISABLE="1",且可设置不同的GPUT显卡, 改为
CUDA_VISIBLE_DEVICES=0 NCCL_P2P_DISABLE="1" NCCL_IB_DISABLE="1"   llamafactory-cli train examples/train_lora/llama3_lora.sft.yaml

推理测试

  • 推理配置文件:参考 examples/inference/llama3_lora_sft.yaml
  • 推理的命令:
CUDA_VISIBLE_DEVICES=0 NCCL_P2P_DISABLE="1" NCCL_IB_DISABLE="1"   llamafactory-cli chat examples/inference/llama3_lora_sft.yaml

模型合并

  • 合并的配置文件:参考 examples/merge_lora/llama3_lora_sft.yaml
  • 合并的命令:
CUDA_VISIBLE_DEVICES=0 NCCL_P2P_DISABLE="1" NCCL_IB_DISABLE="1"   llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml

基于 UI 界面的操作

  • 也可以采用基于 UI 界面进行微调、推理、模型合并等操作;
  • UI 界面启动方式:
CUDA_VISIBLE_DEVICES=0 NCCL_P2P_DISABLE="1" NCCL_IB_DISABLE="1" llamafactory-cli webui

其他训练LLM的框架

百度千帆平台

  • 优点:界面化支持较为完善;训练数据的探查功能较强;
  • 缺点:模型只能在百度云平台上部署测试,无法下载;

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant