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

ND Minh Đức
11/4/2024 12:57Phản hồi: 38
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


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.

1. Bắt AI nhập vai


Ở 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.

Quảng cáo



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 Miêu tả chi tiết trong prompt


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.

3 Xác định định dạng của câu trả lời đầu ra


Đâ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é.
38 bình luận
Chia sẻ

Xu hướng

ZippoCNT
ĐẠI BÀNG
2 tháng
Cảm ơn bạn , rất chi tiết . Bài viết khá hay
thethai94
ĐẠI BÀNG
2 tháng
bài viết chất lượng
tourist123
ĐẠI BÀNG
2 tháng
hay đấy. chắc phải học khóa viết câu lệnh cho AI
Bài viết rất chi tiết dễ hiểu, cảm ơn bạn
Meo U
ĐẠI BÀNG
2 tháng
Mình đã dùng AI để xử lý theo kiểu chia nhỏ như trong bài viết để tạo các file trình chiếu phục vụ công tác huấn luyện nghề nghiệp nhưng câu lệnh theo kiểu "nhập vai" thực sự rất có ích cho việc đa dạng hóa bài giảng. Cảm ơn tác giả rất nhiều
Mình từng thử cùng 1 câu hỏi hỏi cho cả 3 AI : Chat GPT, Gemini, Coplilot thì thấy Copilot giải thích rõ ràng hơn còn Chat GPT, Gemini trả lời ngắn gọn và trả lời gần như nhau
@anhlucky2 Mình lập dàn ý nghiên cứu khoa học, bắt Copilot viết dài ra rất hiệu quả 😆
Song Sanh
ĐẠI BÀNG
2 tháng
@anhlucky2 Gemini có menu chỉnh câu trả lời dài chi tiết hơn đc mà bạn.
amdxxx
TÍCH CỰC
2 tháng
Cám ơn bác nhiều vì bài viết rất hữu ích với mình! Cũng đang tập tành "ra lệnh" cho A.i mà toàn ra kết quả gì đâu 😃
Dùng chatbot để làm 1 công việc chuyên sâu hay nghiên cứu thì là điều KHÔNG THỂ, nó chỉ đơn giản lấy nội dung sẵn có thôi
@Donald Tăm Thì bản chất nó đi thu thập từ big data mà, nhưng nếu viết bài báo hay nghiên cứu khoa học thì bắt nó trích nguồn APA để tăng độ tin cậy là dư sức. Còn danh sách nguồn APA thì mình chỉ định nó chọn hoặc nó chọn cũng đc hết.
KhanhNX12
ĐẠI BÀNG
2 tháng
Bài viết hay và chất lượng
Copilot từ lúc đổi tên từ Bing thì đáng giá vãi luôn. Nên tick vào phần "chính xác" nha các bác, chứ mấy phần kia nó vẫn cùi lắm
Tức mình Copilot nó bị giới hạn chỉ 30 câu hỏi nên đôi khi e cần nó giúp vấn đề lớn thì chia nhỏ prompt ra đôi khi vẫn không đủ để nó giải quyết hết
Buồn ghê...
Bài viết chất lượng quá, giúp mình có thêm kiến thức bổ ích khi sử dụng các công cụ AI hiện nay.
TMe
ĐẠI BÀNG
2 tháng
Cảm ơn tác giả rất nhiều, rất bổ ích
nlht
TÍCH CỰC
2 tháng
Mình chỉ dùng AI để viết văn mẫu vô thưởng vô phạt. Còn để nghiên cứu thì dùng tư duy tổng hợp nguồn tài liệu chứ ko dùng tool AI để móm nội dung
TheKites
ĐẠI BÀNG
2 tháng
Sức mạnh thực sự của các mô hình ngôn ngữ lớn là rất mạnh. Mô tả cụ thể và chi tiết yêu cầu của các bạn sẽ giúp gia tăng xác suất đạt được thứ mình muốn :v
Ngầu đấy
Cảm ơn tác giả đã chia sẻ rất chân thành, Trước đây đã thấy rất nhiều khóa học cùng mục đích được quảng cáo trên fb, cũng may là chưa mua 😆)
Bài viết hay quá!
kemmet
ĐẠI BÀNG
2 tháng
Mình làm việc với API của openai và azure whisper thì cấu trúc nó thuờng thế này:

Role + Instruction để tạo ra 1 assistance xuyên suốt trong cuộc hội thoại

Khi có 1 assistances thì đưa ra 1 format + các chỉ dẫn + 1 chỉ dẫn ngắt lệnh để hiệu chỉnh AI (Kiểu khi tôi nói là XXX thì kèm nội dung sau XXX đó thì nó là chỉ dẫn hoặc sự điều chỉnh nào đó) = Thread

Có Thread rồi thì bắt đầu đưa ra câu hỏi cho nó

VD :
Tạo assistance: Bạn là giáo viên, và nhiệm vụ của bạn là chuyển các câu văn của tôi về dạng tiếng anh chuẩn
Tạo Thread : Truớc khi bắt đầu thực thi, nếu câu văn của tôi không chuẩn, vui lòng sửa lại cho đúng theo định dạng Câu gốc - câu chỉnh sửa. Nếu câu ổn thì ghi là None. Không làm bất cứ yêu cầu nào khác cho đến khi tôi ghi dòng chữ ABCDEF
@kemmet Cảm ơn bạn
Bài viết rất có ích

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019