Chatbot AI trò chuyện cả ngày mà không gặp sự cố
Các nhà nghiên cứu đã phát triển một giải pháp đơn giản nhưng hiệu quả cho một vấn đề khó hiểu có thể làm giảm hiệu suất của các mô hình ngôn ngữ lớn như ChatGPT.
Các nhà nghiên cứu đã phát triển một giải pháp đơn giản nhưng hiệu quả cho một vấn đề khó hiểu có thể làm giảm hiệu suất của các mô hình ngôn ngữ lớn như ChatGPT.
Khi cuộc trò chuyện giữa con người và AI bao gồm nhiều vòng đối thoại liên tục, các mô hình máy học ngôn ngữ lớn mạnh mẽ điều khiển các chatbot như ChatGPT đôi khi bắt đầu sụp đổ, khiến hiệu suất của bot suy giảm nhanh chóng.
Một nhóm các nhà nghiên cứu từ MIT và các nơi khác đã xác định được nguyên nhân đáng ngạc nhiên của vấn đề này và phát triển một giải pháp đơn giản cho phép chatbot duy trì cuộc trò chuyện không ngừng nghỉ mà không bị gián đoạn hoặc bị chậm lại.
Phương pháp của họ liên quan đến việc điều chỉnh bộ đệm khóa-giá trị (giống như bộ nhớ hội thoại) ở cốt lõi của nhiều mô hình ngôn ngữ lớn. Trong một số phương pháp, khi bộ nhớ đệm này cần chứa nhiều thông tin hơn khả năng chứa của nó thì những phần dữ liệu đầu tiên sẽ bị loại bỏ. Điều này có thể khiến mô hình thất bại.
Bằng cách đảm bảo rằng một số điểm dữ liệu đầu tiên này vẫn còn trong bộ nhớ, phương pháp của các nhà nghiên cứu cho phép chatbot tiếp tục trò chuyện bất kể cuộc trò chuyện kéo dài bao lâu.
Phương pháp này có tên StreamingLLM, cho phép mô hình duy trì hiệu quả ngay cả khi cuộc trò chuyện kéo dài hơn 4 triệu từ. Khi so sánh với một phương pháp khác giúp tránh gặp sự cố bằng cách liên tục tính toán lại một phần các cuộc hội thoại trước đây, StreamingLLM hoạt động nhanh hơn 22 lần.
Điều này có thể cho phép chatbot thực hiện các cuộc trò chuyện dài trong suốt ngày làm việc mà không cần phải khởi động lại liên tục, tạo điều kiện cho trợ lý AI thực hiện hiệu quả các tác vụ như viết quảng cáo, chỉnh sửa hoặc tạo mã.
Các mô hình ngôn ngữ lớn mã hóa dữ liệu, như các từ trong truy vấn của người dùng, thành các biểu thị được gọi là mã thông báo. Nhiều mô hình sử dụng cơ chế chú ý các mã thông báo này để tạo văn bản mới.
Thông thường, chatbot AI viết văn bản mới dựa trên văn bản mà nó vừa xem, do đó, nó lưu các mã thông báo gần đây vào bộ nhớ, được gọi là KV Cache, để sử dụng sau này. Cơ chế chú ý xây dựng một lưới bao gồm tất cả các mã thông báo trong bộ đệm, một “bản đồ chú ý” giúp vạch ra mức độ liên quan của từng mã thông báo hoặc từ với nhau.
Hiểu được những mối quan hệ này là một tính năng cho phép các mô hình ngôn ngữ lớn tạo ra văn bản giống con người.
Nhưng khi bộ đệm trở nên quá lớn, bản đồ chú ý có thể trở nên lớn hơn, điều này làm chậm quá trình tính toán.
Ngoài ra, nếu nội dung mã hóa yêu cầu nhiều mã thông báo hơn mức bộ nhớ đệm có thể chứa thì hiệu suất của mô hình sẽ giảm. Ví dụ: một mô hình phổ biến có thể lưu trữ 4.096 mã thông báo, tuy nhiên có khoảng 10.000 mã thông báo trong một bài báo học thuật.
Để giải quyết những vấn đề này, các nhà nghiên cứu sử dụng một “bộ đệm trượt” loại bỏ các mã thông báo cũ nhất để thêm mã thông báo mới. Tuy nhiên, hiệu suất của mô hình thường giảm mạnh ngay khi mã thông báo đầu tiên đó bị loại bỏ, làm giảm nhanh chóng chất lượng của các từ mới được tạo ra.
Trong bài báo mới này, các nhà nghiên cứu nhận ra rằng nếu họ giữ mã thông báo đầu tiên trong bộ đệm trượt, mô hình sẽ duy trì hiệu suất ngay cả khi vượt quá kích thước bộ đệm.
Nhưng điều này không có ý nghĩa gì cả. Từ đầu tiên trong một cuốn tiểu thuyết có thể không liên quan gì đến từ cuối cùng, vậy tại sao từ đầu tiên lại quan trọng đến vậy đối với mô hình tạo ra từ mới nhất?
Trong bài báo mới của mình, các nhà nghiên cứu cũng đã khám phá ra nguyên nhân của hiện tượng này.
Một số mô hình sử dụng thao tác Softmax trong cơ chế chú ý của chúng, thao tác này chỉ định điểm cho từng mã thông báo thể hiện mức độ liên quan của mã thông báo đó với nhau. Hoạt động Softmax yêu cầu tất cả các điểm chú ý phải có tổng bằng 1. Vì hầu hết các mã thông báo không có liên quan chặt chẽ nên điểm chú ý của chúng rất thấp. Mô hình loại bỏ mọi điểm chú ý còn lại trong mã thông báo đầu tiên.
Các nhà nghiên cứu gọi mã thông báo đầu tiên này là “sự chú ý”.
Khi xây dựng StreamingLLM, các nhà nghiên cứu đã phát hiện ra rằng việc có bốn mã thông báo chú ý ở đầu bộ đệm trượt sẽ mang lại hiệu suất tối ưu.
Họ cũng nhận thấy rằng mã hóa vị trí của từng mã thông báo phải giữ nguyên, ngay cả khi các mã thông báo mới được thêm vào và các mã thông báo khác bị loại bỏ. Nếu mã thông báo 5 bị loại bỏ, mã thông báo 6 phải được mã hóa thành 6, mặc dù hiện tại nó là mã thông báo thứ năm trong bộ đệm.
Bằng cách kết hợp hai ý tưởng này, họ đã cho phép StreamingLLM duy trì cuộc trò chuyện liên tục trong khi hoạt động tốt hơn phương pháp phổ biến sử dụng tính toán lại.
Các nhà nghiên cứu cũng khám phá việc sử dụng mức thu hút sự chú ý trong quá trình đào tạo mô hình bằng cách thêm vào trước một số mã thông báo giữ chỗ trong tất cả các mẫu đào tạo.
Họ phát hiện ra rằng việc đào tạo với mức chú ý cho phép một mô hình duy trì hiệu suất chỉ với một mức chú ý trong bộ nhớ đệm, thay vì bốn mức thường được yêu cầu để ổn định hiệu suất của mô hình được đào tạo trước.
Nhưng trong khi StreamingLLM cho phép mô hình thực hiện cuộc trò chuyện liên tục thì mô hình đó không thể nhớ các từ không được lưu trong bộ đệm. Trong tương lai, các nhà nghiên cứu có kế hoạch giải quyết hạn chế này bằng cách nghiên cứu các phương pháp truy xuất mã thông báo đã bị trục xuất hoặc cho phép mô hình ghi nhớ các cuộc hội thoại trước đó.