Hồ sơ điều tra cho endpoint LLM
Triển khai LLM không chỉ là nhìn GPU và latency. Playbook này giúp team builder quyết định cần đo gì trước khi endpoint bắt đầu nói sai rất tự tin.
Bụi WireCó một cảnh mình thấy hơi quen ở team làm AI: endpoint vừa lên production, dashboard xanh mướt, GPU còn thở được, latency nhìn không quá xấu. Cả nhóm thở phào. Rồi sáng thứ Hai, sales báo chatbot trả lời sai policy hoàn tiền cho khách VIP.
Không có crash. Không có error 500. Không có alarm đỏ. Chỉ có một câu trả lời sai, trôi qua hệ thống như dấu chân nhẹ trên nền nhà mới lau.
Đây là tín hiệu thị trường đáng để ý: các cloud provider đang bắt đầu nói nhiều hơn về LLM observability — quan sát hệ thống LLM không chỉ ở hạ tầng, mà cả chất lượng câu trả lời. AWS viết khá rõ về hướng này với SageMaker AI Inference: theo dõi GPU utilization, latency, token usage là chưa đủ; phải thêm quality monitoring để phát hiện drift, degradation, compliance issue.
Luận điểm của mình: khi triển khai LLM, dashboard hạ tầng chỉ cho bạn biết “máy còn chạy”; nó không cho biết “model còn đáng tin”. Sau bài này, bạn nên đổi cách nghĩ từ “monitor endpoint” sang “lập hồ sơ điều tra cho từng loại lỗi production”.
Tín hiệu lạ: observability đang chuyển từ SRE sang AI governance
Trước đây, khi deploy backend, bạn nhìn mấy thứ kinh điển: latency, throughput, error rate, CPU, memory. Với LLM inference, nhóm chỉ số đó vẫn cần, nhưng không còn đủ.
Vì sao? LLM không trả về output deterministic — tức không phải cùng input lúc nào cũng ra cùng output theo kiểu hàm truyền thống. Nó sinh câu chữ tự do, có thể đúng, gần đúng, sai nhẹ, sai nặng, hoặc sai nhưng nghe rất thuyết phục.
AWS tách bài toán thành hai lớp:
- Quantity monitoring: theo dõi vận hành endpoint — request throughput, latency, lỗi, GPU memory, GPU utilization, token consumption.
- Quality monitoring: theo dõi chất lượng output — độ chính xác, tính nhất quán, compliance, dấu hiệu model drift.
Điểm đáng chú ý không nằm ở việc SageMaker có thêm vài dashboard. Tín hiệu thị trường là: nhà cung cấp hạ tầng đang phải bán thêm niềm tin vận hành, không chỉ bán compute. Khi LLM đi vào production, câu hỏi của khách hàng không còn là “chạy được không?” mà là “khi nó bắt đầu lệch, tôi biết bằng cách nào?”.
Ai hưởng lợi? Cloud platform, tool observability, team MLOps. Ai bị ép đổi cách làm? Các team builder vẫn đang deploy LLM như một REST API bình thường.
Checklist hiện trường: đừng đo mọi thứ ngay từ ngày đầu
Nói thẳng ra thì, nhiều team thất bại không phải vì thiếu metric, mà vì metric nào cũng đo nhưng không biết quyết định gì từ nó.
Nếu bạn là tech lead cho một team Việt Nam khoảng vài người, đang chuẩn bị đưa LLM endpoint lên staging hoặc production, mình sẽ bắt đầu bằng checklist này:
Nhóm hạ tầng cần có trước:
p95 latency: độ trễ ở nhóm request chậm, vì trung bình thường che giấu ca xấu.error rate: tỷ lệ lỗi endpoint, bao gồm timeout và lỗi tool gọi phía sau.request throughput: số request xử lý theo thời gian, để biết tải thật.GPU utilization: mức dùng GPU, giúp phát hiện endpoint quá dư hoặc quá nghẽn.GPU memory pressure: áp lực bộ nhớ GPU, thường là manh mối trước khi latency nhảy vọt.token consumption: lượng token vào/ra, vì chi phí và latency thường đi cùng token.
Nhóm chất lượng nên thêm ngay sau đó:
sampling: lấy mẫu một phần response để đánh giá, thay vì đọc thủ công mọi thứ.evaluation: bộ chấm chất lượng có tiêu chí rõ, có thể là rule, human review, hoặc model-as-judge nếu biết kiểm soát rủi ro.drift: sự lệch phân phối input hoặc output theo thời gian; ví dụ khách bắt đầu hỏi loại câu hỏi mới mà test set cũ chưa có.compliance check: kiểm tra câu trả lời có vi phạm policy, pháp lý, hoặc guideline nội bộ không.
Ví dụ cụ thể: giả sử team bạn triển khai chatbot hỗ trợ khách hàng cho một sàn thương mại điện tử nhỏ. Endpoint chạy ổn, nhưng sau chiến dịch sale, khách hỏi nhiều về đổi trả theo combo. Nếu bạn chỉ nhìn latency, mọi thứ vẫn đẹp. Nếu có sampling và evaluation theo nhóm intent “đổi trả”, bạn sẽ thấy model bắt đầu trả lời lẫn giữa chính sách hàng thường và hàng khuyến mãi.
Đó là dấu vân tay của lỗi chất lượng, không phải lỗi hạ tầng.
Playbook một buổi: dựng lớp quan sát tối thiểu
Mục tiêu ở đây không phải xây observability platform hoành tráng. Mục tiêu là có đủ tín hiệu để trả lời ba câu hỏi:
- Endpoint có đang nghẽn không?
- Chi phí có đang trôi khỏi dự kiến không?
- Output có đang xuống chất lượng không?
Bước 1: Gắn request ID xuyên suốt
Mỗi request cần có một request_id đi từ API gateway, inference endpoint, tool gọi ngoài, đến log response. Không có request ID thì lúc sự cố xảy ra, bạn giống người đi tìm manh mối trong căn phòng đã bị dọn sạch.
Log tối thiểu:
{
"request_id": "req_abc123",
"user_segment": "paid_customer",
"model": "your-llm-name",
"input_tokens": 842,
"output_tokens": 311,
"latency_ms": 1840,
"status": "success",
"route": "refund_policy"
}
Không cần log toàn bộ nội dung nhạy cảm. Với production thật, hãy mask PII — thông tin định danh cá nhân — trước khi lưu.
Bước 2: Tách dashboard quantity và quality
Đừng nhét mọi thứ vào một màn hình. Dashboard hạ tầng phục vụ SRE: latency, error, GPU, throughput. Dashboard chất lượng phục vụ product/AI engineer: score theo intent, tỷ lệ fail policy, nhóm câu hỏi bị giảm chất lượng.
Quy tắc đơn giản: metric nào dẫn tới hành động giống nhau thì đặt cùng nhau.
- Latency tăng + GPU memory căng → xem batching, model size, concurrency.
- Token output tăng bất thường → xem prompt, max tokens, user behavior.
- Quality score giảm ở một intent → xem dữ liệu, prompt, retrieval, policy.
Bước 3: Sampling có chủ đích, không random cho vui
Random sampling tốt để nhìn tổng quan, nhưng LLM production cần sampling theo rủi ro.
Ưu tiên lấy mẫu các nhóm:
- request có output quá dài;
- request latency bất thường;
- request thuộc intent nhạy cảm như giá, pháp lý, y tế, tài chính;
- request có user feedback xấu;
- request vừa qua phiên bản prompt/model mới.
Nếu nguồn lực ít, bắt đầu bằng 2 nhóm: intent nhạy cảm và request có feedback xấu. Đừng cố chấm mọi thứ rồi kiệt sức sau một tuần.
Bước 4: Đặt threshold theo hành động, không theo cảm giác
Threshold — ngưỡng cảnh báo — chỉ có giá trị nếu đi kèm hành động. “Quality giảm” là câu mơ hồ. “Intent refund có tỷ lệ fail policy tăng rõ rệt sau deploy prompt mới, rollback prompt” thì dùng được.
Một khung đơn giản:
| Tín hiệu | Câu hỏi cần trả lời | Hành động có thể làm |
|---|---|---|
| Latency tăng | Nghẽn ở compute hay token? | Giảm max tokens, chỉnh concurrency, scale endpoint |
| GPU memory căng | Model/config có quá nặng? | Kiểm tra batch size, quantization, instance type |
| Output dài bất thường | Prompt có đang mở van quá rộng? | Siết instruction, giới hạn format |
| Quality giảm theo intent | Lỗi do dữ liệu, prompt hay model? | Review mẫu, cập nhật eval set, rollback nếu cần |
| Compliance fail | Có rủi ro vận hành không? | Chặn response, escalation, sửa policy guardrail |
Hai bẫy builder hay dính
Bẫy thứ nhất: đồng nhất healthy endpoint với good answer. Một endpoint có thể xanh toàn bộ mà vẫn trả lời sai. Đây là kiểu lỗi khó chịu nhất vì dashboard truyền thống không la lên.
Bẫy thứ hai: dùng model-as-judge như phán quyết cuối cùng. Model-as-judge — dùng một model khác để chấm output — có ích khi cần scale evaluation, nhưng nó cũng có bias và blind spot. Với các case nhạy cảm, hãy giữ một phần human review hoặc rule-based check. Không phải vì con người hoàn hảo, mà vì bạn cần một lớp đối chứng khác.
Còn một bẫy nhỏ nhưng đau ví: chỉ nhìn request count mà quên token consumption. Hai request nhìn như nhau ở API level có thể khác nhau rất xa về chi phí nếu một request kéo context dài và sinh output lê thê.
Nếu là mình, mình sẽ triển khai theo thứ tự này
Với team đang build thật, mình không khuyên nhảy ngay vào full observability stack. Thứ tự thực dụng hơn:
- Tuần đầu: log request ID, latency, error, input/output tokens, model version, prompt version.
- Tuần hai: dashboard hạ tầng riêng, alert cho latency/error/GPU memory/token spike.
- Tuần ba: sampling theo intent rủi ro và feedback xấu.
- Tuần bốn: evaluation set nhỏ nhưng sống, cập nhật từ lỗi thật ngoài production.
- Sau đó: so sánh model/prompt/config dựa trên tam giác cost, latency, quality.
Điểm cần nghĩ khác sau bài này: observability cho LLM không phải camera an ninh gắn ở cửa server; nó là hồ sơ điều tra nối hạ tầng, chi phí và chất lượng câu trả lời vào cùng một vụ án.
Deploy LLM mà chỉ nhìn GPU thì giống điều tra hiện trường nhưng chỉ đếm số bóng đèn còn sáng — có ích, nhưng thủ phạm thường để lại dấu ở chỗ khác.
---
Bụi Wire — nghiện đọc release notes lúc 2 giờ sáng