AI Engineering · Chip Huyen · Chương 3AI Engineering · Chip Huyen · Chương 3AI Engineering · Chip Huyen · Chapter 3
Chương 3 · Phương pháp luận đánh giáChương 3 · Làm sao biết máy trả lời đúngChapter 3 · Evaluation Methodology

Đo một câu trả lời không có đáp án đúng duy nhấtChấm bài khi không có đáp án mẫuMeasuring answers with no single right answer

Chip Huyen mở chương bằng một danh sách tai nạn: một người đàn ông tự tử sau khi được một chatbot khuyến khích, luật sư nộp bằng chứng giả do AI bịa ra, Air Canada bị buộc bồi thường vì chatbot của hãng cung cấp thông tin sai cho hành khách. Với bà, các sự cố ấy có chung một gốc — không có cách kiểm soát chất lượng đầu ra, rủi ro của AI có thể lớn hơn lợi ích.1 Chương này là kho phương pháp: bốn chỉ số ngôn ngữ, hai lối đánh giá chính xác, AI làm giám khảo, và xếp hạng bằng so sánh.

Máy trả lời rất trôi chảy, nhưng trôi chảy không có nghĩa là đúng. Đã có người tin lời máy rồi gặp chuyện tệ: luật sư nộp giấy tờ do máy bịa, một hãng hàng không phải đền tiền vì máy nói sai. Vậy làm sao biết máy đúng hay sai? Nhớ nhé: chương này dạy các cách chấm điểm cho máy.

Chip Huyen opens the chapter with a list of failures: a man took his own life after being encouraged by a chatbot, lawyers filed false evidence hallucinated by AI, Air Canada was ordered to pay damages when its chatbot gave a passenger false information. For her they share one root cause — without a way to quality-control AI outputs, the risk of AI may outweigh its benefits.1 This chapter is the toolbox: four language-modelling metrics, two families of exact evaluation, AI as a judge, and ranking by comparison.

∴
Luận đề của chương Ý chính của chương The chapter's thesis

Khi các đội bắt đầu đưa AI vào sản phẩm, nhiều người nhanh chóng nhận ra rào cản lớn nhất không phải là mô hình mà là đánh giá — với một số ứng dụng, riêng việc nghĩ ra cách đánh giá đã chiếm phần lớn công sức phát triển.1 Vì đánh giá khó, nhiều người đành tin vào lời truyền miệng hoặc “nhìn qua thấy ổn”, và chính điều đó lại làm rủi ro tăng lên. Chương 3 vì thế không dạy một thước đo duy nhất; nó dạy cách hiểu từng thước đo đo được gì và bỏ sót gì.

Phần khó nhất khi làm ứng dụng AI không phải là chọn máy, mà là biết máy làm tốt tới đâu. Nhiều người lười nên chỉ “nhìn qua thấy ổn” là xong — và thế là hỏng. Nhớ nhé: đo được thì mới sửa được.

As teams rush to adopt AI, many quickly realise the biggest hurdle is not the model but evaluation — for some applications, figuring out evaluation can take up the majority of the development effort.1 Because it is hard, many settle for word of mouth or for eyeballing results, which only adds risk. Chapter 3 therefore does not sell one metric; it teaches what each metric measures and what it quietly misses.

Mục 01 · Thách thứcMục 01 · Vì sao khóPart 01 · Challenges

Vì sao mô hình nền tảng khó đánh giáVì sao chấm điểm máy lại khóWhy foundation models are hard to evaluate

Đánh giá mô hình học máy vốn đã khó; với mô hình nền tảng nó còn khó hơn. Huyen liệt kê một chuỗi lý do xếp chồng lên nhau: mô hình càng thông minh càng khó chấm, đầu ra mở nên không có danh sách đáp án đúng, mô hình là hộp đen, các bộ đo công khai bão hòa quá nhanh, và phạm vi đánh giá đã rộng ra tới mức phải đi khám phá những việc mô hình có thể làm mà ta chưa biết.1

Chấm bài cho máy khó vì bốn lẽ: máy giỏi quá thì người chấm phải giỏi hơn; câu hỏi mở thì không có một đáp án đúng; ta không được nhìn vào bên trong máy; và các bài kiểm tra cũ thì máy làm hết điểm tuyệt đối rất nhanh. Nhớ nhé: đề thi nào máy cũng đạt điểm tối đa thì đề ấy hết dùng được.

Evaluating ML models has always been hard; foundation models make it harder still. Huyen stacks up the reasons: the smarter a model gets the harder it is to judge, open-ended outputs have no enumerable ground truth, models are black boxes, public benchmarks saturate fast, and the scope of evaluation has widened to include discovering capabilities nobody has catalogued yet.1

Một bộ đo trở nên bão hòa với một mô hình ngay khi mô hình ấy đạt điểm tuyệt đối — và với mô hình nền tảng, điều đó đang xảy ra rất nhanh.

Khi máy làm đúng hết cả đề thi, đề thi ấy không còn cho ta biết gì nữa. Người ta phải ra đề mới, khó hơn.

A benchmark becomes saturated for a model once the model achieves the perfect score — and with foundation models, benchmarks are saturating fast.

Điều đáng chú ý trong danh sách dưới đây không phải từng bộ đo, mà là nhịp thay thế: khoảng cách giữa một bộ đo và bản kế nhiệm của nó ngắn dần theo thời gian. Bộ đo là thước; khi thước ngắn hơn vật cần đo, ta không đo được nữa.

GLUE (2018) Bão hòa chỉ trong một năm → SuperGLUE (2019)1 Ra năm 2018, một năm sau máy đã làm hết điểm. Saturated in just a year → SuperGLUE (2019)1
NaturalInstructions (2021) Được thay bằng Super-NaturalInstructions (2022)1 Ra 2021, năm sau đã phải làm đề mới. Replaced by Super-NaturalInstructions (2022)1
MMLU (2020) Bộ đo mạnh mà nhiều mô hình nền tảng đời đầu dựa vào, phần lớn đã được thay bằng MMLU-Pro (2024)1 Đề thi nổi tiếng nhất cũng phải nâng cấp sau bốn năm. A strong benchmark many early foundation models relied on, largely replaced by MMLU-Pro (2024)1
  1. 01
    The intelligence gap

    Càng thông minh càng khó chấmMáy giỏi quá thì ai chấm?The smarter the model, the harder to judge

    Hầu hết mọi người đều nhận ra lời giải toán sai của một học sinh lớp một; rất ít người làm được điều đó với một lời giải toán trình độ tiến sĩ. Một bản tóm tắt sách nhảm thì dễ thấy, nhưng một bản tóm tắt mạch lạc mà sai thì phải đọc cả cuốn sách mới biết. Hệ quả: với tác vụ phức tạp, đánh giá tốn thời gian hơn rất nhiều — không còn chấm theo “nghe có xuôi tai không”, mà phải kiểm chứng sự thật, lập luận, và cần cả chuyên môn ngành.1

    Bạn dễ biết em bé lớp một làm sai phép cộng. Nhưng nếu ai đó giải một bài toán rất cao siêu, bạn không biết đúng hay sai, vì chính bạn chưa học tới. Máy bây giờ giống người giải bài cao siêu ấy. Nhớ nhé: nghe xuôi tai không có nghĩa là đúng.

    Most people can tell if a first grader's maths is wrong; few can do the same for a PhD-level solution. Gibberish summaries are easy to spot; a coherent but wrong one may require reading the book first. The corollary: for sophisticated tasks evaluation becomes far more time-consuming — you can no longer judge a response by how it sounds, you must fact-check, reason, and bring domain expertise.1

    Thấy ở đâuWhere you see it Ở mọi đội sản phẩm phải thuê chuyên gia y tế, luật hay tài chính chỉ để đọc lại đầu ra của mô hình — chi phí đánh giá khi ấy là chi phí chuyên môn, không phải chi phí tính toán. Ở bệnh viện hay tòa án: phải nhờ đúng người trong nghề đọc lại câu trả lời của máy. In every product team that has to hire clinicians, lawyers or analysts just to read model outputs — evaluation cost becomes an expertise cost, not a compute cost.

    Chú thích của tác giả

    Huyen dẫn phản ứng của nhà toán học đoạt huy chương Fields Terence Tao khi GPT-o1 ra mắt tháng 9 năm 2024: làm việc với mô hình này giống làm việc với “một nghiên cứu sinh tầm thường, nhưng không hoàn toàn bất tài”. Nhiều người đùa rằng nếu đã phải cần tới những bộ óc sáng nhất để đánh giá AI, thì sẽ chẳng còn ai đủ tư cách đánh giá các mô hình sau này.1

    Hệ quả thiết kế

    Vì thế Huyen nhấn mạnh đánh giá phải đặt trong bối cảnh cả hệ thống chứ không tách rời: trước hết xác định nơi hệ thống dễ hỏng, rồi thiết kế đánh giá quanh đó — đôi khi phải thiết kế lại chính hệ thống để nhìn thấy được lỗi của nó.1

  2. 02
    Open-endedness

    Đầu ra mở phá vỡ lối đo theo đáp ánKhông có một đáp án đúngOpen-endedness breaks ground-truth evaluation

    Với học máy truyền thống, phần lớn tác vụ là đóng: một mô hình phân loại chỉ có thể trả về một trong các nhãn định trước, nên chỉ cần so nhãn dự đoán với nhãn đúng. Với tác vụ mở, một đầu vào có vô số câu trả lời đúng khả dĩ, và không thể liệt kê đầy đủ tập ấy để so sánh.1

    Nếu đề bài là “chọn A, B hay C” thì chấm dễ. Nhưng nếu đề bài là “hãy kể một câu chuyện”, có hàng nghìn câu chuyện đều hay cả — không ai chép ra hết được. Nhớ nhé: câu hỏi mở thì không có danh sách đáp án.

    In classical ML most tasks are close-ended: a classifier can only output one of the expected categories, so you compare its output to the expected one. For an open-ended task a single input has so many possible correct responses that curating a comprehensive list to compare against is impossible.1

    Thấy ở đâuWhere you see it Ở bản dịch máy: “Comment ça va?” có thể là “How are you?”, “How is everything?”, “How are you doing?” — và một bản dịch đúng thứ tư vẫn sẽ bị chấm sai nếu không nằm trong tập tham chiếu.1 Một câu tiếng Pháp có thể dịch ra nhiều câu tiếng Anh đều đúng cả. In machine translation: “Comment ça va?” maps to “How are you?”, “How is everything?”, “How are you doing?” — and a fourth correct translation still scores as wrong if it is absent from the reference set.1
  3. 03
    Black boxes

    Hộp đen: chỉ còn cách nhìn đầu raKhông nhìn được vào bên trongBlack boxes: outputs are all you get

    Phần lớn mô hình nền tảng bị đối xử như hộp đen, hoặc vì nhà cung cấp chọn không công bố chi tiết, hoặc vì người làm ứng dụng không đủ chuyên môn để hiểu chúng. Kiến trúc, dữ liệu huấn luyện và quy trình huấn luyện vốn nói lên rất nhiều về điểm mạnh điểm yếu của một mô hình; thiếu chúng, ta chỉ còn cách đánh giá qua quan sát đầu ra.1

    Ta không được mở nắp máy ra xem nó học từ sách nào. Ta chỉ được nghe nó trả lời rồi đoán. Nhớ nhé: không biết máy học gì thì phải kiểm tra kỹ hơn, chứ không phải tin nhiều hơn.

    Most foundation models are treated as black boxes, either because providers choose not to expose details or because application developers lack the expertise to read them. Architecture, training data and training process would reveal a lot about a model's strengths and weaknesses; without them you can only evaluate by observing outputs.1

    Thấy ở đâuWhere you see it Ở chính chỉ số perplexity: Huyen ghi nhận nhiều công ty đã ngừng công bố perplexity của mô hình, theo xu hướng ngày càng kín tiếng về mô hình của họ.1 Nhiều hãng giờ không còn công bố điểm số của máy mình nữa. In the metrics themselves: Huyen notes that many companies have stopped reporting their models' perplexity, following the trend of being increasingly secretive about their models.1
  4. 04
    Underinvestment in evaluation

    Quan tâm thì tăng, đầu tư thì tụt lạiAi cũng nói, ít ai làmInterest rises, investment lags

    Tin tốt: số bài báo về đánh giá mô hình ngôn ngữ tăng theo cấp số nhân trong nửa đầu năm 2023, từ 2 bài mỗi tháng lên gần 35 bài mỗi tháng.2 Trong phân tích riêng của Huyen trên 1.000 kho mã AI nhiều sao nhất GitHub, có hơn 50 kho dành riêng cho đánh giá tính tới tháng 5 năm 2024. Tin xấu: con số ấy vẫn nhỏ so với công cụ cho huấn luyện và điều phối, và nhóm Balduzzi cùng cộng sự ở DeepMind từng nhận xét rằng “việc phát triển các phép đánh giá nhận được rất ít sự chú ý có hệ thống so với việc phát triển thuật toán”.1

    Số người viết bài về cách chấm điểm AI tăng rất nhanh, nhưng số công cụ chấm điểm thật sự dùng được thì vẫn ít. Nhớ nhé: nói về việc kiểm tra dễ hơn là làm ra dụng cụ kiểm tra.

    The good news: published papers on LLM evaluation grew exponentially through the first half of 2023, from 2 a month to almost 35 a month.2 In Huyen's own analysis of the 1,000 most-starred AI repositories on GitHub, over 50 were dedicated to evaluation as of May 2024. The bad news: that is still small next to tooling for modelling, training and orchestration, and Balduzzi et al. at DeepMind observed that “developing evaluations has received little systematic attention compared to developing algorithms”.1

    Thấy ở đâuWhere you see it Ở câu trả lời quen thuộc khi hỏi một đội đang đánh giá ứng dụng thế nào: “bọn tôi nhìn qua kết quả thôi” — kèm một tập prompt tủ được gom tùy hứng theo kinh nghiệm cá nhân chứ không theo nhu cầu của ứng dụng.1 Nhiều đội chỉ thử vài câu quen thuộc rồi kết luận máy tốt. In the familiar answer when you ask a team how they evaluate: “we just eyeball the results” — plus a small set of go-to prompts curated ad hoc from personal experience rather than from the application's needs.1

    Lời kêu gọi chính sách

    Nhận ra sự thiếu đầu tư này, Anthropic đã kêu gọi giới hoạch định chính sách tăng tài trợ và cấp vốn nhà nước cho cả việc phát triển phương pháp đánh giá mới lẫn việc phân tích độ bền vững của các phép đánh giá hiện có.1

    Vì sao “nhìn qua” không đủ

    Huyen thừa nhận lối làm tùy hứng có thể tạm ổn lúc khởi động dự án, nhưng không đủ cho giai đoạn lặp lại và cải tiến ứng dụng — vì khi ấy ta cần biết một thay đổi làm hệ thống tốt lên hay xấu đi, và “nhìn qua” không trả lời được câu đó.1

Mục 02 · Bốn chỉ số họ hàngMục 02 · Đoán chữ kế tiếpPart 02 · Four related metrics

Entropy, cross entropy và perplexityMáy đoán chữ giỏi tới đâuEntropy, cross entropy and perplexity

Mô hình nền tảng tiến hóa lên từ mô hình ngôn ngữ, và nhiều mô hình vẫn giữ một thành phần ngôn ngữ làm lõi; với chúng, chất lượng của thành phần ấy tương quan khá tốt với hiệu năng ở tác vụ hạ nguồn.1 Bốn chỉ số — cross entropy, perplexity, bits-per-character (BPC) và bits-per-byte (BPB) — gắn chặt với nhau: biết một cái, với đủ thông tin, là suy ra ba cái còn lại.1

Mọi mô hình này đều học một trò chơi: đoán chữ tiếp theo. Đoán càng giỏi thì điểm càng tốt, và điểm đó thường cũng nói lên máy làm các việc khác giỏi tới đâu. Nhớ nhé: có bốn tên gọi khác nhau nhưng tất cả đều đang đo cùng một trò chơi ấy.

Foundation models evolved out of language models, and many still keep a language model as their main component; for those, the language model's performance correlates well with downstream performance.1 Four metrics — cross entropy, perplexity, bits-per-character (BPC) and bits-per-byte (BPB) — are closely related: know one and, given the necessary information, you can compute the other three.1

Huyen nhắc rằng mạch phát triển này bắt đầu từ Claude Shannon với bài báo năm 1951 “Prediction and Entropy of Printed English”, và các chỉ số dẫn dắt việc phát triển mô hình ngôn ngữ về cơ bản không đổi kể từ đó.13 Bà cũng lưu ý đây là mục nặng toán nhất sách, và nếu thấy rối thì cứ bỏ qua phần toán mà đọc phần diễn giải ý nghĩa.

Entropy đo lượng thông tin trung bình mà một token mang theo. Entropy càng cao, mỗi token càng chứa nhiều thông tin — và càng cần nhiều bit để biểu diễn.

Entropy là “mỗi chữ nói được bao nhiêu điều”. Chữ nói được càng nhiều thì càng khó đoán trước.

Entropy measures how much information, on average, a token carries. The higher the entropy, the more information each token carries — and the more bits are needed to represent it.

Trực giác đi kèm quan trọng không kém định nghĩa: entropy đo mức khó đoán của một ngôn ngữ. Ngôn ngữ có entropy càng thấp thì càng dễ đoán — giống như nếu bạn đoán trước được hoàn hảo điều tôi sắp nói, thì điều tôi nói chẳng mang thông tin gì mới.1

Ví dụ ô vuôngSquare example Ngôn ngữ 2 token (trên / dưới) cần 1 bit → entropy = 1. Ngôn ngữ 4 token (trên-trái, trên-phải, dưới-trái, dưới-phải) cần 2 bit → entropy = 2.1 Hai ô thì một câu hỏi có/không là đủ. Bốn ô thì phải hỏi hai lần. A 2-token language (upper / lower) needs 1 bit → entropy = 1. A 4-token language (upper-left, upper-right, lower-left, lower-right) needs 2 bits → entropy = 2.1
H(P, Q) = H(P) + DKL(P‖Q) Cross entropy của mô hình = entropy của dữ liệu + độ lệch Kullback–Leibler giữa phân phối mô hình học được (Q) và phân phối thật (P).1 Điểm của máy = độ khó vốn có của bài + phần máy học chưa tới. A model's cross entropy = the data's own entropy + the Kullback–Leibler divergence between the learned distribution (Q) and the true one (P).1
PPL(P, Q) = 2H(P, Q) Perplexity là lũy thừa của cross entropy. Cross entropy 2 bit → perplexity 4: mô hình phải chọn giữa 4 khả năng.1 Perplexity là “máy đang phân vân giữa bao nhiêu lựa chọn”. Perplexity is the exponential of cross entropy. A cross entropy of 2 bits → perplexity 4: the model must choose among 4 options.1
BPC → BPBBPC → BPB 6 bit/token, mỗi token 2 ký tự → BPC = 6/2 = 3. Nếu mỗi ký tự là 7 bit (⅞ byte) → BPB = 3 / (⅞) = 3,43 — tức nén văn bản gốc xuống dưới một nửa.1 Đây là cách quy điểm về cùng một đơn vị để so máy này với máy kia cho công bằng. 6 bits/token at 2 characters per token → BPC = 6/2 = 3. If a character is 7 bits (⅞ of a byte) → BPB = 3 / (⅞) = 3.43 — compressing the original text to less than half its size.1
  1. 05
    Perplexity — uncertainty per token

    Perplexity — số lựa chọn máy còn phân vânPerplexity — máy phân vân cỡ nàoPerplexity — how uncertain the model is

    Nếu cross entropy đo mức khó khi dự đoán token kế tiếp, thì perplexity đo mức bất định khi dự đoán ấy: bất định càng lớn nghĩa là càng nhiều khả năng cho token tiếp theo. Huyen viết rằng giá trị perplexity thấp tới 3 hoặc thấp hơn không phải hiếm — và nếu mọi token đều có cơ hội ngang nhau, perplexity 3 nghĩa là mô hình có 1 trên 3 cơ hội đoán đúng token kế tiếp; với từ vựng cỡ hàng chục nghìn tới hàng trăm nghìn token, đó là tỉ lệ đáng kinh ngạc.1

    Hãy tưởng tượng máy đang chơi trò đoán chữ. Perplexity bằng 3 nghĩa là nó đang lưỡng lự giữa khoảng ba chữ. Mà trong tiếng Việt có hàng chục nghìn chữ! Nhớ nhé: số này càng nhỏ thì máy càng chắc tay.

    If cross entropy measures how hard it is to predict the next token, perplexity measures the uncertainty in doing so: higher uncertainty means more possible options. Huyen notes that perplexity values as low as 3 or lower are not uncommon — and if all tokens were equally likely, a perplexity of 3 means a 1-in-3 chance of predicting the next token correctly; against a vocabulary in the tens or hundreds of thousands, those odds are incredible.1

    Thấy ở đâuWhere you see it Ở báo cáo GPT-2 của OpenAI: mô hình lớn hơn cho perplexity thấp hơn một cách nhất quán trên nhiều tập dữ liệu — trên WikiText2, perplexity giảm từ 29,41 ở bản 117M xuống 18,34 ở bản 1542M.14 Máy càng to thì càng ít phân vân — người ta đã đo được điều đó. In OpenAI's GPT-2 report: larger models consistently give lower perplexity across datasets — on WikiText2 it falls from 29.41 for the 117M model to 18.34 for the 1542M model.14

    Ba quy tắc ngón tay cái

    Dữ liệu càng có cấu trúc, perplexity kỳ vọng càng thấp (mã HTML dễ đoán hơn văn nói: thấy <head> là biết sắp có </head>). Từ vựng càng lớn, perplexity càng cao (truyện thiếu nhi thấp hơn War and Peace; perplexity theo ký tự thấp hơn theo từ). Ngữ cảnh càng dài, perplexity càng thấp.1

    Bit hay nat

    Các khung phổ biến như TensorFlow và PyTorch dùng đơn vị nat (log tự nhiên) thay vì bit, khi ấy perplexity là lũy thừa cơ số e. Chính sự lẫn lộn giữa bit và nat khiến nhiều người báo cáo perplexity thay vì cross entropy.1

  2. 06
    Perplexity as a detector

    Dùng perplexity như một máy dòDùng perplexity để bắt lỗiPerplexity as a detector

    Perplexity của một mô hình thấp nhất trên chính những văn bản nó đã thấy và ghi nhớ khi huấn luyện. Từ đó sinh ra ba công dụng ngoài việc dẫn dắt huấn luyện: phát hiện nhiễm dữ liệu (perplexity của mô hình trên dữ liệu một bộ đo mà thấp thì bộ đo ấy nhiều khả năng đã nằm trong dữ liệu huấn luyện, khiến điểm số kém đáng tin), khử trùng lặp dữ liệu (chỉ thêm dữ liệu mới khi perplexity của nó cao), và phát hiện văn bản bất thường.1

    Nếu máy thấy một đoạn văn quá “quen tay”, nhiều khả năng nó đã đọc đoạn ấy khi học — nghĩa là đề thi bị lộ. Ngược lại, câu nào máy thấy quá lạ thì có thể là câu vô nghĩa. Nhớ nhé: cùng một thước đo, dùng ngược lại thành máy dò.

    A model's perplexity is lowest on the texts it saw and memorised during training. That yields three uses beyond guiding training: detecting data contamination (low perplexity on a benchmark's data suggests the benchmark was in the training set, making its scores less trustworthy), deduplicating training data (add new data only when its perplexity is high), and detecting abnormal text.1

    Thấy ở đâuWhere you see it Perplexity cao nhất ở những văn bản khó đoán, ví dụ ý tưởng khác thường (“chó của tôi dạy vật lý lượng tử lúc rảnh”) hoặc câu vô nghĩa (“nhà mèo đi mắt”).1 Câu càng kỳ quặc thì máy càng bất ngờ — và ta đo được sự bất ngờ đó. Perplexity is highest on unpredictable text — unusual ideas (“my dog teaches quantum physics in his free time”) or gibberish (“home cat go eye”).1
Mục 03 · Đánh giá chính xácMục 03 · Chạy thử & so đáp ánPart 03 · Exact evaluation

Chạy thử được thì đừng đoánThử luôn cho chắcIf you can run it, do not guess it

Huyen phân biệt hai loại: đánh giá chính xác cho ra phán quyết không mơ hồ (đáp án là A mà bạn chọn B thì bạn sai), còn chấm luận văn thì chủ quan — cùng một bài, người khác chấm ra điểm khác, thậm chí cùng một người chấm hai lần cách nhau cũng khác.1 Mục này đi qua hai lối cho ra điểm chính xác: tính đúng chức năng, và đo tương đồng với dữ liệu tham chiếu.

Có hai kiểu chấm. Kiểu thứ nhất: chấm chắc chắn, như bài trắc nghiệm — đúng là đúng, sai là sai. Kiểu thứ hai: chấm theo cảm nhận, như chấm văn. Nhớ nhé: phần này nói về kiểu thứ nhất.

Huyen separates two families: exact evaluation produces judgment without ambiguity (if the answer is A and you pick B, you are wrong), whereas essay grading is subjective — the score depends on who grades, and the same grader asked twice some time apart can score the same essay differently.1 This part covers the two approaches that produce exact scores: functional correctness, and similarity measurements against reference data.

Bà cũng nói rõ phạm vi: mục này tập trung vào đầu ra mở (sinh văn bản tự do) chứ không phải đầu ra đóng như phân loại — không phải vì mô hình nền tảng không làm tác vụ đóng (thực tế nhiều hệ thống có ít nhất một thành phần phân loại, thường để phân loại ý định hoặc chấm điểm), mà vì đánh giá tác vụ đóng vốn đã được hiểu rõ.1

Tính đúng chức năng là thước đo tối hậu của mọi ứng dụng: nó hỏi thẳng hệ thống có làm được đúng việc nó sinh ra để làm hay không.

Cách chắc chắn nhất để biết một cái máy có làm được việc không: bắt nó làm, rồi xem kết quả.

Functional correctness is the ultimate metric for any application: it asks straight out whether the system does what it was built to do.

Nhược điểm nằm ngay trong sức mạnh của nó: tính đúng chức năng không phải lúc nào cũng đo được, và việc đo cũng không dễ tự động hóa. Sinh mã là ngoại lệ đẹp vì có sẵn trình thông dịch làm trọng tài.1

pass@k Với mỗi bài, sinh k mẫu mã; bài được tính là giải được nếu bất kỳ mẫu nào vượt qua toàn bộ test case. Điểm là tỉ lệ bài giải được — 10 bài, giải 5 với k = 3 thì pass@3 = 50%.1 Cho máy thử k lần; chỉ cần một lần đúng là tính đậu bài đó. For each problem, generate k code samples; the problem counts as solved if any sample passes all its test cases. The score is the fraction solved — 10 problems, 5 solved at k = 3 gives pass@3 = 50%.1
Thứ tự kỳ vọngExpected order Sinh càng nhiều mẫu thì càng nhiều cơ hội, nên kỳ vọng pass@1 < pass@3 < pass@10. So điểm giữa các k khác nhau là so sai.1 Cho thử nhiều lần thì dễ đậu hơn — nên phải so cùng số lần thử. More samples means more chances, so in expectation pass@1 < pass@3 < pass@10. Comparing scores across different k is comparing the wrong things.1
Tương đồng từ vựngLexical similarity Tham chiếu “My cats scare the mice”: câu A “My cats eat the mice” trùng 4/5 từ (80%), câu B “Cats and mice fight all the time” trùng 3/5 (60%) — nên A được coi là gần hơn.1 Đếm xem hai câu dùng chung bao nhiêu chữ. Reference “My cats scare the mice”: response A “My cats eat the mice” shares 4 of 5 words (80%), response B “Cats and mice fight all the time” shares 3 of 5 (60%) — so A counts as closer.1
Tương đồng ngữ nghĩaSemantic similarity Nhúng hai văn bản thành vector rồi tính cosine similarity: hai vector giống hệt được 1, hai vector ngược nhau được −1.1 Đổi câu thành dãy số, rồi đo hai dãy số có “chỉ về cùng hướng” không. Embed both texts as vectors, then take the cosine similarity: identical embeddings score 1, opposite embeddings score −1.1
  1. 07
    Functional correctness

    Tính đúng chức năng — để trình thông dịch làm trọng tàiTính đúng chức năng — chạy thử là biếtFunctional correctness — let the interpreter judge

    Sinh mã là ví dụ mà tính đúng chức năng tự động hóa được, đôi khi gọi là execution accuracy. Yêu cầu mô hình viết hàm gcd(num1, num2) tìm ước chung lớn nhất, rồi đưa mã vào trình thông dịch Python: với cặp (15, 20), nếu hàm không trả về 5 thì hàm sai. Cách kiểm tra này có trước AI rất lâu — nó chính là unit test, và là cách các nền tảng như LeetCode, HackerRank chấm bài nộp.1

    Nếu bạn nhờ máy viết một công thức tính toán, bạn không cần tranh cãi xem nó viết hay không — cứ bấm chạy thử với một con số mình biết đáp án. Sai là lộ ngay. Nhớ nhé: chạy thử được thì đừng ngồi đoán.

    Code generation is the clean case where functional correctness can be automated, sometimes called execution accuracy. Ask a model to write gcd(num1, num2), feed the code to a Python interpreter, and for the pair (15, 20) check whether it returns 5. This predates AI entirely — it is unit testing, and it is how platforms like LeetCode and HackerRank validate submissions.1

    Thấy ở đâuWhere you see it Ở các bộ đo sinh mã: HumanEval của OpenAI5 và MBPP của Google, cùng các bộ text-to-SQL như Spider6, BIRD-SQL và WikiSQL — tất cả đều dựa trên tính đúng chức năng.1 Ở các bộ đề chấm máy viết mã: chạy thử từng bài rồi đếm số bài đậu. In code-generation benchmarks: OpenAI's HumanEval5 and Google's MBPP, plus text-to-SQL suites like Spider6, BIRD-SQL and WikiSQL — all built on functional correctness.1

    Ngoài mã nguồn

    Một nhóm tác vụ khác cũng đo tự động được là bot chơi game: làm bot chơi Tetris thì điểm số chính là thước đo. Nói chung, tác vụ có mục tiêu đo được đều đánh giá được theo tính đúng chức năng — ví dụ nhờ AI xếp lịch chạy tải để tối ưu tiêu thụ điện thì đo bằng lượng điện tiết kiệm được.1

    Vướng mắc còn lại

    Huyen ghi chú rằng AI thường chưa đủ giỏi để làm trọn một tác vụ phức tạp, nên nó chỉ làm một phần — và đánh giá một phần của lời giải đôi khi còn khó hơn đánh giá kết quả cuối. Bà ví với cờ vua: chấm kết cục ván cờ (thắng/thua/hòa) dễ hơn chấm một nước đi đơn lẻ.1

  2. 08
    Exact match & its edge cases

    Khớp chính xác — và chỗ nó gãySo đúng từng chữ — và cái bẫyExact match — and where it breaks

    Khớp chính xác chạy tốt với tác vụ có câu trả lời ngắn và dứt khoát: “2 + 3 bằng mấy?”, “Ai là người phụ nữ đầu tiên đoạt giải Nobel?”. Một biến thể dễ dãi hơn chấp nhận mọi đầu ra có chứa đáp án — nhưng chính biến thể ấy tạo ra lỗi tinh vi: hỏi Anne Frank sinh năm nào, đáp án đúng là 1929, mà mô hình trả lời “12 tháng 9 năm 1929” thì vẫn chứa đúng năm nhưng sai sự thật.1

    Với câu hỏi có đáp án ngắn thì so từng chữ là xong. Nhưng nếu ta dễ dãi kiểu “miễn có số đúng trong câu là được”, máy có thể trả lời sai ngày mà vẫn được điểm. Nhớ nhé: chứa đáp án đúng không có nghĩa là câu trả lời đúng.

    Exact match works for tasks with short, exact answers: “What's 2 + 3?”, “Who was the first woman to win a Nobel Prize?”. A looser variant accepts any output that contains the reference — and that variant introduces a subtle failure: asked what year Anne Frank was born, the correct answer is 1929, and an output of “September 12, 1929” contains the right year while being factually wrong.1

    Thấy ở đâuWhere you see it Ngay khi rời khỏi tác vụ đơn giản: văn bản gốc càng dài và phức tạp thì càng nhiều bản dịch đúng, và không thể dựng nổi tập đáp án đầy đủ. Khi ấy phải chuyển sang đo tương đồng từ vựng hoặc ngữ nghĩa.1 Câu càng dài thì càng nhiều cách nói đúng — không liệt kê hết được. The moment you leave simple tasks: the longer and more complex the original, the more correct responses exist, and an exhaustive answer set is impossible. That is when you move to lexical or semantic similarity.1
  3. 09
    Lexical similarity

    Tương đồng từ vựng — đo cái nhìn giống, không phải nghĩa giốngĐếm chữ trùng nhauLexical similarity — looking alike, not meaning alike

    Tương đồng từ vựng đo mức chồng lấp giữa hai văn bản: đếm token chung, hoặc đếm số phép sửa để biến văn bản này thành văn bản kia (khoảng cách sửa — xóa, chèn, thay thế), hoặc so các n-gram. “bad” cách “bard” một phép sửa và cách “cash” ba phép, nên “bad” gần “bard” hơn. Các chỉ số quen thuộc là BLEU, ROUGE, METEOR++, TER, CIDEr — khác nhau ở cách tính chồng lấp.1

    Cách đơn giản nhất để so hai câu: đếm xem chúng dùng chung bao nhiêu chữ, hoặc phải sửa mấy chữ thì câu này thành câu kia. Nhớ nhé: cách này chỉ biết hai câu trông giống nhau, chứ không biết chúng có cùng ý hay không.

    Lexical similarity measures overlap: count shared tokens, count the edits needed to turn one text into the other (edit distance — deletion, insertion, substitution), or compare n-grams. “bad” is one edit from “bard” and three from “cash”, so it counts as closer to “bard”. The familiar metrics are BLEU, ROUGE, METEOR++, TER and CIDEr, differing in how overlap is computed.1

    Thấy ở đâuWhere you see it Ở chỗ nó gãy: trên HumanEval, OpenAI thấy điểm BLEU của lời giải sai và lời giải đúng là tương đương nhau — tối ưu BLEU không phải là tối ưu tính đúng chức năng.15 Có khi bài sai mà vẫn “trông giống” bài đúng — nên điểm giống nhau không nói lên bài đúng. Where it breaks: on HumanEval, OpenAI found BLEU scores for incorrect and correct solutions were similar — optimising for BLEU is not optimising for functional correctness.15

    Tham chiếu thiếu

    Một câu trả lời hay vẫn có thể bị điểm thấp nếu tập tham chiếu không chứa câu nào giống nó. Adept phát hiện mô hình Fuyu của họ bị chấm kém trên một số ví dụ không phải vì đầu ra sai, mà vì tập tham chiếu thiếu đáp án đúng — một chú thích ảnh đúng nhưng không có trong tham chiếu vẫn nhận điểm thấp.1

    Tham chiếu sai

    Tệ hơn, tham chiếu có thể sai: ban tổ chức nhiệm vụ WMT 2023 Metrics báo cáo họ tìm thấy nhiều bản dịch tham chiếu kém chất lượng trong dữ liệu. Dữ liệu tham chiếu chất lượng thấp là một lý do khiến các chỉ số không cần tham chiếu cạnh tranh được với chỉ số cần tham chiếu về mức tương quan với đánh giá của con người.1

  4. 10
    Semantic similarity & embeddings

    Tương đồng ngữ nghĩa — đổi câu thành vectorĐổi câu thành dãy sốSemantic similarity — turning text into vectors

    “What's up?” và “How are you?” gần như không trùng chữ nào nhưng rất gần về nghĩa; ngược lại “Let's eat, grandma” và “Let's eat grandma” trông giống hệt mà nghĩa khác hẳn. Đo ngữ nghĩa vì thế cần đổi văn bản thành biểu diễn số — gọi là embedding — rồi so hai vector. Kích thước vector nhúng thực tế thường nằm giữa 100 và 10.000 phần tử.1

    “Khỏe không?” và “Dạo này thế nào?” chẳng có chữ nào giống nhau, mà ý thì như nhau. Nên máy đổi mỗi câu thành một dãy số ghi lại ý nghĩa, rồi so hai dãy số ấy. Nhớ nhé: dãy số đó gọi là embedding.

    “What's up?” and “How are you?” share almost no words yet mean nearly the same thing; “Let's eat, grandma” and “Let's eat grandma” look almost identical and mean opposite things. Measuring meaning therefore requires turning text into a numerical representation — an embedding — and comparing vectors. Real embedding vectors typically run between 100 and 10,000 elements.1

    Thấy ở đâuWhere you see it Ở mọi nơi trong phần còn lại của sách: tìm kiếm vector ở Chương 6 và khử trùng lặp dữ liệu ở Chương 8 đều đứng trên khái niệm này. Chỉ số ngữ nghĩa quen thuộc gồm BERTScore và MoverScore.1 Ý tưởng này còn quay lại ở nhiều chương sau của sách. Everywhere in the rest of the book: vector search in Chapter 6 and data deduplication in Chapter 8 both rest on it. Familiar semantic metrics include BERTScore and MoverScore.1

    Không gian nhúng chung

    CLIP (Radford và cộng sự, 2021) là một trong những mô hình lớn đầu tiên ánh xạ dữ liệu khác phương thức — văn bản và ảnh — vào một không gian nhúng chung: một bộ mã hóa văn bản và một bộ mã hóa ảnh, rồi chiếu cả hai vào cùng không gian sao cho ảnh nằm gần đúng đoạn mô tả của nó.17 Nhờ đó mới có tìm ảnh bằng chữ.

    Một cảnh báo về “chính xác”

    Huyen xếp tương đồng ngữ nghĩa vào nhóm đánh giá chính xác nhưng tự cảnh báo: nó có thể coi là chủ quan, vì thuật toán nhúng khác nhau cho ra embedding khác nhau. Tuy vậy, khi đã có hai embedding thì điểm tương đồng giữa chúng được tính một cách chính xác.1

Mục 04 · Đánh giá chủ quanMục 04 · Nhờ AI chấmPart 04 · Subjective evaluation

AI làm giám khảo, và xếp hạng bằng so sánhNhờ AI chấm, hoặc bắt hai bên thi nhauAI as a judge, and ranking by comparison

Ý tưởng dùng AI để đánh giá AI đã có từ lâu, nhưng chỉ trở nên khả thi khi mô hình đủ mạnh — khoảng năm 2020 với GPT-3. Tính tới thời điểm sách viết, đây đã là một trong những phương pháp phổ biến nhất để đánh giá mô hình trong sản xuất.1 Một điểm Huyen nhấn rất mạnh: giám khảo AI không phải là một mô hình, mà là một hệ thống gồm mô hình cộng prompt — đổi mô hình, đổi prompt, hay đổi tham số lấy mẫu là ra một giám khảo khác.1

Nếu người chấm bài quá đắt và quá chậm, ta nhờ một cái máy khác chấm. Cách này nhanh và rẻ, nhưng có cái bẫy: “giám khảo” ấy không chỉ là cái máy, mà là cái máy cộng với câu lệnh ta đưa cho nó. Nhớ nhé: đổi câu lệnh là đổi luôn giám khảo.

Using AI to evaluate AI has been around as an idea for a long time, but only became practical once models were capable enough — around 2020 with GPT-3. As of the book's writing it is one of the most common methods for evaluating models in production.1 A point Huyen presses hard: an AI judge is not a model but a system of model plus prompt — change the model, the prompt, or the sampling parameters and you have a different judge.1

Huyen dẫn báo cáo State of AI năm 2023 của LangChain, theo đó 58% các phép đánh giá trên nền tảng của họ do giám khảo AI thực hiện.1 Lưu ý về nguồn: bản báo cáo công khai hiện hành chỉ nói rằng trong số phản hồi được ghi nhận, “phần lớn dùng một LLM để đánh giá đầu ra”, và không nêu con số phần trăm ấy.8 Ở đây trang giữ nguyên cách dẫn của sách, đồng thời ghi rõ chênh lệch này thay vì im lặng chọn một phía.

Giám khảo AI nhanh, dễ dùng, rẻ hơn người — và quan trọng nhất, chạy được cả khi không có dữ liệu tham chiếu, tức là chạy được trong môi trường sản xuất.

Cái hay nhất của giám khảo AI: nó chấm được ngay cả khi không có đáp án mẫu để đối chiếu.

AI judges are fast, easy to use and cheap relative to humans — and crucially they work without reference data, which means they work in production.

Huyen thêm một lập luận đáng suy nghĩ: bạn không phải lúc nào cũng tin được ý kiến của người, và cũng không phải lúc nào cũng tin được phán quyết của AI. Nhưng vì mỗi mô hình là một sự tổng hợp từ số đông, nó có thể đưa ra phán quyết mang tính đại diện cho số đông ấy.1

Tương quan với ngườiAgreement with humans Trên bộ đo MT-Bench, Zheng và cộng sự (2023) thấy mức đồng thuận giữa GPT-4 và người đạt 85% — cao hơn cả mức đồng thuận giữa người với người (81%).19 Có nghiên cứu thấy máy chấm trùng ý người tới 85% — còn hai người chấm thì chỉ trùng nhau 81%. On MT-Bench, Zheng et al. (2023) found GPT-4's agreement with humans reached 85% — higher than the agreement among humans themselves (81%).19
Tính nhất quánConsistency Thêm ví dụ đánh giá vào prompt nâng tính nhất quán của GPT-4 từ 65% lên 77,5% — nhưng chính nhóm tác giả thừa nhận nhất quán cao chưa chắc là chính xác cao: giám khảo có thể sai một cách nhất quán.19 Cho giám khảo xem bài mẫu thì nó chấm ổn định hơn — nhưng ổn định không có nghĩa là đúng. Adding evaluation examples to the prompt raised GPT-4's consistency from 65% to 77.5% — though the authors acknowledged high consistency may not imply high accuracy: a judge can be consistently wrong.19
Thiên lệch tự thânSelf-bias Trong thí nghiệm của Zheng và cộng sự (2023), GPT-4 ưu ái chính mình với tỉ lệ thắng cao hơn 10%, còn Claude-v1 ưu ái chính mình tới 25%.19 Máy thường chấm bài của chính mình cao hơn bài của máy khác. In Zheng et al.'s 2023 experiment, GPT-4 favoured its own responses with a 10% higher win rate, and Claude-v1 favoured itself by 25%.19
Thiên lệch độ dàiVerbosity bias Wu và Aji (2023) thấy cả GPT-4 lẫn Claude-1 thích câu trả lời dài (~100 từ) có lỗi sự thật hơn câu ngắn (~50 từ) mà đúng.110 Bài dài thường được chấm cao hơn, dù bài ngắn mới là bài đúng. Wu and Aji (2023) found both GPT-4 and Claude-1 preferred longer responses (~100 words) containing factual errors over shorter, correct ones (~50 words).110
  1. 11
    Criteria ambiguity

    Tiêu chí mơ hồ — cùng một chữ, ba thang điểmCùng một tiêu chí, mỗi nơi chấm một kiểuCriteria ambiguity — one word, three scales

    Khác với các chỉ số do người thiết kế, tiêu chí của giám khảo AI không được chuẩn hóa. Tính tới thời điểm sách viết, ba công cụ mã nguồn mở MLflow, Ragas và LlamaIndex đều có sẵn tiêu chí faithfulness, nhưng chỉ dẫn và thang điểm khác hẳn nhau: MLflow dùng thang 1–5, Ragas dùng 0 và 1, còn LlamaIndex yêu cầu giám khảo trả lời YES hoặc NO. Cho cùng một cặp (ngữ cảnh, câu trả lời), MLflow cho 3, Ragas cho 1, LlamaIndex cho NO — bạn sẽ dùng điểm nào?1

    Ba ông thầy cùng chấm một bài theo cùng một tiêu chí, nhưng ông thì cho điểm từ 1 tới 5, ông thì chỉ cho 0 hoặc 1, ông thì chỉ nói “có” hoặc “không”. Vậy bài ấy được mấy điểm? Nhớ nhé: điểm số chỉ có nghĩa khi ta biết ai chấm và chấm theo thang nào.

    Unlike human-designed metrics, AI-judge criteria are not standardised. As of the book's writing, MLflow, Ragas and LlamaIndex all ship a built-in faithfulness criterion with entirely different instructions and scoring: MLflow scores 1–5, Ragas scores 0 or 1, LlamaIndex asks for YES or NO. For the same (context, answer) pair MLflow says 3, Ragas says 1 and LlamaIndex says NO — which score would you use?1

    Thấy ở đâuWhere you see it Ở chính báo cáo hằng tháng của đội bạn: tháng trước điểm mạch lạc 90%, tháng này 92% — có phải ứng dụng đã tốt lên không? Không trả lời được, trừ khi chắc chắn giám khảo hai tháng là y hệt nhau.1 Điểm tháng này cao hơn tháng trước chưa chắc vì bài tốt hơn — có khi vì thầy khác. In your own monthly report: last month the coherence score was 90%, this month 92% — did the application improve? You cannot say, unless you know the judges in both months were exactly the same.1

    Lời khuyên dứt khoát

    Huyen đặt thành nguyên tắc: đừng tin bất kỳ giám khảo AI nào nếu bạn không nhìn thấy mô hình và prompt được dùng cho giám khảo ấy.1

    Rủi ro tổ chức

    Rắc rối nhân lên khi ứng dụng và giám khảo do hai đội khác nhau quản: đội giám khảo có thể đổi giám khảo mà không báo, còn đội ứng dụng lại quy sự thay đổi trong kết quả cho ứng dụng của mình thay vì cho giám khảo.1

  2. 12
    Specialized judges

    Giám khảo chuyên biệt — nhỏ mà đáng tin hơnGiám khảo nhỏ chuyên một việcSpecialized judges — small can be more reliable

    Giám khảo có thể mạnh hơn, yếu hơn, hay ngang bằng mô hình bị chấm, và mỗi lựa chọn có cái giá riêng. Dùng mô hình mạnh nhất làm giám khảo để lại hai vấn đề: mô hình mạnh nhất sẽ không còn ai đủ tư cách chấm nó, và ta vẫn cần một phương pháp khác để biết mô hình nào là mạnh nhất. Huyen đặc biệt hào hứng với hướng ngược lại: giám khảo nhỏ, chuyên biệt — được huấn luyện cho một loại phán quyết, theo tiêu chí và thang điểm cụ thể — có thể đáng tin hơn giám khảo lớn đa dụng cho đúng phán quyết ấy.1

    Không phải cứ giám khảo giỏi toàn diện mới chấm tốt. Một người chỉ chuyên chấm đúng một môn có khi còn chấm chuẩn hơn. Nhớ nhé: nhỏ mà chuyên thì vẫn hơn to mà chung chung.

    A judge can be stronger, weaker or equal to the model being judged, and each has a price. Using the strongest model as judge leaves two problems: the strongest model itself has no eligible judge, and you still need another method to decide which model is strongest. Huyen is most excited by the opposite direction: small, specialized judges trained for specific judgments with specific criteria and scoring systems can be more reliable than larger general-purpose judges for those judgments.1

    Thấy ở đâuWhere you see it Ở ba họ giám khảo chuyên biệt: mô hình thưởng như Cappy của Google — chỉ 360 triệu tham số, nhỏ hơn nhiều so với mô hình nền tảng đa dụng, cho điểm 0–1 cho cặp (prompt, câu trả lời)11; giám khảo dựa tham chiếu như BLEURT và Prometheus; và mô hình sở thích như PandaLM12 hay JudgeLM.1 Đã có những giám khảo tí hon chuyên chấm một loại bài — nhẹ và rẻ hơn nhiều. In three families: reward models like Google's Cappy — just 360 million parameters, far smaller than a general-purpose foundation model, scoring a (prompt, response) pair from 0 to 111; reference-based judges like BLEURT and Prometheus; and preference models like PandaLM12 and JudgeLM.1

    Tự chấm chính mình

    Cho mô hình tự đánh giá (self-evaluation hay self-critique) nghe như gian lận vì thiên lệch tự thân, nhưng rất hợp để kiểm tra tỉnh táo: nếu chính mô hình cho rằng câu trả lời của nó sai, mô hình ấy có lẽ không đáng tin. Ngoài ra, việc bắt mô hình tự đánh giá còn thúc nó sửa lại và cải thiện câu trả lời.1

    Chi phí thật

    Dùng GPT-4 vừa sinh vừa chấm là gấp đôi số lệnh gọi API. Nếu có ba prompt đánh giá cho ba tiêu chí — chất lượng chung, tính nhất quán sự thật, độc hại — số lệnh gọi tăng gấp bốn. Cách giảm: dùng mô hình yếu hơn làm giám khảo, hoặc kiểm tra xác suất trên một tập con.1

  3. 13
    Comparative evaluation

    Xếp hạng bằng so sánh — mượn luật từ thể thaoBắt hai bên thi nhauComparative evaluation — borrowing the rules of sport

    Thường ta đánh giá mô hình không phải vì cần điểm số, mà vì cần biết mô hình nào tốt nhất cho mình — tức là cần một bảng xếp hạng. Với chất lượng mang tính chủ quan, so sánh thường dễ hơn chấm điểm từng cái: nói bài hát nào trong hai bài hay hơn dễ hơn cho mỗi bài một điểm cụ thể. Trong AI, đánh giá so sánh được Anthropic dùng lần đầu năm 2021 để xếp hạng các mô hình, và nay là nền của bảng xếp hạng Chatbot Arena của LMSYS.113

    Thay vì chấm điểm từng thí sinh, ta cho hai thí sinh thi cùng lúc rồi hỏi khán giả thích ai hơn. Làm nhiều trận thì ra bảng xếp hạng, y như bóng đá hay cờ vua. Nhớ nhé: chọn ai hơn dễ hơn chấm điểm từng người.

    Often you evaluate models not because you care about scores but because you want to know which is best for you — that is, you want a ranking. For subjective quality, comparison is usually easier than pointwise scoring: it is easier to say which of two songs is better than to give each a concrete score. In AI, comparative evaluation was first used by Anthropic in 2021 to rank models, and now powers LMSYS's Chatbot Arena leaderboard.113

    Thấy ở đâuWhere you see it Ở chính khung chat bạn đang dùng: ChatGPT thỉnh thoảng hiện hai câu trả lời cạnh nhau và hỏi bạn thích bản nào — đó là một trận đấu, và nó khác A/B testing ở chỗ người dùng nhìn thấy cả hai cùng lúc.1 Đôi khi ứng dụng chat hiện hai câu trả lời và hỏi bạn thích câu nào hơn. In the chat box you already use: ChatGPT occasionally shows two responses side by side and asks which you prefer — that is a match, and it differs from A/B testing in that the user sees both at once.1

    Thuật toán xếp hạng

    Từ các tín hiệu so sánh, một thuật toán xếp hạng tính điểm cho từng mô hình rồi sắp thứ tự. Các thuật toán mượn từ thể thao và game gồm Elo, Bradley–Terry, TrueSkill. Chatbot Arena ban đầu dùng Elo nhưng sau chuyển sang Bradley–Terry vì thấy Elo nhạy với thứ tự người đánh giá và thứ tự prompt.113

    Xếp hạng là bài toán dự báo

    Một bảng xếp hạng đúng nếu với mọi cặp mô hình, mô hình xếp trên có xác suất thắng cao hơn khi đấu với mô hình xếp dưới. Không có “bảng xếp hạng chân lý”: chất lượng của một bảng xếp hạng được đo bằng khả năng dự báo kết quả các trận đấu tương lai.1

  4. 14
    From relative to absolute

    Biết ai hơn, vẫn chưa biết đủ tốt chưaHơn người khác không có nghĩa là đủ tốtKnowing which is better is not knowing if it is good enough

    Với nhiều ứng dụng, ta không cần mô hình tốt nhất có thể — ta cần một mô hình đủ tốt. Đánh giá so sánh cho biết mô hình nào hơn, nhưng không cho biết mô hình ấy tốt tới đâu: nếu B hơn A, có thể B tốt còn A tệ, có thể cả hai đều tệ, cũng có thể cả hai đều tốt. Giả sử A giải quyết được 70% số phiếu hỗ trợ khách hàng, và B thắng A 51% số trận — không rõ 51% ấy quy ra bao nhiêu phiếu B xử lý được.1

    Biết bạn chạy nhanh hơn tôi chưa cho biết bạn có kịp chuyến xe buýt hay không. Nhớ nhé: so hai máy với nhau khác với biết máy có dùng được thật không.

    For many applications you do not need the best possible model — you need one that is good enough. Comparative evaluation tells you which model is better, not how good it is: if B beats A, maybe B is good and A is bad, maybe both are bad, maybe both are good. Suppose A resolves 70% of support tickets and B wins against A 51% of the time — it is unclear how that 51% converts into tickets resolved.1

    Thấy ở đâuWhere you see it Ở bàn cân chi phí–lợi ích: nếu B đắt gấp đôi A, chỉ riêng đánh giá so sánh không đủ để biết mức cải thiện có đáng số tiền ấy không.1 Máy tốt hơn nhưng đắt gấp đôi thì có đáng không? So sánh suông không trả lời được. At the cost–benefit table: if B costs twice as much as A, comparative evaluation alone cannot tell you whether the gain is worth the money.1

    Nghẽn quy mô

    Số cặp mô hình cần so tăng theo bình phương số mô hình. Tháng 1 năm 2024, LMSYS đánh giá 57 mô hình bằng 244.000 phép so sánh — nghe thì nhiều, nhưng 57 mô hình tương ứng 1.596 cặp, tức trung bình chỉ 153 phép so sánh mỗi cặp.1 Các thuật toán xếp hạng thường giả định tính bắc cầu, mà nhiều bài báo lại nêu chính giả định ấy là một hạn chế.

    Chất lượng tín hiệu

    Trong 33.000 prompt mà Chatbot Arena công bố năm 2023, 180 prompt là “hello” và “hi” — chiếm 0,55% dữ liệu, chưa kể các biến thể; riêng câu đố “X có 3 chị gái, mỗi chị có một anh em trai. X có bao nhiêu anh em trai?” được hỏi 44 lần. Prompt quá đơn giản thì khó phân biệt mô hình, và có thể làm nhiễu bảng xếp hạng.1

Ba hiểu lầm mà người đọc lần đầu hay mắc

Three misconceptions a first reader falls into

Chương này dày đặc chỉ số, và chính sự dày đặc ấy sinh ra ba ngộ nhận. Mỗi ngộ nhận đều xuất phát từ một câu đúng, rồi bị kéo đi xa hơn chỗ câu ấy chịu được.

The chapter is dense with metrics, and that density breeds three misreadings. Each starts from something true and then stretches it past what it can carry.

“Perplexity thấp nghĩa là mô hình tốt hơn”

“Lower perplexity means a better model”

Perplexity là đại diện tốt cho năng lực nền, nhưng Huyen cảnh báo nó có thể không phải đại diện tốt cho mô hình đã qua hậu huấn luyện: mô hình càng giỏi làm việc thì có thể càng kém đoán token kế tiếp, và perplexity thường tăng sau hậu huấn luyện. So perplexity giữa một mô hình nền và một mô hình đã chỉnh theo chỉ dẫn là so nhầm thứ.1

Perplexity is a good proxy for base capability, but Huyen warns it may be a poor one for post-trained models: as a model gets better at tasks it can get worse at predicting next tokens, and perplexity typically rises after post-training. Comparing the perplexity of a base model with that of an instruction-tuned one compares the wrong things.1

“Điểm tương đồng cao nghĩa là câu trả lời đúng”

“A high similarity score means a correct answer”

Không. Trên HumanEval, OpenAI thấy điểm BLEU của lời giải sai và lời giải đúng tương đương nhau; và Adept thấy mô hình Fuyu bị chấm thấp chỉ vì tập tham chiếu thiếu đáp án đúng. Điểm tương đồng đo khoảng cách tới tập tham chiếu, và tập tham chiếu vừa có thể thiếu, vừa có thể sai.15

No. On HumanEval, OpenAI found BLEU scores for incorrect and correct solutions were similar; and Adept found Fuyu scored low only because the reference set lacked the correct answer. A similarity score measures distance to the reference set — and that set can be both incomplete and wrong.15

“Giám khảo AI là một thước đo khách quan”

“An AI judge is an objective metric”

Huyen xếp AI làm giám khảo vào nhóm chủ quan chính vì điểm số phụ thuộc vào mô hình và prompt được dùng. Giám khảo AI cũng là một ứng dụng AI, nên nó cũng thay đổi theo thời gian — điều đó khiến nó không đáng tin như một mốc chuẩn để theo dõi thay đổi của ứng dụng qua các tháng. Kết luận của bà: giám khảo AI nên được bổ sung bằng đánh giá chính xác, đánh giá của con người, hoặc cả hai.1

Huyen files AI as a judge under subjective precisely because the score depends on the judge model and prompt. An AI judge is itself an AI application, so it changes over time — which makes it unreliable as a fixed benchmark for tracking an application month over month. Her conclusion: AI judges should be supplemented with exact evaluation, human evaluation, or both.1

Tự kiểmTự hỏi mìnhSelf-check

Sáu câu hỏi cho hệ thống của bạnSáu câu hỏi cho bạnSix questions for your system

Huyen viết rằng đánh giá phải đặt trong bối cảnh cả hệ thống, và bắt đầu từ việc xác định nơi hệ thống dễ hỏng.1 Sáu câu dưới đây chuyển chương này thành một cuộc rà soát cho hệ thống của chính bạn.

Đọc xong rồi thì đừng vội tin ngay. Hãy tự hỏi mình mấy câu dưới đây về cái máy mà bạn đang dùng. Nhớ nhé: biết chỗ dễ hỏng trước thì mới kiểm tra đúng chỗ.

Huyen writes that evaluation must be considered in the context of a whole system, starting from identifying where that system is likely to fail.1 These six questions turn the chapter into an audit of your own system.

Bạn có đang “nhìn qua thấy ổn” không? Hãy viết ra cách bạn đang đánh giá ứng dụng của mình. Nếu câu trả lời là một tập prompt tủ gom tùy hứng theo kinh nghiệm cá nhân chứ không theo nhu cầu ứng dụng, thì đó chính là lối làm mà Huyen nói có thể tạm đủ lúc khởi động nhưng không đủ để lặp lại và cải tiến. Bước sửa đầu tiên không phải là chọn chỉ số, mà là liệt kê những chỗ hệ thống dễ hỏng nhất.
Phần nào trong hệ thống có thể chạy thử được? Nếu đầu ra là mã, truy vấn SQL, một lời gọi API hay một hành động có kết quả đo được, thì tính đúng chức năng áp dụng được — và nó là thước đo tối hậu. Đừng dùng điểm tương đồng cho phần mà trình thông dịch có thể phán quyết dứt khoát.
Tập tham chiếu của bạn có đủ và có đúng không? Một câu trả lời hay vẫn bị điểm thấp nếu tập tham chiếu thiếu câu giống nó — trường hợp Fuyu của Adept. Và tham chiếu có thể sai: nhóm WMT 2023 Metrics báo cáo nhiều bản dịch tham chiếu kém chất lượng trong dữ liệu của chính họ. Vì thế các chỉ số không cần tham chiếu là đối thủ cạnh tranh được, chứ không phải lựa chọn hạng hai.
Bạn có nhìn thấy mô hình và prompt của giám khảo AI không? Huyen đặt thành nguyên tắc: đừng tin bất kỳ giám khảo AI nào nếu không thấy được mô hình và prompt của nó. Nếu giám khảo do một đội khác quản lý, hãy hỏi ai được phép sửa prompt và sửa thì báo cho ai. Ghi phiên bản giám khảo vào cùng chỗ với phiên bản ứng dụng, nếu không mọi so sánh theo thời gian đều vô nghĩa.
Các điểm số bạn đang so có cùng thang không? Cùng chữ faithfulness mà MLflow cho 1–5, Ragas cho 0/1, LlamaIndex cho YES/NO. Cùng cách pass@k mà k khác nhau thì điểm không so được. Quy tắc chung: một con số chỉ có nghĩa kèm theo ai đo, đo bằng gì, và trên tập nào.
Bạn cần “tốt nhất” hay chỉ cần “đủ tốt”? Đánh giá so sánh cho biết mô hình nào hơn, không cho biết mô hình nào đủ dùng. Nếu quyết định của bạn là đổi A sang B mà B đắt gấp đôi, bạn cần thêm một phép đo tuyệt đối trước khi ký. Một thay đổi 1% ở tỉ lệ thắng có thể là cú nhảy lớn ở ứng dụng này và gần như không đổi gì ở ứng dụng khác.
Bạn đang chấm máy bằng cách nào? Nếu chỉ là “thử vài câu thấy ổn” thì chưa đủ đâu.
Có việc nào chạy thử được ngay không? Việc nào bấm chạy là biết đúng sai thì đừng ngồi đoán.
Đáp án mẫu của bạn có đủ chưa? Thiếu đáp án đúng thì bài đúng vẫn bị chấm sai.
Ai là giám khảo, và chấm theo lệnh nào? Không biết thầy nào chấm thì đừng tin điểm.
Hai điểm bạn đang so có cùng thang không? Thang 1–5 không so được với thang “có / không”.
Bạn cần giỏi nhất hay chỉ cần đủ dùng? Hơn máy kia chưa chắc đã đủ dùng cho việc của bạn.
Are you still eyeballing results? Write down how you evaluate today. If the answer is a handful of go-to prompts curated ad hoc from personal experience, that is the approach Huyen says may get a project off the ground but will not sustain iteration.
Which part of your system can actually be executed? If the output is code, SQL, an API call or any action with a measurable objective, functional correctness applies — and it is the ultimate metric.
Is your reference set complete, and is it right? A good response scores low when the reference set contains nothing like it — Adept's Fuyu case. And references can be wrong: the WMT 2023 Metrics organisers reported many bad reference translations in their own data.
Can you see your AI judge's model and prompt? Huyen's rule: do not trust any AI judge whose model and prompt you cannot see. If another team owns the judge, ask who may change the prompt and who gets told when they do.
Are the scores you compare on the same scale? The same word faithfulness scores 1–5 in MLflow, 0/1 in Ragas and YES/NO in LlamaIndex. And pass@k values at different k are not comparable.
Do you need the best model or a good-enough one? Comparative evaluation tells you which model is better, not which is sufficient. If B costs twice as much as A, you need an absolute measure before you sign.
Đọng lạiĐọng lạiWhat remains

Mô hình càng mạnh thì khả năng hỏng càng lớn, mà cũng chính vì mạnh nên càng khó chấm. Không có một thước đo duy nhất — chỉ có việc biết rõ từng thước đo được gì và bỏ sót gì.

Máy càng giỏi thì hỏng càng to, mà cũng càng khó chấm. Không có một cái thước nào đo được hết — phải dùng nhiều thước, và biết mỗi thước bỏ sót gì. Nhớ nhé: tin vào cách kiểm tra, đừng tin vào cảm giác.

The stronger models get, the higher the potential for catastrophic failure — and the same strength is what makes them harder to judge. There is no single metric, only the discipline of knowing what each one measures and what it quietly misses.