微调的核心原因是赋予大模型更加定制化的功能。通用大模型虽然强大,但在特定领域可能表现不佳。通过微调,可以使模型更好地适应特定领域的需求和特征。通过引入特定领域的数据集进行微调,大模型可以学习该领域的知识和语言模式,这有助于模型在特定任务上取得更好的性能。

0开源模型系列

模型名 模型大小 模板
DeepSeek (Code/MoE) 7B/16B/67B/236B deepseek
DeepSeek-V3/R1 671B deepseek
Baichuan 2 7B/13B baichuan2
BLOOM/BLOOMZ 560M/1.1B/1.7B/3B/7.1B/176B
ChatGLM3 6B chatglm3
Command R 35B/104B cohere
Falcon 7B/11B/40B/180B falcon
Gemma/Gemma 2/CodeGemma 2B/7B/9B/27B gemma
GLM-4 9B glm4
Granite 3.0-3.1 1B/2B/3B/8B granite3
Index 1.9B index
InternLM2/InternLM2.5 7B/20B intern2
Llama 7B/13B/33B/65B llama
Llama 2 7B/13B/70B llama2
Llama 3-3.3 1B/3B/8B/70B llama3
Llama 3.2 Vision 11B/90B mllama
LLaVA-1.5 7B/13B llava
LLaVA-NeXT 7B/8B/13B/34B/72B/110B llava_next
LLaVA-NeXT-Video 7B/34B llava_next_video
MiniCPM 1B/2B/4B cpm/cpm3
Mistral/Mixtral 7B/8x7B/8x22B mistral
OLMo 1B/7B
PaliGemma/PaliGemma2 3B/10B/28B paligemma
Phi-1.5/Phi-2 1.3B/2.7B phi
Phi-3 4B/14B phi
Phi-3-small 7B phi_small
Pixtral 12B pixtral
Qwen/QwQ (1-2.5) (Code/Math/MoE) 0.5B/1.5B/3B/7B/14B/32B/72B/110B qwen
Qwen2-VL/QVQ 2B/7B/72B qwen2_vl
Skywork o1 8B skywork_o1
StarCoder 2 3B/7B/15B
TeleChat2 3B/7B/35B/115B telechat2
XVERSE 7B/13B/65B xverse
Yi/Yi-1.5 (Code) 1.5B/6B/9B/34B yi
Yi-VL 6B/34B yi_vl
Yuan 2 2B/51B/102B yuan

02 开源微调模型仓库

1. Firefly

https://github.com/yangjianxin1/Firefly

Firefly 是一个开源的大模型训练项目,支持对主流的大模型进行预训练、指令微调和DPO,包括但不限于Qwen2、Yi-1.5、Llama3、Gemma、Qwen1.5、MiniCPM、MiniCPM3、Llama、InternLM、Baichuan、ChatGLM、Yi、Deepseek、Qwen、Orion、Ziya、Xverse、Mistral、Mixtral-8x7B、Zephyr、Vicuna、Bloom等。本项目支持全量参数训练、LoRA、QLoRA高效训练,支持预训练、SFT、DPO。如果你的训练资源有限,我们极力推荐使用QLoRA进行指令微调,因为我们在Open LLM Leaderboard上验证了该方法的有效性,并且取得了非常不错的成绩。

2. LLaMA-Factory

https://github.com/hiyouga/LLaMA-Factory

多种模型LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Qwen2-VL、Yi、Gemma、Baichuan、ChatGLM、Phi 等等。

集成方法:(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等等。

多种精度:16 比特全参数微调、冻结微调、LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调。

先进算法GaLore、BAdam、APOLLO、Adam-mini、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ、PiSSA 和 Agent 微调。

实用技巧:FlashAttention-2、Unsloth、Liger Kernel、RoPE scaling、NEFTune 和 rsLoRA。

实验监控:LlamaBoard、TensorBoard、Wandb、MLflow、SwanLab 等等。

极速推理:基于 vLLM 的 OpenAI 风格 API、浏览器界面和命令行接口。

3. Unsloth 

https://github.com/unslothai/unsloth

  • 所有内核均以 OpenAI 的 Triton 语言编写。手动反向传播引擎

  • 精度损失 0% 没有近似方法 - 全部准确。

  • 无需更改硬件。自 2018+ 年起支持 NVIDIA GPU。最低 CUDA 能力 7.0(V100、T4、Titan V、RTX 20、30、40x、A100、H100、L40 等)检查您的 GPU!GTX 1070、1080 可以工作,但速度很慢。

  • 通过 WSL 在 Linux 和 Windows 上运行。

  • 支持通过 bitsandbytes 进行 4 位和 16 位 QLoRA / LoRA 微调。

  • 开源训练速度提高 5 倍 - 请参阅 Unsloth Pro 以获得高达 30 倍的训练速度

  • 如果您使用 Unsloth 训练了模型🦥,则可以使用这个很酷的贴纸!

4. PEFT 

https://github.com/huggingface/peft

由于规模的原因,微调大型预训练模型的成本通常高得令人望而却步。参数高效微调 (PEFT) 方法只需微调少量(额外)模型参数,而不是微调模型的所有参数,即可使大型预训练模型有效地适应各种下游应用。这大大降低了计算和存储成本。最近最先进的 PEFT 技术实现了与完全微调模型相当的性能。PEFT 与 Transformers 集成,便于模型训练和推理,Diffusers 用于方便地管理不同的适配器,Accelerate 用于真正大型模型的分布式训练和推理。

5. (IA)³

https://github.com/r-three/t-few

少样本上下文学习(Few-shot In-Context Learning, ICL)使得预训练语言模型能够在无需基于梯度的训练的情况下,通过将少量训练示例作为输入的一部分来执行以前未见过的任务。然而,ICL 会带来巨大的计算、内存和存储开销,因为每次进行预测时都需要处理所有的训练示例。参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)(例如适配器模块、提示调优、稀疏更新方法等)提供了一种替代范式,通过训练一小部分参数使模型能够执行新任务。在本文中,我们严格比较了少样本 ICL 和 PEFT,并证明后者不仅提供了更高的准确性,还显著降低了计算成本。在此过程中,我们提出了一种新的 PEFT 方法,称为 (IA)³,它通过学习向量对激活进行缩放,在仅引入少量新参数的情况下实现了更强的性能。我们还提出了一种基于 T0 模型的简单方法,称为 T-Few,该方法可以应用于新任务而无需任务特定的调优或修改。我们通过在 RAFT 基准测试中应用 T-Few 来验证其在完全未见任务上的有效性,首次实现了超越人类的表现,并以 6% 的绝对优势超越了现有技术。我们实验中使用的所有代码均已公开。

 

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐