Skip to content

Model Fine-tuning & Deployment

Mở đầu

LLM mạnh, nhưng không hiểu business bạn. GPT-4 viết thơ, viết code, nhưng không biết thuật ngữ sản phẩm cty bạn, không biết quy chuẩn nghiệp ngành bạn. Fine-tuning = quá trình cho LLM general "học" kiến thức chuyên môn của bạn — như đào tạo onboarding cho 1 generalist uyên bác để thành chuyên gia domain.

Bạn sẽ học:

  • Quy trình: full pipeline từ data prep đến model serving
  • Data engineering: yêu cầu format + chất lượng data
  • Efficient fine-tuning: LoRA và parameter-efficient
  • Model compression: quantization để LLM chạy hardware consumer
  • Deployment: serving architecture mainstream + selection strategy
ChươngNội dung
1Fine-tuning pipeline
2Training data
3LoRA
4Quantization
5Deployment

0. Toàn cảnh: sao cần fine-tune?

Training LLM chia 2 stage: pretraining + fine-tuning. Pretraining = học ngôn ngữ trên data tổng quát khổng lồ. Fine-tuning = học task chuyên môn trên data đặc thù.

Ẩn dụ: pretraining như đại học — học general, biết mọi thứ 1 chút. Fine-tuning = onboarding cho job — học skill chuyên cho vị trí.

Khi nào cần fine-tune?

  • Output format cố định: cần model luôn output JSON cố định
  • Domain knowledge: y tế, pháp luật, tài chính
  • Style transfer: model trả lời với tone/style nhất định (vd customer service)
  • Niche language: tăng performance ngôn ngữ ít resource
  • Cost optimization: small model fine-tune thay LLM lớn → giảm cost

1. Fine-tuning pipeline

Fine-tuning không phải "quăng data vào model là xong". Là quy trình engineering chặt, mỗi mắt xích ảnh hưởng kết quả.

微调流水线演示

点击每个阶段,了解微调的完整流程

🧠
选择基座模型
📊
准备训练数据
⚙️
执行微调训练
📈
评估与测试
🚀
部署上线
🧠 选择基座模型

微调的第一步是选择一个合适的预训练基座模型。基座模型已经在海量数据上学习了通用的语言能力,我们要做的是在此基础上进行"专业化训练"。

1根据任务需求选择模型规模(7B、13B、70B 等)
2考虑开源许可证(Apache 2.0、Llama 许可等)
3评估模型的基础能力是否匹配目标场景
4常见选择:Llama、Qwen、Mistral、DeepSeek 等
示例
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-7B")
1 / 5

5 stage

  1. Data prep: collect, clean, label — mất time nhất + critical nhất
  2. Model selection: chọn base model (Llama 3, Qwen, Mistral)
  3. Training config: set learning rate, batch size, epoch
  4. Train execution: run GPU, monitor loss + metric
  5. Eval + deploy: test, deploy API
StageActionPit
Data prepClean, dedup, formatData tệ → model "học hư"
Model selectEval base capabilityQuá lớn không train được, quá nhỏ kết quả tệ
Training configTune hyperparamLR quá cao → catastrophic forgetting
Train executionMonitor lossOverfit, không converge
Eval + deployA/B test, gradual rolloutTest set leak → eval ảo cao

2. Training data: trần của fine-tuning

Câu cũ: "Garbage in, garbage out". Data quality quyết trần hiệu quả. 100 sample chất lượng cao thường hơn 10000 sample tệ.

训练数据格式演示

切换不同格式,了解微调数据的组织方式

指令跟随

最常见的微调数据格式。每条数据包含一个指令(instruction)、可选的输入(input)和期望的输出(output)。适合训练通用助手类模型。

通用助手ChatGPT 风格最常用
数据样例
"instruction": "请将以下中文翻译成英文"
"input": "人工智能正在改变世界"
"output": "AI is changing the world"
数据质量要点
指令要清晰明确,避免歧义
输出要完整、准确、格式规范
覆盖多种任务类型(翻译、摘要、问答等)
数据量建议:1,000 ~ 50,000 条

3 format thường gặp

  1. Instruction format: hay dùng nhất, instruction + input + output. Hợp train follow instruction.
  2. Chat format: multi-turn, system/user/assistant message list. Hợp chatbot.
  3. Completion format: prompt-completion pair đơn giản, hợp text gen, code completion.
DimensionNoteCheck
AccuracyAnswer phải đúngHuman review, expert verify
ConsistencyStyle trả lời câu hỏi giống nhauSample compare
DiversityCover đủ scenario + variantStats question type distribution
DedupTránh sample lặp gây overfitText dedup, semantic dedup
Volume500~5000 sample chất lượng cao đủBắt đầu ít, tăng dần

3. LoRA: 1% param đạt 90% kết quả

Full fine-tuning update mọi param model — model 70B = vài trăm GB VRAM + lượng GPU lớn. Đa số team không khả thi.

LoRA (Low-Rank Adaptation) giải elegantly: freeze param model gốc, chỉ train nhóm matrix low-rank mới. Param matrix này thường chỉ 0.1%~1% model gốc, nhưng đạt gần full fine-tuning.

LoRA 低秩适配原理演示

理解 LoRA 如何用极少参数实现高效微调

原始权重 W
4096x4096
16,777,216 参数
冻结不动
+
LoRA 适配器
A
4096x8
x
B
8x4096
65,536 参数
可训练
参数节省比例
节省 99.6% 参数
秩越小 = 参数越少、训练越快秩越大 = 表达力越强、效果越好

Core LoRA

Matrix W của model gốc lớn (vd 4096×4096). LoRA không sửa W trực tiếp, mà thêm "bypass": W' = W + BA, B + A là 2 matrix nhỏ (vd 4096×8 + 8×4096). Train chỉ update B + A, W gốc giữ nguyên.

  • Rank: r lớn = expressiveness cao, param nhiều hơn. Thường r=8~64 đủ.
  • Merge deploy: train xong, có thể merge BA về W, inference không thêm overhead.
CáchTrainable paramVRAMTrain speedHiệu quả
Full fine-tune100%Cực caoChậmTốt nhất
LoRA0.1%~1%ThấpNhanhGần full
QLoRA0.1%~1%Thấp hơnTrungHơi thấp LoRA
Prompt Tuning<0.01%Cực thấpRất nhanhCó hạn

4. Quantization: "giảm cân" LLM

Model 70B với FP32 = 280GB VRAM — không có GPU top không chạy được. Quantization giảm precision số để compress model, cho LLM chạy hardware consumer.

模型量化演示

拖动滑块,直观感受不同精度下的模型体积、速度与质量变化

FP32
32 bit
FP16
16 bit
INT8
8 bit
INT4
4 bit
💾
模型体积
~28 GB (7B 模型)
推理速度
1x (基准)
🎯
输出质量
100% (无损)
🖥️
显存需求
~32 GB
FP32 详解

FP32(32位浮点数)是模型训练时的默认精度。每个参数用 32 位存储,精度最高但体积最大。通常只在训练阶段使用,推理时很少直接使用 FP32。

单个参数存储示意
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
每个参数占用 32 位 = 4 字节
适用场景:模型训练、科研实验、精度敏感的任务

Core trade-off

Bản chất quantization = đánh đổi precision lấy space. FP32 → FP16 gần không mất, INT8 mất ít, INT4 mất rõ nhưng chấp nhận được. Tìm balance theo scenario.

  • FP16 (half precision): size giảm 1/2, gần không mất, default cho train + inference
  • INT8: giảm tiếp 1/2, mất rất ít, hợp đa số inference
  • INT4: chỉ 1/8 FP32, mất 1 phần, hợp resource hạn chế
PrecisionByte/paramSize model 70BQuality lossUse
FP324~280 GBKhôngTraining baseline
FP162~140 GBGần khôngTrain + inference chuẩn
INT81~70 GBRất ítProduction inference
INT40.5~35 GBChấp nhậnEdge, local deploy

5. Model deployment: từ lab → production

Model trained + compressed xong, deploy thành service callable. Không chỉ "chạy model", còn concurrency, load balance, cost control.

模型服务架构演示

点击不同部署方案,对比其特点与适用场景

🌐
API 服务
最常见的在线部署方式
📱
边缘部署
在终端设备上本地运行
📦
批量处理
离线批量推理大量数据
🌐API 服务

将模型封装为 RESTful API 或 gRPC 服务,通过 HTTP 请求调用。适合需要实时响应的在线应用,如聊天机器人、智能客服、内容生成等。是目前最主流的部署方式。

架构流程
客户端请求
负载均衡
推理服务器
GPU 推理
返回结果
响应延迟
100ms - 2s
并发能力
高(可水平扩展)
部署成本
中高(需 GPU 服务器)
运维复杂度
中等
常用工具
vLLMTGITritonFastAPIOllama

3 deployment mainstream

  1. API vendor: dùng API OpenAI, Anthropic trực tiếp. Zero-ops, pay per token, hợp validate nhanh + dùng vừa-nhỏ.
  2. Self-hosted inference: vLLM, TGI deploy GPU server riêng. Cost control được, data không ra khỏi, hợp privacy hoặc scale lớn.
  3. Serverless inference: AWS SageMaker, Replicate, pay-per-request, auto scale. Hợp traffic fluctuate.
CáchCostLatencyOps complexityUse
API vendorPay per tokenTrung0Prototype, mid-scale
vLLM selfGPU rentThấpCaoScale lớn, privacy
ServerlessPay per requestCold start caoThấpTraffic fluctuate
EdgeOne-time hardwareCực thấpTrungOffline, IoT

Tổng kết

Fine-tuning + deployment = mắt xích biến LLM general → specialist. Từ data prep tới serving, mỗi bước cần tư duy engineering.

Key:

  1. Fine-tuning = onboarding training: LLM general học knowledge + behavior pattern domain
  2. Data quality quyết trần: 100 sample tốt > 10000 sample tệ
  3. LoRA = king efficiency: dưới 1% param đạt gần full
  4. Quantization = vũ khí deploy: INT4 cho model 70B chạy single GPU
  5. Deploy linh hoạt: validate dùng API, scale lớn self-host, fluctuate Serverless

2026 cho VN dev

  • Unsloth: 2x speedup LoRA, easier learning curve
  • MLX (Apple Silicon): train + inference trên Mac M-series rất nhanh
  • Llama Factory: GUI fine-tune trong vài click
  • Modal: serverless GPU dễ cho team không có infra
  • Together.ai / Fireworks: managed fine-tuning Vietnamese-friendly pricing
  • VN data: fine-tune Vistral, PhoGPT trên dataset VN
  • Bài tập VN: fine-tune Qwen2.5-7B trên 1000 cặp Q-A nội bộ → CS agent

Tài liệu