使用LLaMA-Factory对AI进行认知的微调

梦见你的名字  金牌会员 | 2025-2-13 08:14:52 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 816|帖子 816|积分 2448

弁言

本文将介绍如何使用LLaMA-Factory对AI进行微调,使其具备“忍者”的认知,并认知其是由“富士电视台”开发的。

1. 安装LLaMA-Factory

1.1. 克隆仓库

  1. git clone https://github.com/hiyouga/LLaMA-Factory.git
  2. cd LLaMA-Factory
复制代码
1.2. 创建假造环境

  1. conda create -n llama_factory python=3.11 -y
  2. conda activate llama_factory
复制代码
1.3. 安装LLaMA-Factory

  1. pip install -e '.[torch,metrics]'
复制代码
1.4. 验证

  1. import torch
  2. print(torch.cuda.current_device())
  3. print(torch.cuda.get_device_name(0))
  4. print(torch.__version__)
  5. print(torch.cuda.is_available())
复制代码

2. 预备数据

2.1. 创建数据集

进入LLaMA-Factory目录:
  1. cd LLaMA-Factory
复制代码
复制identity.json并创建identity_ninja.json:
  1. cp data/identity.json data/identity_ninja.json
复制代码
将{{name}}和{{author}}更换为“忍者”和“富士电视台”:
  1. sed -i 's/{{name}}/一人の忍者/g' data/identity_ninja.json
  2. sed -i 's/{{author}}/フジテレビ/g' data/identity_ninja.json
复制代码
验证:
  1. head data/identity_ninja.json
复制代码

2.2. 更新数据集信息

编辑data/dataset_info.json,添加新的数据集:
  1. vi data/dataset_info.json
复制代码
添加以下内容:
  1.   "identity_ninja": {
  2.     "file_name": "identity_ninja.json"
  3.   },
复制代码
3. 启动LLaMA-Factory

启动LLaMA-Factory:
  1. llamafactory-cli webui
复制代码
在欣赏器中访问http://localhost:7860。
4. 进行微调

4.1. 设置模型

设置模型名称和微调方法,本文使用Vicuna-v1.5-7B-Chat作为基础模型。

4.2. 预览数据集

点击“预览数据集”按钮,确认数据。

4.3. 设置学习率等参数

设置学习率和训练轮数。

4.4. 预览和实行下令

设置输出目录,点击“预览下令”按钮确认下令,无误后点击“开始”。

下令示例:
  1. llamafactory-cli train \
  2.     --stage sft \
  3.     --do_train True \
  4.     --model_name_or_path lmsys/vicuna-7b-v1.5 \
  5.     --preprocessing_num_workers 16 \
  6.     --finetuning_type lora \
  7.     --template vicuna \
  8.     --flash_attn auto \
  9.     --dataset_dir data \
  10.     --dataset identity_ninja \
  11.     --cutoff_len 2048 \
  12.     --learning_rate 0.0001 \
  13.     --num_train_epochs 6.0 \
  14.     --max_samples 100000 \
  15.     --per_device_train_batch_size 2 \
  16.     --gradient_accumulation_steps 2 \
  17.     --lr_scheduler_type cosine \
  18.     --max_grad_norm 1.0 \
  19.     --logging_steps 5 \
  20.     --save_steps 100 \
  21.     --warmup_steps 0 \
  22.     --packing False \
  23.     --report_to none \
  24.     --output_dir saves/Vicuna-v1.5-7B-Chat/lora/train_vicuna_7b_identity_ninja_1e-4_epoch6 \
  25.     --bf16 True \
  26.     --plot_loss True \
  27.     --trust_remote_code True \
  28.     --ddp_timeout 180000000 \
  29.     --include_num_input_tokens_seen True \
  30.     --optim adamw_torch \
  31.     --lora_rank 8 \
  32.     --lora_alpha 16 \
  33.     --lora_dropout 0 \
  34.     --loraplus_lr_ratio 16 \
  35.     --lora_target all
复制代码
4.5. 训练完成

训练完成后,会显示以下消息:

5. 与微调后的模型聊天

5.1. 加载模型

选择“检查点路径”,点击“Chat”选项卡,然后点击“加载模型”。

5.2. 开始聊天

模型加载完成后,输入题目并确认AI的回答。此时,AI将具备“忍者(一人の忍者)”的认知,并认知其是由“富士电视台(フジテレビ)”开发的。

5.3. 导出模型

选择“检查点路径”,点击“Export”选项卡,输入“导出目录”,然后点击“导出”。

导出完成后,会显示“模型导出完成”消息。
5.4. 使用Vllm启动

使用以下下令在Vllm中启动导出的模型:
  1. CUDA_VISIBLE_DEVICES=3,1,0,2 VLLM_USE_V1=1 VLLM_WORKER_MULTIPROC_METHOD=spawn vllm serve /root/HuggingFaceCache/models--lmsys--vicuna-7b-v1.5-sft --trust-remote-code --served-model-name gpt-4 --gpu-memory-utilization 0.98 --tensor-parallel-size 4 --port 8000
复制代码
总结

通过以上步骤,我们成功使用LLaMA-Factory对AI进行了微调,使其具备特定的认知。希望大家可以或许尝试并应用这些方法进行更多的定制化。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦见你的名字

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表