Prompting cơ bản | P2

Bạn có thể dùng prompt đơn giản mà vẫn có được kết quả tốt, nhưng chất lượng kết quả phụ thuộc vào lượng thông tin mà bạn cung cấp và độ khéo léo của Prompt. Prompt chứa thông tin logic, đầy đủ, như hướng dẫn, câu hỏi, ví dụ, v.v… sẽ truyền đạt cho mô hình, hướng dẫn mô hình hiểu và đưa ra kết quả hiệu quả hơn.

P1: Settings trong OpenAI Background

Hãy xem ví dụ bằng một Prompt đơn giản sau:

Prompt: bầu trời là

Output: màu xanh

Hãy tưởng tượng bạn đang chơi một trò chơi mà bạn phải đoán xem ai đó đang nghĩ gì dựa trên gợi ý. Nếu gợi ý là “Bầu trời”, bạn có thể đoán những thứ khác nhau như “xanh lam”, “mây” hoặc “nắng”. Trong trò chơi này, dự đoán của bạn dựa trên gợi ý được đưa ra.

Đôi khi, chỉ nói Bầu trời là không cung cấp đủ thông tin để mô hình biết chính xác bạn muốn gì. Nếu bạn muốn một loại câu trả lời cụ thể, bạn cần cung cấp thêm chi tiết hoặc ngữ cảnh. Hãy xem ví dụ sau:

Prompt: Hoàn thành câu: Bầu trời là

Output: màu xanh vào ban ngày và tối vào ban đêm.

Như vậy có tốt hơn không? Với Prompt như vậy, bạn đang hướng dẫn mô hình hoàn thành câu để Output tốt hơn nhiều vì nó tuân theo chính xác những gì bạn bảo nó làm hoàn thành câu. Cách tiếp cận này trong việc thiết kế lời nhắc hiệu quả để hướng dẫn mô hình thực hiện một nhiệm vụ mong muốn được gọi là Prompt Engineering (kỹ thuật nhắc).

Ví dụ ở trên là minh họa cơ bản về những gì có thể thực hiện được với LLM (Large Language Model) ngày nay. LLM ngày nay có thể thực hiện tất cả các loại nhiệm vụ nâng cao, từ tóm tắt văn bản đến suy luận toán học đến tạo mã.

Các vai trò khác nhau trong mô hình:

  • System Message (Thông báo hệ thống) : Điều này giống như thiết lập các quy tắc của trò chơi. Nó cho mô hình biết cách hành động nói chung. Ví dụ: “Hãy thân thiện và đưa ra câu trả lời hữu ích”.
  • User Message (Thông báo người dùng) : Đây là lời nhắc bạn đưa ra. Ví dụ: “Bầu trời là”.
  • Assistant Message (Thông báo trợ lý): Đây là phản hồi của mô hình. Ví dụ: “màu xanh”.

Định dạng Prompt

Bạn đã thử một Prompt rất đơn giản ở trên. Một Prompt chuẩn có định dạng như sau:

<Câu hỏi>?

hoặc

<Hướng dẫn>

Bạn có thể định dạng thành định dạng QA câu hỏi (Question) – câu trở lời (Answer), đây là định dạng chuẩn trong nhiều tập dữ liệu QA, như sau:

Q: ?
A:

Prompt như vậy được gọi là zero-shot Prompting, tức là bạn đang trực tiếp nhắc mô hình trả lời mà không có bất kỳ ví dụ hoặc minh họa nào về nhiệm vụ bạn muốn nó thực hiện. Một số mô hình ngôn ngữ lớn có khả năng thực hiện zero-shot Prompting nhưng điều này phụ thuộc vào độ phức tạp và kiến ​​thức về nhiệm vụ đang thực hiện cũng như các nhiệm vụ mà mô hình được đào tạo để thực hiện tốt.

Hầu hết các mô hình ngôn ngữ ngày nay như ChatGPT, Bing, v.v… không còn yêu cầu bạn phải đặt <Q> hoặc <Câu hỏi> trước mỗi Prompt nữa, các mô hình ngôn ngữ đều có thể ngầm hiểu bạn đang đặt câu hỏi.

Với định dạng tiêu chuẩn ở trên, một kỹ thuật Prompt phổ biến và hiệu quả được gọi là few-shot prompting (nhắc nhở vài lần) trong đó bạn cung cấp các ví dụ mẫu (tức là minh họa) được gọi là exemplars. Ví dụ:

Promt:

Thật tuyệt vời! // Tích cực
Thật tệ! // Tiêu cực
Bộ phim đó hay quá! // Tích cực
Chương trình thật chán! //

Output: Tiêu cực

Few-shot Prompts cho phép học theo ngữ cảnh, đó là khả năng của các mô hình ngôn ngữ trong việc học các nhiệm vụ được trình bày một vài lần. Trong các bài tiếp theo chúng ta sẽ tìm hiểu nhiều hơn về zero-shot prompts và few-shot prompts.

Xem tiếp: Các thành phần của một Prompt | P3

Trả lời