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

Prompt engineering

📖 Nội dung bài học

Tóm tắt

Prompt engineering là quá trình cải thiện một prompt đã có để nhận được kết quả đáng tin cậy và chất lượng cao hơn. Quá trình này bao gồm việc tinh chỉnh lặp đi lặp lại – bắt đầu với một prompt cơ bản, đánh giá hiệu suất của nó, sau đó áp dụng có hệ thống các kỹ thuật kỹ thuật để cải thiện.

Quy trình cải tiến lặp đi lặp lại

Cách tiếp cận tuân theo một chu kỳ rõ ràng mà bạn có thể lặp lại cho đến khi đạt được kết quả mong muốn:

  1. Đặt mục tiêu - Xác định những gì bạn muốn prompt của mình đạt được.
  2. Viết prompt ban đầu - Tạo một bản nháp cơ bản đầu tiên.
  3. Đánh giá prompt - Kiểm tra nó dựa trên các tiêu chí của bạn.
  4. Áp dụng kỹ thuật prompt engineering - Sử dụng các phương pháp cụ thể để cải thiện hiệu suất.
  5. Đánh giá lại - Xác minh rằng các thay đổi của bạn thực sự đã cải thiện kết quả.

Bạn lặp lại hai bước cuối cho đến khi hài lòng với hiệu suất. Mỗi lần lặp lại nên cho thấy sự cải thiện có thể đo lường được trong điểm số đánh giá của bạn.

iterate

1. Đặt mục tiêu

2. Viết prompt ban đầu

3. Đánh giá baseline

4. Áp dụng kỹ thuật

5. Đánh giá lại

Hài lòng — ship prompt

Thiết lập quy trình đánh giá của bạn

Để minh họa quy trình này, chúng ta sẽ làm việc với một ví dụ thực tế: tạo một prompt để tạo kế hoạch bữa ăn một ngày cho các vận động viên. Prompt cần xem xét chiều cao, cân nặng, mục tiêu và các hạn chế ăn kiêng của vận động viên, sau đó đưa ra một kế hoạch bữa ăn toàn diện.

Thiết lập đánh giá sử dụng lớp PromptEvaluator để xử lý việc tạo tập dữ liệu và chấm điểm bởi mô hình. Khi tạo phiên bản evaluator của bạn, bạn có thể kiểm soát tính đồng thời bằng tham số max_concurrent_tasks:

evaluator = PromptEvaluator(max_concurrent_tasks=5)

Bắt đầu với giá trị đồng thời thấp (như 3) để tránh lỗi giới hạn tốc độ (rate limit errors). Bạn có thể tăng giá trị này nếu hạn ngạch API của bạn cho phép xử lý nhanh hơn.

Tạo dữ liệu kiểm tra

Hệ thống đánh giá có thể tự động tạo các trường hợp kiểm tra dựa trên yêu cầu của prompt. Bạn xác định các đầu vào mà prompt của bạn cần:

dataset = evaluator.generate_dataset(
    task_description="Write a compact, concise 1 day meal plan for a single athlete",
    prompt_inputs_spec={
        "height": "Athlete's height in cm",
        "weight": "Athlete's weight in kg", 
        "goal": "Goal of the athlete",
        "restrictions": "Dietary restrictions of the athlete"
    },
    output_file="dataset.json",
    num_cases=3
)

Giữ số lượng trường hợp kiểm tra thấp (2-3) trong quá trình phát triển để tăng tốc chu kỳ lặp lại của bạn. Bạn có thể tăng con số này cho việc xác thực cuối cùng.

Viết prompt ban đầu của bạn

Bắt đầu với một prompt đơn giản, ngây thơ để thiết lập một đường cơ sở (baseline). Đây là một ví dụ về lần thử đầu tiên, cố tình đơn giản:

def run_prompt(prompt_inputs):
    prompt = f"""
What should this person eat?

- Height: {prompt_inputs["height"]}
- Weight: {prompt_inputs["weight"]}
- Goal: {prompt_inputs["goal"]}
- Dietary restrictions: {prompt_inputs["restrictions"]}
"""
    
    messages = []
    add_user_message(messages, prompt)
    return chat(messages)

Prompt cơ bản này có thể sẽ cho kết quả kém, nhưng nó cung cấp cho bạn một điểm khởi đầu để đo lường sự cải thiện.

Thêm tiêu chí đánh giá

Khi chạy đánh giá, bạn có thể chỉ định các tiêu chí bổ sung mà mô hình chấm điểm nên xem xét:

results = evaluator.run_evaluation(
    run_prompt_function=run_prompt,
    dataset_file="dataset.json",
    extra_criteria="""
The output should include:
- Daily caloric total
- Macronutrient breakdown  
- Meals with exact foods, portions, and timing
"""
)

Điều này giúp đảm bảo prompt của bạn được đánh giá dựa trên các yêu cầu cụ thể quan trọng đối với trường hợp sử dụng của bạn.

Phân tích kết quả

Sau khi chạy đánh giá, bạn sẽ nhận được cả điểm số dạng số và báo cáo HTML chi tiết. Báo cáo cho bạn biết chính xác hiệu suất của từng trường hợp kiểm tra, bao gồm cả lý do của mô hình cho từng điểm số.

Đừng nản lòng bởi điểm số ban đầu thấp - điểm 2.3 trên 10 là điển hình cho lần thử đầu tiên. Mục tiêu là thấy sự cải thiện nhất quán khi bạn áp dụng các kỹ thuật kỹ thuật.

Báo cáo đánh giá chi tiết giúp bạn hiểu chính xác prompt của mình đang thất bại ở đâu và cần những cải tiến nào. Sử dụng phản hồi này để hướng dẫn lần lặp tiếp theo của bạn.

Bước tiếp theo

Với đường cơ sở đã được thiết lập, bạn đã sẵn sàng bắt đầu áp dụng các kỹ thuật prompt engineering cụ thể. Mỗi kỹ thuật bạn học được sẽ mang lại sự cải thiện có thể đo lường được trong điểm số đánh giá của bạn, dần dần biến prompt cơ bản của bạn thành một công cụ đáng tin cậy, hiệu suất cao.

Hãy nhớ rằng prompt engineering là một quy trình lặp đi lặp lại. Điều quan trọng là thực hiện từng thay đổi một, đánh giá tác động và xây dựng dựa trên những gì hiệu quả. Cách tiếp cận có hệ thống này đảm bảo bạn hiểu kỹ thuật nào mang lại giá trị cao nhất cho trường hợp sử dụng cụ thể của mình.

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?