基于LLaMA完成第一个微调

[复制链接]
发表于 2025-12-20 00:23:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
一、LLaMA Factory 简介

LLaMA Factory 是一个简朴易用且高效的大型语言模子(Large Language Model)练习与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的条件下,在本地完成上百种预练习模子的微调。
  1. # LLaMA Factory 访问地址
  2. https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md
复制代码
二、LLaMA Factory 搭建
1、下载工程代码
  1. git clone https://github.com/hiyouga/LLaMA-Factory.git
复制代码
2、创建Conda 情况
  1. # 本机需要提前安装号conda 或者miniconda的环境
  2. # 官方是以python=3.10为基础搭建
  3. conda create -n llama_factory python=3.10
  4. conda activate llama_factory
复制代码
3、安装LLaMA
  1. # 安装LLaMA-Factory 所需要的第三方基础库(requirements.txt包含的库)
  2. # 安装评估指标所需要的库,包含nltk, jieba, rouge-chinese
  3. # 安装LLaMA-Factory本身,然后在系统中生成一个命令 llamafactory-cli
  4. cd LLaMA-Factory
  5. pip install -e '.[torch,metrics]'
复制代码
备注,当利用清华源安装时间,默认会安装成torch的cpu版本。本文提供别的的两种方式举行搭建。
  1. # 方案一:
  2. # 在清华源镜像里找到对应的安装包
  3. # https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/
  4. pytorch-2.2.2-py3.10_cuda11.8_cudnn8_0.tar.bz2
  5. torchaudio-2.2.2-py310_cu118.tar.bz2
  6. torchvision-0.18.0-py310_cu118.tar.bz2
  7. # 安装
  8. conda install --offline {your_path}.tar.bz2
  9. # 方案二:
  10. # 根据自己nvidia-smi的cuda版本去pytorch官网找对应的下载指令
  11. # https://pytorch.org/get-started/previous-versions/
  12. conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=11.8 -c pytorch -c nvidia
  13. # 安装完pytorch后,需要匹配Pillow 版本
  14. pip uninstall Pillow
  15. pip install Pillow==11.0.0
  16. # 把环境搭建好以后,最后在执行
  17. cd LLaMA-Factory
  18. pip install -e '.[torch,metrics]'
复制代码
4、情况验证
pytorch 的情况验证
  1. import torch
  2. torch.cuda.current_device()
  3. torch.cuda.get_device_name(0)
  4. torch.__version__
复制代码
LLaMA 的情况验证
  1. llamafactory-cli train -h
复制代码
三、模子推理
1、下载本地模子
  1. # 推荐使用huggingface、modelscope 下载模型
  2. # 以modelscope 为例(不推荐git)
  3. from modelscope import snapshot_download
  4. model_dir = snapshot_download('LLM-Research/Meta-Llama-3-8B-Instruct')
复制代码
2、利用LLaMA自带的ChatBot推理页面, 资助做模子效果的测试
  1. # 方法一:
  2. # CUDA_VISIBLE_DEVICES=0 是指定程序使用第0张卡,可以不加
  3. CUDA_VISIBLE_DEVICES=0 llamafactory-cli webchat
  4. --model_name_or_path ./model/Meta-Llama-3-8B-Instruct  
  5. --template llama3
  6. # 方法二:
  7. # 修改examples/inference/llama3.yaml 文件model_name_or_path
  8. llamafactory-cli webchat examples/inference/llama3.yaml
  9. # 访问地址
  10. http://localhost:7860/
复制代码
3、利用API的方式启动模子
  1. # api的方式启动,方便Fastgpt 等应用的接入
  2. # 端口号在api.py中设置
  3. python src/api.py --model_name_or_path model/Meta-Llama-3-8B-Instruct --template llama3
  4. # 服务的方式启动
  5. nohup bash -c "python src/api.py --model_name_or_path model/Meta-Llama-3-8B-Instruct --template llama3" > logs/output_llama3.log 2>&1 &
复制代码
四、模子微调
1、修改数据集样本
  1. # 以官方提供的identity.json 数据集为例
  2. sed -i 's/{{name}}/PonyBot/g'  data/identity.json
  3. sed -i 's/{{author}}/LLaMA Factory/g'  data/identity.json
复制代码
2、基于LoRA的sft指令微调
  1. CUDA_VISIBLE_DEVICES=0 llamafactory-cli train \
  2.     --stage sft \
  3.     --do_train \
  4.     --model_name_or_path ./model/Meta-Llama-3-8B-Instruct \
  5.     --dataset alpaca_zh_demo,identity \
  6.     --dataset_dir ./data \
  7.     --template llama3 \
  8.     --finetuning_type lora \
  9.     --output_dir ./saves/LLaMA3-8B/lora/sft \
  10.     --overwrite_cache \
  11.     --overwrite_output_dir \
  12.     --cutoff_len 1024 \
  13.     --preprocessing_num_workers 16 \
  14.     --per_device_train_batch_size 2 \
  15.     --per_device_eval_batch_size 1 \
  16.     --gradient_accumulation_steps 8 \
  17.     --lr_scheduler_type cosine \
  18.     --logging_steps 50 \
  19.     --warmup_steps 20 \
  20.     --save_steps 100 \
  21.     --eval_steps 50 \
  22.     --evaluation_strategy steps \
  23.     --load_best_model_at_end \
  24.     --learning_rate 5e-5 \
  25.     --num_train_epochs 5.0 \
  26.     --max_samples 1000 \
  27.     --val_size 0.1 \
  28.     --plot_loss \
  29.     --fp16
复制代码
3、通过ChatBot推理页面验证效果
  1. llamafactory-cli webchat  --model_name_or_path ./model/Meta-Llama-3-8B-Instruct  
  2. --adapter_name_or_path ./saves/LLaMA3-8B/lora/sft  
  3. --template llama3  
  4. --finetuning_type lora
复制代码
​
怎样学习AI大模子?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给各人。 至于能学习到多少就看你的学习毅力和本领了 。我已将告急的AI大模子资料包罗AI大模子入门学习头脑导图、佳构AI大模子学习册本手册、视频教程、实战学习等录播视频免费分享出来。
一、全套AGI大模子学习蹊径

AI大模子期间的学习之旅:从根本到前沿,把握人工智能的核心技能!

二、640套AI大模子陈诉合集

这套包罗640份陈诉的合集,涵盖了AI大模子的理论研究、技能实现、行业应用等多个方面。无论您是科研职员、工程师,照旧对AI大模子感爱好的爱好者,这套陈诉合集都将为您提供宝贵的信息和启示。

三、AI大模子经典PDF籍

随着人工智能技能的飞速发展,AI大模子已经成为了当今科技范畴的一大热门。这些大型预练习模子,如GPT-3、BERT、XLNet等,以其强盛的语言明确和生本钱领,正在改变我们对人工智能的熟悉。 那以下这些PDF籍就黑白常不错的学习资源。

四、AI大模子贸易化落地方案


作为平凡人,入局大模子期间须要一连学习和实践,不绝进步本身的技能和认知程度,同时也须要有责任感和伦理意识,为人工智能的康健发展贡献气力。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表