Thực hành viết Prompt thông dụng | P5

Trong các bài học trước mình đã giới thiệu một số ví dụ cơ bản về Prompt. Phần này mình sẽ cung cấp thêm các ví dụ về cách sử dụng Prompt để hoàn thành các nhiệm vụ khác nhau và giới thiệu các khái niệm chính trong quá trình thực hiện. Thông thường, cách tốt nhất để học các khái niệm là thông qua các ví dụ. Một số ví dụ dưới đây minh họa cách bạn có thể sử dụng Prompt được thiết kế tốt để thực hiện các loại nhiệm vụ khác nhau.

Tóm tắt nội dung

Tóm tắt nội dung (Text summarization) là một trong những nhiệm vụ được sử dụng nhiều nhất trong các ứng dụng LLM như ChatGPT. Tóm tắt nội dung bao gồm nhiều thể loại như truyện, tin tức, văn bản v.v… cũng như nhiều lĩnh vực như văn hoá, thể thao, du lịch, khoa học v.v… Tóm tắt nội dung là một trong những ứng dụng tiềm năng nhất trong tương lai, nó giúp truyền tải những tài liệu dài và khó hiểu thành nội dung ngắn gọn dễ hiểu giúp nhiều người có thể tiếp cận.

Hãy thử thực hiện một tác vụ tóm tắt cơ bản bằng Prompt, ví dụ bạn muốn tìm hiểu về kháng sinh, bạn dùng Prompt như sau:

Giải thích kháng sinh

A:

Output:

Kháng sinh là các chất hóa học được sử dụng để tiêu diệt hoặc ức chế sự phát triển của vi khuẩn. Chúng được dùng để điều trị các bệnh nhiễm trùng do vi khuẩn gây ra. Kháng sinh không có tác dụng đối với virus, nấm, hoặc các ký sinh trùng khác.

Chữ “A:” viết tắt Answer (trả lời) là định dạng nhắc nhở rõ ràng mà bạn sử dụng trong tác vụ hỏi đáp. Bạn sử dụng nó ở đây để cho mô hình biết rằng có một câu trả lời được mong đợi sau đó. Trong ví dụ này, không rõ điều này hữu ích như thế nào so với việc không sử dụng nó nhưng chúng ta sẽ để dành cho các ví dụ sau. Hãy giả sử rằng đây là quá nhiều thông tin và bạn muốn tóm tắt thêm. Trên thực tế, bạn có thể hướng dẫn mô hình tóm tắt thành một câu như sau:

Giải thích nội dung sau bằng một câu:

"""Kháng sinh là các chất hóa học được sử dụng để tiêu diệt hoặc ức chế sự phát triển của vi khuẩn. Chúng được dùng để điều trị các bệnh nhiễm trùng do vi khuẩn gây ra. Kháng sinh không có tác dụng đối với virus, nấm, hoặc các ký sinh trùng khác."""

Output:

Kháng sinh là các chất hóa học dùng để tiêu diệt hoặc ức chế vi khuẩn, chỉ có tác dụng trong điều trị nhiễm trùng do vi khuẩn và không hiệu quả đối với virus, nấm, hay ký sinh trùng khác.

Khai thác thông tin

Các mô hình ngôn ngữ giống như những robot thông minh có thể viết và hiểu văn bản, đồng thời chúng cũng có thể sắp xếp mọi thứ thành các danh mục và thực hiện nhiều công việc khác liên quan đến văn bản như khai thác và trích xuất thông tin (information extraction).

Dưới đây là ví dụ Prompt trích xuất thông tin từ một đoạn văn nhất định:

Hãy đề cập đến sản phẩm dựa trên mô hình ngôn ngữ lớn được đề cập trong đoạn văn sau đây:

"""Tuyên bố đóng góp của tác giả và lời cảm ơn trong các bài báo nghiên cứu phải nêu rõ ràng và cụ thể liệu tác giả có sử dụng các công nghệ AI như ChatGPT trong quá trình chuẩn bị bản thảo và phân tích của họ hay không và ở mức độ nào. Họ cũng phải chỉ ra mô hình ngôn ngữ lớn (LLM) nào đã được sử dụng. Điều này sẽ cảnh báo các biên tập viên và người đánh giá xem xét kỹ lưỡng hơn các bản thảo để tìm ra các thành kiến ​​tiềm ẩn, sự không chính xác và ghi nguồn không phù hợp. Tương tự như vậy, các tạp chí khoa học phải minh bạch về việc sử dụng LLM của họ, ví dụ như khi lựa chọn các bản thảo đã nộp."""

Output:

Sản phẩm dựa trên mô hình ngôn ngữ lớn được đề cập trong đoạn văn là ChatGPT.

Bây giờ, bạn hẳn đã thấy rõ ràng rằng bạn có thể yêu cầu mô hình thực hiện các tác vụ khác nhau chỉ bằng cách hướng dẫn mô hình phải làm gì. Đó là khả năng mạnh mẽ mà các nhà phát triển sản phẩm AI đang sử dụng để xây dựng các sản phẩm và trải nghiệm mạnh mẽ.

Hỏi đáp

Một trong những cách tốt nhất để mô hình phản hồi bằng các câu trả lời cụ thể là cải thiện định dạng của Prompt. Như đã đề cập trong bài Các thành phần của một Prompt, Prompt có thể kết hợp các hướng dẫn (instruction), ngữ cảnh (context), dữ liệu đầu vào (input data) và chỉ báo đầu ra (output indicator) để có được kết quả tốt hơn. Mặc dù các thành phần này không bắt buộc, nhưng nó giúp mang lại kết quả tốt hơn vì bạn càng cụ thể với hướng dẫn, bạn sẽ càng có được kết quả tốt hơn. Dưới đây là ví dụ về cách thức thực hiện một Prompt có cấu trúc hơn:

Trả lời câu hỏi dựa trên ngữ cảnh bên dưới. Trả lời ngắn gọn và súc tích trong một câu. Trả lời "Không chắc chắn về câu trả lời" nếu không chắc chắn về câu trả lời.

Ngữ cảnh: Teplizumab có nguồn gốc từ một công ty dược phẩm ở New Jersey tên là Ortho Pharmaceutical. Tại đó, các nhà khoa học đã tạo ra phiên bản đầu tiên của kháng thể, được gọi là OKT3. Ban đầu có nguồn gốc từ chuột, phân tử này có thể liên kết với bề mặt tế bào T và hạn chế khả năng tiêu diệt tế bào của chúng. Năm 1986, nó đã được chấp thuận để giúp ngăn ngừa tình trạng đào thải nội tạng sau khi ghép thận, khiến nó trở thành kháng thể điều trị đầu tiên được phép sử dụng cho con người.

Câu hỏi: OKT3 ban đầu có nguồn gốc từ đâu?

Trả lờ:

Output:

OKT3 ban đầu có nguồn gốc từ chuột.

Phân loại văn bản

bài học trước, bạn đã sử dụng các hướng dẫn đơn giản để thực hiện một nhiệm vụ. Là một kỹ sư thiết kế Prompt, bạn cần phải cung cấp các hướng dẫn (instruction) tốt hơn để có được kết quả tốt hơn. Nhưng như vậy thôi chưa đủ! Bạn cũng sẽ thấy rằng đối với các trường hợp khó hơn, chỉ cung cấp hướng dẫn là không đủ để mô hình có thể hiểu chính xác yêu cầu của bạn. Đây là lúc bạn cần suy nghĩ nhiều hơn về ngữ cảnh (context) và các yếu tố khác nhau mà bạn có thể sử dụng trong một Prompt. Các yếu tố khác mà bạn có thể cung cấp là dữ liệu đầu vào (input data) hoặc ví dụ (examples).

Hãy xem một ví dụ đơn giản về nhiệm vụ phân loại văn bản (text classification) dưới đây:

Prompt:

Trả lời câu hỏi sau dựa trên ngữ cảnh được cung cấp.

Ngữ cảnh: Tháp Eiffel là một tòa tháp lưới sắt rèn nằm trên Champ de Mars ở Paris, Pháp. Nó được đặt theo tên của kỹ sư Gustave Eiffel, công ty của ông đã thiết kế và xây dựng công trình này. Tòa tháp được hoàn thành vào năm 1889 và ban đầu bị một số nghệ sĩ và trí thức hàng đầu của Pháp chỉ trích vì thiết kế của nó. Tuy nhiên, kể từ đó, nó đã trở thành biểu tượng văn hóa toàn cầu của Pháp và là một trong những công trình dễ nhận biết nhất trên thế giới.

Câu hỏi: Tháp Eiffel được làm bằng gì?

Output:

Tháp Eiffel làm bằng lưới sắt rèn.

Câu trả lời rất chính xác, tuy nhiên bạn muốn câu trả lời phải tuân theo ý mình là Câu trả lời chính xác tháp Eiffel được làm bằng lưới sắt rèn, bạn có thể thêm vào phần ví dụ:

Trả lời câu hỏi sau dựa trên ngữ cảnh được cung cấp.

Ngữ cảnh: Tháp Eiffel là một tòa tháp lưới sắt rèn nằm trên Champ de Mars ở Paris, Pháp. Nó được đặt theo tên của kỹ sư Gustave Eiffel, công ty của ông đã thiết kế và xây dựng công trình này. Tòa tháp được hoàn thành vào năm 1889 và ban đầu bị một số nghệ sĩ và trí thức hàng đầu của Pháp chỉ trích vì thiết kế của nó. Tuy nhiên, kể từ đó, nó đã trở thành biểu tượng văn hóa toàn cầu của Pháp và là một trong những công trình dễ nhận biết nhất trên thế giới.

Câu hỏi: Tháp Eiffel được làm bằng gì?

Ví dụ: Nếu câu hỏi là "Tượng Nữ thần Tự do được làm bằng gì?" thì câu trả lời sẽ là "Câu trả lời chính xác tượng Nữ thần Tự do được làm bằng đồng".

Output:

Câu trả lời chính xác là Tháp Eiffel được làm bằng lưới sắt rèn.

Hội thoại

Bạn có thể trò chuyện với mô hình như cách giao tiếp với một người nào đó mà bạn mong muốn, bạn có thể yêu cầu mô hình giao tiếp với giọng điệu, cách thức diễn giải, phong cách như một cá nhân nào đó như bác sĩ, luật sư, hay nhà khoa học v.v… thông qua kỹ thuật Prompt hội thoại (conversation). Thiết kế Prompt hội thoại đặc biệt hữu ích khi bạn đang xây dựng các hệ thống đàm thoại như chatbot, dịch vụ khách hàng. Kỹ thuật này cũng được gọi là role prompting.

Sau đây là cuộc trò chuyện với một trợ lý nghiên cứu AI. Giọng điệu của trợ lý mang tính kỹ thuật và khoa học.

Con người: Xin chào, bạn là ai?

AI: Xin chào! Tôi là trợ lý nghiên cứu AI. Tôi có thể giúp gì cho bạn hôm nay?

Con người: Bạn có thể cho tôi biết về quá trình tạo ra hố đen không?

AI:

Output:

Hố đen được hình thành khi một ngôi sao lớn kết thúc quá trình sống của nó. Khi ngôi sao đã tiêu tốn hết nhiên liệu hạt nhân, nó sẽ sụp đổ dưới trọng lực của chính nó. Nếu khối lượng của ngôi sao đủ lớn, sự sụp đổ sẽ tạo ra một hố đen, một vùng không gian với trọng lực cực kỳ mạnh mẽ mà ngay cả ánh sáng cũng không thể thoát ra. Trong một số trường hợp khác, hố đen cũng có thể hình thành khi các hạt vật chất và năng lượng kết tụ trong một vùng nhỏ, dẫn đến sự hình thành hố đen do các quá trình khác như sự kết hợp của các hố đen nhỏ hơn.

Giọng điệu và ngôn từ của trợ lý nghiên cứu AI trong output này khá là kỹ thuật, vậy làm sao để chúng ta có một output nội dung đơn giản và dễ hiểu hơn?

Sau đây là cuộc trò chuyện với một trợ lý nghiên cứu AI. Các câu trả lời của trợ lý phải dễ hiểu ngay cả với học sinh tiểu học.

Con người: Xin chào, bạn là ai?

AI: Xin chào! Tôi là trợ lý nghiên cứu AI. Tôi có thể giúp gì cho bạn hôm nay?

Con người: Bạn có thể cho tôi biết về quá trình tạo ra lỗ đen không?

AI:

Output:

Một lỗ đen hình thành khi một ngôi sao lớn hết nhiên liệu và không thể giữ được trọng lực của chính nó. Khi điều này xảy ra, ngôi sao sụp đổ vào trong, tạo ra một lỗ đen mà không có gì, kể cả ánh sáng, có thể thoát ra. Lỗ đen giống như một cái "hố" khổng lồ trong không gian.

Như vậy bạn có thể thấy kết quả đã thay đổi cách sử dụng ngôn từ và lối hành văn một cách dễ hiểu hơn. Tương tự như vậy, bạn có thể thực hành để tìm kiếm những kết quả khác nhau, cho đến khi phù hợp với yêu cầu.

Code Generation

Một trong những ứng dụng rất phổ biến và hữu ích là tạo mã (code generation), ứng dụng này giúp bạn tạo mã để thiết kế web, phần mềm, ứng dụng v.v… Hãy xem ví dụ sau đây với CoPilot :

Prompt:

/*
Hỏi tên người dùng và nói "Xin chào"
*/

Output:

let name = prompt("Tên bạn là gì?");
console.log(`Xin chào, ${name}!`);

Suy luận

Suy luận (reasoning) là một trong những nhiệm vụ khó khăn nhất đối với mô hình ngôn ngữ lớn LLM hiện nay, và các LLM vẫn gặp khó khăn trong việc thực hiện các nhiệm vụ này. Mặc dù đã có những cải tiến về khả năng toán học, nhưng cần thêm kỹ thuật lập trình nâng cao để cải thiện khả năng suy luận.

Prompt:

Tính 9,000 * 9,000?

Output:

81,000,000

Hãy thử một phép tính khác:

Prompt:

Các số lẻ trong nhóm này cộng lại thành một số chẵn: 15, 32, 5, 13, 82, 7, 1. 

A: 

Output

Các số lẻ trong nhóm này cộng lại thành một số lẻ: 119.

Như vậy ở thời điểm mới ra mắt, ChatGPT đã giải sai bài toán này. Tuy nhiên sau 1 năm, khi thử lại GPT đã có tiến bộ nhiều hơn trong khả năng suy luận, kết quả hiện tại như sau:

Output:

Để kiểm tra xem tổng của các số lẻ có phải là một số chẵn không, hãy làm theo các bước sau:

Xác định các số lẻ trong nhóm: 15, 5, 13, 7, 1.

Cộng các số lẻ lại với nhau:

15+5=20
20+13=33
33+7=40
40+1=41

Tổng của các số lẻ là 41, đây là một số lẻ, không phải là số chẵn. Vì vậy, tuyên bố rằng tổng của các số lẻ là một số chẵn là không đúng.

Trả lời