Các mô hình ngôn ngữ có một điểm yếu đáng ngạc nhiên mà các nhà nghiên cứu chỉ mới phát hiện gần đây. Khi những hệ thống AI này cố gắng xử lý các cuộc hội thoại dài hơn dữ liệu huấn luyện của chúng, chúng không chỉ hoạt động kém - mà còn hoàn toàn sụp đổ, tạo ra những thứ hoàn toàn vô nghĩa. Thủ phạm? Một cơ chế quan trọng được gọi là attention sinks mà hầu hết mọi người chưa từng nghe đến cho đến bây giờ.
Khám phá này xuất phát từ việc nghiên cứu tại sao các mô hình như GPT và Llama lại thất bại thảm hại khi xử lý các cuộc hội thoại dài. Các nhà nghiên cứu phát hiện ra rằng những mô hình này bí mật đổ một lượng attention khổng lồ lên những token đầu tiên trong bất kỳ chuỗi nào, bất kể những token đó có chứa thông tin có ý nghĩa hay không. Những attention sinks này hoạt động như những thùng rác tính toán, hấp thụ attention dư thừa mà mô hình không biết hướng đi đâu khác.
Đặc điểm của Attention Sink
- Vị trí: Một vài token đầu tiên trong chuỗi (thường cần 4 token)
- Nội dung: Thường không có ý nghĩa về mặt ngữ nghĩa (token bắt đầu, "the", "a")
- Chức năng: Hấp thụ lượng attention dư thừa do ràng buộc softmax (trọng số phải có tổng bằng 1.0)
- Hiệu ứng khi loại bỏ: Mô hình sụp đổ ngay lập tức và tạo ra các đầu ra vô nghĩa
- Đa kiến trúc: Được tìm thấy trong BERT , vision transformer, GAN, U-Net
Toán Học Đằng Sau Vấn Đề
Nguyên nhân gốc rễ nằm ở cách các mô hình transformer tính toán attention. Hàm softmax buộc tất cả trọng số attention phải cộng lại đúng bằng 1.0, tạo ra cái mà một nhà nghiên cứu mô tả là một nền dân chủ học tập nơi attention được khuếch tán. Khi một mô hình không thể tìm thấy thông tin liên quan để tập trung vào, nó vẫn phải hướng attention của mình đi đâu đó. Những token đầu tiên trở thành nơi đổ mặc định.
Đây không chỉ là một đặc điểm kỳ quặc - nó rất cần thiết cho sự ổn định. Khi các nhà nghiên cứu cố gắng loại bỏ những token ban đầu này để tiết kiệm bộ nhớ, các mô hình ngay lập tức bắt đầu tạo ra những thứ vô nghĩa. Họ đã vô tình phá hủy hệ thống van giảm áp của mô hình.
Một Giải Pháp Đơn Giản Thay Đổi Mọi Thứ
Giải pháp hóa ra lại cực kỳ đơn giản. Thay vì loại bỏ các token cũ theo cách tiếp cận cửa sổ trượt, StreamingLLM bảo tồn một vài sink token đầu tiên trong khi duy trì một cửa sổ trượt cho mọi thứ khác. Điều này cho phép các mô hình xử lý các chuỗi dài hơn nhiều bậc so với ngữ cảnh huấn luyện ban đầu của chúng.
Kết quả thật ấn tượng. Các mô hình trước đây sụp đổ sau vài nghìn token đột nhiên có thể duy trì hiệu suất ổn định trên hàng triệu token. Bản sửa lỗi này không yêu cầu huấn luyện lại - chỉ cần tôn trọng các mẫu attention hiện có của mô hình.
So sánh hiệu suất StreamingLLM
- Cửa sổ trượt truyền thống: Các mô hình sụp đổ sau vài nghìn token, tạo ra những đoạn văn vô nghĩa
- StreamingLLM với attention sinks: Hiệu suất ổn định trên 2+ triệu token
- Hiệu quả bộ nhớ: Chỉ giữ lại 4 token đầu tiên + cửa sổ trượt thay vì lưu trữ toàn bộ ngữ cảnh
- Triển khai: Không cần đào tạo lại, hoạt động với các mô hình hiện có như Llama-2
![]() |
---|
Sơ đồ hiển thị phương pháp StreamingLLM minh họa cách attention sinks tăng cường xử lý chuỗi trong các mô hình ngôn ngữ |
Vượt Ra Ngoài Chỉ Các Mô Hình Ngôn Ngữ
Các cuộc thảo luận cộng đồng tiết lộ hiện tượng này mở rộng xa hơn các mô hình ngôn ngữ. Hành vi attention sink tương tự đã được quan sát thấy trong vision transformers, nơi các mô hình tái sử dụng các patch nền không có thông tin như bảng nháp tính toán. Ngay cả các kiến trúc cũ hơn như GANs và U-Nets cũng cho thấy các mẫu tương tự.
Các khiếm khuyết đơn lẻ (hoặc high-norm tokens) có thể liên quan đến attention sinks. Thật thú vị khi hướng của tất cả high-norm tokens đều chia sẻ cùng một hướng.
Một số nhà nghiên cứu cho rằng điều này có thể giải thích tại sao một số chiến lược prompting hoạt động tốt hơn những chiến lược khác. Bắt đầu prompt bằng những từ lịch sự như Hello hoặc Please thực sự có thể cải thiện hiệu suất bằng cách cung cấp cho mô hình những attention sinks tốt hơn để làm việc.
Tình trạng triển khai trong ngành
- OpenAI: Đã tích hợp trong GPT-3.5-turbo-1106 và GPT-4-turbo-1106
- HuggingFace: Đã thêm hỗ trợ framework cho chi phí attention
- llama.cpp: Đã triển khai hỗ trợ đầy đủ (PR 15157)
- NVIDIA TensorRT-LLM: Đã bao gồm cơ chế này
- Thời gian: Nghiên cứu được công bố năm 2023, áp dụng trong sản xuất vào cuối năm 2023
![]() |
---|
Biểu diễn trực quan các mẫu attention trong các mô hình transformer, minh họa cách các head khác nhau xử lý các token đầu vào |
Áp Dụng Trong Ngành và Ý Nghĩa Tương Lai
Các công ty AI lớn đã nhanh chóng áp dụng những hiểu biết này. OpenAI đã tích hợp các cơ chế attention sink vào các mô hình GPT-3.5-turbo và GPT-4-turbo của họ, trong khi các framework như HuggingFace và các thư viện như llama.cpp đã bổ sung hỗ trợ đầy đủ. Kỹ thuật này cũng đã mở ra các hướng nghiên cứu mới trong quantization và tối ưu hóa mô hình.
Khám phá này làm nổi bật việc chúng ta vẫn còn hiểu biết rất ít về các hệ thống AI mà chúng ta sử dụng hàng ngày. Những gì bắt đầu như một vấn đề quản lý bộ nhớ đã tiết lộ một khía cạnh cơ bản của kiến trúc transformer đã ẩn mình ngay trước mắt. Khi các mô hình trở nên phức tạp hơn, việc hiểu những cơ chế ẩn này trở nên ngày càng quan trọng để xây dựng các hệ thống AI đáng tin cậy.
Tham khảo: How Attention Sinks Keep Language Models Stable
![]() |
---|
So sánh các đường cong loss trong quá trình pre-training cho các mô hình có và không có sink tokens, làm nổi bật hiệu quả của cơ chế attention sink |