Skip to content

Tinh chỉnh và Triển khai Mô hình

Lời nói đầu

Mô hình lớn rất mạnh mẽ, nhưng nó không hiểu nghiệp vụ của bạn. GPT-4 có thể làm thơ, lập trình, nhưng nó không biết thuật ngữ sản phẩm của công ty bạn, không hiểu các quy chuẩn chuyên môn trong ngành của bạn. Tinh chỉnh (Fine-tuning) chính là quá trình giúp mô hình lớn đa năng "học" kiến thức chuyên môn của bạn — giống như đào tạo trước khi vào việc cho một học giả uyên bác, biến nó thành chuyên gia trong lĩnh vực của bạn.

Bài viết này sẽ giúp bạn học được gì?

Sau khi học xong chương này, bạn sẽ có được:

  • Nhận thức về quy trình: Nắm vững pipeline tinh chỉnh hoàn chỉnh từ chuẩn bị dữ liệu đến triển khai mô hình
  • Kỹ thuật dữ liệu: Hiểu yêu cầu định dạng và tiêu chuẩn chất lượng của dữ liệu tinh chỉnh
  • Tinh chỉnh hiệu quả: Hiểu nguyên lý và ưu điểm của các kỹ thuật tinh chỉnh hiệu quả tham số như LoRA
  • Nén mô hình: Nắm vững cách kỹ thuật lượng tử hóa giúp mô hình lớn chạy được trên phần cứng tiêu dùng
  • Thực hành triển khai: Hiểu kiến trúc chính và chiến lược lựa chọn cho dịch vụ mô hình
ChươngNội dungKhái niệm cốt lõi
Chương 1Pipeline tinh chỉnhDữ liệu → Huấn luyện → Đánh giá → Triển khai
Chương 2Dữ liệu huấn luyệnĐịnh dạng dữ liệu, kiểm soát chất lượng
Chương 3Tinh chỉnh LoRAThích ứng hạng thấp, hiệu quả tham số
Chương 4Lượng tử hóa mô hìnhFP16, INT8, INT4
Chương 5Triển khai mô hìnhDịch vụ suy luận, API Gateway

0. Toàn cảnh: Tại sao cần tinh chỉnh?

Quá trình huấn luyện mô hình ngôn ngữ lớn được chia thành hai giai đoạn: tiền huấn luyệntinh chỉnh. Tiền huấn luyện là học năng lực ngôn ngữ trên dữ liệu đa năng khổng lồ, tinh chỉnh là học năng lực chuyên môn trên dữ liệu tác vụ cụ thể.

Một phép so sánh: tiền huấn luyện giống như học đại học — học kiến thức tổng quát, cái gì cũng biết một chút; tinh chỉnh giống như đào tạo khi bắt đầu công việc — học kỹ năng chuyên môn cho vị trí cụ thể.

Khi nào cần tinh chỉnh?

  • Định dạng đầu ra cụ thể: Cần mô hình luôn xuất ra theo định dạng JSON cố định
  • Kiến thức chuyên ngành: Thuật ngữ và quy chuẩn chuyên môn trong các lĩnh vực như y tế, luật, tài chính
  • Chuyển đổi phong cách ngôn ngữ: Giúp mô hình trả lời với giọng điệu, phong cách cụ thể (như kịch bản chăm sóc khách hàng)
  • Hỗ trợ ngôn ngữ ít phổ biến: Nâng cao hiệu suất của mô hình trên ngôn ngữ cụ thể
  • Tối ưu chi phí: Dùng mô hình nhỏ đã tinh chỉnh thay thế cho việc gọi mô hình lớn, giảm chi phí suy luận

1. Pipeline tinh chỉnh: Hành trình hoàn chỉnh từ dữ liệu đến triển khai

Tinh chỉnh không phải là "ném dữ liệu cho mô hình là xong". Đó là một quy trình kỹ thuật nghiêm ngặt, mỗi khâu đều ảnh hưởng đến kết quả cuối cùng.

微调流水线演示

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

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

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

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

Năm giai đoạn của tinh chỉnh

  1. Chuẩn bị dữ liệu: Thu thập, làm sạch, gán nhãn dữ liệu huấn luyện, đây là khâu tốn thời gian nhất và cũng quan trọng nhất
  2. Lựa chọn mô hình: Chọn mô hình nền (Base Model) phù hợp, như Llama 3, Qwen, Mistral
  3. Cấu hình huấn luyện: Thiết lập các siêu tham số như learning rate, batch size, số epoch
  4. Thực thi huấn luyện: Chạy huấn luyện trên GPU, giám sát đường cong loss và các chỉ số đánh giá
  5. Đánh giá và triển khai: Đánh giá hiệu quả trên tập kiểm tra, sau khi thông qua thì triển khai thành dịch vụ API
Giai đoạnHành động chínhCạm bẫy thường gặp
Chuẩn bị dữ liệuLàm sạch, loại trùng lặp, định dạngChất lượng dữ liệu kém khiến mô hình "học sai"
Lựa chọn mô hìnhĐánh giá năng lực mô hình nềnMô hình quá lớn không huấn luyện nổi, quá nhỏ thì hiệu quả kém
Cấu hình huấn luyệnĐiều chỉnh siêu tham sốLearning rate quá cao dẫn đến quên thảm khốc
Thực thi huấn luyệnGiám sát loss và chỉ sốOverfitting, huấn luyện không hội tụ
Đánh giá và triển khaiA/B test, triển khai dầnRò rỉ tập kiểm tra khiến đánh giá cao hơn thực tế

2. Dữ liệu huấn luyện: Trần của hiệu quả tinh chỉnh

Trong tinh chỉnh có một câu nói cũ: "Garbage in, garbage out". Chất lượng dữ liệu huấn luyện trực tiếp quyết định giới hạn trên của hiệu quả tinh chỉnh. 100 mẫu dữ liệu chất lượng cao thường cho hiệu quả tốt hơn 10.000 mẫu dữ liệu chất lượng thấp.

训练数据格式演示

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

指令跟随

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

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

Ba định dạng phổ biến của dữ liệu tinh chỉnh

  1. Định dạng hướng dẫn (Instruction): Định dạng phổ biến nhất, gồm ba trường instruction (hướng dẫn), input (đầu vào), output (đầu ra mong đợi). Phù hợp để huấn luyện mô hình tuân theo hướng dẫn.
  2. Định dạng hội thoại (Chat): Dạng hội thoại nhiều lượt, gồm danh sách tin nhắn với các vai system, user, assistant. Phù hợp để huấn luyện chatbot.
  3. Định dạng hoàn thành (Completion): Cặp prompt-completion đơn giản, phù hợp cho các tình huống như sinh văn bản, hoàn thành mã.
Chiều chất lượng dữ liệuMô tảPhương pháp kiểm tra
Độ chính xácCâu trả lời phải chính xác tuyệt đốiKiểm duyệt thủ công, xác minh chuyên gia
Tính nhất quánPhong cách trả lời cho câu hỏi tương tự phải nhất quánKiểm tra đối chiếu mẫu
Tính đa dạngBao phủ đủ nhiều tình huống và biến thểThống kê phân bố loại câu hỏi
Loại trùng lặpTránh mẫu trùng lặp gây overfittingLoại trùng lặp văn bản, loại trùng lặp ngữ nghĩa
Lượng dữ liệuThường 500~5000 mẫu chất lượng cao là đủBắt đầu từ ít, tăng dần

3. LoRA: Dùng 1% tham số đạt 90% hiệu quả

Tinh chỉnh toàn phần (Full Fine-tuning) yêu cầu cập nhật tất cả tham số của mô hình — đối với mô hình 70B tham số, điều này đồng nghĩa với việc cần hàng trăm GB VRAM và sức mạnh GPU khổng lồ. Với hầu hết các đội ngũ, điều này không thực tế.

LoRA (Low-Rank Adaptation) cung cấp một giải pháp thanh lịch: đóng băng tham số mô hình gốc, chỉ huấn luyện một nhóm nhỏ ma trận hạng thấp được thêm vào. Lượng tham số của các ma trận này thường chỉ bằng 0,1%~1% mô hình gốc, nhưng có thể đạt hiệu quả gần với tinh chỉnh toàn phần.

LoRA 低秩适配原理演示

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

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

Tư tưởng cốt lõi của LoRA

Ma trận trọng số W của mô hình gốc là một ma trận khổng lồ (ví dụ 4096×4096). LoRA không sửa đổi trực tiếp W, mà thêm một "đường tắt" bên cạnh: W' = W + BA, trong đó B và A là hai ma trận nhỏ (ví dụ 4096×8 và 8×4096). Khi huấn luyện chỉ cập nhật B và A, W gốc được giữ nguyên.

  • Hạng (Rank): Giá trị r càng lớn, khả năng biểu đạt càng mạnh, nhưng lượng tham số cũng nhiều hơn. Thường r=8~64 là đủ dùng
  • Hợp nhất khi triển khai: Sau khi huấn luyện xong, có thể hợp nhất BA vào W, khi suy luận không có chi phí phụ trội
Phương pháp tinh chỉnhTham số có thể huấn luyệnNhu cầu VRAMTốc độ huấn luyệnHiệu quả
Tinh chỉnh toàn phần100%Cực caoChậmTốt nhất
LoRA0,1%~1%ThấpNhanhGần toàn phần
QLoRA0,1%~1%Thấp hơnTrung bìnhHơi thấp hơn LoRA
Prompt Tuning< 0,01%Cực thấpRất nhanhHạn chế

4. Lượng tử hóa mô hình: Giúp mô hình lớn "giảm cân"

Một mô hình 70B tham số, nếu dùng FP32 (số thực dấu phẩy động 32 bit) để lưu trữ, cần 280GB VRAM — không có vài GPU đỉnh cao thì không thể chạy nổi. Kỹ thuật lượng tử hóa (Quantization) nén kích thước mô hình bằng cách giảm độ chính xác số học, giúp mô hình lớn có thể chạy trên phần cứng tiêu dùng.

模型量化演示

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

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 字节
适用场景:模型训练、科研实验、精度敏感的任务

Đánh đổi cốt lõi của lượng tử hóa

Lượng tử hóa về bản chất là sự đánh đổi độ chính xác lấy không gian. FP32 → FP16 gần như không tổn thất, INT8 có tổn thất nhẹ, INT4 sẽ có suy giảm chất lượng rõ rệt nhưng thường chấp nhận được. Điều quan trọng là tìm điểm cân bằng tối ưu cho tình huống của bạn.

  • FP16 (bán chính xác):Kích thước giảm một nửa, chất lượng gần như không tổn thất, là lựa chọn mặc định cho huấn luyện và suy luận
  • INT8 (số nguyên 8 bit):Kích thước giảm thêm một nửa, tổn thất chất lượng rất nhỏ, phù hợp cho hầu hết tình huống suy luận
  • INT4 (số nguyên 4 bit):Kích thước chỉ bằng 1/8 FP32, chất lượng có tổn thất nhất định, phù hợp cho tình huống tài nguyên hạn chế
Độ chính xácByte mỗi tham sốKích thước mô hình 70BTổn thất chất lượngTình huống áp dụng
FP324 byte~280 GBKhôngCơ sở huấn luyện
FP162 byte~140 GBHầu như khôngHuấn luyện và suy luận tiêu chuẩn
INT81 byte~70 GBRất nhỏSuy luận sản xuất
INT40,5 byte~35 GBChấp nhận đượcThiết bị biên, triển khai cục bộ

5. Triển khai mô hình: Từ phòng thí nghiệm đến môi trường sản xuất

Mô hình đã được huấn luyện, đã được lượng tử hóa nén lại, bước cuối cùng là triển khai nó thành dịch vụ có thể gọi được. Triển khai mô hình không chỉ là "cho mô hình chạy lên", mà còn liên quan đến các vấn đề kỹ thuật như xử lý đồng thời, cân bằng tải, kiểm soát chi phí.

模型服务架构演示

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

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

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

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

Ba phương án triển khai chính

  1. Nhà cung cấp API: Sử dụng trực tiếp API của các nhà cung cấp như OpenAI, Anthropic. Không cần vận hành, trả phí theo token, phù hợp cho kiểm thử nhanh và quy mô vừa và nhỏ.
  2. Dịch vụ suy luận tự lưu trữ: Dùng các framework như vLLM, TGI để triển khai trên máy chủ GPU riêng. Chi phí có thể kiểm soát, dữ liệu không rời khỏi miền, phù hợp cho tình huống có yêu cầu bảo mật hoặc khối lượng gọi lớn.
  3. Suy luận Serverless: Sử dụng các nền tảng như AWS SageMaker, Replicate, trả phí theo yêu cầu, tự động mở rộng và thu hẹp. Phù hợp cho tình huống lưu lượng biến động lớn.
Phương án triển khaiMô hình chi phíĐộ trễĐộ phức tạp vận hànhTình huống áp dụng
Nhà cung cấp APITính phí theo tokenTrung bìnhKhôngNguyên mẫu nhanh, quy mô vừa và nhỏ
vLLM tự triển khaiPhí thuê GPUThấpCaoQuy mô lớn, nhạy cảm về bảo mật
ServerlessTính phí theo yêu cầuKhởi động lạnh cao hơnThấpLưu lượng biến động lớn
Triển khai biênĐầu tư phần cứng một lầnCực thấpTrung bìnhTình huống ngoại tuyến, IoT

Tổng kết

Tinh chỉnh và triển khai mô hình là khâu then chốt để biến mô hình lớn từ "công cụ đa năng" thành "trợ lý chuyên nghiệp". Từ chuẩn bị dữ liệu đến triển khai mô hình, mỗi bước đều cần tư duy và thực hành kỹ thuật.

Ôn lại các điểm chính của chương này:

  1. Tinh chỉnh là đào tạo trước khi vào việc: Giúp mô hình đa năng học kiến thức và mẫu hành vi của lĩnh vực cụ thể
  2. Chất lượng dữ liệu quyết định giới hạn trên: 100 mẫu dữ liệu chất lượng cao tốt hơn 10.000 mẫu dữ liệu chất lượng thấp
  3. LoRA là vua hiệu quả: Dùng chưa đến 1% tham số đạt hiệu quả gần tinh chỉnh toàn phần
  4. Lượng tử hóa là vũ khí triển khai: Lượng tử hóa INT4 giúp mô hình 70B chạy được trên một card đơn
  5. Phương án triển khai tùy theo hoàn cảnh: Kiểm thử nhanh dùng API, quy mô lớn dùng tự triển khai, biến động lớn dùng Serverless

Đọc thêm