Bỏ qua tới nội dung
Bài 4/12 · Prompt engineering từ cơ bản đến trung cấp (DAIR.AI)

Mẹo chung khi thiết kế prompt

Bắt đầu đơn giản, viết chỉ dẫn rõ, cụ thể, tránh mơ hồ và nói điều cần làm thay vì điều không được làm.

Cơ bản@shine19046 phút đọc

Bài này tổng hợp những mẹo cần nhớ khi thiết kế prompt, kèm ví dụ prompt tốt và chưa tốt.

Video kèm bài: General Tips for Designing Prompts trên YouTube.

Bắt đầu đơn giản

Khi bắt đầu thiết kế prompt, bạn nên nhớ rằng đây thực sự là một quá trình lặp, cần rất nhiều thử nghiệm để đạt kết quả tối ưu. Dùng một playground đơn giản của OpenAI hoặc Cohere là điểm khởi đầu tốt.

Bạn có thể bắt đầu với prompt đơn giản rồi thêm dần thành phần và ngữ cảnh khi hướng tới kết quả tốt hơn. Vì vậy, việc lặp cải tiến prompt trong suốt quá trình là rất quan trọng. Khi đọc hướng dẫn này, bạn sẽ thấy nhiều ví dụ cho thấy sự cụ thể, đơn giản và ngắn gọn thường cho kết quả tốt hơn.

Khi có một tác vụ lớn gồm nhiều tác vụ con khác nhau, bạn có thể thử chia nó thành các tác vụ con đơn giản hơn và xây dần lên khi kết quả tốt hơn. Cách này tránh đưa quá nhiều độ phức tạp vào quá trình thiết kế prompt ngay từ đầu.

Chỉ dẫn

Bạn có thể thiết kế prompt hiệu quả cho nhiều tác vụ đơn giản bằng các mệnh lệnh chỉ dẫn model điều bạn muốn đạt được, như "Write" (viết), "Classify" (phân loại), "Summarize" (tóm tắt), "Translate" (dịch), "Order" (sắp xếp)…

Hãy nhớ rằng bạn cũng cần thử nghiệm nhiều để xem cách nào hiệu quả nhất. Thử các chỉ dẫn khác nhau với từ khoá, ngữ cảnh và dữ liệu khác nhau, xem cách nào hợp nhất với trường hợp sử dụng và tác vụ cụ thể của bạn. Thông thường, ngữ cảnh càng cụ thể và liên quan tới tác vụ thì càng tốt. Chúng ta sẽ bàn về tầm quan trọng của việc lấy mẫu và thêm ngữ cảnh ở các bài sau.

Một số người khuyên đặt chỉ dẫn ở đầu prompt. Một khuyến nghị khác là dùng dấu phân cách rõ ràng như "###" để tách chỉ dẫn và ngữ cảnh.

Ví dụ:

Prompt:

code
### Instruction ###
Translate the text below to Spanish:

Text: "hello!"

Đầu ra:

code
¡Hola!

Tính cụ thể

Hãy thật cụ thể về chỉ dẫn và tác vụ bạn muốn model thực hiện. Prompt càng mô tả rõ và chi tiết, kết quả càng tốt. Điều này đặc biệt quan trọng khi bạn có một kết quả hoặc phong cách sinh mong muốn. Không có token hay từ khoá đặc biệt nào dẫn tới kết quả tốt hơn. Quan trọng hơn là có định dạng tốt và prompt mô tả rõ. Thực tế, đưa ví dụ vào prompt rất hiệu quả để có đầu ra mong muốn theo định dạng cụ thể.

Khi thiết kế prompt, bạn cũng nên để ý độ dài prompt vì có giới hạn về độ dài prompt. Hãy cân nhắc nên cụ thể và chi tiết đến đâu. Thêm quá nhiều chi tiết không cần thiết chưa chắc là cách tốt. Các chi tiết nên liên quan và đóng góp cho tác vụ. Đây là điều bạn sẽ cần thử nghiệm rất nhiều. Hướng dẫn khuyến khích thử nghiệm và lặp nhiều để tối ưu prompt cho ứng dụng của bạn.

Ví dụ, hãy thử một prompt đơn giản để trích thông tin cụ thể từ một đoạn văn bản.

Prompt:

code
Extract the name of places in the following text. 

Desired format:
Place: <comma_separated_list_of_places>

Input: "Although these developments are encouraging to researchers, much is still a mystery. “We often have a black box between the brain and the effect we see in the periphery,” says Henrique Veiga-Fernandes, a neuroimmunologist at the Champalimaud Centre for the Unknown in Lisbon. “If we want to use it in the therapeutic context, we actually need to understand the mechanism.“"

Đầu ra:

code
Place: Champalimaud Centre for the Unknown, Lisbon

Văn bản đầu vào lấy từ bài viết này trên Nature.

Tránh mơ hồ

Với các mẹo trên về việc viết chi tiết và cải thiện định dạng, rất dễ rơi vào bẫy muốn quá "khéo" với prompt và tạo ra những mô tả thiếu chính xác. Thường thì cụ thể và trực tiếp sẽ tốt hơn. Điều này rất giống giao tiếp hiệu quả: càng trực tiếp, thông điệp càng được truyền đạt hiệu quả.

Ví dụ, bạn muốn tìm hiểu khái niệm prompt engineering. Bạn có thể thử:

code
Explain the concept prompt engineering. Keep the explanation short, only a few sentences, and don't be too descriptive.

Prompt trên không nói rõ dùng bao nhiêu câu và theo phong cách nào. Bạn vẫn có thể nhận câu trả lời khá tốt, nhưng prompt tốt hơn là prompt rất cụ thể, ngắn gọn và đi thẳng vào vấn đề. Chẳng hạn:

code
Use 2-3 sentences to explain the concept of prompt engineering to a high school student.

Nên làm hay không nên làm?

Một mẹo phổ biến khác khi thiết kế prompt là tránh nói điều không được làm, thay vào đó hãy nói điều cần làm. Cách này khuyến khích sự cụ thể và tập trung vào những chi tiết dẫn tới câu trả lời tốt từ model.

Đây là ví dụ một chatbot gợi ý phim thất bại đúng ở điều tác giả không muốn nó làm, vì cách viết chỉ dẫn tập trung vào điều không được làm.

Prompt:

code
The following is an agent that recommends movies to a customer. DO NOT ASK FOR INTERESTS. DO NOT ASK FOR PERSONAL INFORMATION.

Customer: Please recommend a movie based on my interests.
Agent: 

Đầu ra:

code
Sure, I can recommend a movie based on your interests. What kind of movie would you like to watch? Do you prefer action, comedy, romance, or something else?

Đây là một prompt tốt hơn:

Prompt:

code
The following is an agent that recommends movies to a customer. The agent is responsible to recommend a movie from the top global trending movies. It should refrain from asking users for their preferences and avoid asking for personal information. If the agent doesn't have a movie to recommend, it should respond "Sorry, couldn't find a movie to recommend today.".

Customer: Please recommend a movie based on my interests.
Agent:

Đầu ra:

code
Sorry, I don't have any information about your interests. However, here's a list of the top global trending movies right now: [list of movies]. I hope you find something you like!

Một số ví dụ trên được phỏng theo bài viết "Best practices for prompt engineering with OpenAI API".

Nguồn