Blog FOSS by Lê Trung Nghĩa

https://letrungnghia.mangvn.org

Hướng dẫn kỹ thuật lời nhắc. Giới thiệu. Ví dụ về lời nhắc

Hướng dẫn kỹ thuật lời nhắc. Giới thiệu. Ví dụ về lời nhắc

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.

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

 

Tác giả: Nghĩa Lê Trung

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây