← Quay lại danh sách

Sử dụng Unsloth để fine-tune mô hình lớn được triển khai tại địa phương DeepSek

itadol5j

Dùng DeepSek-r1-14b Mô hình và Qua Olama. Tiến trình chuyển đổi định dạng và tinh chỉnh đầy đủ để triển khai:


I. Các bước thay đổi định dạng mới Ollama

Sự chuyển đổi định dạng mô hình (PyTorch gGUF)

# 安装转换工具
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp && make

# 合并LoRA权重到基础模型
python3 -m pip install peft
python3 <<EOF
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer

base_model = AutoModelForCausalLM.from_pretrained(
    "deepseek-ai/deepseek-llm-14b-chat",
    torch_dtype=torch.float16,
    device_map="auto"
)
model = PeftModel.from_pretrained(base_model, "./custom_deepseek")
model = model.merge_and_unload()  # 合并LoRA权重

model.save_pretrained("./merged_model", safe_serialization=True)
tokenizer.save_pretrained("./merged_model")
EOF

# 转换为GGUF格式
python3 llama.cpp/convert.py ./merged_model \
  --outtype q4_k_m \          # 4-bit量化(平衡精度与效率)
  --outfile deepseek-14b-custom.Q4_K_M.gguf

Tạo tập tin mô hình Ollama

# Modelfile 示例
FROM ./deepseek-14b-custom.Q4_K_M.gguf
PARAMETER temperature 0.7
PARAMETER stop "[INST]"
PARAMETER stop "[/INST]"
SYSTEM """
你是一个经过专业训练的AI助手,专门为[企业名称]提供符合企业规范的响应。
响应需使用企业术语,并遵守安全准则。
"""

II. Mô hình tiến trình đào tạo điều chỉnh ( thói quen của DeepSek-14b)

1.

from unsloth import FastLanguageModel

# 加载14B模型(显存需求降低至24GB+)
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "deepseek-ai/deepseek-llm-14b-chat",  # 修改模型名称
    max_seq_length = 4096,
    dtype = torch.float16,        # 14B模型可用float16
    load_in_4bit = True,           # 显存不足时开启
    attn_implementation = "flash_attention_2",  # 强制启用Flash Attention
)

2. Điều chỉnh tham số đào tạo

# 因模型减小,可适当提升batch size
trainer_args = TrainingArguments(
    per_device_train_batch_size = 4,    # 原为2(32B模型)
    gradient_accumulation_steps = 2,    # 总batch_size=4*2=8
    learning_rate = 3e-5,               # 稍高于32B版本
    optim = "paged_adamw_8bit",         # 使用分页优化器
)

III. Comment

1.

ollama create my-deepseek -f Modelfile
ollama run my-deepseek
>>> [INST] 生成技术部门季度总结模板 [/INST]

Cấu hình hiệu suất tối ưu 2.

# 在Modelfile中添加GPU加速参数(需Ollama 0.1.15+)
PARAMETER num_gpu 4   # 指定GPU数量
PARAMETER numa      # 启用NUMA优化

Comment

MụcChương trình trước 32BChương trình mới 14B+OllamaLợi thế
Tìm kiếmSố lượng 80GB+ (4 bit)24GB+(4 bit định lượng)Một thẻ
Tốc độ Suy luận15 huy chương/s (A100)28 huy chương/s (3090)Tăng hiệu suất triển khai địa phương
Độ chính xác mô hìnhbfloat16nổi16Thích hợp hơn.
Sự triển khai phức tạpNameMột mệnh lệnh.Đơn giản hóa quá trình vận chuyển

NHỮNG SỐ TRUNG TÔI

Gặp lỗi chiều không gian khi chuyển đổi GGUUUF

# 检查权重合并是否正确
python3 llama.cpp/convert.py --verbose ...  # 显示详细转换日志

2.Olama phản ứng không đáp ứng được mong đợi

# 在训练数据中添加格式强化样本:
{
  "instruction": "严格按照企业模板回复",
  "input": "用户问题内容",
  "output": "[企业标准开头]...[/企业标准结尾]"
}

Mất độ chính xác vượt mức sau khi định lượng

# 尝试更高精度量化(需更多显存)
--outtype q6_k    # 6-bit量化
--outtype q8_0    # 8-bit量化

Với những điều chỉnh trên, bạn sẽ nhận được một:
• Giảm 50% nhu cầu hiển nhiên
thể hiện tinh thần ủng hộ việc Ollama triển khai
Mô hình nhẹ cân để duy trì khả năng tùy biến doanh nghiệp