Menu

Meta prompting: dùng AI để viết prompt tốt hơn

Meta prompting là dùng model để làm việc với chính prompt: viết prompt từ đầu, cải thiện prompt bạn đang có, hoặc chia một tác vụ thành nhiều prompt cho các lần gọi model khác. Dưới đây là cách làm từng việc mà không nhận về một prompt dài lê thê.

Mọi prompt bên dưới đều có thể chỉnh sửa: thay đổi nó, rồi mở trong ChatGPT, Claude hoặc ứng dụng AI khác.

Meta prompting là viết prompt về prompt: thay vì nhờ model làm một tác vụ, bạn nhờ nó viết prompt cho tác vụ đó, cải thiện một prompt bạn đã có, hoặc chia tác vụ thành các prompt nhỏ hơn để những lần gọi model khác thực hiện. Hai cách đầu là mẹo dùng hằng ngày, chạy được trên ChatGPT, Claude và Gemini. Cách thứ ba là một kỹ thuật từ nghiên cứu, trong đó một instance của model đóng vai conductor (người điều phối) cho nhiều instance khác.

Cả ba đều dựa trên cùng một thực tế: các model hiện nay đã đọc rất nhiều văn bản về cách ra chỉ dẫn cho model, nên chúng giỏi phát hiện những gì một prompt còn thiếu. Chúng cũng giỏi không kém trong việc lấp những chỗ trống đó bằng phỏng đoán, và đó là điều chính bạn cần đề phòng.

Nhờ model viết prompt

Cách kém nhất để tạo prompt là "viết cho tôi một prompt để làm X". Model không biết gì về X của bạn, nên nó viết một prompt chung chung cho phiên bản trung bình của công việc đó. Cách khắc phục là bắt nó hỏi trước. Câu hỏi buộc phần ngữ cảnh còn thiếu lộ ra, và câu trả lời của bạn trở thành nội dung chính của prompt.

Để model phỏng vấn bạn
Fill in
Tôi cần một prompt có thể dùng lại cho công việc này: biến ghi chú cuộc họp của tôi thành một email tóm tắt ngắn gửi nhóm. Trước khi viết prompt, hãy hỏi tôi tối đa năm câu về những gì bạn cần biết để viết nó cho tốt (người đọc, nội dung, độ dài, giọng văn, những gì nên bỏ ra). Hỏi tất cả cùng lúc, có đánh số. Sau khi tôi trả lời, hãy viết prompt trong một khối code, với [NGOẶC VUÔNG] cho những phần tôi sẽ điền mỗi lần.
Try it
Example replyReplies vary between models and runs.
  1. Ai đọc email này: chỉ những người đã dự cuộc họp, hay cả quản lý và các nhóm khác?
  2. Mỗi bản tóm tắt phải luôn có những gì? Ví dụ các quyết định đã đưa ra, việc cần làm kèm người phụ trách và hạn chót, và các câu hỏi còn bỏ ngỏ.
  3. Email nên dài bao nhiêu, và bạn thích gạch đầu dòng hay đoạn văn ngắn?
  4. Nhóm của bạn dùng giọng văn nào trong email: trang trọng, trung tính hay thân mật?
  5. Có điều gì tuyệt đối không được xuất hiện không, chẳng hạn chuyện bên lề, nhận xét cá nhân hay số liệu mật?

Trả lời các câu hỏi trong một tin nhắn và bạn sẽ nhận được một prompt chứa các quyết định của bạn, chứ không phải giá trị mặc định của model. Hãy lưu nó lại: một prompt có placeholder chính là một prompt mẫu bạn có thể dùng mỗi tuần.

Cải thiện prompt bạn đang có

"Cải thiện prompt này" là một trong những meta prompt phổ biến nhất, và kiểu thất bại điển hình của nó hiện ra ở tab đầu tiên bên dưới. Model làm prompt dài hơn và tự tin hơn bằng cách bịa ra chi tiết: người đọc, số chữ, lời kêu gọi hành động. Mỗi chi tiết bịa ra đều nghe hợp lý, và mỗi chi tiết là một quyết định bạn chưa hề đưa ra. Tab thứ hai cho model các quy tắc để viết lại.

Cải thiện prompt này: "Tóm tắt bài viết này cho bản tin của tôi."
Try it
Example replyReplies vary between models and runs.

Đây là phiên bản đã cải thiện của prompt:

"Bạn là một chuyên gia viết và biên tập nội dung với nhiều năm kinh nghiệm trong ngành xuất bản số. Hãy tóm tắt bài viết sau cho bản tin của tôi, vốn được đọc bởi những người làm việc bận rộn trong ngành công nghệ. Viết một bản tóm tắt hấp dẫn dài từ 150 đến 200 chữ với giọng văn thân thiện nhưng chuyên nghiệp. Mở đầu bằng một câu thu hút, làm nổi bật ba ý quan trọng nhất và kết thúc bằng lời kêu gọi người đọc xem toàn bộ bài viết."

Phiên bản này thêm vai trò, người đọc, độ dài, giọng văn và cấu trúc rõ ràng, giúp bạn có những bản tóm tắt tập trung và hữu ích hơn.

Câu trả lời đầu tiên không sai, nhưng nó tự tiện: nếu bản tin của bạn dành cho những người mê làm vườn, cụm "những người làm việc bận rộn trong ngành công nghệ" sẽ âm thầm lái mọi bản tóm tắt đi chệch hướng. Câu trả lời thứ hai làm ít hơn và để bạn giữ quyền quyết định những điều quan trọng. Các placeholder còn cho bạn thấy prompt gốc thiếu ngữ cảnh nào, điều này vẫn hữu ích ngay cả khi bạn bỏ bản viết lại đi.

Kiểm tra prompt do model viết trước khi tin dùng

Một prompt do model viết thường đọc rất trôi chảy, và chính điều đó khiến các vấn đề của nó dễ bị bỏ sót. Hãy tìm những điểm sau trước khi dùng:

  • Yêu cầu bịa ra. Bất kỳ độ dài, người đọc, giọng văn hay quy tắc nào bạn không yêu cầu. Xóa đi hoặc thay bằng câu trả lời thật của bạn.
  • Vai trò chung chung. "Bạn là một chuyên gia đẳng cấp thế giới" chỉ làm prompt dài thêm mà chẳng được bao nhiêu. Vai trò có ích khi nó nêu rõ người đọc và tiêu chuẩn; xem role prompting.
  • Lặp lại. Prompt do model tạo thường nói cùng một chỉ dẫn theo ba cách. Một câu rõ ràng cũng hiệu quả như vậy và ít chỗ cho mâu thuẫn hơn.
  • Không thử nghiệm. Chỉ đọc prompt thì bạn biết rất ít về kết quả của nó. Hãy chạy nó trên ba hoặc bốn đầu vào thật, kể cả một trường hợp khó, rồi so sánh đầu ra với kết quả từ prompt cũ. Lặp lại để cải thiện prompt mô tả cách làm việc này mà không tự đánh lừa mình.

Model cũng có thể giúp bạn chẩn đoán một prompt bị hỏng. Khi một prompt cho kết quả tệ, hãy dán prompt, đầu vào và đầu ra tệ đó, rồi hỏi: "Phần nào trong prompt này nhiều khả năng gây ra đầu ra này nhất? Hãy đề xuất thay đổi nhỏ nhất có thể sửa được nó." Một chẩn đoán có trọng tâm hữu ích hơn việc viết lại toàn bộ, vì bạn biết được chỉ dẫn nào đã gây lỗi.

Phương pháp conductor (Suzgun và Kalai, 2024)

Trong nghiên cứu, "meta-prompting" còn là tên một phương pháp cụ thể trong bài báo năm 2024 của Suzgun và Kalai, "Meta-Prompting: Enhancing Language Models with Task-Agnostic Scaffolding". Một instance của model, gọi là conductor, nhận tác vụ cùng với các chỉ dẫn tổng quát cố định, giống nhau cho mọi tác vụ. Nó chia tác vụ thành nhiều phần, và với mỗi phần lại viết một prompt cho một "chuyên gia": một lần gọi mới tới chính model đó, với chỉ dẫn do conductor viết riêng cho phần ấy. Các chuyên gia chỉ thấy những gì conductor gửi cho họ, không thấy toàn bộ lịch sử, nên họ kiểm tra công việc với con mắt mới. Conductor đọc câu trả lời của họ, yêu cầu xác minh khi nghi ngờ một câu trả lời nào đó, rồi ghép thành câu trả lời cuối cùng. Trong một số thí nghiệm, một trong các chuyên gia có thể chạy code Python.

Các tác giả thử nghiệm phương pháp này với GPT-4 trên nhiều loại tác vụ, gồm câu đố Game of 24, tìm nước chiếu hết trong một nước cờ, các câu đố lập trình Python và viết thơ sonnet. Tính trung bình trên các tác vụ, cách thiết lập conductor có trình thông dịch Python thắng cách viết prompt thông thường và các khung prompting khác mà họ đem ra so sánh.

Đây là một chương trình chứ không phải một tin nhắn chat: mỗi lần gọi chuyên gia là một request riêng do code của bạn gửi đi, giống cách prompt chaining chuyển đầu ra giữa các bước. Điểm khác là trong một chuỗi prompt, bạn thiết kế các bước từ trước, còn conductor quyết định các bước khi đang chạy. Sự linh hoạt đó tốn nhiều lần gọi hơn và khó gỡ lỗi hơn, nên với một tác vụ mà bạn đã biết rõ các bước, một chuỗi cố định thường là lựa chọn tốt hơn.

Câu hỏi thường gặp

Meta prompting là gì?

Meta prompting là dùng mô hình ngôn ngữ để làm việc với prompt thay vì với chính tác vụ: nhờ nó viết một prompt, viết lại một prompt để cho kết quả tốt hơn, hoặc chia một tác vụ thành các prompt con cho những lần gọi model khác. Nghĩa cuối cùng là phương pháp trong bài báo "Meta-Prompting" năm 2024 của Suzgun và Kalai, trong đó một lần gọi model điều phối các lần gọi mới tới chính model đó.

Prompt nào tốt để ChatGPT viết prompt cho bạn?

Mô tả công việc mà prompt sẽ làm, rồi yêu cầu model hỏi bạn trước khi viết bất cứ thứ gì: "Trước khi viết prompt, hãy hỏi tôi tối đa năm câu về những gì bạn cần biết." Trả lời các câu hỏi đó, rồi yêu cầu prompt cuối cùng trong một khối code, có placeholder cho những phần thay đổi mỗi lần dùng. Phần lớn giá trị đến từ các câu hỏi, vì chúng làm lộ ra phần ngữ cảnh bạn quên cung cấp.

Prompt do AI viết có tốt hơn prompt tôi tự viết không?

Thường thì chúng được sắp xếp gọn hơn và đầy đủ hơn, nhưng cũng thường dài hơn mức cần thiết. Model không thể biết người đọc, dữ liệu hay tiêu chuẩn của bạn, nên prompt nó tạo ra lấp những chỗ trống đó bằng các phỏng đoán nghe có vẻ hợp lý. Hãy coi nó là bản nháp: xóa mọi thứ bạn không yêu cầu, rồi thử nó với đầu vào thật.

Vì sao model thêm "You are an expert" vào mọi prompt mà nó cải thiện?

Có lẽ vì rất nhiều prompt được công bố mở đầu như vậy, nên model coi đó là một phần của dáng vẻ một prompt đã được cải thiện. Một vai chuyên gia chung chung hiếm khi thay đổi được nhiều; một vai cụ thể, nêu rõ người đọc và tiêu chuẩn, mới tạo khác biệt. Khi nhờ cải thiện, hãy nói rõ bạn muốn thêm những loại nội dung nào và dặn model không thêm yêu cầu mà bạn chưa nêu.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu