大模型相关目录
大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容
从0起步,扬帆起航。
- 大模型应用向开发路径及一点个人思考
- 大模型应用开发实用开源项目汇总
- 大模型问答项目问答性能评估方法
- 大模型数据侧总结
- 大模型token等基本概念及参数和内存的关系
- 大模型应用开发-华为大模型生态规划
- 从零开始的LLaMA-Factory的指令增量微调
文章目录
- 大模型相关目录
- 一、LLaMA-Factory简介
- 二、使用准备
- 二、单卡微调
-
- 测试集对微调模型性能评估
- 微调模型问答使用
- 微调模型增量模型导出
- 三、多卡微调
- 四、其他
一、LLaMA-Factory简介
LLaMA-Factory是开源的大模型微调框架,在模型微调方式、参数配置、数据集设置、模型保存、模型合并、模型测试以及模型试用上,提供了非常完备的开发接口。其框架使用形式分为指令与界面两种。
二、使用准备
1.拉取项目并部署相应环境(微调chatGLM3 6B很流畅,微调Qwen系列可能需要按错误提示对环境进行补包),并激活。
conda activate zwllama_factory
2.下载模型到本地
3.自行准备数据集
包括:
- 自我认知数据集(微调后可能效果也比较一般,需要多次微调,或者配合prompt。)
- 通用数据集(微调时用不用均可,可保持模型通用能力。且LLaMA-Factory的data文件夹下有alpaca_gpt4_data_zh等已经备好的数据集,不需要刻意定制。)
- 特定领域数据集
基本格式如下(alpaca,一种指令微调的格式。当然还有其他格式):
[
{
"instruction": "你好",
"input": "",
"output": "您好,我是XX大模型,一个由XXX开发的 AI 助手,很高兴认识您。请问我能为您做些什么?"
},
{
"instruction": "你好",
"input": "",
"output": "您好,我是XX大模型,一个由XXX打造的人工智能助手,请问有什么可以帮助您的吗?"
}
]
其中,instruction和input可以都填充进内容,如把问题作为input,把“回答问题这一要求”作为instruction。据说这种指令微调数据集的格式效果比较好。
准备数据及后,应上传所用到的数据集至项目路径下data文件夹
data文件夹下的数据集要想使用,还需在dataset_info.json下进行登记注册。
其中,file_sha1可通过如下代码计算获得,该字段要求并不严格,有即可,主要为了区分重复文件,作uuid使用。
import hashlib
def calculate_sha1(file_path):
sha1 = hashlib.sha1()
try:
with open(file_path, 'rb') as file:
while True:
data = file.read(8192) # Read in chunks to handle large files
if not data:
break
sha1.update(data)
return sha1.hexdigest()
except FileNotFoundError:
return "File not found."
# 使用示例
file_path = r'C:\Users\12258\Desktop\xxx.json' # 替换为您的文件路径
sha1_hash = calculate_sha1(file_path)
print("SHA-1 Hash:", sha1_hash)
二、单卡微调
单卡微调往往针对6B、7B等规模不大的大模型,因此界面化操作完全狗满足需求。
下述指令启动界面:
CUDA_VISIBLE_DEVICES=0 python src/train_web.py
如下图所示配置页面信息
可见界面微调的本质依旧是后端的指令。
点击开始,开始微调,界面无反应,后端开始加载
加载完毕后,前端界面出现训练所需时间和损失曲线。
注意,训练随时可以中断。
测试集对微调模型性能评估
微调模型问答使用
微调模型增量模型导出
三、多卡微调
新增config.yaml文件在README同级目录,内容如下:
compute_environment: LOCAL_MACHINE
debug: false
distributed_type: MULTI_GPU
downcast_bf16: 'no'
gpu_ids: all
machine_rank: 0
main_training_function: main
mixed_precision: fp16
num_machines: 1
num_processes: 2
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false
运行如下命令即可微调:
accelerate launch --config_file config.yaml src/train_bash.py \
--ddp_timeout 180000000 \
--stage sft \
--do_train True \
--model_name_or_path /home/gputest/sgq/text-generation-webui/models/Qwen1.5-14B-Chat \
--finetuning_type lora \
--template default \
--dataset_dir data \
--dataset self_cognition_modified,approval_data_ls_300 \
--cutoff_len 1024 \
--learning_rate 5e-05 \
--num_train_epochs 3.0 \
--max_samples 100000 \
--per_device_train_batch_size 2 \
--gradient_accumulation_steps 8 \
--lr_scheduler_type cosine \
--max_grad_norm 1.0 \
--logging_steps 5 \
--save_steps 100 \
--warmup_steps 0 \
--optim adamw_torch \
--output_dir saves/Qwen1.5-14B/lora/train_2024-03-21-02-22-33 \
--fp16 True \
--lora_rank 8 \
--lora_alpha 16 \
--lora_dropout 0.1 \
--lora_target q_proj,v_proj \
--plot_loss True
当然上述代码内容需要根据你的实际需求进行一定修改。
四、其他
更多信息可以访问开源项目进行了解。
如何学习大模型
现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。
作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。
我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线
很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。
二、AI大模型视频教程
三、AI大模型各大学习书籍
四、AI大模型各大场景实战案例
五、结束语
学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。
再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。
因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。