Unsloth का उपयोग स्थानीय रूप से तैनात डीपसिक बड़े मॉडल को ठीक करने के लिए करें
उपयोग DeepSeek-r1-14b मॉडल और पास ओलामा। तैनाती के लिए पूर्ण ठीक ट्यूनिंग और प्रारूप रूपांतरण प्रक्रिया:
I. न्यू ओलमा प्रारूप अनुकूलन चरण
मॉडल प्रारूप रूपांतरण (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
2. Ollama Modelfile
# Modelfile 示例
FROM ./deepseek-14b-custom.Q4_K_M.gguf
PARAMETER temperature 0.7
PARAMETER stop "[INST]"
PARAMETER stop "[/INST]"
SYSTEM """
你是一个经过专业训练的AI助手,专门为[企业名称]提供符合企业规范的响应。
响应需使用企业术语,并遵守安全准则。
"""
II. मॉडलिंग प्रशिक्षण प्रक्रिया समायोजन (डीपसेक-14बी का अनुकूलन)
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", # 使用分页优化器
)
III Ollama Deployment वैधता
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优化
मुख्य परिवर्तनों का विवरण
| आइटम | पूर्व कार्यक्रम 32B | नया 14B+Ollama प्रोग्राम | लाभ |
|---|---|---|---|
| संगठन | 80GB + (4bit quantified) | 24GB + (4bit quantified) | सिंगल कार्ड रनेबल |
| गहराई | 15 tokens/s (A100) | 28 टोकन/s (3090) | स्थानीय तैनाती की बढ़ी हुई दक्षता |
| मॉडल प्रेसिजन | bfloat16 | फ्लोट16 | बेहतर संगतता |
| तैनाती की जटिलता | एपीआई इंटरफ़ेस को सील करना चाहिए | आदेश की एक पंक्ति। | परिवहन प्रक्रिया को सरलीकृत करें |
V. RELEVANT ISSUES समाधान
1. GGUF को परिवर्तित करते समय एक आयाम त्रुटि हुई
# 检查权重合并是否正确
python3 llama.cpp/convert.py --verbose ... # 显示详细转换日志
2. ओलमा प्रतिक्रिया उम्मीदों को पूरा नहीं हुई
# 在训练数据中添加格式强化样本:
{
"instruction": "严格按照企业模板回复",
"input": "用户问题内容",
"output": "[企业标准开头]...[/企业标准结尾]"
}
मात्रात्मकता के बाद परिशुद्धता के अत्यधिक नुकसान
# 尝试更高精度量化(需更多显存)
--outtype q6_k # 6-bit量化
--outtype q8_0 # 8-bit量化
उपरोक्त समायोजन के साथ, आपको एक मिलेगा:
स्पष्ट मांग में 50 प्रतिशत की कमी
Ollama की तैनाती
उद्यम अनुकूलन क्षमता को बनाए रखने के लिए लाइटवेट मॉडल