AIHieu.comAI Hiểu
Mô hình ngôn ngữ hoạt động thế nào

Cửa sổ ngữ cảnh là gì: vì sao chatbot quên điều bạn dặn ở đầu cuộc trò chuyện

Cửa sổ ngữ cảnh là lượng chữ tối đa mô hình đọc được trong một lần. Giải thích vì sao cuộc trò chuyện dài bị quên, bị loãng, và cửa sổ lớn không phải phép màu.

Office worker in Da Nang leaning over a long desk covered with many blank paper sheets laid side by side, seen from behind, overhead fluorescent light

Cửa sổ ngữ cảnh là lượng văn bản tối đa mà mô hình ngôn ngữ nhìn thấy được trong một lần trả lời, tính bằng token, bao gồm cả lời dặn ẩn, lịch sử trò chuyện, tài liệu bạn dán vào và chính câu trả lời đang viết. Thứ gì nằm ngoài cửa sổ thì với mô hình coi như không tồn tại.

Hình ảnh dễ hiểu nhất là một chiếc bàn làm việc có kích thước cố định. Mọi giấy tờ liên quan đến việc đang làm phải bày được lên mặt bàn thì người làm mới đọc được. Bàn đầy rồi mà còn thêm giấy mới, thì phải dọn bớt giấy cũ xuống ngăn kéo — và người làm không mở ngăn kéo ra xem nữa. Bài này giải thích chiếc bàn đó vận hành ra sao, vì sao cuộc trò chuyện dài hay bị quên đầu, và vì sao bàn rộng hơn chưa chắc đã đọc kỹ hơn.

Thứ gì chiếm chỗ trên mặt bàn

Mỗi lần bạn gửi một tin nhắn, ứng dụng chatbot dựng lại toàn bộ phần đầu vào từ đầu. Mô hình không giữ lại gì giữa hai lần trả lời, nên muốn nó "nhớ" chuyện vừa bàn, ứng dụng phải bày lại tất cả lên bàn mỗi lần. Trên mặt bàn thường có những thứ sau, theo thứ tự từ trên xuống.

Trước tiên là câu lệnh hệ thống do nhà cung cấp viết, đôi khi khá dài vì chứa nhiều quy tắc ứng xử và mô tả công cụ. Tiếp theo là những ghi chú cá nhân hoá nếu bạn có bật tính năng lưu sở thích hay hướng dẫn riêng. Sau đó là toàn bộ các lượt hỏi đáp từ đầu cuộc trò chuyện, gồm cả những câu trả lời dài của chính chatbot. Rồi tới tài liệu, ảnh, kết quả tìm kiếm được đưa vào. Cuối cùng là tin nhắn mới nhất của bạn.

Phần còn trống phải đủ để chứa câu trả lời sắp viết, vì mỗi mảnh chữ mô hình viết ra cũng được đặt lên bàn để đoán mảnh kế tiếp. Nếu đầu vào đã chiếm gần hết, câu trả lời có thể bị cụt hoặc ứng dụng báo cuộc trò chuyện quá dài.

Điều nhiều người không ngờ là những câu trả lời dài dòng của chatbot thường chiếm nhiều chỗ hơn câu hỏi của bạn. Một cuộc trò chuyện mà mỗi lượt chatbot viết vài trang thì đầy bàn rất nhanh, dù bạn chỉ gõ vài dòng. Tài liệu dán vào cũng vậy: một hợp đồng dài, một chương sách, một bảng tính chuyển sang chữ có thể chiếm phần lớn sức chứa chỉ trong một lần.

Khi bàn đầy, ứng dụng làm gì

Cắt bỏ phần cũ nhất. Cách đơn giản nhất là bỏ bớt những lượt trò chuyện đầu tiên để nhường chỗ cho lượt mới. Đây là lý do kinh điển khiến chatbot quên tên nhân vật bạn đặt từ đầu, quên quy ước "trả lời ngắn gọn" bạn dặn ở tin nhắn thứ nhất.

Tóm tắt phần cũ. Một số ứng dụng thay đoạn đầu cuộc trò chuyện bằng một bản tóm tắt ngắn do chính mô hình viết. Cách này giữ được ý chính nhưng mất chi tiết: con số cụ thể, câu chữ nguyên văn, những ngoại lệ bạn đã nêu dễ rơi khỏi bản tóm tắt.

Chỉ lấy những đoạn liên quan. Với tài liệu rất dài, ứng dụng có thể chia nhỏ tài liệu, rồi mỗi lần chỉ đưa lên bàn những đoạn trông có vẻ liên quan đến câu hỏi. Cách này gọi là tìm kiếm tăng cường, có bài riêng ở chuyên mục tác tử và công cụ. Nó giúp làm việc với kho tài liệu lớn, nhưng nếu khâu chọn đoạn chọn nhầm thì mô hình trả lời dựa trên đoạn sai.

Báo lỗi và bảo bạn mở cuộc mới. Một số ứng dụng không xử lý ngầm mà thông báo thẳng rằng cuộc trò chuyện đã đạt giới hạn. Cách này kém tiện nhưng minh bạch hơn: bạn biết chắc thứ gì còn trên bàn.

Bàn rộng hơn chưa chắc đã đọc kỹ hơn

Kích thước cửa sổ ngữ cảnh đã tăng rất mạnh qua các thế hệ mô hình. Những mô hình đời đầu chỉ chứa được vài nghìn token, tương đương vài trang giấy. Nhiều mô hình hiện nay quảng bá cửa sổ hàng trăm nghìn token, có nơi tới hàng triệu, đủ cho cả cuốn sách. Con số cụ thể thay đổi liên tục, bạn nên kiểm trong tài liệu hiện hành của từng dịch vụ.

Nhưng nhét được vào không có nghĩa là đọc kỹ được hết. Một nhóm nghiên cứu năm 2023 công bố bài có tên "Lost in the Middle", cho thấy ở các mô hình họ thử nghiệm, thông tin nằm ở đầu hoặc cuối đoạn đầu vào dài được dùng tốt hơn thông tin nằm ở giữa. Các mô hình về sau đã cải thiện, nhưng hiện tượng "đọc lướt phần giữa" vẫn là điều người làm nghề hay lưu ý.

Có thể hình dung như một người phải xem một chồng hồ sơ dày trong thời gian ngắn: trang đầu và trang cuối nhớ rõ, những trang giữa chỉ còn ấn tượng mờ. Mô hình không mệt mỏi như người, nhưng cơ chế chú ý của nó phải phân bổ sự quan tâm cho rất nhiều mảnh cùng lúc, và chi tiết nhỏ giữa một biển chữ dễ bị chìm.

Thêm nữa, đầu vào càng dài thì mỗi lần trả lời càng tốn tính toán, câu trả lời có thể chậm hơn. Vì vậy có ứng dụng cố ý giữ cửa sổ thực dùng nhỏ hơn khả năng tối đa của mô hình. Khi đọc một con số cửa sổ ngữ cảnh trong tin tức hay quảng cáo, hãy hiểu đó là sức chứa tối đa, không phải lời hứa về độ chính xác khi dùng hết sức chứa.

Dấu hiệu cho thấy cửa sổ ngữ cảnh đang là vấn đề

Khi trò chuyện lâu với chatbot, bạn có thể tự nhận ra những lúc mặt bàn đã quá tải. Bảng dưới gom các dấu hiệu thường gặp và lời giải thích theo cơ chế.

Dấu hiệuĐiều có thể đang xảy ra
Chatbot quên quy ước bạn đặt ở đầu, như xưng hô hay độ dàiLượt đầu đã bị cắt khỏi bàn hoặc bị tóm tắt mất chi tiết
Hỏi lại một con số đã nêu thì nó đưa số khácCon số gốc không còn nguyên văn trên bàn, mô hình đang đoán lại
Trả lời về tài liệu dài nhưng bỏ sót đoạn giữaTài liệu có thể chưa được đưa vào trọn vẹn, hoặc phần giữa ít được chú ý
Câu trả lời ngày càng lặp lại ý cũLịch sử dài đầy những câu trả lời trước, mô hình bị kéo theo khuôn đã có
Câu trả lời bị cắt ngang giữa chừngĐầu vào chiếm gần hết, chỗ trống cho câu trả lời không còn đủ

Không phải dấu hiệu nào cũng do cửa sổ ngữ cảnh. Mô hình có thể quên quy ước ngay cả khi bàn còn rộng, vì một lời dặn ở xa bị những tin nhắn gần hơn lấn át. Nhưng khi cuộc trò chuyện đã dài, giới hạn mặt bàn là thủ phạm đầu tiên nên nghĩ tới.

Hiểu cửa sổ ngữ cảnh để dùng cho tỉnh

Biết mặt bàn có giới hạn, bạn sẽ tự điều chỉnh được vài thói quen mà không cần thuộc mẹo nào:

  • Việc mới thì mở cuộc trò chuyện mới. Một cuộc trò chuyện ôm năm chủ đề khác nhau là năm chồng giấy tranh nhau một mặt bàn.
  • Với việc dài hơi, thỉnh thoảng nhắc lại những điều quan trọng nhất, hoặc đưa lại bản tóm tắt do chính bạn kiểm, thay vì trông vào việc chatbot giữ được từ đầu.
  • Với tài liệu dài, đừng mặc định chatbot đã đọc hết. Khi cần chắc chắn về một đoạn, hãy hỏi đúng đoạn đó và đối chiếu với văn bản gốc.
  • Đừng coi lịch sử trò chuyện là nơi lưu trữ. Thông tin quan trọng nên nằm trong tài liệu của bạn, không phải trong trí nhớ của một chiếc bàn bị dọn liên tục.
  • Những gì đã nằm trên bàn đều đã đi lên máy chủ của nhà cung cấp. Che thông tin cá nhân và bí mật công việc trước khi dán tài liệu dài, kể cả khi bạn nghĩ mô hình "sẽ quên".

Mô hình không có cảm giác về việc bàn đã đầy. Nó không báo "phần này đã bị dọn đi", mà vẫn tự tin trả lời dựa trên những gì còn lại. Đây là điểm khác lớn nhất so với một người cộng sự biết nói "để em xem lại, đoạn đó em không nhớ".

Cửa sổ ngữ cảnh khác bộ nhớ dài hạn như thế nào

Gần đây nhiều chatbot có tính năng nhớ qua các cuộc trò chuyện: nó biết bạn là giáo viên, biết bạn thích câu trả lời ngắn, dù bạn mở cuộc mới. Điều này dễ khiến người dùng nghĩ mô hình đã có trí nhớ thật. Thực ra cơ chế vẫn là chiếc bàn: ứng dụng lưu vài ghi chú về bạn ở một nơi riêng, rồi mỗi lần bắt đầu thì đặt những ghi chú đó lên bàn cùng câu lệnh hệ thống.

Vậy nên có thể phân biệt ba thứ. Thứ nhất là kiến thức nằm trong tham số của mô hình, học từ lúc huấn luyện và không thay đổi khi bạn trò chuyện. Thứ hai là cửa sổ ngữ cảnh, mặt bàn tạm thời của từng lần trả lời. Thứ ba là bộ nhớ của ứng dụng, những tờ ghi chú được cất trong ngăn kéo riêng và chủ động mang ra bàn khi cần.

Khi chatbot "nhớ" một điều sai về bạn, thường là vì tờ ghi chú trong ngăn kéo sai, và bạn có thể xem, sửa hoặc xoá nó trong phần cài đặt ở nhiều dịch vụ. Cách tổ chức bộ nhớ dài hạn khác nhau giữa các hãng và thay đổi theo phiên bản, nên hãy kiểm phần cài đặt của dịch vụ bạn đang dùng. Chuyện chatbot nhớ cuộc trò chuyện ra sao có bài riêng trong chuyên mục này.

Vì sao không làm luôn một chiếc bàn vô hạn

Nếu bàn nhỏ gây ra bao nhiêu phiền toái, sao các hãng không làm cửa sổ ngữ cảnh lớn vô tận? Câu trả lời nằm ở cách mô hình đọc. Với kiến trúc transformer, khi viết mỗi mảnh chữ, mô hình xét mối liên quan giữa mảnh đó với các mảnh khác trên bàn. Ở dạng cơ bản, số phép so sánh này tăng nhanh hơn độ dài văn bản: văn bản dài gấp đôi thì khối lượng so sánh có thể tăng gấp bốn.

Hệ quả là văn bản càng dài thì càng tốn bộ nhớ máy chủ, càng tốn điện, câu trả lời càng chậm. Các nhóm nghiên cứu đã nghĩ ra nhiều cách tiết kiệm, như chỉ cho mỗi mảnh nhìn kỹ một vùng gần nó, nén bớt thông tin về những đoạn xa, hay sắp xếp phép tính khéo hơn trên phần cứng. Nhờ đó cửa sổ đã lớn lên nhiều lần so với vài năm trước, nhưng chi phí vẫn không biến mất.

Một giới hạn khác ít được nói tới: mô hình phải được huấn luyện với những văn bản dài thì mới dùng tốt cửa sổ dài. Nếu phần lớn dữ liệu huấn luyện là đoạn ngắn, mô hình có thể nhận được văn bản dài về mặt kỹ thuật nhưng xử lý không khéo những quan hệ trải dài hàng trăm trang. Đây là một lý do khiến chất lượng ở cuối cửa sổ có khi không bằng ở đầu.

Với người dùng, bài học rút ra rất thực tế: sức chứa lớn là tiện ích, không phải lý do để dồn mọi thứ vào một cuộc trò chuyện. Đưa đúng phần cần thiết lên bàn vẫn cho kết quả tốt hơn đổ cả kho giấy tờ lên rồi mong mô hình tự tìm.

Câu hỏi thường gặp

Cửa sổ ngữ cảnh có phải là trí nhớ của chatbot không?

Gần giống trí nhớ ngắn hạn của một lần trả lời. Mô hình chỉ thấy những gì nằm trong cửa sổ ở thời điểm đó, và không giữ lại gì sau khi trả lời xong. Cảm giác chatbot nhớ là do ứng dụng gửi lại lịch sử mỗi lần.

Cửa sổ ngữ cảnh được tính bằng gì?

Bằng token, tức các mảnh chữ mà mô hình đọc. Vì một từ có thể là một hoặc vài token, và tiếng Việt thường tốn nhiều mảnh hơn tiếng Anh, nên cùng một con số giới hạn sẽ chứa được lượng chữ tiếng Việt ít hơn.

Cửa sổ càng lớn thì chatbot càng thông minh phải không?

Không. Cửa sổ lớn cho phép đưa vào nhiều văn bản hơn trong một lần, nhưng không làm mô hình lập luận giỏi hơn, và chưa chắc nó chú ý đều tới mọi đoạn. Độ thông minh và sức chứa là hai chuyện khác nhau.

Vì sao chatbot quên điều mình vừa dặn vài tin nhắn trước?

Nếu cuộc trò chuyện chưa dài, lý do thường là lời dặn bị các tin nhắn gần hơn lấn át, chứ không phải bị cắt khỏi cửa sổ. Mô hình cân nhắc mọi thứ trên bàn, và chỉ dẫn mới, cụ thể thường được ưu tiên hơn chỉ dẫn cũ, chung chung.

Mở cuộc trò chuyện mới có làm mất hết những gì đã nói không?

Với mô hình thì có, cuộc mới bắt đầu với mặt bàn trống. Riêng những gì ứng dụng đã lưu vào bộ nhớ dài hạn, nếu bạn bật tính năng đó, vẫn có thể được đưa vào cuộc mới dưới dạng ghi chú.

Dán cả cuốn sách vào chatbot thì nó có đọc hết không?

Nếu sách vừa cửa sổ, về kỹ thuật toàn bộ được đưa vào, nhưng mô hình có thể chú ý không đều và bỏ sót chi tiết ở giữa. Nếu sách vượt cửa sổ, ứng dụng sẽ cắt, tóm tắt hoặc chỉ lấy từng đoạn. Đừng mặc định là nó đã đọc kỹ từng trang.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138