Ở những phần trước, chúng ta đã được tiếp cận với một vài ví dụ cơ bản về cách đặt câu hỏi cho các mô hình ngôn ngữ lớn (LLM). Ở phần này, chúng ta sẽ cùng nhau tìm hiểu thêm nhiều ví dụ về cách sử dụng câu hỏi để đạt được 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 này. 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 câu lệnh được soạn thảo tốt để thực hiện các loại nhiệm vụ khác nhau.
Một trong những nhiệm vụ tiêu chuẩn trong việc tạo 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 loại và lĩnh vực khác nhau. Trên thực tế, một trong những ứng dụng đầy 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 báo và khái niệm thành những bản tóm tắt nhanh chóng và dễ đọc. Hãy thử một tác vụ tóm tắt cơ bản bằng cách sử dụng prompts.
Giả sử bạn muốn tìm hiểu về thuốc kháng sinh, bạn có thể thử một prompt như sau:
Prompt:
Giải thích về thuốc kháng sinhA:
Kết quả:
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ản, 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 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 có hiệu quả đối với nhiễm virus và việc sử dụng chúng không đúng cách có thể dẫn đến kháng thuốc kháng sinh.
"A:" là một định dạng prompt rõ ràng mà bạn sử dụng trong việc hỏi đáp. Bạn đã sử dụng nó ở đây để nói với mô hình rằng có một câu trả lời được mong đợi tiếp theo. Trong ví dụ này, không rõ làm thế nào điều này hữu ích so với việc không sử dụng nó nhưng chúng ta sẽ để lại đ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 nó hơn nữa. 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 vi khuẩn hoặc ngăn chặn chúng sinh sản, 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 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 có hiệu quả đối với nhiễm virus và việc sử dụng chúng không đúng cách có thể dẫn đến kháng thuốc kháng sinh." Hãy giải thích những điều trên trong một câu:
Kết quả:
Thuốc kháng sinh là loại 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 vi khuẩn hoặc ngăn chặn chúng sinh sản, nhưng chúng không có hiệu quả đối với virus và việc lạm dụng có thể dẫn đến kháng thuốc kháng sinh.
Không cần quá chú ý quá nhiều đến độ chính xác của kết quả trên, đó là điều chúng ta sẽ đề cập đến 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 hơn với các hướng dẫn nhưng chúng ta sẽ để lại điều đó cho một chương sau. Hãy thoải mái tạm dừng ở đây và thử nghiệm để xem bạn có nhận được kết quả tốt hơn không.
Mặc dù các mô hình ngôn ngữ được đào tạo để thực hiện việc tạo sinh ngôn ngữ tự nhiên và các tác vụ liên quan, nhưng nó cũng 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à một ví dụ về một prompt trích xuất thông tin từ một đoạn văn bản nhất định.
Prompt:
Các 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 nên nêu rõ ràng và cụ thể liệu, và ở mức độ nào, các tác giả đã sử dụng các công nghệ AI như ChatGPT trong việc chuẩn bị bản thảo và phân tích của họ. Họ 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 đánh giá xem xét kỹ lưỡng hơn các bản thảo về các thành kiến tiềm ẩn, sự không chính xác 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 của họ, ví dụ như khi lựa chọn bản thảo được gửi. 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:
Kết quả:
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 bạn có thể cải thiện kết quả trên, nhưng điều này đã rất hữu ích.
Bây giờ, bạn có thể yêu cầu mô hình thực hiện các tác vụ khác nhau bằng cách chỉ cần hướng dẫn nó phải làm gì. Đó là một khả năng mạnh mẽ mà các nhà phát triển sản phẩm AI đã 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: five priorities for research
Một trong những cách tốt nhất để khiến mô hình phản hồi với các câu trả lời cụ thể là cải thiện định dạng của prompt. Như đã đề cập trước đó, một prompt có thể kết hợp các hướng dẫn, ngữ cảnh, đầu vào và chỉ báo đầu ra để sẽ cải thiện được kết quả. Mặc dù các thành phần này không bắt buộc, nhưng nó trở thành một thực hành tốt vì bạn càng cụ thể với hướng dẫn, bạn sẽ càng nhận được kết quả tốt hơn. Dưới đây là một ví dụ về cách điều này sẽ trông như thế nào theo một prompt 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. Giữ cho câu trả lời ngắn gọn và súc tích. 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 bắt nguồn từ một công ty dược phẩm ở New Jersey có tên là Ortho Pharmaceutical. Ở đó, các nhà khoa học đã tạo ra một phiên bản ban đầu của kháng thể, được đặt tên 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 của 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 sự đào thải cơ quan 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 người.Câu hỏi: OKT3 ban đầu có nguồn gốc từ đâu?Trả lời:
Kết quả:
Chuột.
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ư prompt, bạn cần phải giỏi hơn trong việc cung cấp các hướng dẫn tốt hơn. Nhưng đó chưa phải là tất cả! 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 hướng dẫn sẽ không đủ. Đây là lúc bạn cần suy nghĩ nhiều 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 prompt. Các yếu tố khác mà 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ĩ thức ăn ổn.Tình cảm:
Kết quả:
Trung tính
Bạn đã đưa ra hướng dẫn để phân loại văn bản và mô hình đã phản hồi với 'Trung tính'
, điều này là chính xác. Không có gì sai với điều này nhưng giả sử rằng những gì 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ì vậy, thay vì Trung tính
, bạn muốn nó trả về trung tính
. Làm thế nào để bạn đạt được điều này? Có nhiều cách khác nhau để làm điều này. Bạn quan tâm đến tính cụ thể ở đây, vì vậy bạn càng cung cấp nhiều thông tin cho prompt, kết quả sẽ càng tốt hơn. Bạn có thể thử cung cấp các ví dụ để chỉ đị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.Tình cảm: trung tính Văn bản: Tôi nghĩ thức ăn ổn. Tình cảm:
Kết quả:
trung tính
Hoàn hảo! Lần này mô hình đã trả về trung tính
là nhãn cụ thể mà bạn đang tìm kiếm. Có vẻ như ví dụ được cung cấp trong prompt đã giúp mô hình cụ thể trong đầu ra của nó.
Để làm nổi bật lý do tại sao đôi khi tính cụ thể là quan trọng, hãy xem ví dụ bên dưới và phát hiện ra vấn đề:
Prompt:
Phân loại văn bản thành trung lập, tiêu cực hoặc tích cực. Văn bản: Tôi nghĩ kỳ nghỉ ổn.Tình cảm:
Kết quả:
Trung tính
Vấn đề ở đây là gì? Gợi ý, nhãn trung lập
bịa đặt hoàn toàn bị mô hình bỏ qua. Thay vào đó, mô hình xuất ra Trung tính
vì nó có một số thiên vị đối với nhãn đó. Nhưng giả sử rằng những gì bạn thực sự muốn là trung lập
. Làm thế nào bạn sẽ khắc phục điều này? Có thể bạn có thể thử thêm mô tả vào các nhãn hoặc thêm nhiều ví dụ vào prompt? Nếu bạn không chắc chắn, chúng tôi sẽ thảo luận một vài ý tưởng trong các phần sắp tới.
Có lẽ một trong những điều thú vị hơn mà bạn có thể đạt được với kỹ thuật prompt là hướng dẫn hệ thống LLM về cách hành xử, mục đích và danh tính 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 đàm thoại như chatbot dịch vụ khách hàng.
Ví dụ: hãy tạo một hệ thống đàm thoại có khả năng tạo ra các phản hồ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 đang nói rõ ràng với nó cách hành xử thông qua hướng dẫn. Điều này đôi khi được gọi là nhập vai prompt.
Prompt:
Sau đây là cuộc trò chuyện với trợ lý nghiên cứu AI. Giọng điệu của trợ lý là 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ề sự hình thành của lỗ đen không?AI:
Kết quả:
Chắc chắn rồi! Lỗ đen là những vùng không thời gian mà lực hấp dẫn mạnh đến mức không có 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 rất 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. Trọng lực mạnh của điểm kỳ dị hút tất cả vật chất và bức xạ xung quanh nó, tạo ra lỗ đen.
Trợ lý nghiên cứu AI của chúng ta nghe có vẻ hơi quá kỹ thuật, phải không? Được rồi, hãy thay đổi hành vi này và hướng dẫn hệ thống đưa ra câu trả lời dễ tiếp cận hơn.
Prompt:
Sau đây là cuộc trò chuyện với trợ lý nghiên cứu AI. Câu trả lời của trợ lý nên dễ hiểu ngay cả đối 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ề sự hình thành của lỗ đen không?AI:
Kết quả:
Chắc chắn rồi! Lỗ đen được tạo ra khi một ngôi sao rất lớn hết nhiên liệu và sụp đổ vào chính nó. Trọng lực của ngôi sao mạnh đến mức không có 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 một lực hấp dẫn mạnh được gọi là lỗ đen.
Bạn đã đạt đượ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ụ, bạn có thể nhận được kết quả tốt hơn nữa.
Một ứng dụng mà LLM khá hiệu quả là tạo mã. Copilot là một ví dụ tuyệt vời về điều này. Có rất nhiều tác vụ tạo mã mà bạn có thể thực hiện với các prompt thông minh. Hãy xem một vài ví dụ dưới đây.
Đầu tiên, hãy thử một chương trình đơn giản chào người dùng.
Prompt:
/*Yêu cầu người dùng nhập tên của họ và nói "Xin chào"*/
Kết quả:
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 chuyển đổi cấp độ một chút. Ví dụ dưới đây cho thấy LLM có thể mạnh mẽ như thế nào với một chút nỗ lực hơn trong việc thiết kế các prompt.
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"""
Kết quả:
SELECT StudentId, StudentName FROM students WHERE DepartmentId IN (SELECT DepartmentId FROM departments WHERE DepartmentName = 'Khoa học Máy tính');
Đ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 một truy vấn MySQL hợp lệ.
Có lẽ một trong những nhiệm vụ khó khăn nhất đối với LLM ngày nay là một nhiệm vụ đòi hỏi một số hình thức lập luận. Lập 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 tác vụ liên quan đến khả năng toán học. Điều đó nói rằng, điều quan trọng cần lưu ý là các LLM hiện tại gặp khó khăn khi thực hiện các tác vụ lập luận, vì vậy điều này đòi hỏi các kỹ thuật kỹ thuật prompt tiên tiến hơn. Chúng tôi sẽ đề cập đến các kỹ thuật nâng cao này trong hướng dẫn tiếp theo. Hiện tại, chúng tôi sẽ đề cập đến một vài ví dụ cơ bản để hiển thị khả năng số học.
Prompt:
9.000 * 9.000 là bao nhiêu?
Kết quả:
81.000.000
Hãy thử một cái gì đó khó hơn.
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:
Kết quả
Không, các số lẻ trong nhóm này cộng lại thành một số lẻ: 119.
Điều đó không chính xác! Hãy thử cải thiện điều này bằng cách cải thiện prompt.
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. Giải bằng cách chia nhỏ bài toán thành các bước. Đầu tiên, xác định các số lẻ, cộng chúng lại và cho biết kết quả là lẻ hay chẵn.
Kết quả:
Số lẻ: 15, 5, 13, 7, 1Tổng: 41 41 là số lẻ.
Tốt hơn nhiều, phải không? Nhân tiện, chúng tôi đã thử nhiệm vụ này một vài lần và mô hình đôi khi bị lỗi. Nếu bạn cung cấp các hướng dẫn tốt hơn kết hợp với các ví dụ, nó có thể giúp có được kết quả chính xác hơn.
Trong phần sắp tới, chúng tôi sẽ đề cập đến các khái niệm và kỹ thuật kỹ thuật prompt nâng cao hơn nữa để cải thiện hiệu suất trên tất cả những điều này và các tác vụ khó hơn.