AI个人学习
和实操指南
豆包Marscode

Unsloth:高效微调和训练大语言模型的开源工具

综合介绍

Unsloth 是一个开源项目,旨在提供高效的微调和训练大语言模型(LLMs)的工具。该项目支持多种知名模型,包括 Llama、Mistral、Phi 和 Gemma 等。Unsloth 的主要特点是能够显著减少内存使用和加快训练速度,使得用户可以在更短的时间内完成模型的微调和训练。此外,Unsloth 提供了丰富的文档和教程,帮助用户快速上手并充分利用其功能。

Unsloth Zoo:提供免费大模型微调工具库,提升模型性能-1


 

功能列表

  • 高效微调:支持 Llama、Mistral、Phi 和 Gemma 等多种模型,微调速度提高 2-5 倍,内存使用减少 50-80%。
  • 免费使用:提供免费使用的笔记本,用户只需添加数据集并运行所有代码,即可获得微调后的模型。
  • 多种导出格式:支持将微调后的模型导出为 GGUF、Ollama、vLLM 或上传到 Hugging Face。
  • 动态量化:支持动态 4-bit 量化,提高模型精度,同时仅增加不到 10% 的显存使用。
  • 长上下文支持:支持 Llama 3.3 (70B) 模型的 89K 上下文窗口,以及 Llama 3.1 (8B) 模型的 342K 上下文窗口。
  • 视觉模型支持:支持 Llama 3.2 Vision (11B)、Qwen 2.5 VL (7B) 和 Pixtral (12B) 等视觉模型。
  • 推理优化:提供多种推理优化选项,显著提高推理速度。

 

使用帮助

安装流程

  1. 安装依赖:确保已安装 Python 3.8 及以上版本,并安装以下依赖: bash
    pip install torch transformers datasets
  2. 克隆仓库:使用 Git 克隆 Unsloth 仓库: bash
    git clone https://github.com/unslothai/unsloth.git
    cd unsloth
  3. 安装 Unsloth:运行以下命令安装 Unsloth: bash
    pip install -e .

使用教程

  1. 加载模型:在 Python 脚本中加载预训练模型:
    from transformers import AutoModelForCausalLM, AutoTokenizer
    model_name = "unslothai/llama-3.3"
    model = AutoModelForCausalLM.from_pretrained(model_name)
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    
  2. 微调模型:使用 Unsloth 提供的笔记本进行模型微调。以下是一个简单的示例:
    from unsloth import Trainer, TrainingArguments
    training_args = TrainingArguments(
    output_dir="./results",
    num_train_epochs=3,
    per_device_train_batch_size=4,
    save_steps=10_000,
    save_total_limit=2,
    )
    trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    )
    trainer.train()
    
  3. 导出模型:微调完成后,可以将模型导出为多种格式: python
    model.save_pretrained("./finetuned_model")
    tokenizer.save_pretrained("./finetuned_model")

详细功能操作

  • 动态量化:在微调过程中,Unsloth 支持动态 4-bit 量化,这可以显著提高模型的精度,同时仅增加不到 10% 的显存使用。用户可以在训练参数中启用此功能:
    training_args = TrainingArguments(
    output_dir="./results",
    num_train_epochs=3,
    per_device_train_batch_size=4,
    save_steps=10_000,
    save_total_limit=2,
    quantization="dynamic_4bit"
    )
    
  • 长上下文支持:Unsloth 支持 Llama 3.3 (70B) 模型的 89K 上下文窗口,以及 Llama 3.1 (8B) 模型的 342K 上下文窗口。这使得模型在处理长文本时表现更加出色。用户可以在加载模型时指定上下文窗口大小:
    model = AutoModelForCausalLM.from_pretrained(model_name, context_window=89000)
    
  • 视觉模型支持:Unsloth 还支持多种视觉模型,如 Llama 3.2 Vision (11B)、Qwen 2.5 VL (7B) 和 Pixtral (12B)。用户可以使用这些模型进行图像生成和处理任务: python
    model_name = "unslothai/llama-3.2-vision"
    model = AutoModelForImageGeneration.from_pretrained(model_name)
CDN
未经允许不得转载:首席AI分享圈 » Unsloth:高效微调和训练大语言模型的开源工具

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文