Kỹ thuật nhắc lệnh cho cửa sổ ngữ cảnh dài của Claude

Hướng dẫn về các kỹ thuật kỹ thuật nhắc lệnh hiệu quả để tận dụng tối đa cửa sổ ngữ cảnh dài của Claude, cải thiện khả năng xử lý thông tin.

  • 11 min read
Kỹ thuật nhắc lệnh cho cửa sổ ngữ cảnh dài của Claude
Hướng dẫn về các kỹ thuật kỹ thuật nhắc lệnh hiệu quả để tận dụng tối đa cửa sổ ngữ cảnh dài của Claude, cải thiện khả năng xử lý thông tin.

Kỹ thuật prompt cho cửa sổ ngữ cảnh dài của Claude

Giới thiệu cửa sổ ngữ cảnh dài 100K token của Claude

Cửa sổ ngữ cảnh dài 100.000 token của Claude cho phép mô hình xử lý hàng trăm trang tài liệu kỹ thuật hoặc thậm chí cả một cuốn sách. Khi chúng tôi tiếp tục mở rộng quy mô API Claude, nhu cầu về hướng dẫn prompt để tối đa hóa tiềm năng của Claude ngày càng tăng. Hôm nay, chúng tôi rất vui mừng chia sẻ một nghiên cứu tình huống định lượng về hai kỹ thuật có thể cải thiện khả năng ghi nhớ của Claude trên các ngữ cảnh dài:

  1. Trích xuất các đoạn trích tham khảo liên quan đến câu hỏi trước khi trả lời.
  2. Bổ sung prompt bằng các ví dụ về câu hỏi đã được trả lời đúng về các phần khác của tài liệu.

Hãy đi sâu vào chi tiết.

Thử nghiệm khả năng ghi nhớ ngữ cảnh dài: Hỏi đáp trắc nghiệm

Mục tiêu của chúng tôi với thử nghiệm này là đánh giá các kỹ thuật nhằm tối đa hóa cơ hội nhớ lại thông tin cụ thể từ một tài liệu dài của Claude.

Làm nguồn dữ liệu nền cho thử nghiệm, chúng tôi đã sử dụng một tài liệu chính phủ công khai hàng ngày chứa các bản ghi và hoạt động của nhiều bộ phận khác nhau. Chúng tôi đã chọn một tài liệu từ ngày 13 tháng 7, tức là sau thời điểm cắt dữ liệu đào tạo của Claude. Điều này giảm thiểu khả năng Claude đã biết thông tin trong tài liệu.

Để tạo một bộ dữ liệu gồm các cặp câu hỏi và câu trả lời (Q&A), chúng tôi đã sử dụng một phương pháp mà chúng tôi gọi là “ghép ngẫu nhiên”. Chúng tôi chia tài liệu thành các phần và sử dụng Claude để tạo năm câu hỏi trắc nghiệm cho mỗi phần, mỗi câu có ba câu trả lời sai và một câu trả lời đúng. Sau đó, chúng tôi đã sắp xếp lại các bộ phần được ngẫu nhiên hóa thành các tài liệu dài để chúng tôi có thể cung cấp cho Claude và kiểm tra khả năng ghi nhớ nội dung của nó.

Prompt Claude để tạo câu hỏi trắc nghiệm

Việc yêu cầu Claude viết các bài đánh giá (evals) cho bạn là một công cụ mạnh mẽ mà chúng tôi, với tư cách là một nhóm kỹ thuật prompt, thường xuyên sử dụng. Tuy nhiên, cần phải prompt cẩn thận để Claude viết các câu hỏi có độ khó phù hợp. Dưới đây là một số thách thức mà chúng tôi đã giải quyết trong quá trình thiết kế một bộ kiểm tra hiệu quả:

  • Claude có thể đề xuất các câu hỏi mà nó có thể trả lời ngay lập tức mà không cần tham chiếu đến bất kỳ tài liệu nào, ví dụ: “Bộ Giao thông Vận tải làm gì?”
  • Claude có thể đưa ra các câu hỏi mà nó gặp khó khăn trong việc trả lời đúng, ngay cả trong các tình huống ngữ cảnh ngắn. Ví dụ, vì Claude nhìn thế giới theo token, không phải theo từ, nên một câu hỏi như “Có bao nhiêu từ trong đoạn văn?” thường gây khó khăn cho Claude.
  • Claude có thể để lại những gợi ý không cố ý trong câu trả lời, khiến câu trả lời đúng dễ đoán. Đặc biệt, chúng tôi nhận thấy mặc định của nó là làm cho câu trả lời đúng trở nên rất chi tiết so với các câu trả lời sai.
  • Claude có thể tham chiếu “tài liệu này” hoặc “đoạn văn này” mà không chỉ rõ đoạn văn nào mà nó đang hỏi đến. Điều này có vấn đề vì khi chúng tôi ghép nhiều tài liệu để tạo ngữ cảnh dài, Claude không có cách nào để biết câu hỏi đang hỏi về tài liệu nào.
  • Ngoài ra còn có rủi ro đi quá xa và làm cho câu hỏi trở nên quá rõ ràng đến mức chứa đựng câu trả lời. Ví dụ: “Ngày xuất bản thông báo của Bộ Nội vụ ngày 2 tháng 7 năm 2023 về các hành động bổ sung trong mùa vụ đối với thủy sản là gì?” sẽ là một câu hỏi không hiệu quả.

Để giúp vượt qua những cạm bẫy này, chúng tôi đã sử dụng một mẫu prompt bao gồm hai đoạn ghi nhớ mẫu cùng với các câu hỏi viết tay để hoạt động như các ví dụ về viết câu hỏi few-shot, cũng như một số hướng dẫn viết để Claude chỉ định chi tiết về đoạn văn. Mẫu và tất cả các prompt khác được sử dụng trong thử nghiệm này có sẵn tại đây.

Đánh giá

Đối với đánh giá này, chúng tôi chủ yếu tập trung vào mô hình Claude Instant nhỏ hơn của chúng tôi (phiên bản 1.2) thay vì mô hình Claude 2 của chúng tôi. Có một vài lý do cho việc này. Thứ nhất, Claude 2 đã rất giỏi trong việc ghi nhớ thông tin sau khi đọc các tài liệu rất dài. Claude Instant cần nhiều sự trợ giúp hơn, điều này giúp dễ dàng nhận thấy khi nào các thay đổi về prompt cải thiện hiệu suất. Ngoài ra, Claude Instant rất nhanh đến mức bạn có thể tự mình tái tạo các bài đánh giá này bằng notebook mà chúng tôi chia sẻ.

Khi chỉ cung cấp đoạn văn chính xác mà Claude đã sử dụng để viết câu hỏi, Claude Instant đã có thể trả lời câu hỏi do chính nó tạo ra khoảng 90% thời gian. Chúng tôi đã loại bỏ 10% câu hỏi mà nó trả lời sai – vì Claude đã trả lời sai ngay cả trong tình huống ngữ cảnh ngắn, chúng quá khó để hữu ích cho việc kiểm tra ngữ cảnh dài.

Chúng tôi cũng đã kiểm tra khả năng ghi nhớ của Claude khi được cung cấp một phần ngẫu nhiên không chứa tài liệu nguồn của câu hỏi. Về mặt lý thuyết, với ba câu trả lời sai, Claude chỉ nên đoán đúng 25% thời gian. Trên thực tế, nó đoán đúng 34% thời gian; cao hơn mức trung bình, nhưng không quá nhiều. Claude có thể đôi khi suy luận câu trả lời đúng dựa trên kiến thức chung của nó, hoặc dựa trên các gợi ý tinh tế trong câu trả lời.

Để xây dựng tài liệu dài từ các đoạn ngắn hơn, chúng tôi đã tạo ngữ cảnh dài mới cho mỗi câu hỏi bằng cách ghép nối một loạt các đoạn văn ngẫu nhiên cho đến khi đạt được số lượng token mong muốn. Chúng tôi đã kiểm tra Claude trên các tài liệu được ghép nối chứa khoảng 75.000 và 90.000 token.

Việc tạo ngữ cảnh vá víu này là lý do tại sao việc Claude tham chiếu các cụm từ mơ hồ như “tài liệu này” hoặc “đoạn văn này” trong câu hỏi của nó gây ra sự cố. Một câu hỏi như “Ngày xuất bản thông báo này là gì?” sẽ không thể trả lời được khi có hàng tá thông báo khác nhau trong ngữ cảnh mà “thông báo này” có thể đề cập đến. Đây là lý do tại sao prompt tạo câu hỏi của chúng tôi bao gồm ngôn ngữ yêu cầu Claude nói rõ về đoạn văn mà câu hỏi đề cập đến – ví dụ: “Ngày xuất bản thông báo về các hành động bổ sung trong mùa vụ đối với thủy sản là gì?”

Sau khi tạo các tài liệu dài (ghép nối), chúng tôi đã kiểm tra khả năng ghi nhớ của Claude bằng bốn chiến lược prompt khác nhau:

  1. Cơ sở – chỉ yêu cầu Claude trả lời
  2. Ví dụ không phải chính phủ - Cung cấp cho Claude hai ví dụ cố định về các câu hỏi trắc nghiệm kiến thức chung đã được trả lời đúng, không liên quan đến tài liệu chính phủ.
  3. Hai ví dụ - Cung cấp cho Claude hai ví dụ về các câu hỏi trắc nghiệm đã được trả lời đúng, được chọn ngẫu nhiên động từ tập hợp các câu hỏi do Claude tạo về các đoạn khác trong ngữ cảnh.
  4. Năm ví dụ - Chiến lược tương tự như #3, nhưng với năm ví dụ.

Đối với mỗi chiến lược trong bốn chiến lược trên, chúng tôi cũng đã kiểm tra chúng có hoặc không sử dụng <scratchpad>, trong đó chúng tôi hướng dẫn Claude trích xuất các đoạn trích liên quan. Hơn nữa, chúng tôi đã kiểm tra từng chiến lược này với đoạn văn chứa câu trả lời được đặt ở đầu, cuối hoặc giữa đầu vào. Cuối cùng, để có cái nhìn tổng quan về ảnh hưởng của độ dài ngữ cảnh đối với kết quả, chúng tôi đã kiểm tra với các tài liệu có cả 70K và 95K token.

Chúng tôi đã sử dụng Claude Instant 1.2 cho bài kiểm tra trên. Chúng tôi cũng trình bày kết quả cho Claude 2 trên chiến lược cơ sở và chiến lược hoạt động tốt nhất cho Claude Instant 1.2.

Kết quả

Một số lưu ý về thử nghiệm:

  • Mặc dù hiệu suất ở phần đầu và giữa tài liệu được cải thiện đáng kể nhờ sử dụng scratchpad và ví dụ, hiệu suất ở phần cuối có thể bị suy giảm. Điều này có thể là do việc bổ sung các ví dụ trong prompt làm tăng khoảng cách giữa phần cuối của tài liệu (nơi có thông tin liên quan) và thời điểm Claude cần trả lời nó. Điều này có lẽ chỉ là mối quan tâm nhỏ vì chỉ một phần nhỏ dữ liệu trong tài liệu nguồn ở cuối cùng. Tuy nhiên, điều này nhấn mạnh tầm quan trọng của việc đặt các hướng dẫn ở cuối prompt, vì chúng tôi muốn Claude ghi nhớ chúng càng nhiều càng tốt.
  • Sự cải thiện của Claude 2 từ 0,939 lên 0,961 với prompt có vẻ nhỏ về mặt tuyệt đối, nhưng nó phản ánh mức giảm lỗi 36%.

Một số bài học rút ra bạn có thể sử dụng để viết prompt Q&A ngữ cảnh dài của mình:

  • Sử dụng nhiều ví dụ và scratchpad để có hiệu suất tốt nhất trên cả hai độ dài ngữ cảnh.
  • Trích xuất các đoạn trích liên quan vào scratchpad rất hữu ích trong mọi so sánh trực tiếp. Nó đi kèm với một chi phí nhỏ về độ trễ, nhưng cải thiện độ chính xác. Trong trường hợp của Claude Instant, độ trễ đã rất thấp nên điều này không nên là một mối quan tâm.
  • Các ví dụ theo ngữ cảnh giúp ích trên cả 70K và 95K, và càng nhiều ví dụ càng tốt.
  • Các ví dụ chung về kiến thức chung/bên ngoài dường như không giúp cải thiện hiệu suất.

Đối với Claude Instant, có vẻ như có một mối quan hệ nghịch đảo đơn điệu giữa hiệu suất và khoảng cách của đoạn văn liên quan đến câu hỏi và cuối prompt, trong khi hiệu suất của Claude 2 trên 95K cho thấy một sự sụt giảm nhỏ ở giữa.

Giới thiệu Sổ tay công thức Anthropic mới

Mã có thể tái lập hoàn toàn cho thử nghiệm này có sẵn trong Sổ tay công thức Anthropic mới. Hiện tại, bộ tài nguyên đang phát triển này cũng chứa hai công thức khác:

  • Một bản trình diễn Tìm kiếm và Truy xuất, hiển thị luồng sử dụng công cụ để tìm kiếm Wikipedia.
  • Hướng dẫn triển khai chức năng tải lên PDF giả qua API Anthropic.

Chúng tôi mong muốn mở rộng Sổ tay công thức Anthropic và các tài nguyên kỹ thuật prompt khác của chúng tôi trong tương lai, và chúng tôi hy vọng chúng sẽ truyền cảm hứng cho bạn để mơ lớn về những gì bạn có thể xây dựng với Claude. Nếu bạn chưa nhận được quyền truy cập vào API Claude, vui lòng đăng ký quan tâm của bạn.

Chú thích

  1. Một chủ đề phổ biến trong các câu hỏi mà Claude trả lời sai là đếm, ví dụ: “Theo thông báo, số lượng phản hồi ước tính trên mỗi người trả lời cho mỗi biểu mẫu trong Gói Biểu mẫu Chung cho Biểu mẫu Vay được Thế chấp là bao nhiêu?” và “Có bao nhiêu sản phẩm hoàn chỉnh được đề xuất được liệt kê trong thông báo về hoạt động sản xuất tại cơ sở của Getinge Group Logistics Americas LLC?” Đáng chú ý, đối với một số câu hỏi này, câu trả lời “đúng” được Claude xác định trước (khi nó tạo cặp QA) thực tế không đúng. Đây là một nguồn nhiễu trong thử nghiệm này.
  2. Các câu hỏi là: 1. Ai là tổng thống đầu tiên của Hoa Kỳ? A. Thomas Jefferson, B. George Washington, C. Abraham Lincoln, D. John Adams, 2. Nhiệt độ sôi của nước, theo độ Fahrenheit, là bao nhiêu? A. 200, B. 100, C. 287, D. 212.
  3. Một bài báo gần đây đã tìm thấy mối quan hệ hình chữ U giữa hiệu suất và vị trí trong ngữ cảnh cho một nhiệm vụ tương tự. Một lời giải thích có thể cho các kết quả khác nhau là các ví dụ trong bài báo có độ dài trung bình 15K token (Phụ lục F), so với 70K/95K ở đây.

Recommended for You

Anthropic Ký cam kết của Nhà Trắng với Thanh niên Hoa Kỳ- Đầu tư vào Giáo dục AI

Anthropic Ký cam kết của Nhà Trắng với Thanh niên Hoa Kỳ- Đầu tư vào Giáo dục AI

Anthropic tham gia cùng Nhà Trắng và các tổ chức khác trong cam kết đầu tư vào giáo dục AI cho giới trẻ Mỹ, thúc đẩy tương lai của lực lượng lao động.

Anthropic bổ nhiệm Guillaume Princen làm Trưởng bộ phận EMEA và công bố hơn 100 vị trí mới trong khu vực

Anthropic bổ nhiệm Guillaume Princen làm Trưởng bộ phận EMEA và công bố hơn 100 vị trí mới trong khu vực

Anthropic chào đón Guillaume Princen đảm nhận vai trò Trưởng bộ phận EMEA, đồng thời công bố kế hoạch tuyển dụng mở rộng trong khu vực.