KỸ THUẬT PROMPT VÀ HỆ THỐNG ĐÁNH GIÁ PROMPT TRONG ỨNG DỤNG AI
1. Khái niệm cơ bản: Prompt Engineering và Prompt Evaluation
Khi làm việc với các mô hình ngôn ngữ như Claude, ChatGPT hoặc các LLM khác, prompt là cầu nối chính giữa người dùng và hệ thống. Viết được một prompt hiệu quả chỉ là bước khởi đầu. Để xây dựng những ứng dụng AI đáng tin cậy, cần song song hai hoạt động:
2. Quy trình đánh giá prompt điển hình
Một workflow đánh giá thường gồm 5 bước chính:
3. Tạo test dataset và đánh giá tự động
Để đánh giá có hệ thống, cần dataset kiểm thử phù hợp. Dataset thường được định nghĩa dưới dạng JSON với cấu trúc chứa task, yêu cầu, và format đầu ra mong đợi.
Ví dụ dataset cho các tác vụ AWS:
[
{ "task": "Viết một hàm Python để upload file lên S3", "format": "python" },
{ "task": "Tạo file JSON policy cho IAM", "format": "json" },
{ "task": "Regex để kiểm tra tên bucket S3 hợp lệ", "format": "regex" }
]
Dataset có thể được tạo thủ công, hoặc tự động sinh bằng mô hình nhỏ hơn (như Claude Haiku), giúp tiết kiệm thời gian và tăng tính đa dạng.
4. Xây dựng Eval Pipeline
Pipeline đánh giá gồm ba hàm cốt lõi:
5. Các phương pháp chấm điểm (Grading Methods)
Để đánh giá phản hồi, có ba loại graders:
json.loads(text.strip())
return 10
except json.JSONDecodeError:
return 0
Trong thực tế, nên kết hợp nhiều grader. Ví dụ: dùng code graders để xác minh cú pháp, model graders để đánh giá tính đúng đắn, và đôi khi kiểm chứng thủ công cho các trường hợp đặc biệt.
6. Kết hợp chấm điểm mô hình và cú pháp
Để phản ánh cả nội dung và kỹ thuật, điểm cuối cùng có thể được tính bằng cách lấy trung bình giữa model score và syntax score:
score = (model_score + syntax_score) / 2
Cách này giúp cân bằng giữa chất lượng logic và tính đúng đắn kỹ thuật. Trong một số ứng dụng, trọng số có thể thay đổi (ví dụ: an toàn quan trọng hơn cú pháp, hoặc ngược lại).
7. Vai trò của Description trong giao tiếp với AI
Một trong những yếu tố then chốt để nâng cao hiệu quả làm việc với AI là khả năng mô tả (description). Có ba lớp mô tả chính:
1. Khái niệm cơ bản: Prompt Engineering và Prompt Evaluation
Khi làm việc với các mô hình ngôn ngữ như Claude, ChatGPT hoặc các LLM khác, prompt là cầu nối chính giữa người dùng và hệ thống. Viết được một prompt hiệu quả chỉ là bước khởi đầu. Để xây dựng những ứng dụng AI đáng tin cậy, cần song song hai hoạt động:
- Prompt Engineering (Kỹ thuật Prompt): tập hợp phương pháp và kỹ thuật để viết prompt rõ ràng, hiệu quả, giúp mô hình hiểu và phản hồi chính xác hơn. Ví dụ: multishot prompting (cung cấp nhiều ví dụ), cấu trúc bằng XML tags, prefill outputs, định dạng bằng khối code, và nhiều best practices khác.
- Prompt Evaluation (Đánh giá Prompt): quá trình đo lường mức độ hiệu quả của prompt bằng cách kiểm thử và chấm điểm dựa trên các tiêu chí khách quan. Đánh giá có thể được thực hiện thông qua test cases, so sánh giữa nhiều phiên bản prompt, hoặc tự động hóa bằng pipeline.
2. Quy trình đánh giá prompt điển hình
Một workflow đánh giá thường gồm 5 bước chính:
- Soạn thảo prompt ban đầu: xác định mục tiêu và viết phiên bản gốc.
Ví dụ:
prompt = f""" Hãy trả lời câu hỏi của người dùng: {question} """ - Tạo evaluation dataset: tập hợp một danh sách các test cases đại diện cho đầu vào thực tế trong production. Dataset này có thể nhỏ (vài câu hỏi cơ bản) hoặc lớn (hàng nghìn trường hợp).
- Đưa qua mô hình: kết hợp dataset với prompt template, gửi vào Claude/LLM để thu được phản hồi.
- Chấm điểm đầu ra: dùng grader (code, model, hoặc human) để đánh giá chất lượng phản hồi. Có thể dựa trên độ chính xác, cú pháp hợp lệ, tính đầy đủ, hoặc mức độ tuân thủ yêu cầu.
- Lặp lại & cải tiến: chỉnh sửa prompt dựa trên kết quả chấm điểm, sau đó chạy lại toàn bộ pipeline. Điểm số trung bình sẽ cho thấy phiên bản nào hiệu quả hơn.
3. Tạo test dataset và đánh giá tự động
Để đánh giá có hệ thống, cần dataset kiểm thử phù hợp. Dataset thường được định nghĩa dưới dạng JSON với cấu trúc chứa task, yêu cầu, và format đầu ra mong đợi.
Ví dụ dataset cho các tác vụ AWS:
[
{ "task": "Viết một hàm Python để upload file lên S3", "format": "python" },
{ "task": "Tạo file JSON policy cho IAM", "format": "json" },
{ "task": "Regex để kiểm tra tên bucket S3 hợp lệ", "format": "regex" }
]
Dataset có thể được tạo thủ công, hoặc tự động sinh bằng mô hình nhỏ hơn (như Claude Haiku), giúp tiết kiệm thời gian và tăng tính đa dạng.
4. Xây dựng Eval Pipeline
Pipeline đánh giá gồm ba hàm cốt lõi:
- run_prompt(test_case): kết hợp prompt template với test case và gửi đến mô hình.
- run_test_case(test_case): chạy prompt, nhận đầu ra, sau đó chấm điểm bằng grader.
- run_eval(dataset): xử lý toàn bộ dataset và tổng hợp kết quả (bao gồm điểm trung bình).
5. Các phương pháp chấm điểm (Grading Methods)
Để đánh giá phản hồi, có ba loại graders:
- Code Graders (tự động bằng code): kiểm tra cú pháp JSON, Python, Regex; xác minh format; đếm số từ; kiểm tra độ dài.
Ví dụ, validator cú pháp JSON:
def validate_json(text):
json.loads(text.strip())
return 10
except json.JSONDecodeError:
return 0
- Model Graders (AI đánh giá AI): sử dụng một mô hình khác để chấm điểm dựa trên tiêu chí định sẵn, thường kèm theo giải thích (strengths, weaknesses, reasoning, score).
Điều này cho phép đánh giá “chất lượng” ở mức khái niệm, như độ chính xác, tính hữu ích, mức độ tuân thủ yêu cầu. - Human Graders (con người): cho điểm thủ công, hữu ích trong các trường hợp đòi hỏi đánh giá chủ quan (độ sâu, sáng tạo, tính súc tích).
Trong thực tế, nên kết hợp nhiều grader. Ví dụ: dùng code graders để xác minh cú pháp, model graders để đánh giá tính đúng đắn, và đôi khi kiểm chứng thủ công cho các trường hợp đặc biệt.
6. Kết hợp chấm điểm mô hình và cú pháp
Để phản ánh cả nội dung và kỹ thuật, điểm cuối cùng có thể được tính bằng cách lấy trung bình giữa model score và syntax score:
score = (model_score + syntax_score) / 2
Cách này giúp cân bằng giữa chất lượng logic và tính đúng đắn kỹ thuật. Trong một số ứng dụng, trọng số có thể thay đổi (ví dụ: an toàn quan trọng hơn cú pháp, hoặc ngược lại).
7. Vai trò của Description trong giao tiếp với AI
Một trong những yếu tố then chốt để nâng cao hiệu quả làm việc với AI là khả năng mô tả (description). Có ba lớp mô tả chính:
- Product Description: mô tả đầu ra mong muốn (nội dung, định dạng, phong cách, độ dài, đối tượng người đọc).
- Process Description: mô tả quy trình AI cần làm (theo từng bước, dùng phương pháp, minh họa bằng ví dụ, hoặc tham chiếu dữ liệu).
- Performance Description: mô tả hành vi mong muốn của AI trong quá trình tương tác (trả lời ngắn gọn, chi tiết, thách thức giả định, hoặc chỉ đưa giải pháp).