SigLIP
Khám phá SigLIP, phương pháp tiếp cận sigmoid loss tiết kiệm bộ nhớ cho các mô hình ngôn ngữ-hình ảnh. Tìm hiểu cách nó cải thiện khả năng mở rộng và đào tạo cho các dự án Ultralytics YOLO.
SigLIP, viết tắt của Sigmoid Loss for Language Image Pre-Training, là một phương pháp hiệu quả cao để huấn luyện vision-language models. Được giới thiệu ban đầu bởi các nhà nghiên cứu tại Google Research, phương pháp này thay đổi căn bản cách các mô hình AI tìm hiểu mối quan hệ giữa hình ảnh và mô tả văn bản tương ứng. Bằng cách thay thế các hàm xác suất truyền thống bằng phương pháp phân loại nhị phân đơn giản hơn, SigLIP cho phép các nhà phát triển huấn luyện các kiến trúc đa phương thức (multimodal) quy mô lớn với mức tiêu thụ bộ nhớ thấp hơn đáng kể và hiệu suất tính toán cao hơn.
Link to this sectionTìm hiểu về Kiến trúc#
Trong các pipeline machine learning tiêu chuẩn ghép nối dữ liệu hình ảnh và văn bản, các mô hình thường dựa vào cái nhìn tổng thể về toàn bộ dữ liệu trong một batch nhất định để học tập chính xác. SigLIP loại bỏ nút thắt này bằng cách xử lý mỗi cặp hình ảnh-văn bản như một bài toán phân loại nhị phân độc lập. Sử dụng hàm sigmoid tiêu chuẩn, mô hình chỉ đơn giản dự đoán liệu một hình ảnh và mô tả văn bản cụ thể có khớp hay không.
Cách tiếp cận cục bộ này đối với loss function có nghĩa là bộ nhớ cần thiết trong quá trình model training tăng theo tỷ lệ tuyến tính thay vì bậc hai. Do đó, các kỹ sư có thể tận dụng kích thước batch lớn hơn đáng kể trên các cấu hình phần cứng tiêu chuẩn được hỗ trợ bởi các framework như PyTorch, dẫn đến cải thiện hiệu suất trên các datasets đa dạng mà không cần tăng theo cấp số nhân các tài nguyên GPU.
Link to this sectionPhân biệt SigLIP với CLIP#
Khi khám phá các kiến trúc AI hiện đại, việc phân biệt SigLIP với tiền thân của nó, CLIP (Contrastive Language-Image Pre-training), là điều cần thiết.
- CLIP: Dựa vào hàm loss softmax, yêu cầu mô hình so sánh một hình ảnh với tất cả các mô tả văn bản trong một batch cùng lúc. Điều này tạo ra nút thắt bộ nhớ nghiêm trọng trong quá trình huấn luyện deep learning khi kích thước batch tăng lên.
- SigLIP: Sử dụng loss sigmoid theo cặp (pairwise). Nó chỉ cần đánh giá xem một cặp hình ảnh-văn bản đơn lẻ có phải là khớp đúng hay khớp sai, giúp nó có khả năng mở rộng cao và dễ dàng phân phối trên nhiều thiết bị khi tối ưu hóa các quy trình artificial intelligence.
Link to this sectionCác ứng dụng trong thực tế#
Thiết kế tiết kiệm bộ nhớ của SigLIP làm cho nó trở thành một nền tảng mạnh mẽ cho nhiều ứng dụng thực tế trên toàn ngành công nghệ:
- Zero-Shot Image Classification: SigLIP vượt trội trong việc phân loại hình ảnh vào các lớp mới mà nó chưa từng thấy rõ ràng trong quá trình huấn luyện. Điều này cực kỳ hữu ích cho các hệ thống image classification động nơi các danh mục thay đổi thường xuyên, giúp loại bỏ nhu cầu dán nhãn dữ liệu thủ công liên tục.
- Semantic Search Engines: Bằng cách tạo ra các embedding đa phương thức có độ chính xác cao, SigLIP thúc đẩy các hệ thống truy xuất tiên tiến. Người dùng có thể nhập các truy vấn văn bản phức tạp để tìm kiếm thông qua các cơ sở dữ liệu hình ảnh phi cấu trúc khổng lồ với độ chính xác cao.
Khi quản lý dữ liệu tùy chỉnh cho các tác vụ thị giác phức tạp loại này, các nhóm thường tìm đến Ultralytics Platform để hợp lý hóa việc chú thích tập dữ liệu trên đám mây và tích hợp liền mạch các thông tin chi tiết về văn bản và hình ảnh trước khi triển khai các mô hình tiên tiến như Ultralytics YOLO26 cho suy luận cạnh (edge inference) tốc độ cao.
Link to this sectionVí dụ về triển khai#
Để hiểu cách SigLIP tính toán loss ở cấp độ cơ bản, bạn có thể mô phỏng quy trình bằng các thao tác PyTorch cơ bản. Đoạn mã này minh họa cách tiếp cận sigmoid theo cặp thay thế logic xác suất đa lớp truyền thống.
import torch
import torch.nn.functional as F
# Simulate image and text embeddings from a vision-language model
image_embeddings = torch.randn(4, 256)
text_embeddings = torch.randn(4, 256)
# Calculate pairwise similarities (logits)
logits = torch.matmul(image_embeddings, text_embeddings.T)
# SigLIP uses a binary formulation: 1 for positive pairs, -1 for negative pairs
labels = torch.eye(4) * 2 - 1
loss = -F.logsigmoid(labels * logits).mean()
print(f"Calculated SigLIP Loss: {loss.item():.4f}")Bằng cách tận dụng phương pháp hợp lý hóa này, cộng đồng AI rộng lớn hơn, bao gồm các nhà nghiên cứu xuất bản tại các tổ chức như IEEE và ACM, tiếp tục đẩy mạnh các giới hạn của học tập đa phương thức, thiết lập các model training tips mới và các phương pháp tốt nhất cho thế hệ AI thị giác tiếp theo.






