欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 【大模型】llama-factory基础学习

【大模型】llama-factory基础学习

2025/1/18 23:43:29 来源:https://blog.csdn.net/idiotyi/article/details/141028477  浏览:    关键词:【大模型】llama-factory基础学习

前言:LLaMA-Factory项目的目标是整合主流的各种高效训练微调技术,适配市场主流开源模型,形成一个功能丰富,适配性好的训练框架。

目录

  • 1. 前期准备
  • 2. 原始模型直接推理
  • 3. 自定义数据集
  • 4. 模型训练
  • 5. 模型合并并导出

1. 前期准备

下载源码:https://github.com/hiyouga/LLaMA-Factory
环境搭建的话参考readme.md:

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"

2. 原始模型直接推理

只需要配置template和model_name_or_path。
终端运行:

CUDA_VISIBLE_DEVICES=0 llamafactory-cli webchat \  --model_name_or_path /media/codingma/LLM/llama3/Meta-Llama-3-8B-Instruct \  --template llama3

运行完可以在本地服务器访问:http://localhost:7860/

3. 自定义数据集

llama-factory支持json格式文件,自定义数据集中每条数据格式如下:

{
“prompt”: “介绍一下苹果”,
“response”: “苹果公司(Apple Inc.),是一家美国跨国科技公司,总部位于加利福尼亚州库比蒂诺。”
}

将文件放到llama factory项目下的data文件夹,然后编辑data_info.json文件,添加数据集映射:

 "demo": {"file_name": "demo.json","file_sha1":dwfewcevrvff"columns": {"prompt": "prompt","response": "response"}

demo是映射后使用的数据集别名,file_name是数据集路径,file_sha1不是必需的,但是可以缓存预处理后的数据集,避免二次训练时重新预处理,sha1的生成可以通过终端运行shasum -a 1 filename(linux命令),columns是json文件中的列名映射

4. 模型训练

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \--stage sft \  --do_train \  --model_name_or_path /media/codingma/LLM/llama3/Meta-Llama-3-8B-Instruct \  --dataset alpaca_gpt4_zh \  --dataset_dir ./data \  --template llama3 \  --finetuning_type lora \  --lora_target q_proj,v_proj \  --output_dir ./saves/LLaMA3-8B/lora/sft \  --overwrite_cache \  --overwrite_output_dir \  --cutoff_len 1024 \  --preprocessing_num_workers 16 \  --per_device_train_batch_size 2 \  --per_device_eval_batch_size 1 \  --gradient_accumulation_steps 8 \  --lr_scheduler_type cosine \  --logging_steps 50 \  --warmup_steps 20 \  --save_steps 100 \  --eval_steps 50 \  --evaluation_strategy steps \  --load_best_model_at_end \  --learning_rate 5e-5 \  --num_train_epochs 5.0 \  --max_samples 1000 \  --val_size 0.1 \  --plot_loss \  --fp16--logging_dir path_to_logging_directory

一些重要参数解读:

  • stage: 训练方式,pt,sft等
  • model_name_or_path:基础模型的路径
  • dataset:数据集名称,data_info.json中的
  • template:模板,在readme.md中可以找到对应的模型模板
  • finetuning_type:微调方式,一般选lora
  • output_dir:存储模型路径
  • logging_dir:日志路径

5. 模型合并并导出

训练后得到的模型不能直接使用,需要和基础模型合并后导出:

CUDA_VISIBLE_DEVICES=0 python src/export_model.py \--model_name_or_path qwen/Qwen-7B \--adapter_name_or_path /mnt/workspace/llama_factory_demo/qwen/lora/sft/checkpoint-50 \--template qwen \--finetuning_type lora \--export_dir /mnt/workspace/merge_w/qwen \--export_legacy_format False
  • model_name_or_path: 基础模型路径
  • adapter_name_or_path:训练后的模型路径
  • template:模板
  • finetuning_type:微调方式
  • export_dir:导出模型路径

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com