LLama-Factory使用教程

本文是github项目llama-factory的使用教程
注意,最新的llama-factory的github中训练模型中,涉及到本文中的操作全部使用了.yaml配置。
新的.yaml的方式很简洁但不太直观,本质上是一样的。新的readme中的.yaml文件等于下文中的bash指令

PS: 大模型基础和进阶付费课程(自己讲的):《AIGC大模型理论与工业落地实战》-优快云学院 或者《AIGC大模型理论与工业落地实战》-网易云课堂。感谢支持!

一,数据准备和模型训练

step1-下载项目:

​ 从github中克隆LLaMa-Factory项目到本地

step2-准备数据:

​ 将原始LLaMA-Factory/data/文件夹下的dataset_info.json,增加本地的数据。注意,本地数据只能改成LLama-Factory接受的形式,即本地数据只能支持”promtp/input/output“这种对话的格式,不支持传统的文本分类/实体抽取/关系抽取等等schema数据,如果需要,请想办法改成对话形式的数据。

​ 你需要参考其中的一个文件和它的配置,例如:alpaca_gpt4_data_zh.json,训练和验证数据同样改成这种格式,并在dataset_info.json中新增一个你自己的字典:

{
  "alpaca_en": {
    "file_name": "alpaca_data_en_52k.json",
    "file_sha1": "607f94a7f581341e59685aef32f531095232cf23"
},  
...

"your_train": {
    "file_name": "/path/to/your/train.json",
    "columns": {
      "prompt": "instruction",
      "query": "input",
      "response": "output"
    }
  },
...

​ 其中的key,your_train,将在训练/测试的shell命令中使用

step3-模型训练:

​ 数据准备好之后,编写shell脚本训练模型,以mixtral为例根目录下新建run_mixtral.sh

需要改动的主要是:model_name_or_path,dataset,output_dir;和其他可选的改动信息,例如save_steps,per_device_train_batch_size等等。

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
    --stage sft \
    --do_train \
    --model_name_or_path /path/to/your/Mixtral-8x7B-Instruct-v0.1 \
    --dataset my_train \
    --template default \
    --finetuning_type lora \
    --lora_target q_proj,v_proj \
    --output_dir ./output/mixtral_train \
    --overwrite_output_dir \
    --overwrite_cache \
    --per_device_train_batch_size 4 \
    --gradient_accumulation_steps 4 \
    --lr_scheduler_type cosine \
    --logging_steps 10 \
    --save_steps 200 \
    --learning_rate 5e-5 \
    --num_train_epochs 1.0 \
    --plot_loss \
    --quantization_bit 4 \
    --fp16
step4-模型融合

​ 模型融合的意义在于合并训练后的lora权重,保持参数和刚从huggingface中下载的一致,以便更加方便地适配一些推理和部署框架

​ 基本流程/原理:将微调之后的lora参数,融合到原始模型参数中,以mixtral为例新建:LLama-Factory/run_mixtral_fusion.sh:

python src/export_model.py \
    --model_name_or_path path_to_huggingface_model \
    --adapter_name_or_path path_to_mixtral_checkpoint \
    --template default \
    --finetuning_type lora \
    --export_dir path_to_your_defined_export_dir \
    --export_size 2 \
    --export_legacy_format False
step5-模型推理

​ 模型推理即模型在新的验证集上的推理和验证过程

​ 指令和训练的基本一致,只是差别几个参数:

        1.增加了do_predict,2.数据集改成一个新的eval数据集

​ LLama-Factory/runs/run_mixtral_predict.sh

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
    --stage sft \
    --do_predict \
    --model_name_or_path /path/to/huggingface/Mixtral-8x7B-Instruct-v0.1 \
    --adapter_name_or_path /path/to/mixtral_output/checkpoint-200 \
    --dataset my_eval \
    --template default \
    --finetuning_type lora \
    --output_dir ./output/mixtral_predict \
    --per_device_eval_batch_size 4 \
    --predict_with_generate \
    --quantization_bit 4 \
    --fp16
step6-API接口部署

部署接口的作用是可以让你把接口开放出去给到外部调用

CUDA_VISIBLE_DEVICES=0 API_PORT=8000 python src/api_demo.py \
    --model_name_or_path path_to_llama_model \
    --adapter_name_or_path path_to_checkpoint \
    --template default \
    --finetuning_type lora

<think>好的,用户想查找关于llama-factory的部署教程。首先,我需要回忆一下llama-factory的相关信息。根据系统提供的引用,引用[1]提到了llama factory的GitHub仓库链接:https://github.com/hiyouga/LLaMA-Factory。所以第一步应该是建议用户访问官方仓库,因为通常开源项目的文档和教程都会放在那里。 接下来,用户可能需要具体的部署步骤。一般来说,GitHub项目的README文件会提供基本的安装和使用说明。我应该分步骤说明,比如克隆仓库、安装依赖、配置环境等。此外,可能还需要提到不同的部署方式,比如本地部署、使用Docker或者云服务,这样用户可以根据自己的需求选择合适的方法。 然后,考虑到用户可能对微调和大模型部署感兴趣,引用[1]还提到了ms-swift和NVIDIA NeMo,这可能与模型微调和推理相关。不过用户的问题主要集中在部署教程上,所以需要专注于llama-factory本身的部署流程,但可以适当提到微调的部分,因为部署后可能需要进行模型训练或调整。 另外,引用[2]和[3]提到了awesome-LLM-resourses项目,里面可能包含更多资源,但用户的问题比较具体,所以暂时不需要深入这部分,除非用户需要扩展资源。不过可以在相关问题里建议,比如如何微调模型或与其他工具整合。 还需要注意用户可能的环境差异,比如操作系统、Python版本、依赖项冲突等,建议用户查看官方文档的常见问题部分。同时,提醒用户关注GitHub的Wiki或Issues区域,解决部署中可能遇到的问题。 最后,确保回答结构清晰,分步骤说明,并附上相关链接,方便用户直接访问。同时生成的相关问题要围绕部署后的步骤、优化和整合,这样用户如果有进一步需求,可以继续探索。</think>以下是为您整理的Llama-Factory部署教程关键步骤: ### 1. 获取项目代码 建议通过Git克隆官方仓库: ```bash git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory ``` [^1] ### 2. 安装依赖 推荐使用conda创建虚拟环境: ```bash conda create -n llama_factory python=3.10 conda activate llama_factory pip install -r requirements.txt ``` ### 3. 配置模型参数 在`configs/`目录下修改模型配置文件,例如: ```yaml model_name: llama-2-7b device_map: auto load_in_8bit: true ``` ### 4. 启动服务 使用内置Web界面启动: ```bash python src/web_demo.py --port 8080 ``` 访问`http://localhost:8080`即可使用 ### 5. 部署方式选择 | 部署方式 | 适用场景 | 启动命令 | |---------|---------|---------| | 本地部署 | 开发测试 | `python src/api.py` | | Docker部署 | 生产环境 | `docker-compose up -d` | | 云服务部署 | 弹性扩展 | 参考各云平台文档 | ### 进阶建议: 1. 大模型部署建议使用NVIDIA Triton Inference Server优化推理速度 2. 微调训练可使用MS-SWIFT工具包进行参数高效微调 3. 监控部署建议集成Prometheus+Grafana监控系统
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NLP小讲堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值