Nếu bạn đã từng trải nghiệm giao tiếp với bất kỳ robot AI đàm thoại nào, chắc chắn bạn có thể nhớ lại một số khoảnh khắc cực kỳ “bức xúc”. Ví dụ, những điểm chính bạn đề cập trong cuộc trò chuyện ngày hôm trước đã bị AI quên hoàn toàn…
Điều này là do hầu hết các LLM hiện nay chỉ có thể nhớ được ngữ cảnh hạn chế, giống như việc học sinh ôn thi, chỉ cần hỏi một chút là sẽ lộ chân.
Hãy tưởng tượng nếu trợ lý AI trong cuộc trò chuyện có thể tham chiếu theo ngữ cảnh các cuộc trò chuyện từ nhiều tuần hoặc vài tháng trước hoặc nếu bạn có thể yêu cầu trợ lý AI tóm tắt một báo cáo dài hàng nghìn trang.
Để làm cho LLM ngày càng ghi nhớ tốt hơn, các nhà nghiên cứu đã không ngừng làm việc chăm chỉ. Gần đây, các nhà nghiên cứu từ MIT, Meta AI và CMU đã đề xuất một phương pháp có tên "StreamingLLM" để cho phép các mô hình ngôn ngữ xử lý văn bản vô tận một cách trơn tru.
* Địa chỉ giấy tờ:
*địa chỉ dự án:
Nguyên tắc hoạt động của StreamingLLM là xác định và lưu các mã thông báo ban đầu được neo bởi "mức chú ý" vốn có của mô hình để lý luận. Kết hợp với bộ nhớ đệm luân phiên của các mã thông báo gần đây, StreamingLLM tăng tốc độ suy luận lên 22 lần mà không làm mất đi bất kỳ độ chính xác nào. Chỉ trong vài ngày, dự án đã đạt được 2,5 nghìn sao trên nền tảng GitHub:
Cụ thể, StreamingLLM cho phép mô hình ngôn ngữ ghi nhớ chính xác điểm chạm của trận đấu gần nhất, tên của trẻ sơ sinh, hợp đồng dài dòng hay nội dung tranh luận, giống như trí nhớ của trợ lý AI đã được nâng cấp để xử lý hoàn hảo. khối lượng công việc nặng nề hơn.
Tiếp theo chúng ta hãy xem xét các chi tiết kỹ thuật.
Đổi mới phương pháp
Thông thường, LLM bị giới hạn bởi cửa sổ chú ý khi được đào tạo trước. Mặc dù rất nhiều công việc trước đây đã được thực hiện để mở rộng kích thước cửa sổ này và cải thiện hiệu quả đào tạo và suy luận, nhưng độ dài chuỗi LLM có thể chấp nhận được vẫn còn hạn chế, điều này không thân thiện với việc triển khai liên tục.
Trong bài báo này, các nhà nghiên cứu lần đầu tiên giới thiệu khái niệm về ứng dụng phát trực tuyến LLM và đặt câu hỏi: “LLM có thể được triển khai với đầu vào dài vô hạn mà không làm giảm hiệu quả và hiệu suất không?”
Có hai thách thức chính khi áp dụng LLM cho luồng đầu vào dài vô hạn:
Trong giai đoạn giải mã, LLM dựa trên máy biến áp lưu trữ trạng thái Khóa và Giá trị (KV) của tất cả các mã thông báo trước đó, như trong Hình 1 (a), điều này có thể gây ra việc sử dụng bộ nhớ quá mức và tăng độ trễ giải mã;
Khả năng ngoại suy độ dài của các mô hình hiện có bị hạn chế, nghĩa là khi độ dài chuỗi vượt quá kích thước cửa sổ chú ý đã đặt trong quá trình đào tạo trước, hiệu suất của nó sẽ giảm.
Một phương pháp trực quan được gọi là Window Chú ý (Hình 1 b). Phương pháp này chỉ duy trì một cửa sổ trượt có kích thước cố định ở trạng thái KV của mã thông báo gần đây nhất, mặc dù nó có thể đảm bảo rằng Nó có thể duy trì tốc độ giải mã và sử dụng bộ nhớ ổn định, nhưng khi độ dài chuỗi vượt quá kích thước bộ đệm hoặc thậm chí chỉ loại bỏ KV của mã thông báo đầu tiên, mô hình sẽ sụp đổ. Một phương pháp khác là tính toán lại cửa sổ trượt (được hiển thị trong Hình 1 c). Phương pháp này sẽ xây dựng lại trạng thái KV của mã thông báo gần đây cho mỗi mã thông báo được tạo. Mặc dù hiệu suất rất mạnh nhưng nó yêu cầu tính toán sự chú ý thứ cấp trong cửa sổ. kết quả chậm hơn đáng kể, điều này không lý tưởng trong các ứng dụng phát trực tuyến thực.
Trong quá trình tìm hiểu sự thất bại của sự chú ý của cửa sổ, các nhà nghiên cứu đã phát hiện ra một hiện tượng thú vị của LLM tự hồi quy: như trong Hình 2, một số lượng lớn điểm chú ý được gán cho các mã thông báo ban đầu, bất kể các mã thông báo này có liên quan đến nhiệm vụ mô hình hóa ngôn ngữ hay không . .
Các nhà nghiên cứu gọi những mã thông báo này là "nhóm chú ý": mặc dù chúng thiếu ý nghĩa ngữ nghĩa nhưng chúng chiếm một lượng lớn điểm chú ý. Các nhà nghiên cứu cho rằng hiện tượng này là do Softmax (yêu cầu tổng điểm chú ý của tất cả các mã thông báo ngữ cảnh là 1). Ngay cả khi truy vấn hiện tại không có sự trùng khớp chặt chẽ giữa nhiều mã thông báo trước đó, mô hình vẫn cần chuyển những sự chú ý không cần thiết này . Các giá trị được gán ở đâu đó sao cho tổng của chúng bằng 1. Lý do khiến mã thông báo ban đầu trở thành "nhóm" là trực quan: do đặc điểm của mô hình ngôn ngữ tự hồi quy, mã thông báo ban đầu hiển thị với hầu hết tất cả các mã thông báo tiếp theo, giúp chúng dễ dàng đào tạo hơn dưới dạng nhóm chú ý.
Dựa trên những hiểu biết sâu sắc ở trên, các nhà nghiên cứu đã đề xuất StreamingLLM, một khung đơn giản và hiệu quả cho phép mô hình chú ý được đào tạo bằng cách sử dụng cửa sổ chú ý hạn chế để xử lý văn bản dài vô hạn mà không cần tinh chỉnh.
StreamingLLM khai thác thực tế là nhóm chú ý có giá trị chú ý cao và việc giữ lại các nhóm chú ý này có thể làm cho phân bổ điểm chú ý gần với phân phối bình thường. Do đó, StreamingLLM chỉ cần giữ lại giá trị KV của mã thông báo nhóm chú ý (chỉ 4 mã thông báo ban đầu là đủ) và giá trị KV của cửa sổ trượt để neo tính toán chú ý và ổn định hiệu suất của mô hình.
Sử dụng StreamingLLM, các mô hình bao gồm Llama-2-[7,13,70] B, MPT-[7,30] B, Falcon-[7,40] B và Pythia [2.9,6.9,12] B có thể mô phỏng 4 một cách đáng tin cậy triệu token hoặc thậm chí nhiều hơn.
So với đường cơ sở khả thi duy nhất là tính toán lại cửa sổ trượt, StreamingLLM nhanh hơn 22,2 lần mà không làm giảm hiệu suất.
Sự đánh giá
Trong phiên thử nghiệm, như trong Hình 3, trên văn bản có chiều dài 20K mã thông báo, mức độ phức tạp của StreamingLLM có thể so sánh với đường cơ sở của Oracle (tính toán lại cửa sổ trượt). Đồng thời, khi độ dài đầu vào vượt quá cửa sổ đào tạo trước, sự chú ý dày đặc sẽ không thành công và khi độ dài đầu vào vượt quá kích thước bộ đệm, sự chú ý của cửa sổ sẽ gặp sự cố, khiến mã thông báo ban đầu bị loại bỏ.
Hình 5 xác nhận thêm rằng StreamingLLM có thể xử lý văn bản có kích thước bất thường một cách đáng tin cậy, bao gồm hơn 4 triệu mã thông báo, bao gồm nhiều dòng và kích cỡ mô hình khác nhau. Điều này bao gồm Llama-2-[7,13,70] B, Falcon-[7,40] B, Pythia-[2.8,6.9,12] B và MPT-[7,30] B.
Sau đó, các nhà nghiên cứu đã xác nhận giả thuyết về "nhóm chú ý" và chứng minh rằng mô hình ngôn ngữ có thể được đào tạo trước và chỉ yêu cầu mã thông báo nhóm chú ý trong quá trình triển khai phát trực tuyến. Cụ thể, họ khuyên bạn nên thêm một mã thông báo có thể học bổ sung vào đầu tất cả các mẫu đào tạo dưới dạng nhóm chú ý được chỉ định. Bằng cách đào tạo trước một mô hình ngôn ngữ với 160 triệu tham số từ đầu, các nhà nghiên cứu đã chứng minh rằng phương pháp này có thể duy trì hiệu suất của mô hình. Điều này trái ngược hoàn toàn với các mô hình ngôn ngữ hiện tại, vốn yêu cầu giới thiệu lại nhiều mã thông báo ban đầu dưới dạng nhóm chú ý để đạt được cùng mức hiệu suất.
Cuối cùng, các nhà nghiên cứu đã so sánh độ trễ giải mã và mức sử dụng bộ nhớ của StreamingLLM với cửa sổ trượt tính toán lại và thử nghiệm trên một GPU NVIDIA A6000 duy nhất sử dụng các mẫu Llama-2-7B và Llama-2-13B. Như được hiển thị trong Hình 10, khi kích thước bộ đệm tăng lên, tốc độ giải mã của StreamingLLM sẽ tăng tuyến tính. Độ trễ giải mã của cái sau tăng theo đường cong bậc hai. Các thử nghiệm đã chứng minh rằng StreamingLLM đạt được tốc độ tăng tốc ấn tượng, với tốc độ của mỗi mã thông báo tăng lên tới 22,2 lần.
Để biết thêm chi tiết nghiên cứu, vui lòng tham khảo bài viết gốc.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Với tối đa 4 triệu bối cảnh mã thông báo và suy luận nhanh hơn 22 lần, StreamingLLM đã trở nên phổ biến và nhận được 2,5 nghìn sao trên GitHub.
Biên tập viên: Nước sốt trứng
Nếu bạn đã từng trải nghiệm giao tiếp với bất kỳ robot AI đàm thoại nào, chắc chắn bạn có thể nhớ lại một số khoảnh khắc cực kỳ “bức xúc”. Ví dụ, những điểm chính bạn đề cập trong cuộc trò chuyện ngày hôm trước đã bị AI quên hoàn toàn…
Điều này là do hầu hết các LLM hiện nay chỉ có thể nhớ được ngữ cảnh hạn chế, giống như việc học sinh ôn thi, chỉ cần hỏi một chút là sẽ lộ chân.
Hãy tưởng tượng nếu trợ lý AI trong cuộc trò chuyện có thể tham chiếu theo ngữ cảnh các cuộc trò chuyện từ nhiều tuần hoặc vài tháng trước hoặc nếu bạn có thể yêu cầu trợ lý AI tóm tắt một báo cáo dài hàng nghìn trang.
Để làm cho LLM ngày càng ghi nhớ tốt hơn, các nhà nghiên cứu đã không ngừng làm việc chăm chỉ. Gần đây, các nhà nghiên cứu từ MIT, Meta AI và CMU đã đề xuất một phương pháp có tên "StreamingLLM" để cho phép các mô hình ngôn ngữ xử lý văn bản vô tận một cách trơn tru.
Nguyên tắc hoạt động của StreamingLLM là xác định và lưu các mã thông báo ban đầu được neo bởi "mức chú ý" vốn có của mô hình để lý luận. Kết hợp với bộ nhớ đệm luân phiên của các mã thông báo gần đây, StreamingLLM tăng tốc độ suy luận lên 22 lần mà không làm mất đi bất kỳ độ chính xác nào. Chỉ trong vài ngày, dự án đã đạt được 2,5 nghìn sao trên nền tảng GitHub:
Đổi mới phương pháp
Thông thường, LLM bị giới hạn bởi cửa sổ chú ý khi được đào tạo trước. Mặc dù rất nhiều công việc trước đây đã được thực hiện để mở rộng kích thước cửa sổ này và cải thiện hiệu quả đào tạo và suy luận, nhưng độ dài chuỗi LLM có thể chấp nhận được vẫn còn hạn chế, điều này không thân thiện với việc triển khai liên tục.
Trong bài báo này, các nhà nghiên cứu lần đầu tiên giới thiệu khái niệm về ứng dụng phát trực tuyến LLM và đặt câu hỏi: “LLM có thể được triển khai với đầu vào dài vô hạn mà không làm giảm hiệu quả và hiệu suất không?”
Có hai thách thức chính khi áp dụng LLM cho luồng đầu vào dài vô hạn:
Trong giai đoạn giải mã, LLM dựa trên máy biến áp lưu trữ trạng thái Khóa và Giá trị (KV) của tất cả các mã thông báo trước đó, như trong Hình 1 (a), điều này có thể gây ra việc sử dụng bộ nhớ quá mức và tăng độ trễ giải mã;
Khả năng ngoại suy độ dài của các mô hình hiện có bị hạn chế, nghĩa là khi độ dài chuỗi vượt quá kích thước cửa sổ chú ý đã đặt trong quá trình đào tạo trước, hiệu suất của nó sẽ giảm.
Trong quá trình tìm hiểu sự thất bại của sự chú ý của cửa sổ, các nhà nghiên cứu đã phát hiện ra một hiện tượng thú vị của LLM tự hồi quy: như trong Hình 2, một số lượng lớn điểm chú ý được gán cho các mã thông báo ban đầu, bất kể các mã thông báo này có liên quan đến nhiệm vụ mô hình hóa ngôn ngữ hay không . .
Dựa trên những hiểu biết sâu sắc ở trên, các nhà nghiên cứu đã đề xuất StreamingLLM, một khung đơn giản và hiệu quả cho phép mô hình chú ý được đào tạo bằng cách sử dụng cửa sổ chú ý hạn chế để xử lý văn bản dài vô hạn mà không cần tinh chỉnh.
StreamingLLM khai thác thực tế là nhóm chú ý có giá trị chú ý cao và việc giữ lại các nhóm chú ý này có thể làm cho phân bổ điểm chú ý gần với phân phối bình thường. Do đó, StreamingLLM chỉ cần giữ lại giá trị KV của mã thông báo nhóm chú ý (chỉ 4 mã thông báo ban đầu là đủ) và giá trị KV của cửa sổ trượt để neo tính toán chú ý và ổn định hiệu suất của mô hình.
Sử dụng StreamingLLM, các mô hình bao gồm Llama-2-[7,13,70] B, MPT-[7,30] B, Falcon-[7,40] B và Pythia [2.9,6.9,12] B có thể mô phỏng 4 một cách đáng tin cậy triệu token hoặc thậm chí nhiều hơn.
So với đường cơ sở khả thi duy nhất là tính toán lại cửa sổ trượt, StreamingLLM nhanh hơn 22,2 lần mà không làm giảm hiệu suất.
Sự đánh giá
Trong phiên thử nghiệm, như trong Hình 3, trên văn bản có chiều dài 20K mã thông báo, mức độ phức tạp của StreamingLLM có thể so sánh với đường cơ sở của Oracle (tính toán lại cửa sổ trượt). Đồng thời, khi độ dài đầu vào vượt quá cửa sổ đào tạo trước, sự chú ý dày đặc sẽ không thành công và khi độ dài đầu vào vượt quá kích thước bộ đệm, sự chú ý của cửa sổ sẽ gặp sự cố, khiến mã thông báo ban đầu bị loại bỏ.
Cuối cùng, các nhà nghiên cứu đã so sánh độ trễ giải mã và mức sử dụng bộ nhớ của StreamingLLM với cửa sổ trượt tính toán lại và thử nghiệm trên một GPU NVIDIA A6000 duy nhất sử dụng các mẫu Llama-2-7B và Llama-2-13B. Như được hiển thị trong Hình 10, khi kích thước bộ đệm tăng lên, tốc độ giải mã của StreamingLLM sẽ tăng tuyến tính. Độ trễ giải mã của cái sau tăng theo đường cong bậc hai. Các thử nghiệm đã chứng minh rằng StreamingLLM đạt được tốc độ tăng tốc ấn tượng, với tốc độ của mỗi mã thông báo tăng lên tới 22,2 lần.