Google Colab
要在 Google Colab 上安装并运行 Unsloth,请按照以下步骤操作:
最后更新于
这有帮助吗?
要在 Google Colab 上安装并运行 Unsloth,请按照以下步骤操作:
最后更新于
这有帮助吗?
这有帮助吗?
from unsloth import FastLanguageModel, FastModel
import torch
from trl import SFTTrainer, SFTConfig
from datasets import load_dataset
max_seq_length = 2048 # 内部支持 RoPE 缩放,因此可任意选择!
# 获取 LAION 数据集
url = "https://huggingface.co/datasets/laion/OIG/resolve/main/unified_chip2.jsonl"
dataset = load_dataset("json", data_files = {"train" : url}, split = "train")
# 我们支持的 4bit 预量化模型,可实现 4 倍更快的下载且不会 OOM(显存溢出)。
fourbit_models = [
"unsloth/gpt-oss-20b-unsloth-bnb-4bit", # 或选择任何模型
] # 更多模型见 https://huggingface.co/unsloth
model, tokenizer = FastModel.from_pretrained(
model_name = "unsloth/gpt-oss-20b",
max_seq_length = 2048, # 为长上下文选择任意值!
load_in_4bit = True, # 4 位量化。False = 16 位 LoRA。
load_in_8bit = False, # 8 位量化
load_in_16bit = False, # [新!] 16 位 LoRA
full_finetuning = False, # 用于完整微调。
# token = "hf_...", # 如果使用限制访问的模型则使用该 token
)
# 对模型进行补丁并添加快速 LoRA 权重
model = FastLanguageModel.get_peft_model(
model,
r = 16,
target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj",],
lora_alpha = 16,
lora_dropout = 0, # 支持任意值,但 = 0 是优化设置
bias = "none", # 支持任意值,但 = "none" 是优化设置
# [新] “unsloth” 使用 30% 更少的显存,可容纳 2 倍更大的批次!
use_gradient_checkpointing = "unsloth", # 对于非常长的上下文使用 True 或 "unsloth"
random_state = 3407,
max_seq_length = max_seq_length,
use_rslora = False, # 我们支持秩稳定化的 LoRA
loftq_config = None, # 以及 LoftQ
)
trainer = SFTTrainer(
model = model,
train_dataset = dataset,
tokenizer = tokenizer,
args = SFTConfig(
max_seq_length = max_seq_length,
per_device_train_batch_size = 2,
gradient_accumulation_steps = 4,
warmup_steps = 10,
max_steps = 60,
logging_steps = 1,
output_dir = "outputs",
optim = "adamw_8bit",
seed = 3407,
),
)
trainer.train()
# 访问 https://docs.unsloth.ai 获取高级提示,例如
# (1) 保存为 GGUF / 合并为 16 位以用于 vLLM
# (2) 从已保存的 LoRA 适配器继续训练
# (3) 添加评估循环 / 处理 OOM(显存溢出)
# (4) 自定义聊天模板