Cấu trúc căn bản của 1 prompt để bắt ChatGPT/Copilot/Gemini làm việc đúng ý

Prompt 101: Cấu trúc căn bản của 1 prompt để bắt ChatGPT/Copilot/Gemini làm việc đúng ý
Viết câu lệnh hay Prompt Engineering là cả một nghệ thuật giao tiếp với các model AI để bắt nó trả về kết quả đúng nhu cầu / đúng ý cho chúng ta. Nắm được cách sử dụng prompt sẽ giúp chúng ta khai thác được các tiềm năng của model AI mang lại, bắt nó làm việc đúng ý chúng ta. Mục đích cuối cùng là dùng AI để nâng cao hiệu suất công việc của chúng ta.

Nếu như Stable Diffusion tạo ảnh cũng dùng prompt, thì tương tự, chúng ta cũng dùng Prompt để khai thác thông tin, yêu cầu các chatbot AI cung cấp, xử lý thông tin cho chúng ta. Các model hiện tại của OpenAI, Google hay các đơn vị khác để được training với tập dữ liệu cực kỳ khủng khiếp, biến các chatbot trở thành một ông “giáo sư biết tuốt và nếu biết khai thác, từ các việc cơ bản như tra cứu thông tin, học hỏi, tìm hiểu cách làm một cái gì đó, tìm phương pháp hiệu quả của một công việc gì đó, tạo ra một nội dung gì đó, tóm tắt cái gì đó,…. để phục vụ cho đủ thứ ngành nghề đều có thể tận dụng chatbot.

Prompt Engineering là cả một bộ môn nghệ thuật giao tiếp model AI. Có rất nhiều cách tiếp cận trong việc tạo một promtp, bên dưới đây là cấu trúc của 1 prompt căn bản nhất để ra lệnh cho chatbot. Từ cấu trúc này sẽ dẫn tới khá nhiều biến thể cho những task cụ thể, phạm vi bài viết này mình chỉ xoay quanh một cấu trúc prompt cơ bản, chứa các thành phần quan trọng nhất thôi nha.


Cấu trúc một prompt tiêu chuẩn, đủ để AI có thể hiểu dược chúng ta cần gì và trả về câu trả lời đúng như kỳ vọng của chúng ta bao gồm:

Vai trò của AI + Nhiệm vụ của AI cần phải làm gì + Định dạng văn bản đầu ra chúng ta muốn

Bên dưới, chúng ta sẽ tìm hiểu chi tiết hơn từng thành phần trên, cái nào có lưu ý gì, câu lệnh ra sao nha.


Ở bước này, bạn cần xác định AI là “người nào”? Đó chính là xác định vai trò của AI trong quá trình tạo ra câu lệnh.

1.1 Xác định vai / nghề / chuyên môn của AI

Đối với con người chúng ta, mỗi cá nhân sẽ có những chuyên môn, hiểu biết, kinh nghiệm khác nhau về một vấn đề nào đó. Kỹ sư điện, kỹ sư cơ khí, kỹ sư công trình, bác sĩ nha khoa, bác sĩ tim mạch, giáo viên toán, giáo viên vật lý,… đều sẽ có những kiến thức khác nhau tùy vào lĩnh vực của mỗi người.

Thí dụ (chỉ là thí dụ nôm na cho anh em dễ hiểu thôi nha), trước câu hỏi về “thuốc trị đau răng”:

  • Một đầu bếp sẽ trả lời mang tính chung chung về thuốc, nhưng có khuynh hướng nói thêm về thức ăn cứng hay mềm khi đau răng.
  • Một bạn ca sỹ sẽ trả lời cũng mang tính chung chung nhưng có liên quan tới công việc ca hát, phát âm của bạn ấy.
  • Một bác sĩ đa khoa sẽ trả lời mang tính chi tiết hơn chút về các loại thuốc giảm đau, kháng viêm chung chung.
  • Và bác sĩ chuyên khoa nha sẽ trả lời một cách rất cụ thể rằng đau răng nguyên nhân do đâu, dùng thuốc đặc trị gì, đau nướu hay đau tủy răng,….


Bởi thế, đối với mỗi câu hỏi, việc tìm đúng người để hỏi là quan trọng để có được câu trả lời mình chúng ta cần. Chẳng ai đi hỏi thầy dạy toán về phản ứng giữa nhôm và H2SO4 cả đúng không anh em.

Tương tự như vậy, việc xác định đúng nghề nghiệp / vai trò / chuyên môn trong câu lệnh cũng quan trọng. ChatGPT hay Copilot hiện tại đã được đào tạo bởi lượng rất lớn kiến thức, từ phổ quát cho tới chuyên môn. Hãy hình dung Chatbot này giống như một ông giáo sư biết tuốt, đóng vai bác sĩ, giáo viên hay ca sĩ, kế toán…. đều được hết.

QUẢNG CÁO

Nếu trong câu lệnh chúng ta không bắt AI nhập vai nào hết, nó sẽ tự động đóng vai của một ông giáo sư chung chung, câu trả lời cũng chung chung để đúng với mọi người mọi tình huống. Và nếu vậy, đôi khi câu trả lời của nó sẽ không thỏa mãn được chúng ta.

1.2 Xác định phong cách diễn đạt / cá tính của nhân vật mà AI đóng vai

Cùng một vấn đề, mỗi con người sẽ phong cách diễn đạt khác nhau. Có người thích dùng từ chuyên môn, có người dùng thí dụ thực tế ngoài đời, có người dùng văn phong dí dỏm hài hước,… Giống như hồi nhỏ đi học, cùng là thầy dạy hóa nhưng có thầy dạy dễ hiểu, có thầy dạy khó hiểu cũng từ đây.

AI cũng vậy, nó có khả năng diễn toàn bộ các phong cách đó, miễn là bạn có yêu cầu. Nói cách khác, trong prompt, chúng ta cần dùng những từ khóa để AI Chatbot có thể xác định được rõ luôn là nó sẽ cho bạn câu giải thích kiểu gì. Thí dụ những từ khóa tính từ miêu tả phong cách như: đơn giản, rõ ràng, xúc tích, hài hước, thực tế,….

1.3 Thí dụ

Dài dòng đủ rồi, một thí dụ cho anh em dễ hiểu. Giả sử đứa cháu 8 tuổi của mình thắc mắc “trọng lực là gì?” và mình cần tra cứu Chatbot để biết chính xác mà giải thích lại cho nó dễ hiểu. Đây là đề bài, là mục tiêu mà chúng ta cần nhắm tới.

Thường thì người ta sẽ bê nguyên câu hỏi đơn giản đó vào Chatbot như bên dưới.

Prompt 1: “giải thích về trọng lực?”
Và câu trả lời của nó như bên dưới.
1.jpg

Câu trả lời trên của nó là đúng. NHƯNG, nó có đáp ứng được nhu cầu của chúng ta là “giải thích cho đứa cháu 8 tuổi” hay không? Rõ ràng là không, giải đáp bên trên của nó vẫn rất hàn lâm, wikipedia quá thể.

Bây giờ, ta thử bắt AI nhập vai là một giáo viên vật lý phổ thông, kêu nó giải thích dễ hiểu thử xem sao.

Prompt 2: Hãy đóng vai một giáo viên vật lý ở cấp phổ thông với khả năng giải thích vấn đề một cách rõ ràng, giọng văn dể hiểu. Hãy giải thích trọng lực là gì, đưa ra thí dụ thực tế và hài hước.”

Câu trả lời chúng ta nhận được sẽ là:
2.jpg

Rõ ràng, chỉ cần miêu tả thêm các yếu tố:
Vai: giáo viên vật lý phổ thông
Đặc điểm của vai: “có khả năng giải thích vấn đề rõ ràng” + “giọng văn dễ hiểu”
Cách thức: thí dụ thực tế, hài hước

Và chúng ta có một câu trả lời của AI đã sẵn sàng dành cho đứa cháu 8 tuổi về trọng lực.


2.1 Hãy luôn miêu tả chi tiết nhiệm vụ mà bạn muốn AI làm

Yếu tố quan trọng thứ 2 trong một prompt chính là định hình được chi tiết những khía cạnh của một vấn đề mà chúng ta muốn tìm hiểu và nói điều đó với AI chatbot. Nếu không cụ thể những chi tiết này, AI sẽ không thể biết được chính xác chúng ta muốn gì. AI vẫn là máy, AI không phải thánh thần để để có thể tự hiểu được trong đầu chúng ta đang nghĩ gì. Cái này tương tự như bạn giao việc cho một nhân viên mà chỉ nói chung chung, nhân viên sẽ cho bạn một kết quả chung chung do đâu biết bạn muốn gì.

Hãy lấy thí dụ hỏi AI về thời tiết.

Prompt 1: “thời tiết hôm nay” và câu trả lời sẽ là
Screenshot 2024-04-12 at 1.11.36 PM.jpg

Prompt 2: “Dự báo thời tiết tại Đà Nẵng hôm nay và 3 ngày sắp tới, bao gồm thông tin về nhiệt độ theo độ C, độ ẩm và khả năng mưa.
Screenshot 2024-04-12 at 1.13.19 PM.jpg

Có thể thấy, việc thêm các từ khóa in đậm, chúng ta đã chỉ rõ cho Chatbot biết những khía cạnh cụ thể mà chúng ta quan tâm về thời tiết. Lúc này, kết quả mà AI trả về cũng rõ ràng theo những cái mà chúng ta quan tâm.

2.2. Tận dụng “trí nhớ” của AI để chia một nhiệm vụ phức tạp thành các nhiệm vụ nhỏ hơn nhằm thu về nội dung chi tiết hơn

Đa số các tình huống khi hỏi Chatbot cái gì đó, nó thường trả lời một cách khá ngắn gọn. Đối với các nhu cầu chuyên môn đặc thù hơn, phức tạp hơn, thì chúng ta luôn muốn AI trả về kết quả dài hơn, càng chi tiết càng tốt. Tuy nhiên, hầu hết các model chatbot hiện tại đều trả về kết quả với đâu đó khoảng 500 từ, khó mà hơn được. Dù cho chúng ta có “ép” nó bằng cách ra lệnh “viết đoạn văn về vấn đề A với độ dài 2000 từ”, hay “viết đoạn văn về vấn đề A với độ dài tối thiểu 2000 từ” hay thậm chí là “…. đoạn văn dài từ 2000 tới 3000 từ.” thì nó vẫn không vượt qua được.

Để làm được chuyện đó, chúng ta sẽ chia mục tiêu ban đầu ra thành nhiều phần.

Lấy một thí dụ, chúng ta đang cần nhờ AI viết 1 bài viết về cách tạo ra video hay.

Prompt 1 ở đây là: “Viết cho tôi một bài viết về cách tạo video hay” và kết quả trả về sẽ như bên dưới.
Screenshot-2024-04-12-at-1.19.04 PM.jpg

Prompt 2: Bây giờ, để tăng số lượng nội dung thu về. Chúng ta hãy thử tách nhu cầu đó ra thành các bước – thể hiện qua các Prompt 2.1, 2.2. 2.3,… bên dưới

Promp 2.1: Tạo ra một đề mục (tablet of content) bằng câu lệnh: “Lập danh sách các đề mục trong bài viết cách tạo một video hay
Screenshot 2024-04-12 at 1.26.48 PM.jpg

Prompt 2.2: Tiếp theo sẽ yêu cầu Chatbot viết chi tiết về 3 yếu tố đầu tiên: “Viết bài văn mô tả chi tiết về 3 đề mục đầu tiên
Screenshot 2024-04-12 at 1.26.55 PM.jpg

Prompt 2.3: Và sau đó là: “Viết tiếp bài văn mô tả chi tiết 3 đề mục tiếp theo
Screenshot 2024-04-12 at 1.27.03 PM.jpg

Prompt 2.4: Lặp lại bước trên cho đến hết với câu lệnh “Viết tiếp bài văn mô tả chi tiết 3 đề mục cuối
Screenshot 2024-04-12 at 1.27.08 PM.jpg

Prompt 2.5: Mình chưa hài lòng với kết luận, muốn nó dài hơn và mang tính tổng kết thông tin. Mình bắt nó ”
Screenshot 2024-04-12 at 1.27.16 PM.jpg

Lúc này khi gom lại, chúng ta có một bài viết dài tận 2000 chữ, miêu tả chi tiết toàn bộ quá trình tạo ra một video có chất lượng cao, có mở đầu, chi tiết các phần và kết luận rõ ràng. Nếu muốn chi tiết hơn nữa, cứ việc xé nhỏ ra tiếp. Do ban đầu chúng ta đã nhờ AI nó đánh số các đề mục, kết hợp với “bộ nhớ” của nó trong cuộc nói chuyện, chúng ta hoàn toàn điều khiển được AI kêu nó viết dài hơn ở ý mà chúng ta muốn.

Cái rút ra ở đây là thay vì chỉ dùng 1 prompt ban đầu, chúng ta sẽ tách nó ra thành nhiều prompt nhỏ, lúc này AI sẽ tập trung viết cho từng phần, từ đó chúng ta thu về kết quả nhiều chữ hơn, chi tiết hơn nhờ AI tạo ra của cùng 1 chủ đề.

2.3 Đưa cho AI nguồn text đầu vào, nhờ nó khai thác thông tin từ đó ra

Đây cũng là một cách sử dụng chat bot phổ biến để bắt nó lấy thông tin. Chúng ta có thể đưa vào một bài văn bản (hướng dẫn sử dụng thiết bị, một báo cáo, một script của video trên Youtube,…) và bắt AI tóm tắt, trích thông tin mà chúng ta cần bằng câu lệnh.

Thí dụ 1 như bên dưới. Mình gõ câu lệnh “Tóm tắt cho tôi đoạn văn bản sau: [đoạn văn bản]…
Screenshot 2024-04-12 at 1.39.42 PM.jpg
Và kết quả trả về là:
Screenshot 2024-04-12 at 1.39.21 PM.jpg


Thí dụ 2 đối với một script của video:
[Script của video] Nếu quan điểm của tác giả bài viết trên về iPhone 15 Pro Max

Và kết quả nó trả về là:
Screenshot 2024-04-12 at 1.43.04 PM.jpg

2.4 Sử dụng cú pháp

Cái này thường hay dùng khi bạn đưa cho một đoạn văn bản tham chiếu, bắt nó dựa vào đó để lấy ra thông tin bạn cần. Có thể, trong chính đoạn “văn mẫu” đó sẽ có chứa những câu hỏi, những câu giống giống với prompt ra lệnh cho AI,… Lúc này, model AI nó sẽ bị rối, không xác định được đâu mới thật sự là lệnh của người dùng. Vì vậy, chúng ta sẽ cần một số cú pháp để “khóa” cái đoạn văn mẫu đó lại, chỉ cho model AI biết “ê, cái này là đoạn văn mẫu nè, đó là chỗ lấy thông tin chứ tao không có để prompt ở trong đó.”.

Có nhiều cách khóa lại dạng này:

  • Cú pháp văn bản nằm giữa 3 dấu nháy kép: “”” [văn bản] “””
  • Cú pháp văn bản nằm giữa tag XML: <article> [văn bản] <article>
  • Cú pháp văn bản nằm giữa tag HTML: <BR> [văn bản]


Một số cách trên sẽ giúp AI phân định rõ chỗ nào là đoạn văn bạn muốn nó đọc, chỗ nào là lệnh thật sự của bạn. Bạn là người, AI vẫn là máy, nó không “khôn” như bạn nghĩ đâu.


Đây là yếu tố rất quan trọng để AI tạo ra được cái bạn muốn nó trả lời. Nếu như dùng Chatbot với mục đích tra cứu một vấn đề đơn giản, nó sẽ cho ra một câu trả lời và bạn sẵn sàng với sự bất ngờ mà câu trả lời đó mang lại thì không có gì để nói. Tuy nhiên, khi bạn dùng chatbot để phục vụ các mục đích chuyên sâu hơn, có giá trị hơn, thì bạn muốn cái mà AI trả về ở output cũng phải theo một định dạng có ích với nhu cầu của bạn. Lúc này, trong prompt ban đầu, bạn cần định hình trước cho AI luôn về format của output đầu ra.

Một số thí dụ cho anh em dễ hình dung
Screenshot 2024-04-11 at 7.44.34 PM.jpg

Xong, coi như tới đây thì chúng ta đã có thể nắm được 3 thành phần quan trọng nhất của một prompt chat với chatbot. Mình tin chắc rằng, thay vì 1 câu hỏi đơn sơ, chỉ cần cấu trúc một prompt theo các thành phần này, phản hồi của chatbot sẽ khác rất nhiều, đúng ý anh em hơn, cho chúng ta cảm giác “điều khiển” AI nhiều hơn. Tất nhiên, từ cấu trúc căn bản này sẽ dẫn ra một số biến thể tương ứng với các tình huống cụ thể khác. Hẹn anh em ở các bài viết sắp tới nhé.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *