Mục lục
Trả lời ngắn: Versioning trong AI system là ghi rõ bản prompt, model, tool, retrieval, evaluator và workflow đã tạo ra output. Trong case này, mỗi thay đổi đi vào một version bundle có compatibility, baseline, canary và rollback. Nhờ vậy team biết output đến từ đâu và không gọi một config mutable là “production truth”.
Đọc xong, bạn sẽ hiểu:
- Vì sao chỉ ghi model name chưa đủ để tái tạo output.
- Cách gom prompt, model, tool, retrieval và evaluator thành bundle.
- Cách đọc compatibility matrix, baseline, canary và change log.
- Khi nào phải block vì bundle trộn version hoặc rollback không rõ.
Lưu ý giáo dục: Ví dụ dùng support request và version ID giả. Không nhập prompt riêng, secret, production token hoặc customer data vào bài. Canary và rollback chỉ là mô hình học tập, không phải lệnh vận hành thật.
1. Versioning trong AI system gồm những lớp nào?
Một support copilot đang route request tới queue. Bản v1 dùng prompt P-01, model M-A, retrieval R-01, tool schema T-01 và evaluator E-01. Team đổi prompt để xử lý mixed-language tốt hơn, đồng thời nhà cung cấp đổi model. Nếu chỉ ghi “model mới” mà không ghi prompt, policy, tool và test set, output sau đó không thể giải thích dễ dàng.
Version là bản định danh của artifact hoặc workflow tại thời điểm cụ thể. Version bundle là bộ prompt, model, tool, retrieval và evaluator đi cùng nhau. Bundle giả có thể là:
| Lớp | v1 | v2 candidate | Câu hỏi |
|---|---|---|---|
| Prompt | P-01 | P-02 | Rule mới có test không? |
| Model | M-A | M-B | Output/schema có đổi không? |
| Retrieval | R-01 | R-02 | Source/policy có cùng date không? |
| Tool | T-01 | T-01 | Contract còn tương thích? |
| Evaluator | E-01 | E-02 | Baseline có giữ không? |
| Workflow | W-01 | W-02 | State/owner có đổi không? |
Hình 1 — Ghi bundle giúp team capture đúng tổ hợp đã tạo output, không chỉ nhớ model name.
Versioning không phải đặt số đẹp. Nó tạo khả năng audit, so sánh, reproduce, canary và rollback. Nếu prompt sửa trực tiếp trong dashboard không có ID, một reviewer không biết patch nào gây regression.
2. Version contract và compatibility matrix
Immutable artifact là artifact không bị sửa ngầm sau khi ghi version. Prompt v2 có hash giả, owner, created time, input schema, expected output schema và change reason. Model vB có model ID, capability note, limit, safety config và evaluation result. Tool T-02 nếu đổi field category thành queue thì prompt, parser và test phải biết.
Compatibility là mức các thành phần làm việc đúng với nhau. Matrix đơn giản:
| Pair | Compatible? | Evidence |
|---|---|---|
| P-02 + M-B | Cần kiểm | Mixed-language slice, schema test |
| M-B + T-01 | Pass giả định | Tool-call contract unchanged |
| R-02 + P-02 | Cần review | Policy version/date mapping |
| E-02 + W-02 | Pass | Eval schema và state names khớp |
| W-02 + rollback W-01 | Block nếu thiếu | Runbook và artifact tồn tại |
Nếu một thành phần không compatible, không “coerce” im lặng để pipeline xanh. Ghi BLOCKED, giữ candidate, mở issue migration và nhờ owner review. Đây là lý do bundle phải capture cả schema, policy và evaluator.
Version contract cũng cần quy định lifecycle. Artifact candidate có thể ở DRAFT, TESTED, CANARY, APPROVED, RETIRED; mỗi chuyển state có timestamp, owner và evidence. Không xóa version cũ chỉ vì registry đầy, vì incident có thể cần truy lại. Nếu policy hoặc tool có ngày hết hiệu lực, bundle phải chặn dùng sau ngày đó hoặc yêu cầu re-approval. Một bản “latest” không có ID cố định là convenience cho người dùng nhưng là rủi ro cho audit.
Hình 2 — Compatibility là câu hỏi có evidence; không đoán rằng hai version sẽ tự hiểu nhau.
3. Change log, canary và experiment
Baseline là bản chuẩn dùng để so thay đổi mới. Trước khi đổi P-02, chạy cùng evaluation set với W-01 và ghi category accuracy, high-impact handoff, unsupported claim, latency và tool error. Thay vì đổi prompt, model, retrieval cùng lúc, change log nên nói biến nào đổi, biến nào giữ nguyên, giả thuyết nào được kiểm.
Canary là phát hành thử cho phạm vi nhỏ trước khi mở rộng. Case giả có cohort clear tickets và mixed-language tickets. P-02 candidate chạy 5% fixture traffic; gate theo từng slice, không chỉ average:
- clear category không giảm dưới baseline;
- mixed-language correction không tăng quá mốc giả lập;
- high-impact vẫn handoff 100%;
- tool schema không fail;
- latency/cost không vượt budget thử nghiệm.
Trace cần ghi input hash giả, bundle ID, evaluator version, output state, tool result và reviewer decision. Không log raw PII chỉ để dễ debug. Reproducibility là khả năng tái tạo output từ cùng input và bundle; nếu random seed, retrieval index hoặc time-dependent policy không được ghi, claim “reproduce” chưa đủ evidence.
Experiment note nên tách observation khỏi interpretation: “slice mixed-language giảm 8 điểm” là observation; “prompt mới gây giảm” là hypothesis cần kiểm. Giữ một holdout không được dùng để chỉnh candidate, và ghi khi nào metric mới đủ lớn để hành động. Nếu canary có ít sample, kết luận phù hợp có thể là “chưa đủ evidence”, không phải pass hoặc fail tuyệt đối.
Hình 3 — Change log tốt nói rõ biến đã đổi, baseline, cohort, metric và điều kiện dừng.
4. Rollback, reproducibility và release gate
Release gate hỏi bốn điều: candidate có tốt hơn hoặc an toàn hơn baseline không, có slice nào tụt không, có reproduce được failure không, và rollback có artifact thật không? Rollback là quay về bundle trước khi bản mới gây lỗi; nó không chỉ là “đổi model về tên cũ”. Cần prompt P-01, model M-A, retrieval R-01, tool T-01, evaluator E-01, config và runbook.
Trong ca trực, một bundle ID cũng giúp người nhận incident hỏi đúng câu: output này sinh ra từ artifact nào, metric nào đã được duyệt, và thao tác quay lui đã được thử ở môi trường nào? Nếu ba câu trả lời khác nhau giữa dashboard, log và registry, release gate chưa đạt.
Reviewer kiểm change log, compatibility, evaluation report, canary decision, open risk, owner và approval. Model provider có thể thay behavior dù ID không đổi; đó là drift cần monitor và re-evaluate. OpenAI Agents guide mô tả tools, guardrails, state và tracing như các phần của workflow; Azure Well-Architected AI architecture đặt reliability, security và operational excellence trong design. OpenAI Agents guide và Azure AI architecture patterns
Review record nên lưu artifact ID, report version, decision, open question và người duyệt. Một candidate có thể có điểm cao nhưng vẫn bị giữ vì privacy, schema hoặc rollback chưa đạt. Đừng dùng “v2 mới hơn” làm lý do duy nhất để approve; version mới chỉ là lời hứa rằng team biết nó khác gì và đã kiểm điều gì.
5. Sai lầm, giới hạn và fallback
- Mutable prompt: sửa trực tiếp, không có version. Fallback là immutable artifact và change log.
- Hidden config: temperature, tool policy hoặc retrieval filter không được capture. Fallback là bundle manifest.
- Mixed bundle: prompt v2 gọi schema tool v1. Fallback là compatibility gate và block.
- No baseline: candidate “trông tốt” nhưng không có before/after. Fallback là chạy baseline cùng set.
- Metric gaming: đổi eval set để candidate pass. Fallback là frozen set và independent reviewer.
- Model drift: cùng ID nhưng behavior đổi theo provider. Fallback là canary, monitor và review trigger.
- Stale rollback: rollback artifact không còn hoặc policy đã hết hiệu lực. Fallback là kiểm định kỳ và giữ known-good bundle.
Versioning cũng có chi phí: registry, storage, trace, review và migration. Không cần version mọi typo như một release lớn, nhưng mọi thay đổi có thể đổi behavior, permission, schema, quality hoặc risk cần traceable ID. Nếu chưa biết bundle nào tạo output, trạng thái đúng là NOT_REPRODUCIBLE, không phải “probably v2”.
6. Practice Bridge 15 phút
Mở notes hoặc Google Sheets miễn phí, tạo cột bundle_id, prompt, model, retrieval, tool, eval, change, baseline, canary, rollback, owner, decision. Dùng request giả; không gọi model thật và không dán prompt riêng.
Mẫu đối chiếu đã điền
| Bundle | Change/evidence | Risk và decision |
|---|---|---|
| V-01 | P-01/M-A/R-01/T-01/E-01 baseline | Known-good, giữ rollback |
| V-02 | P-02 đổi mixed-language, cùng model | Canary nếu slice pass |
| V-03 | M-B đổi tool schema | BLOCKED, compatibility review |
| V-04 | Không biết prompt/config đã chạy | NOT_REPRODUCIBLE, không release |
Sau 15 phút, nói được output nào thuộc bundle nào, baseline ở đâu và ai ký canary. Nếu rollback chỉ là một câu “quay lại bản cũ”, ghi field còn thiếu rồi dừng.
7. Tổng kết: version là bằng chứng
a. Năm ý chính
- AI output phụ thuộc nhiều lớp: prompt, model, tool, retrieval, evaluator, policy và workflow.
- Version bundle và immutable artifact giúp audit, reproduce, compare và rollback.
- Compatibility matrix phải kiểm schema, policy/date, evaluator và state trước khi chạy canary.
- Canary cần baseline, slice metrics, trace, owner và stop gate; average không đủ.
- Không reproduce được, bundle trộn version hoặc rollback thiếu artifact là lý do block release.
b. Câu hỏi tự kiểm tra
- Vì sao model ID một mình chưa đủ để reproduce output?
- Compatibility matrix giúp chặn lỗi nào?
- Canary nên so với baseline và slice nào?
- Khi không biết bundle đã tạo output, trạng thái nên ghi gì?
c. Gợi ý đáp án
Xem gợi ý câu 1
Prompt, retrieval, tool schema, evaluator, policy và config cũng đổi behavior; cần capture cả bundle. Xem lại mục 1.
Xem gợi ý câu 2
Nó phát hiện thành phần không khớp schema, policy, state hoặc rollback trước khi đưa candidate vào flow. Xem lại mục 2.
Xem gợi ý câu 3
So clear, mixed-language, high-impact, tool error, latency và cost với baseline; không chỉ nhìn average. Xem lại mục 3 và mục 4.
Xem gợi ý câu 4
Ghi `NOT_REPRODUCIBLE`, tìm trace/bundle owner và chưa release. Xem lại mục 4 và mục 5.
d. Thuật ngữ cần nhớ
| Thuật ngữ | Giải thích ngắn |
|---|---|
| Version | Bản định danh của artifact hoặc workflow tại thời điểm cụ thể. |
| Version bundle | Bộ prompt, model, tool, retrieval và evaluator đi cùng nhau. |
| Compatibility | Mức các thành phần có thể làm việc đúng với nhau. |
| Immutable artifact | Artifact không bị sửa ngầm sau khi ghi version. |
| Baseline | Bản chuẩn dùng để so thay đổi mới. |
| Canary | Phát hành thử cho phạm vi nhỏ trước khi mở rộng. |
| Reproducibility | Khả năng tái tạo output từ cùng input và bundle. |
| Rollback | Quay về bundle trước khi bản mới gây lỗi. |
| Drift | Hành vi/data/context thay đổi theo thời gian. |
e. Nguồn tham khảo
- OpenAI Agents guide — tools, guardrails, state và tracing.
- Azure AI architecture patterns — reliability, security và operations.
- Azure RAG evaluation — baseline, evaluation và failure slices.
- NIST AI RMF Core — lifecycle risk management.
Bài trước là Dataset và Evaluation Set Management #20. Bài tiếp theo là AI Observability và Incident Response #22.
Lưu ý giáo dục: Chỉ canary version bundle có baseline, compatibility, owner và rollback artifact. Không dùng prompt mutable hoặc config không truy vết để ra quyết định production.
Bài tiếp theo