Chain-of-Thought prompting là một kỹ thuật giúp cải thiện hiệu suất của các mô hình ngôn ngữ bằng cách ra lệnh cho mô hình một cách rõ ràng từng bước một quá trình giải thích hoặc suy luận trước khi đi đến phản hồi cuối cùng. Phương pháp này giúp mô hình chia nhỏ vấn đề và không bỏ qua bất kỳ nhiệm vụ trung gian nào để tránh lỗi lý luận.
CoT có hiệu quả vì nó giúp tập trung cơ chế chú ý của LLM. Việc phân tích quá trìnhsuy luận khiến mô hình tập trung sự chú ý vào một phần của vấn đề tại một thời điểm, giảm thiểu rủi ro lỗi có thể phát sinh do xử lý quá nhiều thông tin cùng một lúc.
So sánh giữa một prompt thông thường và CoT Prompting. So sánh giữa câu lệnh chuẩn và câu lệnh CoT. Bên trái, mô hình được hướng dẫn cung cấp trực tiếp câu trả lời cuối cùng (gợi ý chuẩn). Bên phải, mô hình được hướng dẫn hiển thị quá trình lý luận để đi đến câu trả lời cuối cùng (gợi ý CoT).
Như chúng ta có thể thấy, việc tạo ra một CoT là một loạt các bước lý luận trung gian giúp mô hình đưa ra câu trả lời đúng.
Các tác giả ban đầu gọi chuỗi suy nghĩ là một loạt các bước lý luận ngôn ngữ tự nhiên trung gian dẫn đến đầu ra cuối cùng, gọi cách tiếp cận này là câu lệnh chuỗi suy nghĩ - Chain-of-Thought prompting
CoT Prompting cho phép khả năng lý luận phức tạp thông qua các bước lý luận trung gian. Bạn có thể kết hợp nó với phương pháp few-shot prompting để đạt được kết quả tốt hơn trong các nhiệm vụ phức tạp hơn, yêu cầu lý luận trước khi phản hồi.
Quá trình CoT bắt đầu bằng cách tạo ra các câu lệnh khuyến khích mô hình suy nghĩ về vấn đề theo từng bước một, từ đó tạo ra các bước trung gian mà không nhảy thẳng đến câu trả lời cuối cùng. Điều này có thể được thực hiện bằng cách sử dụng các chiến lược khác nhau:
Việc đưa ra các hướng dẫn rõ ràng có nghĩa là phân tách vấn đề ngay trong câu lệnh của người dùng. Ví dụ, sử dụng những câu như “Đầu tiên, chúng ta cần xem xét…” để khuyến khích mô hình trình bày quá trình tư duy của nó.
Hãy cùng xem ví dụ dưới đây:
Hãy tưởng tượng rằng mẹ đã gửi cho tôi công thức gia đình để chuẩn bị Cold Brew bằng tiếng Tây Ban Nha:
input_text = """
¡Preparar café Cold Brew es un proceso sencillo y refrescante!
Todo lo que necesitas son granos de café molido grueso y agua fría.
Comienza añadiendo el café molido a un recipiente o jarra grande.
Luego, vierte agua fría, asegurándote de que todos los granos de café
estén completamente sumergidos.
Remueve la mezcla suavemente para garantizar una saturación uniforme.
Cubre el recipiente y déjalo en remojo en el refrigerador durante al
menos 12 a 24 horas, dependiendo de la fuerza deseada."""
Giả sử chúng ta quan tâm đến việc dịch tất cả các từ liên quan đến cà phê sang tiếng Việt, và chúng ta muốn sử dụng mô hình GPT 4omini cho nhiệm vụ này. Nếu chúng ta sử dụng câu lệnh sau đơn giản sau:
prompt = f""" Hãy cho tôi một danh sách đánh số tất cả các từ liên quan đến cà phê bằng tiếng Việt từ văn bản dưới đây: Văn bản: <{input_text}> """
Thì có thể câu trả lời mà chúng ta nhận được sẽ không đúng như mong muốn của chúng ta. Kết quả trả về có thể đúng danh sách những từ liên quan đến cà phê, nhưng sẽ được viết bằng tiếng Tây Ban Nha, không phải bằng tiếng Việt.
Thay vào đó, chúng ta có thể chia nhiệm vụ này ra thành các nhiệm vụ nhỏ hơn và viết câu lệnh như sau:
Dịch văn bản từ tiếng Tây Ban Nha sang tiếng Việt.
Xác định các từ liên quan đến cà phê.
Bằng cách xác định dịch là một nhiệm vụ trung gian hoặc phân tách nhiệm vụ thành hai bước chính, mô hình sẽ hiểu chính xác quy trình công việc cần làm và đưa ra kết quả đúng với yêu cầu của chúng ta hơn.
prompt = f"""
Hãy cho tôi một danh sách đánh số tất cả các từ liên quan đến cà phê bằng tiếng Việt từ văn bản dưới đây:
Nhiệm vụ yêu cầu các hành động sau đây:
1. Dịch văn bản từ tiếng Tây Ban Nha sang tiếng Việt.
2. Xác định các từ liên quan đến cà phê.
Văn bản: <{input_text}> """""
Đôi khi, không cần thiết phải phân tích vấn đề trong câu lệnh. Đại học Tokyo, cùng với Nghiên cứu Google, đã đề xuất một phương pháp hay để cải thiện các phản hồi của LLM, đó là chỉ cần thêm câu “Hãy nghĩ từng bước một” ở cuối đề bài gốc.
Câu đơn giản này thúc đẩy mô hình suy nghĩ to thành tiếng và đi qua tất cả các bước cần thiết để thực hiện nhiệm vụ.
So sánh giữa việc sử dụng câu lệnh chuẩn và CoT Prompting có hướng dẫn ngầm. Bên trái, mô hình cung cấp câu trả lời cuối cùng cho vấn đề ngay lập tứcvà không thành công. Bên phải, mô hình được hướng dẫn bằng một yêu cầu ngầm và đạt được câu trả lời đúng.
[a] Trong ví dụ đầu tiên, tác giả yêu cầu mô hình giải quyết một bài toán số học, nhưng nó không thành công trong nhiệm vụ này.
[b] Sau đó, bằng cách thêm "Hãy suy nghĩ từng bước" vào câu hỏi ban đầu, mô hình lý luận câu trả lời một cách rõ ràng và thành công.
Tuy nhiên, quá trình này vẫn có thể dẫn đến những sai sót trong các chuỗi được tạo ra. Để giảm thiểu tác động của những sai sót, sự đa dạng của các ví dụ là rất quan trọng. Sau đó, các nhà nghiên cứu đã đề xuất Auto-CoT (CoT Prompting tự động), một phương pháp lấy mẫu các câu hỏi với sự đa dạng và tạo ra các chuỗi lý luận để xây dựng các ví dụ.
Auto-CoT bao gồm hai giai đoạn chính:
Giai đoạn 1): phân cụm câu hỏi: chia các câu hỏi trong một tập dữ liệu nhất định thành một vài cụm.
Giai đoạn 2): lấy mẫu ví dụ: chọn một câu hỏi đại diện từ mỗi cụm và tạo chuỗi lý luận của nó bằng cách sử dụng Zero-Shot-CoT với các quy tắc đơn giản.
Các quy tắc đơn giản có thể bao gồm độ dài câu hỏi (ví dụ: 60 token) và số bước trong lý luận (ví dụ: 5 bước lý luận). Điều này khuyến khích mô hình sử dụng các ví dụ đơn giản và chính xác.
Quá trình này được minh họa như dưới đây:
Có nhiều cách để tích hợp CoT vào các câu lệnh của chúng ta:
Mẫu cấu trúc: Sử dụng các mẫu rõ ràng chỉ ra các bước mà mô hình nên thực hiện.
Yêu cầu tương tác: Tạo ra một cuộc đối thoại với mô hình và yêu cầu nó giải thích từng bước hoặc hướng dẫn quá trình suy nghĩ của mô hình bằng cách cung cấp phản hồi hoặc sửa chữa ở mỗi bước. Phương pháp này cũng được gọi là cách tiếp cận Con người trong quy trình.
Vòng phản hồi: Kết hợp các cơ chế phản hồi tại các bước trung gian của mô hình và tinh chỉnh nếu cần thiết. Điều này còn được gọi là nhắc nhở Đa Giai đoạn.
Bạn có thể đọc thêm bài viết Cách dùng Chain-of-Thought Prompting viết bài quảng cáo trên Facebook và bài viết Sử dụng kỹ thuật Chain-of-Thought Prompting để lên kế hoạch Marketing để hiểu thêm về cách áp dụng Chain-of-Thought Promting vào xử lý công việc của bạn.
CoT Prompting mang lại một số lượi ích, đặc biệt là trong việc nâng cao hiệu suất và độ tin cậy của các mô hình ngôn ngứ trong các nhiệm vụ phức tạp.
Bằng cách chia nhỏ vấn đề thành các bước nhỏ hơn, dễ quản lý hơn, mô hình có thể xử lý các nhiệm vụ phức tạp một cách chính xác hơn. Các bước trung gian cung cấp các điểm kiểm tra nơi có thể phát hiện và sửa các lỗi tiềm ẩn, dẫn đến câu trả lời cuối cùng chính xác hơn.
Đây là lý do vì sao các nhiệm vụ vụ như giải bài toán, câu đố logic hoặc trả lời câu hỏi nhiều bước, được hưởng lợi từ cách tiếp cận này là vì chúng vốn đã yêu cầu nhiều bước suy luận.
Quy trình suy luận từng bước rất minh bạch, cho phép người dùng hiểu cách mô hình đi đến kết luận của mình. Nó cũng có thể giúp người dùng có thể dễ dàng phát hiện ra bước có thể sai trong quá trình suy luận.
Điều quan trọng cần cân nhắc là CoT prompting là một kỹ thuật phụ thuộc vào mô hình. Do đó, hiệu quả của CoT prompting phần lớn phụ thuộc vào khả năng của mô hình ngôn ngữ.
Việc thiết kế một prompt CoT đòi hỏi phải thiết kế cẩn thận để đảm bảo rằng prompt hướng dẫn mô hình đúng cách trong suốt quá trình suy luận. Việc cập nhật và duy trì prompt cho các công việc khác nhau có thể tốn thời gian và có thể yêu cầu phải tinh chỉnh liên tục.
CoT prompting có thể không hiệu quả đối với các công việc không có quy trình suy luận tuần tự rõ ràng. Hơn nữa, nó có thể không khái quát tốt đối với các loại vấn đề hoàn toàn mới hoặc bất ngờ nếu không có đào tạo hoặc điều chỉnh bổ sung, vì vậy việc duy trì cơ sở kiến thức mới và phù hợp là rất quan trọng.
Mặc dù CoT prompting làm tăng khả năng diễn giải bằng cách cung cấp các giải thích từng bước, nhưng nó cũng có thể dẫn đến các đầu ra dài hơn và chi tiết hơn, điều này không phải lúc nào cũng mong muốn đối với mọi công việc.
Trong bài viết này, chúng ta đã thấy CoT Prompting thể hiện sự tiến bộ đáng kể trong việc nâng cao khả năng phản hồi của LLMs. Cho dù sử dụng mẫu prompt nào, bản chất của các phương pháp này là hướng dẫn mô hình thực hiện quy trình lập luận và khai thác các khả năng của nó.
Hãy cân nhắc thử các kỹ thuật thiết lập câu lệnh được nhắc đến trong bài viết này để xây dựng các prompt hiệu quả và hãy ghi nhớ: Kỹ thuật nhắc nhở có thể có tác động lớn đến đầu ra của bạn!