Memory Bank
Tìm hiểu memory bank trong deep learning là gì. Khám phá cách memory bank lưu trữ embedding cho contrastive learning, object tracking và video understanding.
Ngân hàng bộ nhớ là một cấu trúc dữ liệu được sử dụng trong các thuật toán machine learning để lưu trữ và tham chiếu thông tin từ các vòng lặp trước đó hoặc các mẫu đã được xử lý, qua đó tách biệt hiệu quả dung lượng bộ nhớ của model khỏi các giới hạn tính toán tức thời. Trong ngữ cảnh học sâu (DL), ngân hàng bộ nhớ thường đóng vai trò là kho lưu trữ các embedding hoặc vector đặc trưng. Điều này cho phép model so sánh đầu vào hiện tại với một lịch sử phong phú gồm các đầu vào trước đó mà không cần xử lý lại hoặc lưu giữ đồng thời toàn bộ dữ liệu đó trong bộ nhớ truy cập ngẫu nhiên (RAM) đang hoạt động. Bằng cách duy trì một bộ đệm chứa các biểu diễn, model có thể học từ ngữ cảnh rộng hơn, cải thiện hiệu năng trong các tác vụ đòi hỏi tính nhất quán dài hạn hoặc khả năng so sánh với các tập dữ liệu lớn.
Cơ chế của ngân hàng bộ nhớ#
Chức năng chính của ngân hàng bộ nhớ là mở rộng lượng thông tin khả dụng vượt ra ngoài kích thước batch hiện tại. Trong quá trình training, khi dữ liệu truyền qua mạng neural, các biểu diễn đặc trưng tạo ra sẽ được đưa vào ngân hàng. Nếu ngân hàng đạt đến dung lượng tối đa, các đặc trưng cũ nhất thường sẽ bị loại bỏ để nhường chỗ cho các đặc trưng mới, trong một quy trình được gọi là hàng đợi Vào trước, ra trước (FIFO).
Cơ chế này đặc biệt quan trọng vì bộ nhớ GPU là hữu hạn. Nếu không có ngân hàng bộ nhớ, việc so sánh một ảnh với một triệu ảnh khác sẽ yêu cầu một kích thước batch không thể chứa trên phần cứng tiêu chuẩn. Với ngân hàng bộ nhớ, model có thể lưu trữ các vector gọn nhẹ của một triệu ảnh đó và tham chiếu đến chúng một cách hiệu quả bằng các kỹ thuật tìm kiếm tương đồng, chẳng hạn như tích vô hướng hoặc độ tương đồng cosine.
Các ứng dụng trong thực tế#
Ngân hàng bộ nhớ đã trở thành nền tảng trong một số workflow nâng cao về thị giác máy tính (CV) và ngôn ngữ tự nhiên:
- Học tương phản (Học tự giám sát): Một trong những ứng dụng nổi tiếng nhất là học tương phản, cụ thể là trong các thuật toán như Momentum Contrast (MoCo). Mục tiêu ở đây là dạy model phân biệt một ảnh cụ thể với nhiều mẫu "âm" (các ảnh khác). Một ngân hàng bộ nhớ lưu trữ biểu diễn của hàng nghìn mẫu âm, cho phép model học các đặc trưng mạnh mẽ mà không cần dữ liệu training được gán nhãn. Để tìm hiểu các chi tiết kỹ thuật chuyên sâu, các nhà nghiên cứu thường tham khảo bài báo MoCo, công trình đã phổ biến phương pháp này.
- Theo dõi đối tượng dài hạn: Trong phân tích video, một đối tượng (chẳng hạn như ô tô hoặc người) có thể tạm thời bị che khuất bởi chướng ngại vật. Các tracker tiêu chuẩn có thể mất danh tính (ID) của đối tượng trong quá trình che khuất này. Các tracker nâng cao sử dụng ngân hàng bộ nhớ để lưu trữ các đặc trưng hình ảnh của những đối tượng được phát hiện trước đó. Khi đối tượng xuất hiện trở lại, hệ thống truy vấn ngân hàng để thiết lập lại ID chính xác. Người dùng khai thác Ultralytics YOLO26 cho theo dõi đối tượng sẽ được hưởng lợi từ logic nội bộ tương tự, giúp duy trì tính nhất quán của danh tính qua các frame.
- Hiểu video: Để nhận diện các hành động kéo dài vài giây hoặc vài phút, model cần ngữ cảnh theo thời gian. Ngân hàng bộ nhớ hoạt động như một bộ đệm cho các frame hoặc clip trước đó, cho phép mạng "ghi nhớ" những gì đã xảy ra ở đầu video trong khi xử lý phần cuối. Đây là yếu tố quan trọng để nhận diện hành động chính xác.
Phân biệt các khái niệm liên quan#
Việc phân biệt ngân hàng bộ nhớ với các khái niệm lưu trữ và xử lý khác trong bảng thuật ngữ là rất hữu ích:
- Ngân hàng bộ nhớ và cơ sở dữ liệu vector: Cả hai đều lưu trữ embedding để truy xuất. Tuy nhiên, ngân hàng bộ nhớ thường là một cấu trúc tạm thời trong bộ nhớ, được sử dụng linh hoạt trong quá trình training hoặc suy luận đang hoạt động của một phiên model đơn lẻ. Cơ sở dữ liệu vector (như các cơ sở dữ liệu được sử dụng trong RAG) là một giải pháp lưu trữ bền vững, có khả năng mở rộng, được thiết kế để tồn tại vô thời hạn và phục vụ nhiều ứng dụng.
- Ngân hàng bộ nhớ và cửa sổ ngữ cảnh: Cửa sổ ngữ cảnh (phổ biến trong các Transformer) xác định độ dài tối đa của chuỗi đầu vào mà model xử lý cùng lúc (ví dụ: 32k token). Ngân hàng bộ nhớ là một bộ đệm bên ngoài lưu trữ các biểu diễn đã nén bên ngoài cửa sổ xử lý đang hoạt động, về mặt lý thuyết cho phép độ sâu bộ nhớ vô hạn, như trong các kiến trúc như Transformer-XL.
- Ngân hàng bộ nhớ và kích thước batch: Kích thước batch quyết định số lượng mẫu được xử lý song song để cập nhật gradient. Ngân hàng bộ nhớ làm tăng số lượng mẫu hiệu dụng mà model có thể "nhìn thấy" để so sánh mà không làm tăng chi phí tính toán của các lượt truyền xuôi và truyền ngược.
Ví dụ code: Mô phỏng ngân hàng đặc trưng#
Đoạn mã Python sau đây minh họa khái niệm ngân hàng bộ nhớ Vào trước, ra trước (FIFO) bằng torch. Cấu trúc này thường được sử dụng để duy trì lịch sử cuốn chiếu của các vector đặc trưng trong các vòng lặp training tùy chỉnh hoặc các tác vụ suy luận phức tạp.
import torch
# Initialize a memory bank (Capacity: 100 features, Vector Dim: 128)
# In a real scenario, these would be embeddings from a model like YOLO26
memory_bank = torch.randn(100, 128)
# Simulate receiving a new batch of features (e.g., from the current image batch)
new_features = torch.randn(10, 128)
# Update the bank: Enqueue new features, Dequeue the oldest ones
# This maintains a fixed size while keeping the memory 'fresh'
memory_bank = torch.cat([memory_bank[10:], new_features], dim=0)
print(f"Updated Memory Bank Shape: {memory_bank.shape}")
# Output: Updated Memory Bank Shape: torch.Size([100, 128])Thách thức và các yếu tố cần cân nhắc#
Mặc dù mạnh mẽ, ngân hàng bộ nhớ cũng tạo ra thách thức về "độ trôi biểu diễn". Vì mạng encoder thay đổi nhẹ sau mỗi bước training, các đặc trưng được lưu trong ngân hàng từ 100 bước trước có thể đã "lỗi thời" hoặc không nhất quán với trạng thái hiện tại của model. Các kỹ thuật như sử dụng encoder động lượng (một giá trị trung bình của model được cập nhật chậm) giúp giảm thiểu vấn đề này.
Đối với các nhóm cần quản lý phiên bản dataset và các tạo tác model sử dụng những kỹ thuật nâng cao này, Ultralytics Platform cung cấp một hub tập trung để tổ chức dữ liệu, theo dõi thí nghiệm và triển khai model hiệu quả. Quản lý sự phức tạp của việc lưu trữ và truy xuất đặc trưng là yếu tố thiết yếu để chuyển từ trí tuệ nhân tạo (AI) mang tính thử nghiệm sang các hệ thống production mạnh mẽ.









