Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
Quay lại Bảng thuật ngữ Ultralytics

Attention Sinks

Attention sink là các token, thường là những token đầu tiên, hấp thụ phần trọng số attention còn dư; lưu cache các token này giúp LLM ổn định trên những luồng rất dài.

Attention sink là một token nhận được phần lớn trọng số attention trong nhiều head và layer, mặc dù nội dung của token không liên quan đến truy vấn; thường là token đầu tiên trong chuỗi. Guangxuan Xiao cùng các đồng nghiệp tại MIT, Meta AI và Carnegie Mellon University đã đặt tên cho hiện tượng này trong Các mô hình ngôn ngữ phát trực tuyến hiệu quả với các attention sink, được công bố tại ICLR 2024. Họ cho thấy các mô hình ngôn ngữ lớn (LLMs) như Llama 2, MPT, Falcon và Pythia hoạt động không ổn định khi KV cache dạng trượt loại bỏ các token đầu tiên, và việc giữ lại bốn token đầu tiên giúp khôi phục quá trình tạo sinh ổn định.

Vì sao sink hình thành#

Self-attention chuyển điểm số của mỗi truy vấn thành trọng số bằng softmax, và tổng các trọng số luôn bằng một. Khi không token nào trong ngữ cảnh liên quan đến một head, trọng số vẫn phải được phân bổ đâu đó. Trong mô hình ngôn ngữ nhân quả, các token đầu tiên hiển thị với mọi token xuất hiện sau, vì vậy quá trình huấn luyện biến chúng thành nơi mặc định nhận phần trọng số mà head không cần dùng. Trong phân tích StreamingLLM trên Llama 2, mọi layer trừ hai layer thấp nhất đều tập trung attention vào các token ban đầu trên tất cả head. Logit sink được thêm vào softmax cho thấy hiện tượng này:

import torch

torch.manual_seed(0)
values = torch.randn(6, 4)
# A query that matches none of the 6 tokens: every score is close to zero
scores = torch.tensor([0.1, -0.2, 0.0, 0.2, -0.1, 0.0])

# Softmax must hand out a total weight of 1, so the output mixes all six values
weights = scores.softmax(dim=-1)
print(f"No sink: weight on tokens {weights.sum():.2f}, output norm {(weights @ values).norm():.2f}")

# A sink logit joins the softmax but carries no value, so it absorbs the spare weight
sink = torch.tensor([3.0])
weights = torch.cat([sink, scores]).softmax(dim=-1)[1:]
print(f"With sink: weight on tokens {weights.sum():.2f}, output norm {(weights @ values).norm():.2f}")

Không có sink, head phân bổ toàn bộ trọng số cho sáu giá trị không liên quan và trả về đầu ra có chuẩn 0.83. Với logit sink bằng 3, sink nhận 77% trọng số và đầu ra giảm xuống 0.19, nên head hầu như không làm gì cho truy vấn này. Các model gpt-oss có trọng số mở của OpenAI tích hợp sẵn cơ chế này bằng một logit sink có thể học cho từng head attention, để mỗi head có nơi nhận phần trọng số thừa mà không đóng góp gì vào đầu ra.

Tạo sinh dạng streaming với StreamingLLM#

Model tạo sinh vô hạn sẽ vượt quá bất kỳ cửa sổ ngữ cảnh nào và không thể giữ mọi token trong KV cache; attention cửa sổ thông thường, chỉ giữ các token gần nhất, sẽ thất bại ngay khi các token đầu tiên bị loại bỏ. StreamingLLM giữ cố định key và value của bốn token ban đầu bên cạnh một cửa sổ cuộn chứa các token gần đây, đồng thời gán vị trí theo thứ tự trong cache thay vì văn bản gốc và áp dụng lại embedding vị trí xoay (RoPE) ở mỗi bước:

Cách này duy trì ổn định mô hình hóa ngôn ngữ trên hơn 4 triệu token và chạy nhanh hơn tới 22.2 lần so với cửa sổ trượt tính toán lại cache cho mỗi token mới. Cửa sổ vẫn giới hạn những gì model có thể nhớ: các token bị loại khỏi phần giữa sẽ mất vĩnh viễn, vì vậy chatbot hoặc tác tử AI dạng streaming chỉ nhớ những lượt trao đổi gần nhất. Các tác giả cũng tiền huấn luyện model bằng một token placeholder duy nhất có thể học, đặt ở đầu mỗi mẫu; token này tự đảm nhận vai trò sink.

  • Attention cửa sổ trượt: Giới hạn mỗi token chỉ nhìn thấy các token lân cận gần đây. Khi áp dụng lúc suy luận cho model được huấn luyện bằng attention đầy đủ, phương pháp này thất bại một khi các sink rời khỏi cửa sổ.
  • Suy giảm ngữ cảnh: Độ chính xác giảm khi prompt dài ra nhưng vẫn nằm trong cửa sổ ngữ cảnh.

Sink trong model thị giác#

Transformer thị giác (ViT) thể hiện hành vi tương tự. Trong Vision Transformers Need Registers, các nhà nghiên cứu tại Meta và Inria phát hiện token có chuẩn lớn bất thường trên các mảng nền ít thông tin trong ViT có giám sát và tự giám sát, được tái sử dụng cho tính toán nội bộ. Việc thêm một vài token register vào đầu vào đã đảm nhận vai trò đó, loại bỏ hiện tượng giả khỏi feature map và bản đồ attention, đồng thời cải thiện dự đoán dày đặc.

SAM 2 của Meta, chạy trong gói Ultralytics, phân bổ bộ nhớ video bằng kế hoạch tương tự là giữ anchor cùng một cửa sổ: với mỗi frame mới, memory attention đọc các mục trong ngân hàng bộ nhớ của những frame do người dùng prompt, được giữ trong suốt video, cùng với các mục của 6 frame gần nhất, nhờ đó chi phí attention trên mỗi frame không đổi dù video chạy trong bao lâu.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning