Self-Attention
Khám phá các nguyên tắc cơ bản của self-attention trong học sâu. Tìm hiểu cách các vector Query, Key và Value hỗ trợ các Transformer và Ultralytics YOLO26 cho AI vượt trội.
Self-attention là một cơ chế nền tảng trong deep learning cho phép các model đánh giá tầm quan trọng của các phần tử khác nhau trong một chuỗi đầu vào so với nhau. Không giống như các kiến trúc truyền thống xử lý dữ liệu theo trình tự hoặc chỉ tập trung vào các vùng lân cận cục bộ, self-attention cho phép một neural network kiểm tra toàn bộ ngữ cảnh cùng lúc. Khả năng này giúp các hệ thống xác định được các mối quan hệ phức tạp giữa các phần dữ liệu ở xa nhau, chẳng hạn như các từ trong một câu hoặc các vùng riêng biệt trong một hình ảnh. Đây là khối xây dựng cốt lõi cho kiến trúc Transformer, vốn đã thúc đẩy những tiến bộ vượt bậc trong generative AI và các hệ thống nhận thức hiện đại.
Link to this sectionCách thức hoạt động của Self-Attention#
Cơ chế này mô phỏng sự tập trung nhận thức bằng cách gán một trọng số, thường được gọi là "attention score", cho mỗi feature đầu vào. Để tính toán các điểm số này, model sẽ chuyển đổi dữ liệu đầu vào—thường được biểu diễn dưới dạng embeddings—thành ba vector riêng biệt: Query, Key và Value.
- Query (Q): Đại diện cho phần tử hiện tại đang tìm kiếm ngữ cảnh liên quan từ phần còn lại của chuỗi.
- Key (K): Đóng vai trò như một nhãn hoặc mã định danh cho mọi phần tử trong chuỗi mà query sẽ được so khớp dựa trên đó.
- Value (V): Chứa nội dung thông tin thực tế của phần tử sẽ được tổng hợp.
Model so sánh Query của một phần tử với các Key của tất cả các phần tử khác để xác định độ tương thích. Các điểm số tương thích này được chuẩn hóa bằng hàm softmax để tạo ra các trọng số giống như xác suất. Sau đó, các trọng số này được áp dụng vào các Value, tạo ra một biểu diễn giàu ngữ cảnh. Quy trình này cho phép các Large Language Models (LLMs) và hệ thống thị giác ưu tiên các thông tin quan trọng trong khi lọc bỏ nhiễu.
Link to this sectionCác ứng dụng trong thực tế#
Sự linh hoạt của self-attention đã dẫn đến việc áp dụng rộng rãi cơ chế này trên nhiều lĩnh vực của Artificial Intelligence (AI).
- Natural Language Processing (NLP): Trong các tác vụ như machine translation, self-attention giải quyết sự mơ hồ bằng cách liên kết các đại từ với các từ thay thế. Ví dụ, trong câu "The animal didn't cross the street because it was too tired," model sử dụng self-attention để liên kết mạnh mẽ "it" với "animal" thay vì "street." Khả năng nhận thức ngữ cảnh này hỗ trợ các công cụ như Google Translate.
- Ngữ cảnh hình ảnh toàn cục: Trong Computer Vision (CV), các kiến trúc như Vision Transformer (ViT) chia hình ảnh thành các patch và áp dụng self-attention để hiểu toàn bộ cảnh quan. Điều này rất quan trọng đối với object detection trong các môi trường phức tạp, nơi việc nhận diện một đối tượng dựa vào việc hiểu rõ môi trường xung quanh nó.
Link to this sectionPhân biệt các thuật ngữ liên quan#
Mặc dù thường được thảo luận cùng với các khái niệm tương tự, những thuật ngữ này có các định nghĩa kỹ thuật riêng biệt:
- Attention Mechanism: Danh mục rộng lớn các kỹ thuật cho phép model tập trung vào các phần dữ liệu cụ thể. Nó bao gồm Cross-Attention, nơi model sử dụng một chuỗi (như đầu ra của decoder) để truy vấn một chuỗi khác (như đầu vào của encoder).
- Self-Attention: Một loại attention cụ thể nơi Query, Key và Value đều bắt nguồn từ cùng một chuỗi đầu vào. Nó được thiết kế để học các phụ thuộc nội bộ trong một tập dữ liệu đơn nhất.
- Flash Attention: Một thuật toán tối ưu hóa do các nhà nghiên cứu tại Stanford University phát triển, giúp việc tính toán self-attention trở nên nhanh hơn đáng kể và hiệu quả về bộ nhớ hơn trên các GPUs mà không làm thay đổi kết quả toán học.
Link to this sectionVí dụ về mã#
Đoạn code Python sau đây minh họa cách sử dụng RTDETR, một detector đối tượng dựa trên Transformer có trong gói ultralytics. Không giống như các convolutional network tiêu chuẩn, model này dựa phần lớn vào self-attention để xử lý các visual feature.
from ultralytics import RTDETR
# Load the RT-DETR model which utilizes self-attention for detection
model = RTDETR("rtdetr-l.pt")
# Perform inference on an image to detect objects with global context
# Self-attention helps the model understand relationships between distant objects
results = model("https://ultralytics.com/images/bus.jpg")
# Print the number of objects detected
print(f"Detected {len(results[0].boxes)} objects using Transformer attention.")Link to this sectionSự tiến hóa và tác động trong tương lai#
Self-attention đã giải quyết hiệu quả vấn đề vanishing gradient vốn gây cản trở cho các Recurrent Neural Networks (RNNs) trước đây, cho phép huấn luyện các foundation models khổng lồ. Mặc dù rất hiệu quả, chi phí tính toán của self-attention tiêu chuẩn tăng theo hàm bậc hai với độ dài chuỗi. Để giải quyết vấn đề này, các nghiên cứu hiện tại tập trung vào các cơ chế attention tuyến tính hiệu quả.
Ultralytics tích hợp những tiến bộ này vào các model tiên tiến như YOLO26, kết hợp tốc độ của CNN với sức mạnh ngữ cảnh của attention để mang lại real-time inference vượt trội. Những model đã tối ưu hóa này có thể dễ dàng được huấn luyện và triển khai thông qua Ultralytics Platform, giúp đơn giản hóa quy trình làm việc cho các nhà phát triển đang xây dựng thế hệ ứng dụng thông minh tiếp theo.






