→ العودة إلى القائمة

Use Unsloth to fine-tune the locally deployed DeepSeek large model

itadol5j

الاستخدام DeepSeek-r1-14b النموذج و المرور (أولاما) :: إجراء عملية كاملة للتعديل وتحويل الشكل للنشر:


أولاً - الخطوات الجديدة للتكيف في شكل أولما

تحويل النموذج النموذجي (Py Torch ) 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

2. Create Ollama Modelfile

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

ثانياً - تعديلات عمليات التدريب على النمذجة (تخفيض قاعدة &quot; DeepSeek-14b &quot; )

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 - تعديل بارامترات التدريب

# 因模型减小,可适当提升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",         # 使用分页优化器
)

ثالثا - تقييم انتشار

1 - نموذج النشر المحلي

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

2 - تشكيلة الأداء الأمثل

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

بيان التغييرات الرئيسية

البندالبرنامج السابق 32 باءالبرنامج الجديد 14B+Ollamaالمزايا
المنظمة80GB+ (4bit quantified)24GB+ (4bit quantified)سيارة واحدة
السرعة(A100)(3090)زيادة كفاءة النشر المحلي
الدقة النموذجيةbfloat16عوامة 16تطابق أفضل
تعقيد النشرينبغي إغلاق واجهة APIخط قيادة واحدتبسيط عملية النقل

خامسا - المسائل ذات الصلة

1 - وقع خطأ بُعد عند تحويل نظام الغوغاء العالمي

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

2 - لم ترق استجابة المنظمة إلى مستوى التوقعات

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

الخسارة المفرطة في الدقة بعد التحديد الكمي

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

مع التعديلات المذكورة أعلاه، سوف تحصل على واحد:
● تخفيض الطلب الظاهر بنسبة ٥٠ في المائة
✅ دعم نشر Ollama
نموذج الوزن الخفيف للحفاظ على القدرة على تكييف المشاريع