📖 Nội dung bài học
Tóm tắt
Bây giờ chúng ta đã có bộ dữ liệu đánh giá sẵn sàng, đã đến lúc xây dựng quy trình đánh giá cốt lõi. Điều này bao gồm việc lấy từng trường hợp kiểm thử, kết hợp nó với prompt của chúng ta, đưa vào Claude và sau đó chấm điểm các kết quả.

Quy trình đánh giá tuân theo một luồng công việc rõ ràng: chúng ta lấy bộ dữ liệu các trường hợp kiểm thử, kết hợp từng trường hợp với mẫu prompt của chúng ta, gửi đến Claude để xử lý và sau đó đánh giá đầu ra bằng một hệ thống chấm điểm.
Xây dựng các Hàm Cốt lõi
Quy trình đánh giá bao gồm ba hàm chính, mỗi hàm có trách nhiệm cụ thể. Hãy bắt đầu với hàm đơn giản nhất - hàm xử lý việc thực thi prompt riêng lẻ.
Hàm run_prompt
Hàm này nhận một trường hợp kiểm thử và kết hợp nó với mẫu prompt của chúng ta:
def run_prompt(test_case):
"""Kết hợp prompt và đầu vào của trường hợp kiểm thử, sau đó trả về kết quả"""
prompt = f"""
Vui lòng giải quyết nhiệm vụ sau:
{test_case["task"]}
"""
messages = []
add_user_message(messages, prompt)
output = chat(messages)
return output
Hiện tại, chúng ta đang giữ cho prompt cực kỳ đơn giản. Chúng ta không bao gồm bất kỳ hướng dẫn định dạng nào, nghĩa là Claude có thể sẽ trả về đầu ra dài dòng hơn chúng ta cần. Chúng ta sẽ tinh chỉnh điều này sau khi lặp lại quy trình đánh giá của mình.
Hàm run_test_case
Hàm này điều phối việc chạy một trường hợp kiểm thử đơn lẻ và chấm điểm kết quả:
def run_test_case(test_case):
"""Gọi run_prompt, sau đó chấm điểm kết quả"""
output = run_prompt(test_case)
# TODO - Chấm điểm
score = 10
return {
"output": output,
"test_case": test_case,
"score": score
}
Hiện tại, chúng ta đang sử dụng điểm số cố định là 10. Logic chấm điểm là nơi chúng ta sẽ dành nhiều thời gian trong các phần sắp tới, nhưng trình giữ chỗ này cho phép chúng ta kiểm tra cấu trúc quy trình tổng thể.
Hàm run_eval
Đây là bộ điều phối chính xử lý toàn bộ bộ dữ liệu:
def run_eval(dataset):
"""Tải bộ dữ liệu và gọi run_test_case với từng trường hợp"""
results = []
for test_case in dataset:
result = run_test_case(test_case)
results.append(result)
return results
Hàm này lặp qua mọi trường hợp kiểm thử trong bộ dữ liệu của chúng ta, xử lý từng trường hợp và thu thập tất cả kết quả vào một danh sách duy nhất.
Chạy Đánh giá
Để thực thi quy trình đánh giá của chúng ta, chúng ta tải bộ dữ liệu và gọi hàm chính của mình:
with open("dataset.json", "r") as f:
dataset = json.load(f)
results = run_eval(dataset)
Lần đầu tiên bạn chạy cái này, hãy dự kiến nó sẽ mất một chút thời gian - ngay cả với Claude Haiku, việc xử lý toàn bộ bộ dữ liệu cũng có thể mất hơn 30 giây. Chúng ta sẽ đề cập đến các kỹ thuật tối ưu hóa sau, nhưng hiện tại, sự kiên nhẫn là chìa khóa.
Kiểm tra Kết quả
Sau khi đánh giá hoàn tất, bạn có thể kiểm tra kết quả với đầu ra JSON được định dạng:
print(json.dumps(results, indent=2))

Cấu trúc kết quả chứa một mảng các đối tượng, trong đó mỗi đối tượng đại diện cho một lần thực thi trường hợp kiểm thử. Bạn sẽ thấy đầu ra của Claude (có xu hướng khá dài dòng nếu không có các ràng buộc định dạng), định nghĩa trường hợp kiểm thử ban đầu và điểm số.

Những gì Chúng ta đã Hoàn thành
Tại thời điểm này, chúng ta đã triển khai thành công quy trình đánh giá cốt lõi. Chúng ta có thể:
- Lấy các trường hợp kiểm thử từ bộ dữ liệu của chúng ta
- Kết hợp chúng với các mẫu prompt
- Nhận phản hồi từ Claude
- Thu thập và tổ chức tất cả kết quả
Phần còn thiếu là chấm điểm thông minh - hiện tại chúng ta chỉ gán một điểm cố định cho mọi phản hồi. Bước tiếp theo là xây dựng các bộ chấm điểm có thể thực sự đánh giá xem đầu ra của Claude có chính xác hay không, đó là nơi sự tinh vi thực sự của các hệ thống đánh giá phát huy tác dụng.
Cấu trúc quy trình này có vẻ đơn giản, nhưng nó đại diện cho nền tảng mà hầu hết các hệ thống đánh giá AI được xây dựng trên đó. Sự phức tạp đến từ logic chấm điểm và tối ưu hóa prompt, chứ không phải từ việc điều phối cơ bản các bài kiểm tra.
🔁 Bài học liên quan
- Bài tiếp: Model based grading
- Bài trước: Generating test datasets
- Cùng section: Overview of Claude Models · Accessing the API · Making a request
- Thuộc lộ trình: Path C
- Docs tham khảo: Glossary · Skills atlas · By use-case
📚 Nguồn & ghi nhận
- Bài học gốc Anthropic Academy: https://anthropic.skilljar.com/claude-in-amazon-bedrock/276736
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: 2026-04-23 · Chuẩn hoá: 2026-05-01