环境准备
首先通过终端安装必要的依赖。这里使用 PyTorch 2.4.0 配合 CUDA 12.1,并升级 Unsloth 以获得最佳性能。
pip install torch==2.4.0 torchvision==0.19.0 --index-url https://download.pytorch.org/whl/cu121
pip install triton==3.0.0
pip install "unsloth[torch]" --upgrade
加载 LLaMA 3.2 Vision 模型
LLaMA 3.2 Vision 是 Meta 推出的多模态大模型,能同时处理图像与文本。本项目选用 11B 版本,并通过 4 位量化加载以减少显存占用。
from unsloth import FastVisionModel
import torch
# 根据实际路径修改本地模型文件夹位置
local_model_path = "/model-202507/Llama-3.2-11B-Vision-Instruct"
model, tokenizer = FastVisionModel.from_pretrained(
local_model_path,
load_in_4bit=True,
use_gradient_checkpointing="unsloth"
)
运行后会看到 Unsloth 的优化日志,确认模型加载成功即可继续。
配置 LoRA 微调模块
为了高效训练,我们只微调特定组件(视觉层、语言层、注意力模块等),这样既能适配任务又能保持架构轻量。
model = FastVisionModel.get_peft_model(
model,
finetune_vision_layers=True,
finetune_language_layers=True,
finetune_attention_modules=True,
finetune_mlp_modules=True,
r=16,
lora_alpha=16,
lora_dropout=0,
bias="none",
random_state=3443,
use_rslora=False,
loftq_config=None,
)
数据加载
我们使用亚马逊商品描述数据集,选取前 500 个样本构建训练集。目标是让模型学会看图说话,生成符合电商场景的描述。
from datasets import load_dataset
dataset = load_dataset("/Dataset/amazon-product-descriptions-vlm/", split="train[0:500]")
print(dataset)
查看其中一条数据,比如索引 100 的样本:
(dataset[][])
(dataset[][])


