Nguyên tắc thiết kế Prompt | P4

Khi thiết kế Prompt, áp dụng một số nguyên tắc đơn giản sẽ giúp bạn tạo Prompt hiệu quả.

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

Khi bạn bắt đầu thiết kế Prompt, bạn nên nhớ rằng đây là một quá trình lặp đi lặp lại đòi hỏi nhiều thử nghiệm để có được kết quả tối ưu. Bạn có thể sử dụng những ứng dụng phổ biến như OpenAI hoặc Cohere.

Bạn có thể bắt đầu từ những Prompt đơn giản sau đó thêm các thành phần như instruction (hướng dẫn), context (bối cảnh), input data (dữ liệu đầu vào), output indicator (chỉ dẫn đầu ra) để đạt được kết quả tốt hơn. Lặp lại Prompt của bạn trong suốt quá trình là rất quan trọng vì lý do này. Khi bạn đọc hướng dẫn, bạn sẽ thấy nhiều ví dụ trong đó tính cụ thể (specificity), tính đơn giản (simplicity) và súc tích (conciseness) thường sẽ mang lại cho bạn kết quả tốt hơn.

Khi bạn có một nhiệm vụ lớn liên quan đến nhiều nhiệm vụ phụ khác nhau, bạn có thể thử chia nhỏ nhiệm vụ thành các nhiệm vụ phụ đơn giản hơn và tiếp tục xây dựng khi bạn có được kết quả tốt hơn. Điều này tránh thêm quá nhiều sự phức tạp vào quá trình thiết kế Prompt ngay từ đầu.

Hướng dẫn

Bạn có thể thiết kế Prompt hiệu quả cho các tác vụ đơn giản khác nhau bằng cách sử dụng các lệnh để hướng dẫn mô hình những gì bạn muốn đạt được, chẳng hạn như “Viết”, “Phân loại”, “Tóm tắt”, “Dịch”, “Sắp xếp”, v.v.

Hãy nhớ rằng bạn cũng cần phải thử nghiệm nhiều để xem cách nào hiệu quả nhất. Hãy thử các hướng dẫn khác nhau với các từ khóa (keywords), ngữ cảnh (context) và dữ liệu (input data) khác nhau và xem cách nào hiệu quả nhất cho trường hợp sử dụng và nhiệm vụ cụ thể của bạn. Thông thường, ngữ cảnh càng cụ thể và liên quan đến nhiệm vụ bạn đang cố gắng thực hiện thì càng tốt. Mình sẽ đề cập đến tầm quan trọng của việc lấy mẫu và thêm ngữ cảnh trong các bài sau.

Lời khuyên là bạn nên đặt instruction (hướng dẫn) ở đầu Prompt. Bạn cũng có thể sử dụng một số dấu phân cách rõ ràng như “###” để phân tách phần hướng dẫn (instruction) và ngữ cảnh (context).

Prompt:

### Hướng dẫn ###
Dịch nội dung dưới đây sang tiếng Anh
Nội dung: Xin chào!

Output:

Hello!

Tính cụ thể

Hướng dẫn (instruction) và nhiệm vụ càng cụ thể, mô hình càng dễ hiểu và thực hiện theo đúng ý đồ của bạn. Prompt càng mô tả rõ ràng và chi tiết thì kết quả càng tốt. Không có tokens hoặc từ khóa cụ thể nào dẫn đến kết quả tốt hơn. Bạn cũng cần thiết kế Prompt có cấu trúc cụ thể, mô tả rõ ràng, bổ sung ví dụ cũng là cách hiệu quả để mô hình hiểu yêu cầu của bạn và cho ra kết quảng như mong muốn.

Khi thiết kế Prompt, bạn cũng nên chú ý tới độ dài. Nội dung Prompt càng xúc tích, rõ ràng, ngắn gọn thì hiệu quả càng cao. Prompt có nội dung quá dài, nhiều chi tiết không cần thiết, có thể làm ảnh hưởng tới chất lượng đầu ra. Bạn nên thực hành, lặp đi lặp lại các nội dung Prompt khác nhau, cho đến khi đạt kết quả tốt nhất.

Hãy xem một ví dụ dưới đây:

Prompt:

Trích xuất tên các địa điểm trong văn bản sau.
Định dạng mong muốn:
Địa điểm: <dấu_phẩy_địa_điểm>
Dữ liệu đầu vào: "Thủ tướng Nguyễn Tấn Dũng vừa có chuyến thăm Nhật Bản nhân dịp kỷ niệm ngày hai nước thiết lập mối quan hệ ngoại giao, thủ tướng có mặt tại Tokyo vào lúc 8 giờ sáng ngày hôm nay".

Output:

Địa điểm: Tokyo, Japan

Tính chính xác

Thiết kế Prompt một cách cụ thể và chi tiết đôi khi khiến bạn mắc sai lầm dẫn đến nội dung không chính xác. Để tránh được sai lầm này, bạn cần thiết kế Prompt cụ thể và trực tiếp, đi thẳng vào vấn đề. Bạn hãy tưởng tượng đang giao tiếp với mô hình Trí tuệ nhân tạo, thông điệp của bạn càng rõ ràng, đi vào trọng tâm thì mô hình càng dễ hiểu và cho kết quả hiệu quả.

Hãy nhìn vào ví dụ cụ thể dưới đây:

Giải thích khái niệm Prompt. Hãy giải thích ngắn gọn, chỉ một vài câu và dễ hiểu.

Bạn hoàn toàn có được kết quả tốt từ mô hình dựa trên Prompt này, tuy nhiên mô hình sẽ gặp một vài khó khăn để đưa ra kết quả tốt nhất cho bạn, mô hình khó có thể định hình được kết quả đầu ra khi nó chưa biết rõ khái niệm “hãy giải thích ngắn gọn” là bao nhiêu, “chỉ một vài câu” là bao nhiêu, và “dễ hiểu” là như thế nào.

Sử dụng 2-3 câu để giải thích khái niệm Prompt cho một học sinh 10 tuổi.

Prompt này cụ thể và rõ ràng hơn, bạn yêu cầu máy học giải thích khái niệm Prompt là gì, giải thích ngắn gọn trong 2-3 câu, một học sinh 10 tuổi có thể hiểu.

Nên và không nên

Một mẹo phổ biến khác khi thiết kế Prompt là tránh nói những gì không nên làm mà thay vào đó là nói những gì nên làm. Điều này khuyến khích tính cụ thể hơn và tập trung vào các chi tiết dẫn đến phản hồi tốt từ mô hình.

Sau đây là ví dụ về một chatbot đề xuất phim không thực hiện được chính xác những gì mình không muốn nó làm vì cách mình viết hướng dẫn (instruction) – tập trung vào những gì không nên làm.

Prompt:

Sau đây là một nhân viên tư vấn giới thiệu phim cho khách hàng. KHÔNG HỎI VỀ SỞ THÍCH. KHÔNG HỎI THÔNG TIN CÁ NHÂN.
Khách hàng: Vui lòng giới thiệu một bộ phim dựa trên sở thích của tôi.
Nhân viên tư vấn:

Output:

Dạ, em có thể giới thiệu một bộ phim dựa trên sở thích của anh chị. Anh chị muốn xem loại phim nào? Anh chị thích phim hành động, hài, lãng mạn hay phim gì?

Một Prompt tốt hơn có thể được thiết kế như sau:

Dưới đây là một nhân viên tư vấn phim cho khách hàng. Nhân viên có nhiệm vụ tư vấn cho khách hàng những bộ phim đang được xem nhiều nhất hiện nay. Nhân viên nên hỏi lựa chọn của khách hàng và không hỏi thông tin cá nhân khách hàng. Nếu nhân viên không thể tư vấn cho khách hàng, nhân viên nên trả lời "dạ xin lỗi anh chị, em không tìm thấy bộ phim nào phù hợp với yêu cầu của anh chị".
Khách hàng: Vui lòng giới thiệu một bộ phim dựa trên sở thích của tôi.
Nhân viên tư vấn:

Output:

Dạ xin lỗi anh chị, em không tìm thấy bộ phim nào phù hợp với yêu cầu của anh chị. Tuy nhiên, đây là danh sách những bộ phim đang được xem nhiều nhất hiện nay: [danh sách phim]!

Trả lời