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

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

    • 引言
    • [1. 安装LLaMA-Factory](#1. 安装LLaMA-Factory)
      • [1.1. 克隆仓库](#1.1. 克隆仓库)
      • [1.2. 创建虚拟环境](#1.2. 创建虚拟环境)
      • [1.3. 安装LLaMA-Factory](#1.3. 安装LLaMA-Factory)
      • [1.4. 验证](#1.4. 验证)
    • [2. 准备数据](#2. 准备数据)
      • [2.1. 创建数据集](#2.1. 创建数据集)
      • [2.2. 更新数据集信息](#2.2. 更新数据集信息)
    • [3. 启动LLaMA-Factory](#3. 启动LLaMA-Factory)
    • [4. 进行微调](#4. 进行微调)
      • [4.1. 设置模型](#4.1. 设置模型)
      • [4.2. 预览数据集](#4.2. 预览数据集)
      • [4.3. 设置学习率等参数](#4.3. 设置学习率等参数)
      • [4.4. 预览和执行命令](#4.4. 预览和执行命令)
      • [4.5. 训练完成](#4.5. 训练完成)
    • [5. 与微调后的模型聊天](#5. 与微调后的模型聊天)
      • [5.1. 加载模型](#5.1. 加载模型)
      • [5.2. 开始聊天](#5.2. 开始聊天)
      • [5.3. 导出模型](#5.3. 导出模型)
      • [5.4. 使用Vllm启动](#5.4. 使用Vllm启动)
    • 总结

引言

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

1. 安装LLaMA-Factory

1.1. 克隆仓库

bash 复制代码
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory

1.2. 创建虚拟环境

bash 复制代码
conda create -n llama_factory python=3.11 -y
conda activate llama_factory

1.3. 安装LLaMA-Factory

bash 复制代码
pip install -e '.[torch,metrics]'

1.4. 验证

python 复制代码
import torch
print(torch.cuda.current_device())
print(torch.cuda.get_device_name(0))
print(torch.__version__)
print(torch.cuda.is_available())

2. 准备数据

2.1. 创建数据集

进入LLaMA-Factory目录:

bash 复制代码
cd LLaMA-Factory

复制identity.json并创建identity_ninja.json

bash 复制代码
cp data/identity.json data/identity_ninja.json

{``{name}}{``{author}}替换为"忍者"和"富士电视台":

bash 复制代码
sed -i 's/{{name}}/一人の忍者/g' data/identity_ninja.json
sed -i 's/{{author}}/フジテレビ/g' data/identity_ninja.json

验证:

bash 复制代码
head data/identity_ninja.json

2.2. 更新数据集信息

编辑data/dataset_info.json,添加新的数据集:

bash 复制代码
vi data/dataset_info.json

添加以下内容:

json 复制代码
  "identity_ninja": {
    "file_name": "identity_ninja.json"
  },

3. 启动LLaMA-Factory

启动LLaMA-Factory:

bash 复制代码
llamafactory-cli webui

在浏览器中访问http://localhost:7860

4. 进行微调

4.1. 设置模型

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

4.2. 预览数据集

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

4.3. 设置学习率等参数

设置学习率和训练轮数。

4.4. 预览和执行命令

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

命令示例:

bash 复制代码
llamafactory-cli train \
    --stage sft \
    --do_train True \
    --model_name_or_path lmsys/vicuna-7b-v1.5 \
    --preprocessing_num_workers 16 \
    --finetuning_type lora \
    --template vicuna \
    --flash_attn auto \
    --dataset_dir data \
    --dataset identity_ninja \
    --cutoff_len 2048 \
    --learning_rate 0.0001 \
    --num_train_epochs 6.0 \
    --max_samples 100000 \
    --per_device_train_batch_size 2 \
    --gradient_accumulation_steps 2 \
    --lr_scheduler_type cosine \
    --max_grad_norm 1.0 \
    --logging_steps 5 \
    --save_steps 100 \
    --warmup_steps 0 \
    --packing False \
    --report_to none \
    --output_dir saves/Vicuna-v1.5-7B-Chat/lora/train_vicuna_7b_identity_ninja_1e-4_epoch6 \
    --bf16 True \
    --plot_loss True \
    --trust_remote_code True \
    --ddp_timeout 180000000 \
    --include_num_input_tokens_seen True \
    --optim adamw_torch \
    --lora_rank 8 \
    --lora_alpha 16 \
    --lora_dropout 0 \
    --loraplus_lr_ratio 16 \
    --lora_target all

4.5. 训练完成

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

5. 与微调后的模型聊天

5.1. 加载模型

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

5.2. 开始聊天

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

5.3. 导出模型

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

导出完成后,会显示"模型导出完成"消息。

5.4. 使用Vllm启动

使用以下命令在Vllm中启动导出的模型:

bash 复制代码
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进行了微调,使其具备特定的认知。希望大家能够尝试并应用这些方法进行更多的定制化。

相关推荐
我爱一条柴ya6 分钟前
【AI大模型】线性回归:经典算法的深度解析与实战指南
人工智能·python·算法·ai·ai编程
Qiuner11 分钟前
【源力觉醒 创作者计划】开源、易用、强中文:文心一言4.5或是 普通人/非AI程序员 的第一款中文AI?
人工智能·百度·开源·文心一言·gitcode
未来之窗软件服务23 分钟前
chrome webdrive异常处理-session not created falled opening key——仙盟创梦IDE
前端·人工智能·chrome·仙盟创梦ide·东方仙盟·数据调式
AI街潜水的八角40 分钟前
深度学习图像分类数据集—蘑菇识别分类
人工智能·深度学习·分类
飞睿科技1 小时前
乐鑫代理商飞睿科技,2025年AI智能语音助手市场发展趋势与乐鑫芯片解决方案分析
人工智能
许泽宇的技术分享1 小时前
从新闻到知识图谱:用大模型和知识工程“八步成诗”打造科技并购大脑
人工智能·科技·知识图谱
坤坤爱学习2.01 小时前
求医十年,病因不明,ChatGPT:你看起来有基因突变
人工智能·ai·chatgpt·程序员·大模型·ai编程·大模型学
蹦蹦跳跳真可爱5892 小时前
Python----循环神经网络(Transformer ----注意力机制)
人工智能·深度学习·nlp·transformer·循环神经网络
空中湖4 小时前
tensorflow武林志第二卷第九章:玄功九转
人工智能·python·tensorflow
lishaoan774 小时前
使用tensorflow的线性回归的例子(七)
人工智能·tensorflow·线性回归