让 Gemma 3 思考
社区文章 发布于 2025 年 3 月 13 日
今天大家都在微调 Gemma 3,所以我想写一篇更长的帖子,分享我发现的技巧和难点。我们开始吧!
- 必须从 main 和 nightly 版本安装所有内容。这就是我用来运行 unsloth 和 TRL 的方法
git+https://github.com/huggingface/transformers@main
git+https://github.com/huggingface/trl.git@main
bitsandbytes
peft
再加上这个,使用 --no-deps
git+https://github.com/unslothai/unsloth-zoo.git@nightly
git+https://github.com/unslothai/unsloth.git@nightly
- 视觉微调在 TRL 的 GRPOTrainer 中不可用,所以请坚持使用文本数据集。但是不需要在 transformers 或 Unsloth 中以不同的方式加载模型
from transformers import AutoModelForImageTextToText
model = AutoModelForImageTextToText.from_pretrained("google/gemma-3-4b-it)
will brown 的代码将 GSM8k 转化为推理数据集,这是一个不错的玩具实验 https://gist.github.com/willccbb/4676755236bb08cab5f4e54a0475d6fb
在学习率为 5e-6 时,奖励和损失在前 100 步左右保持平稳。
到目前为止,我所有的运行在 1 个 epoch 后都没有破坏输出。因此,我主要在尝试更大的 LoRA 适配器。
from trl import GRPOConfig
training_args = GRPOConfig(
learning_rate = 5e-6,
adam_beta1 = 0.9,
adam_beta2 = 0.99,
weight_decay = 0.1,
warmup_ratio = 0.1,
lr_scheduler_type = "cosine",
optim = "adamw_8bit",
logging_steps = 1,
per_device_train_batch_size = 2,
gradient_accumulation_steps = 1,
num_generations = 2,
max_prompt_length = 256,
max_completion_length = 1024 - 256,
num_train_epochs = 1,
max_steps = 250,
save_steps = 250,
max_grad_norm = 0.1,
report_to = "none",
)
如果你想了解 GRPO,可以查看推理课程,它会以流畅的方式引导你了解算法、理论和实现。