Examples of
Prompts
Theo:
https://www.promptingguide.ai/introduction/examples
Phần trước đã giới thiệu một ví dụ
cơ bản về cách để nhắc cho một mô hình ngôn ngữ lớn
- LLM (Large Language Model).
Phần này sẽ cung cấp thêm các ví dụ về
cách sử dụng lời nhắc để 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 vài ví dụ
dưới đây minh họa cách bạn có thể sử dụng các lời
nhắc được thiết kế tốt để thực hiện các loại
nhiệm vụ khác nhau.
Chủ đề:
Tóm tắt văn bản
Trích xuất thông tin
Trả lời câu hỏi
Phân loại văn bản
Hội thoại
Tạo mã
Suy luận
Video:
Các ví dụ cơ bản về lời nhắc cho LLM
Tóm tắt văn bản
Một trong những nhiệm vụ tiêu chuẩn trong việc tạo ra
ngôn ngữ tự nhiên là tóm tắt văn bản. Tóm tắt văn bản có thể bao gồm
nhiều lĩnh vực và phạm vi khác nhau. Trên thực tế, một trong những ứng
dụng hứa hẹn nhất của mô hình ngôn ngữ là khả năng tóm tắt các bài viết
và khái niệm thành các bản tóm tắt nhanh chóng và dễ đọc. Hãy cùng thử
một nhiệm vụ tóm tắt cơ bản bằng cách sử dụng các lời nhắc.
Giả sử bạn muốn tìm hiểu về thuốc kháng sinh, bạn có thể thử một lời nhắc như sau:
Prompt:
Giải thích về thuốc kháng sinh
A:
Output:
Thuốc kháng sinh là một loại thuốc được sử dụng để điều trị nhiễm trùng do vi khuẩn. Chúng hoạt động bằng cách tiêu diệt vi khuẩn hoặc ngăn chặn chúng sinh sôi, cho phép hệ thống miễn dịch của cơ thể chống lại nhiễm trùng. Kháng sinh thường được dùng đường uống dưới dạng viên nén, viên nang hoặc dung dịch lỏng, hoặc đôi khi được tiêm tĩnh mạch. Chúng không hiệu quả đối với nhiễm trùng do vi-rút, và việc sử dụng không đúng cách có thể dẫn đến kháng kháng sinh.
"A:" là một
định dạng gợi ý rõ ràng mà bạn sử dụng trong phần trả lời câu hỏi. Bạn
đã sử dụng nó ở đây để cho mô hình biết rằng có một câu trả lời dự kiến.
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 điều đó cho các ví dụ sau.
Giả sử rằng đây là quá nhiều thông tin và bạn muốn tóm tắt lại. 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:
Prompt:
Thuốc kháng sinh là một loại thuốc được sử dụng để điều trị nhiễm trùng do vi khuẩn. Chúng hoạt động bằng cách tiêu diệt hoặc ngăn chặn vi khuẩn sinh sôi, cho phép hệ thống miễn dịch của cơ thể chống lại nhiễm trùng. Thuốc kháng sinh thường được dùng đường uống dưới dạng viên nén, viên nang hoặc dung dịch lỏng, hoặc đôi khi được tiêm tĩnh mạch. Chúng không hiệu quả đối với nhiễm trùng do vi-rút, và việc sử dụng không đúng cách có thể dẫn đến tình trạng kháng kháng sinh.
Giải thích những điều trên chỉ trong một câu:
Output:
Thuốc kháng sinh là thuốc được sử dụng để điều trị nhiễm trùng do vi khuẩn bằng cách tiêu diệt hoặc ngăn chặn vi khuẩn sinh sôi, nhưng chúng không hiệu quả đối với vi-rút và việc lạm dụng có thể dẫn đến tình trạng kháng kháng sinh.
Việc không quá chú trọng đến độ chính xác của kết quả
đầu ra ở trên, điều mà chúng ta sẽ đề cập trong hướng dẫn sau, mô hình
đã cố gắng tóm tắt đoạn văn trong một câu. Bạn có thể khéo léo với các
hướng dẫn, nhưng chúng ta sẽ để dành điều đó cho chương sau. Hãy thoải
mái dừng lại ở đây và thử nghiệm để xem bạn có nhận được kết quả tốt hơn
không.
Trích xuất thông tin
Mặc dù các mô hình ngôn ngữ được đào tạo để thực hiện
việc tạo ngôn ngữ tự nhiên và các tác vụ liên quan, nhưng nó cũng rất
có khả năng thực hiện phân loại và một loạt các tác vụ xử lý ngôn ngữ tự
nhiên (NLP) khác.
Dưới đây là ví dụ về lời nhắc trích xuất thông tin từ một đoạn văn nhất định.
Prompt:
Lời tuyên bố ghi công và lời cảm ơn tác giả trong các bài báo nghiên cứu cần nêu rõ ràng và cụ thể liệu các 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 hay không và ở mức độ nào. Chúng cũng nên chỉ ra những 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 phản biện xem xét kỹ lưỡng hơn các bản thảo để phát hiện các thành kiến tiềm ẩn, sai sót và ghi nguồn không đúng cách. Tương tự, các tạp chí khoa học nên minh bạch về việc sử dụng LLM, ví dụ như khi lựa chọn bản thảo đã nộp.
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 trên:
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 trên là ChatGPT.
Có nhiều cách để cải thiện kết quả ở trên, nhưng cách này đã rất hữu ích.
Đến thời điểm này, hẳn bạn đã thấy rõ rằng mình 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 ra lệnh
cho nó. Đó là một 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ẽ.
Nguồn đoạn văn: ChatGPT: năm ưu tiên nghiên cứu
Trả lời câu hỏi
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 lời nhắc. Như đã
đề cập trước đó, lời nhắc có thể kết hợp các chỉ dẫn, ngữ cảnh, chỉ số
đầu vào và đầu ra để 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ó lại là một phương pháp hay vì bạn càng đưa ra
chỉ dẫn cụ thể thì kết quả càng tốt. Dưới đây là ví dụ về cách thức thực
hiện sau một lời nhắc có cấu trúc hơn.
Prompt:
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. Nếu không chắc chắn, hãy trả lời "Không chắc chắn về câu trả lời".
Bối 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ó khả năng 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 phê duyệt để giúp ngăn ngừa đào thải nội tạng sau ghép thận, trở thành kháng thể điều trị đầu tiên được phép sử dụng trên người.
Câu hỏi: OKT3 ban đầu có nguồn gốc từ đâu?
Trả lời:
Output:
Chuột.
Bối cảnh lấy từ Nature.
Phân loại văn bản
Cho đến nay, bạn đã sử dụng các hướng dẫn đơn giản để
thực hiện một tác vụ. Là một kỹ sư về lời nhắc, bạn cần cải thiện khả
năng cung cấp chỉ dẫn tốt hơn. Nhưng chưa hết! Bạn cũng sẽ thấy rằng đối
với các trường hợp sử dụng khó hơn, chỉ cung cấp chỉ dẫn thôi là chưa
đủ. Đây là lúc bạn cần suy nghĩ kỹ hơn về ngữ cảnh và các yếu tố khác
nhau mà bạn có thể sử dụng trong một lời nhắc. Các yếu tố khác bạn có
thể cung cấp là dữ liệu đầu vào hoặc ví dụ.
Hãy thử chứng minh điều này bằng cách cung cấp một ví dụ về phân loại văn bản.
Prompt:
Phân loại văn bản thành trung tính, tiêu cực hoặc tích cực.
Văn bản: Tôi nghĩ đồ ăn ổn.
Output:
Trung tính
Bạn đã đưa ra chỉ dẫn phân loại văn bản và mô hình trả lời là ’Neutral’,
điều này là đúng. Điều này không có gì sai, nhưng giả sử điều bạn thực
sự cần là mô hình đưa ra nhãn theo đúng định dạng bạn muốn. Vậy, thay vì
Neutral, bạn muốn nó trả về giá trị neutral.
Làm thế nào để đạt được điều này? Có nhiều cách khác nhau để thực hiện.
Ở đây, bạn quan tâm đến tính cụ thể, vì vậy bạn càng cung cấp nhiều
thông tin cho lời nhắc thì kết quả càng tốt. Bạn có thể thử cung cấp các
ví dụ để xác định hành vi chính xác. Hãy thử lại:
Prompt:
Phân loại văn bản thành trung tính, tiêu cực hoặc tích cực.
Văn bản: Tôi nghĩ kỳ nghỉ ổn.
Cảm xúc: trung tính
Văn bản: Tôi nghĩ đồ ăn ổn.
Cảm xúc:
Output:
trung tính
Hoàn hảo! Lần này, mô hình trả về giá trị neutral, chính là nhãn cụ thể mà bạn đang tìm kiếm. Có vẻ như ví dụ được cung cấp trong lời nhắc đã giúp mô hình đưa ra kết quả cụ thể.
Để nêu bật lý do tại sao đôi khi việc cụ thể lại quan trọng, hãy xem ví dụ bên dưới và tìm ra vấn đề:
Prompt:
Phân loại văn bản thành trung tính, tiêu cực hoặc tích cực.
Văn bản: Tôi nghĩ kỳ nghỉ này ổn.
Cảm xúc:
Output:
Trung tính
Vấn đề ở đây là gì? Gợi ý là, nhãn neutral được tạo ra hoàn toàn bị mô hình bỏ qua. Thay vào đó, mô hình đưa ra kết quả Neutral vì nó có phần thiên vị nhãn đó. Nhưng hãy giả sử rằng thứ bạn thực sự muốn là neutral.
Bạn sẽ khắc phục điều này như thế nào? Có lẽ bạn có thể thử thêm mô tả
vào nhãn hoặc thêm ví dụ vào lời nhắc? Nếu bạn không chắc chắn, chúng ta
sẽ thảo luận một vài ý tưởng trong các phần tiếp theo.
Hội thoại
Có lẽ một trong những điều thú vị nhất bạn có thể đạt
được với kỹ thuật nhắc là chỉ dẫn cho hệ thống LLM về cách hoạt động, ý
định và bản sắc của nó. Điều này đặc biệt hữu ích khi bạn đang xây dựng
các hệ thống hội thoại như chatbot dịch vụ khách hàng.
Ví dụ: hãy tạo một hệ thống hội thoại có khả năng tạo
ra các câu trả lời mang tính kỹ thuật và khoa học hơn cho các câu hỏi.
Lưu ý cách bạn hướng dẫn hệ thống cách hoạt động thông qua hướng dẫn.
Điều này đôi khi được gọi là việc nhắc vai trò.
Prompt:
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. Hôm nay tôi có thể giúp gì cho bạn?
Con người: Bạn có thể cho tôi biết về sự hình thành của hố đen không?
AI:
Output:
Chắc chắn rồi! Hố đen là những vùng không thời gian có lực hấp dẫn mạnh đến mức không gì, kể cả ánh sáng, có thể thoát ra khỏi nó. Chúng được tạo ra khi một ngôi sao cực lớn chết đi và lõi của nó sụp đổ vào chính nó, tạo thành một điểm kỳ dị có mật độ vô hạn. Lực hấp dẫn cực mạnh của điểm kỳ dị kéo tất cả vật chất và bức xạ xung quanh nó, tạo thành hố đen.
Trợ lý nghiên cứu AI của chúng ta nghe có vẻ hơi
chuyên môn quá, phải không? OK, hãy thay đổi hành vi này và hướng dẫn hệ
thống đưa ra những câu trả lời dễ hiểu hơn.
Prompt:
Sau đây là cuộc trò chuyện với một trợ lý nghiên cứu AI. 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. Hôm nay tôi có thể giúp gì cho bạn?
Con người: Bạn có thể cho tôi biết về sự hình thành của hố đen không?
AI:
Output:
Chắc chắn rồi! Hố đen được tạo ra khi một ngôi sao cực lớn cạn kiệt nhiên liệu và sụp đổ vào bên trong. Lực hấp dẫn của ngôi sao mạnh đến mức không gì, kể cả ánh sáng, có thể thoát khỏi lực hút của nó. Điều này tạo ra một điểm trong không-thời gian với lực hấp dẫn cực mạnh được gọi là hố đen.
Bạn đã có một số tiến bộ. Bạn có thể tiếp tục cải
thiện nó. Nếu bạn thêm nhiều ví dụ hơn, bạn có thể sẽ có được kết quả
tốt hơn nữa.
Tạo mã
Một ứng dụng mà LLM khá hiệu quả là tạo mã. Copilot
là một ví dụ điển hình. Có rất nhiều tác vụ tạo mã mà bạn có thể thực
hiện với các lời nhắc thông minh. Hãy cùng xem một vài ví dụ dưới đây.
Trước tiên, hãy thử một chương trình đơn giản chào đón người dùng.
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}!`);
Lưu ý rằng bạn thậm chí không cần chỉ định ngôn ngữ sử dụng.
Hãy đổi hướng một chút. Ví dụ dưới đây cho thấy LLM
có thể mạnh mẽ như thế nào nếu bạn đầu tư thêm một chút công sức vào
việc thiết kế các lời nhắc.
Prompt:
"""
Bảng departments, các cột = [DepartmentId, DepartmentName]
Bảng students, các cột = [DepartmentId, StudentId, StudentName]
Tạo một truy vấn MySQL cho tất cả sinh viên trong Khoa Khoa học máy tính
"""
Output:
SELECT StudentId, StudentName
FROM students
WHERE DepartmentId IN (SELECT DepartmentId FROM departments WHERE DepartmentName = 'Computer Science');
Điều này rất ấn tượng. Trong trường hợp này, bạn đã
cung cấp dữ liệu về lược đồ cơ sở dữ liệu và yêu cầu nó tạo ra một truy
vấn MySQL hợp lệ.
Suy luận
Có lẽ một trong những nhiệm vụ khó khăn nhất đối với
một LLM hiện nay là nhiệm vụ đòi hỏi một số dạng suy luận. Suy luận là
một trong những lĩnh vực thú vị nhất do các loại ứng dụng phức tạp có
thể xuất hiện từ LLM.
Đã có một số cải tiến trong các bài tập liên quan đến
năng lực toán học. Tuy nhiên, điều quan trọng cần lưu ý là các LLM hiện
tại gặp khó khăn trong việc thực hiện các bài tập suy luận, do đó đòi
hỏi các kỹ thuật viết lời nhắc. Chúng tôi sẽ đề cập đến các kỹ thuật
nâng cao cấp này trong hướng dẫn tiếp theo. Trước mắt, chúng tôi sẽ
trình bày một vài ví dụ cơ bản để thể hiện năng lực số học.
Prompt:
9.000 * 9.000 bằng bao nhiêu?
Output:
81,000,000
Hãy thử thứ gì đó khó hơn.
Prompt:
Tổng các số lẻ trong nhóm này bằng một số chẵn: 15, 32, 5, 13, 82, 7, 1.
A:
Output
Không, tổng các số lẻ trong nhóm này bằng một số lẻ: 119.
Không đúng! Hãy thử cải thiện bài toán này bằng cách cải thiện lời nhắc.
Prompt:
Tổng các số lẻ trong nhóm này bằng một số chẵn: 15, 32, 5, 13, 82, 7, 1.
Giải bài toán bằng cách chia nhỏ bài toán thành các bước. Đầu tiên, hãy xác định các số lẻ, cộng chúng lại và cho biết kết quả là số lẻ hay số chẵn.
Output:
Các số lẻ: 15, 5, 13, 7, 1
Tổng: 41
41 là một số lẻ.
Tốt
hơn nhiều rồi, phải không? Nhân tiện, chúng tôi đã thử nhiệm vụ này vài
lần và đôi khi mô hình bị lỗi. Nếu bạn cung cấp hướng dẫn tốt hơn kết
hợp với ví dụ, kết quả có thể sẽ chính xác hơn.
Trong phần tiếp theo, chúng tôi sẽ đề cập đến các
khái niệm và kỹ thuật lập trình nhắc nhở nâng cao hơn nữa để cải thiện
hiệu suất cho tất cả các nhiệm vụ này và cả những nhiệm vụ khó hơn.
Sổ tay
Nếu
bạn muốn thực hành với các lời nhắc trên bằng Python, chúng tôi đã
chuẩn bị một sổ tay để kiểm tra một số lời nhắc bằng cách sử dụng các mô
hình OpenAI.
Về phần ‘Giới thiệu’ ………. Phần trước ………. Phần tiếp theo
The previous
section introduced a basic example of how to prompt LLMs.
This section
will provide more examples of how to use prompts to achieve different
tasks and introduce key concepts along the way. Often, the best way
to learn concepts is by going through examples. The few examples
below illustrate how you can use well-crafted prompts to perform
different types of tasks.
Topics:
Video: Basic
Prompt Examples for LLMs
Text
Summarization
One of the
standard tasks in natural language generation is text summarization.
Text summarization can include many different flavors and domains. In
fact, one of the most promising applications of language models is
the ability to summarize articles and concepts into quick and
easy-to-read summaries. Let's try a basic summarization task using
prompts.
Let's say you
are interested to learn about antibiotics, you could try a prompt
like this:
Prompt:
Explain antibiotics
A:
Output:
Antibiotics are a type of medication used to treat bacterial infections. They work by either killing the bacteria or preventing them from reproducing, allowing the body’s immune system to fight off the infection. Antibiotics are usually taken orally in the form of pills, capsules, or liquid solutions, or sometimes administered intravenously. They are not effective against viral infections, and using them inappropriately can lead to antibiotic resistance.
The "A:" is an explicit
prompt format that you use in question answering. You used it here to
tell the model that there is an answer expected further. In this
example, it's not clear how this is useful vs not using it but we
will leave it that for later examples. Let's just assume that this is
too much information and you want to summarize it further. In fact,
you can instruct the model to summarize into one sentence like so:
Prompt:
Antibiotics are a type of medication used to treat bacterial infections. They work by either killing the bacteria or preventing them from reproducing, allowing the body’s immune system to fight off the infection. Antibiotics are usually taken orally in the form of pills, capsules, or liquid solutions, or sometimes administered intravenously. They are not effective against viral infections, and using them inappropriately can lead to antibiotic resistance.
Explain the above in one sentence:
Output:
Antibiotics are medications used to treat bacterial infections by either killing the bacteria or stopping them from reproducing, but they are not effective against viruses and overuse can lead to antibiotic resistance.
Without paying too much attention
to the accuracy of the output above, which is something we will touch
on in a later guide, the model tried to summarize the paragraph in
one sentence. You can get clever with the instructions but we will
leave that for a later chapter. Feel free to pause here and
experiment to see if you get better results.
Information
Extraction
While language
models are trained to perform natural language generation and related
tasks, it's also very capable of performing classification and a
range of other natural language processing (NLP) tasks.
Here is an
example of a prompt that extracts information from a given paragraph.
Prompt:
Author-contribution statements and acknowledgements in research papers should state clearly and specifically whether, and to what extent, the authors used AI technologies such as ChatGPT in the preparation of their manuscript and analysis. They should also indicate which LLMs were used. This will alert editors and reviewers to scrutinize manuscripts more carefully for potential biases, inaccuracies and improper source crediting. Likewise, scientific journals should be transparent about their use of LLMs, for example when selecting submitted manuscripts.
Mention the large language model based product mentioned in the paragraph above:
Output:
The large language model based product mentioned in the paragraph above is ChatGPT.
There are many ways you can improve
the results above, but this is already very useful.
By now it should
be obvious that you can ask the model to perform different tasks by
simply instructing it what to do. That's a powerful capability that
AI product developers are already using to build powerful products
and experiences.
Paragraph
source: ChatGPT:
five priorities for research
Question
Answering
One of the best
ways to get the model to respond with specific answers is to improve
the format of the prompt. As covered before, a prompt could combine
instructions, context, input, and output indicators to get improved
results. While these components are not required, it becomes a good
practice as the more specific you are with instruction, the better
results you will get. Below is an example of how this would look
following a more structured prompt.
Prompt:
Answer the question based on the context below. Keep the answer short and concise. Respond "Unsure about answer" if not sure about the answer.
Context: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.
Question: What was OKT3 originally sourced from?
Answer:
Output:
Mice.
Context obtained from Nature.
Text
Classification
So far, you have
used simple instructions to perform a task. As a prompt engineer, you
need to get better at providing better instructions. But that's not
all! You will also find that for harder use cases, just providing
instructions won't be enough. This is where you need to think more
about the context and the different elements you can use in a prompt.
Other elements you can provide are input
data or examples.
Let's try to
demonstrate this by providing an example of text classification
Prompt:
Classify the text into neutral, negative or positive.
Text: I think the food was okay.
Sentiment:
Output:
Neutral
You gave the instruction to
classify the text and the model responded with 'Neutral',
which is correct. Nothing is wrong with this but let's say that what
you really need is for the model to give the label in the exact
format you want. So instead of Neutral,
you want it to return neutral.
How do you achieve this? There are different ways to do this. You
care about specificity here, so the more information you can provide
the prompt, the better results. You can try providing examples to
specify the correct behavior. Let's try again:
Prompt:
Classify the text into neutral, negative or positive.
Text: I think the vacation is okay.
Sentiment: neutral
Text: I think the food was okay.
Sentiment:
Output:
neutral
Perfect! This time the model
returned neutral
which is the specific label you were looking for. It seems that the
example provided in the prompt helped the model to be specific in its
output.
To highlight why
sometimes being specific is important, check out the example below
and spot the problem:
Prompt:
Classify the text into nutral, negative or positive.
Text: I think the vacation is okay.
Sentiment:
Output:
Neutral
What is the problem here? As a
hint, the made-up nutral
label is completely ignored by the model. Instead, the model outputs
Neutral
as it has some bias towards that label. But let's assume that what
you really want is nutral.
How would you fix this? Maybe you can try adding descriptions to the
labels or add more examples to the prompt? If you are not sure, we
will discuss a few ideas in the upcoming sections.
Conversation
Perhaps one of
the more interesting things you can achieve with prompt engineering
is instructing the LLM system on how to behave, its intent, and its
identity. This is particularly useful when you are building
conversational systems like customer service chatbots.
For instance,
let's create a conversational system that's able to generate more
technical and scientific responses to questions. Note how you are
explicitly telling it how to behave through the instruction. This is
sometimes referred to as role
prompting.
Prompt:
The following is a conversation with an AI research assistant. The assistant tone is technical and scientific.
Human: Hello, who are you?
AI: Greeting! I am an AI research assistant. How can I help you today?
Human: Can you tell me about the creation of blackholes?
AI:
Output:
Sure! Black holes are regions of spacetime where the gravitational force is so strong that nothing, not even light, can escape from it. They are created when a very massive star dies and its core collapses in on itself, forming a singularity of infinite density. The intense gravity of the singularity pulls in all the matter and radiation around it, creating the black hole.
Our AI research assistant sounds a
bit too technical, right? Okay, let's change this behavior and
instruct the system to give more accessible answers.
Prompt:
The following is a conversation with an AI research assistant. The assistant answers should be easy to understand even by primary school students.
Human: Hello, who are you?
AI: Greeting! I am an AI research assistant. How can I help you today?
Human: Can you tell me about the creation of black holes?
AI:
Output:
Sure! Black holes are created when a very massive star runs out of fuel and collapses in on itself. The gravity of the star is so strong that nothing, not even light, can escape its pull. This creates a point in space-time with an intense gravitational force called a black hole.
You made some progress. You can
continue improving it. If you add more examples, you might get even
better results.
Code
Generation
One application
where LLMs are quite effective is code generation. Copilot is a great
example of this. There are a vast number of code-generation tasks you
can perform with clever prompts. Let's look at a few examples below.
First, let's try
a simple program that greets the user.
Prompt:
/*
Ask the user for their name and say "Hello"
*/
Output:
let name = prompt("What is your name?");
console.log(`Hello, ${name}!`);
Notice that you didn't even need to
specify the language to use.
Let's switch
levels a bit. The example below shows how powerful LLMs can be with a
little more effort in designing the prompts.
Prompt:
"""
Table departments, columns = [DepartmentId, DepartmentName]
Table students, columns = [DepartmentId, StudentId, StudentName]
Create a MySQL query for all students in the Computer Science Department
"""
Output:
SELECT StudentId, StudentName
FROM students
WHERE DepartmentId IN (SELECT DepartmentId FROM departments WHERE DepartmentName = 'Computer Science');
This is very impressive. In this
case, you provided data about the database schema and asked it to
generate a valid MySQL query.
Reasoning
Perhaps one of
the most difficult tasks for an LLM today is one that requires some
form of reasoning. Reasoning is one of most interesting areas due to
the types of complex applications that can emerge from LLMs.
There have been
some improvements in tasks involving mathematical capabilities. That
said, it's important to note that current LLMs struggle to perform
reasoning tasks so this requires even more advanced prompt
engineering techniques. We will cover these advanced techniques in
the next guide. For now, we will cover a few basic examples to show
arithmetic capabilities.
Prompt:
What is 9,000 * 9,000?
Output:
81,000,000
Let's try something more difficult.
Prompt:
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
A:
Output
No, the odd numbers in this group add up to an odd number: 119.
That's incorrect! Let's try to
improve this by improving the prompt.
Prompt:
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
Solve by breaking the problem into steps. First, identify the odd numbers, add them, and indicate whether the result is odd or even.
Output:
Odd numbers: 15, 5, 13, 7, 1
Sum: 41
41 is an odd number.
Much better, right? By the way, we
tried this task a couple of times and the model sometimes fails. If
you provide better instructions combined with examples, it might help
get more accurate results.
In the upcoming
section, we will cover even more advanced prompt engineering concepts
and techniques for improving performance on all these and more
difficult tasks.
Notebook
If you want to
practice with the prompts above using Python, we have prepared a
notebook to test some of the prompts using the OpenAI models.
Dịch: Lê Trung Nghĩa
letrungnghia.foss@gmail.com