Attention Sinks
Khám phá cách attention sinks ổn định các LLM và VLM cho việc tạo chuỗi vô hạn. Học cách tối ưu hóa bộ nhớ và triển khai AI ổn định với Ultralytics YOLO26.
Attention sinks là một hiện tượng quan trọng được phát hiện trong kiến trúc của các large language models (LLMs) và vision-language models (VLMs) hiện đại, giúp đảm bảo tính ổn định trong quá trình tạo văn bản hoặc dữ liệu liên tục và dài hạn. Trong một attention mechanism, các neural network gán động "trọng số" (weights) cho các phần khác nhau của đầu vào. Các nhà nghiên cứu quan sát thấy rằng các mô hình tự hồi quy (autoregressive models) vốn dĩ dồn một lượng lớn điểm attention dư thừa vào ngay những token đầu tiên của một chuỗi, bất kể ý nghĩa ngữ nghĩa thực tế của chúng. Những token ban đầu này đóng vai trò như một "attention sink", cung cấp một điểm neo toán học ngăn chặn sự sụp đổ của các điểm attention trong mô hình. Bằng cách giữ cố định các token sink này trong KV cache của mô hình, các nhà phát triển có thể cho phép tạo chuỗi vô hạn mà không làm giảm độ chính xác hoặc gặp sự cố do giới hạn bộ nhớ.
Link to this sectionCách Attention Sinks ổn định các mô hình#
Nhu cầu về attention sinks xuất phát từ phép toán Softmax được sử dụng trong các Transformers. Vì các điểm attention luôn phải có tổng bằng 1, mô hình cần một nơi để phân bổ attention không cần thiết khi xử lý dữ liệu có tính khu trú cao. Các token sớm nhất trong một prompt sẽ tự nhiên hấp thụ phần dư thừa này.
Trong lịch sử, khi tạo các chuỗi rất dài, các kỹ sư đã sử dụng kỹ thuật cửa sổ (windowing) để loại bỏ các token cũ khỏi bộ nhớ. Tuy nhiên, việc loại bỏ các token sink ban đầu đã gây ra sự sụp đổ hiệu suất ngay lập tức. Các triển khai hiện đại, chẳng hạn như StreamingLLM, giữ lại một cách rõ ràng các token ban đầu này cùng với các token gần đây nhất. Cách tiếp cận tối ưu hóa cao cho việc quản lý bộ nhớ này đang được tích cực khám phá trong OpenAI vision developments và Google DeepMind research, và được hỗ trợ nguyên bản trong PyTorch ecosystem.
Link to this sectionPhân biệt các khái niệm Attention liên quan#
Để hiểu đầy đủ cách các AI model tối ưu hóa ngữ cảnh, việc so sánh attention sinks với các chiến lược phần cứng và bộ nhớ khác là rất hữu ích:
- Attention Sinks so với Sliding Window Attention: Sliding window attention giới hạn tiêu điểm của mô hình vào một số lượng cố định các token gần đây để tiết kiệm bộ nhớ. Tuy nhiên, các sliding window nghiêm ngặt sẽ loại bỏ các token đầu tiên, dẫn đến sự mất ổn định. Attention sinks sửa đổi điều này bằng cách neo cửa sổ với những token quan trọng đầu tiên đó.
- Attention Sinks so với Flash Attention: Flash Attention là một tối ưu hóa ở cấp độ phần cứng giúp tăng tốc độ đọc và ghi bộ nhớ trên GPU. Ngược lại, attention sinks là một khám phá về kiến trúc liên quan đến việc những token nào phải được bảo toàn trong bộ nhớ để duy trì sự ổn định logic.
Link to this sectionCác ứng dụng trong thực tế#
Việc phát hiện ra attention sinks đã mở ra các khả năng xử lý liên tục, hiệu quả cao trên nhiều ngành công nghiệp khác nhau.
-
AI Agents và Chatbots liên tục: Bằng cách giữ lại attention sinks, một AI agent hoặc bot chăm sóc khách hàng có thể stream hội thoại liên tục trong nhiều giờ. Nó chọn lọc quên đi các token ở giữa trong khi vẫn giữ lại sink ban đầu và ngữ cảnh gần đây, ngăn chặn lỗi thiếu bộ nhớ (out-of-memory) trong khi vẫn duy trì tính mạch lạc của cuộc hội thoại.
-
Hiểu video thời gian thực: Trong smart surveillance và giám sát liên tục, việc duy trì một cửa sổ ngữ cảnh ổn định là rất quan trọng. Các mô hình có thể phân tích các nguồn cấp dữ liệu video liên tục trong nhiều ngày, khớp với hiệu suất của các kiến trúc thị giác được tối ưu hóa cho edge.
Link to this sectionTriển khai suy luận (inference) liên tục hiệu quả#
Mặc dù attention sinks chủ yếu tối ưu hóa các mô hình tạo sinh khổng lồ, việc áp dụng các vòng lặp suy luận hiệu quả, có ý thức về bộ nhớ là quan trọng trên toàn diện trong computer vision (CV). Khi xử lý các luồng video liên tục với Ultralytics YOLO26, việc tận dụng các Python generators đảm bảo tính ổn định của bộ nhớ trong thời gian dài, tương tự như việc quản lý một cửa sổ ngữ cảnh cục bộ.
from ultralytics import YOLO
# Load the recommended Ultralytics YOLO26 model for efficient, real-time edge processing
model = YOLO("yolo26n.pt")
# Process a continuous video stream efficiently without memory overflow
results = model.predict(source="rtsp://continuous_camera_stream", stream=True)
# Iterate through the generator to maintain a stable memory footprint over time
for frame_result in results:
print(f"Detected {len(frame_result.boxes)} objects in the current frame.")Việc mở rộng các đường ống object detection hiệu quả, liên tục này cho mục đích doanh nghiệp đòi hỏi các công cụ quản lý mạnh mẽ. Các nhà phát triển có thể sử dụng Ultralytics Platform để đơn giản hóa model deployment và quản lý tập dữ liệu tự động, cho phép các nhóm xây dựng các ứng dụng thị giác ổn định, chạy lâu dài một cách dễ dàng.






