大预言模型|微调大预言模型初探索(LLaMA-Factory)(1)

前言

微调模型通常比从零开始训练一个模型的技术要求低。公司不需要拥有大量的深度学习专家,利用现有的开源工具和库(如Hugging Face的Transformers等),中小型公司可以轻松地使用和微调大型模型,从而快速实现AI能力的集成。因此,学会微调大模型就很有必要。

1.微调方法

1.1 全参数微调

全参数微调是指预训练模型的所有参数进行调整和优化,以使模型能够适应特定任务。具体来说,就是通过训练数据对预训练模型的所有参数(包括权重和偏置等)进行微调,使其更好地执行目标任务。

1.2 部分参数微调

1.2.1 低秩适配(Low-Rank Adaptation, LoRA)

LoRA方法通过引入低秩矩阵来代替全连接层中的权重更新。它通过对模型中的部分权重矩阵进行低秩分解,从而减少需要微调的参数量。

1.2.2 适配器方法(Adapters)

适配器方法通过在预训练模型中插入小型的适配器模块,保持大部分原始模型的参数不变,只微调适配器模块。这种方法显著减少了需要微调的参数数量,同时保持了迁移能力。

1.2.3 Prompt Tuning(提示微调)

Prompt Tuning是通过优化输入的"提示"或"前缀"来适应新任务,而不是微调模型的所有参数。这种方法特别适用于自然语言处理任务,在不修改模型本身的情况下,通过改变输入格式来提高模型的任务适应性。

具体部分参数微调方法还有很多,感兴趣的可以自己去探索。

2.实践!!

网上得来终觉浅,绝知此事要躬行,光看理论不实践,这不是耍流氓吗??!!

推荐实践项目:LLaMA-Factory

按照官网教程去安装:

2.1 安装环境

官网推荐的环境:

python 复制代码
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
conda create -n llama-lora python=3.10
conda activate llama-lora
pip install -e ".[torch,metrics]"

如果嫌太慢的话,可以换源去安装。

安装完成后,可以去校验校验教程网址

3. 注意事项

3.1.这里我llamafactory-cli train -h校验的时候,报错:

搜索发现是环境优先级问题:

cmd 复制代码
sudo vim  /etc/profile
# 将你的conda环境放到profile里面
export PATH="/home/hxgk/anaconda3/envs/lora-llama/bin:$PATH"
source /etc/profile

3.2 yaml文件配置

1.将LLaMA-Factory/examples/accelerate/fsdp_config.yaml第19行的num_processes设置成你的显卡个数。

2.将LLaMA-Factory/examples/train_lora/llama3_lora_sft.yaml中的eval全部注释掉,如图所示:

两个有一个没设置都有可能出现:

sys.exit(load_entry_point('torch==2.5.1', 'console_scripts', 'torchrun')())

...

torch.distributed.elastic.multiprocessing.errors.ChildFailedError:

这样的报错。

3.2 具体微调模型的显存大小不能全信官网

官网数据:

我刚开始使用Llama3-8B,使用lora方法去微调模型(8张8g显存显卡),理论上只会使用16g-32g显存,我64g显存绰绰有余,结果直接报OOM,结果气的我直接下载了llama-1B才成功微调。

总结

整体来说,LLaMA-Factory这个项目的坑不少,需要仔细一点,我现在也刚刚跑通,后续考虑制作自己的数据集,然后微调一个chatbox试试。

相关推荐
爱吃羊的老虎1 天前
【大模型】向量数据库:Chroma、Weaviate、Qdrant
数据库·语言模型
薛定谔的猫19821 天前
LlamaIndex(一)初见
llama·llamaindex
imbackneverdie2 天前
Science最新文章:大型语言模型时代的科学生产
人工智能·语言模型·自然语言处理·aigc·ai写作
P-ShineBeam2 天前
八卡A100服务器坏卡引发 CUDA initialization: cudaGetDeviceCount()异常
运维·服务器·人工智能·语言模型
m0_603888712 天前
Scaling Trends for Multi-Hop Contextual Reasoning in Mid-Scale Language Models
人工智能·算法·ai·语言模型·论文速览
Toky丶2 天前
【文献阅读】Pretraining Large Language Models with NVFP4
人工智能·语言模型·自然语言处理
颜值博主2 天前
新一代大模型范式: Inner Tools
人工智能·ai·语言模型
狮子座明仔2 天前
MiMo-V2-Flash 深度解读:小米 309B 开源 MoE 模型如何用 15B 激活参数吊打 671B 巨头?
人工智能·语言模型·自然语言处理
waterfeeling2 天前
AGI时代如何选取合适的LLM(大语言模型)? -- 浅谈LLM评测
人工智能·语言模型·agi
Toky丶2 天前
【文献阅读】BitNet Scaling 1-bit Transformers for Large Language Models
人工智能·语言模型·自然语言处理