Bỏ qua đến nội dung chính

Model based grading

📖 Nội dung bài học

Tóm tắt

Khi xây dựng quy trình đánh giá prompt, hệ thống chấm điểm cung cấp tín hiệu khách quan về chất lượng đầu ra. Grader nhận đầu ra của mô hình và trả về một loại phản hồi có thể đo lường được - thường là một số từ 1 đến 10, trong đó 10 đại diện cho chất lượng cao và 1 đại diện cho chất lượng kém.

Các loại Grader

Có ba phương pháp tiếp cận chính để chấm điểm đầu ra của mô hình:

  • Code graders - Đánh giá đầu ra theo chương trình bằng mã tùy chỉnh
  • Model graders - Sử dụng một mô hình AI khác để đánh giá chất lượng
  • Human graders - Yêu cầu con người xem xét và chấm điểm thủ công

Code Graders

Code graders cho phép bạn triển khai bất kỳ kiểm tra lập trình nào bạn có thể tưởng tượng. Các trường hợp sử dụng phổ biến bao gồm:

  • Kiểm tra độ dài đầu ra
  • Xác minh đầu ra có hoặc không chứa các từ nhất định
  • Xác thực cú pháp cho JSON, Python hoặc regex
  • Điểm số dễ đọc để đảm bảo mức độ đọc phù hợp

Model Graders

Model graders mang lại sự linh hoạt đáng kể bằng cách sử dụng một lệnh gọi API bổ sung để đánh giá đầu ra. Chúng hữu ích để đánh giá:

  • Chất lượng phản hồi
  • Chất lượng tuân theo hướng dẫn
  • Tính đầy đủ
  • Tính hữu ích
  • Tính an toàn

Human Graders

Human graders cung cấp sự linh hoạt cao nhất nhưng đi kèm với những nhược điểm đáng kể. Mặc dù con người có thể đánh giá phản hồi theo bất kỳ tiêu chí nào có thể tưởng tượng được, nhưng quy trình này tốn thời gian và tẻ nhạt.

Xác định tiêu chí đánh giá

Trước khi triển khai bất kỳ grader nào, bạn cần có tiêu chí đánh giá rõ ràng. Đối với một prompt tạo mã, bạn có thể tập trung vào:

  • Định dạng - Chỉ trả về Python, JSON hoặc Regex mà không cần giải thích
  • Cú pháp hợp lệ - Mã được tạo phải có cú pháp hợp lệ
  • Tuân thủ tác vụ - Phản hồi phải giải quyết trực tiếp tác vụ của người dùng bằng mã chính xác

Hai tiêu chí đầu tiên hoạt động tốt với code graders, trong khi tiêu chí tuân thủ tác vụ phù hợp hơn với model graders do tính linh hoạt của chúng.

Triển khai Model Grader

Model graders thường là dễ triển khai nhất. Đây là cấu trúc cơ bản:

def grade_by_model(test_case, output):
    messages = []
    add_user_message(messages, eval_prompt)
    add_assistant_message(messages, "```json")
    eval_text = chat(messages, stop_sequences=["```"])
    return json.loads(eval_text)

Prompt chấm điểm nên toàn diện và bao gồm:

  • Định nghĩa vai trò rõ ràng cho grader
  • Tác vụ ban đầu
  • Giải pháp do AI tạo ra để đánh giá
  • Yêu cầu định dạng đầu ra cụ thể

Yêu cầu nhiều hơn chỉ là một điểm số. Yêu cầu điểm mạnh, điểm yếu và lý do cùng với điểm số. Điều này ngăn mô hình mặc định cho điểm số trung bình như 6 và buộc đánh giá sâu sắc hơn.

Tích hợp Graders vào quy trình làm việc của bạn

Sau khi có hàm grader, hãy tích hợp nó vào trình chạy test case của bạn:

def run_test_case(test_case):
    output = run_prompt(test_case)
    
    # Gọi model grader
    model_grade = grade_by_model(test_case, output)
    score = model_grade["score"]
    reasoning = model_grade["reasoning"]
    
    return {
        "output": output, 
        "test_case": test_case, 
        "score": score,
        "reasoning": reasoning
    }

Sau khi chạy tất cả các test case, hãy tính điểm trung bình để có một thước đo khách quan về hiệu suất của prompt của bạn:

from statistics import mean

def run_eval(dataset):
    results = []
    for test_case in dataset:
        result = run_test_case(test_case)
        results.append(result)
    
    average_score = mean([result["score"] for result in results])
    print(f"Điểm trung bình: {average_score}")
    
    return results

Điều này cho bạn một con số cụ thể để tập trung cải thiện. Mặc dù model graders có thể hơi thất thường và có thể hưởng lợi từ hướng dẫn tốt hơn, nhưng chúng cung cấp một điểm khởi đầu cho việc đánh giá khách quan mà bạn có thể lặp lại và cải thiện.

Tải xuống

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?