Vision-Language Models
Mô hình Ngôn ngữ — Thị giác
Bạn gửi ảnh chụp hoá đơn nhà hàng cho AI và hỏi 'Tổng tiền bao nhiêu?'. AI cần những năng lực nào?
VLM có thể thực hiện nhiều loại tác vụ khác nhau với cùng một kiến trúc. Hãy chọn từng tác vụ bên dưới để xem VLM xử lý đầu vào và tạo đầu ra như thế nào.
Hình minh họa
Kết quả: Bãi biển cát trắng với hàng dừa, biển xanh trong, du khách tắm nắng
VLM trích xuất đặc trưng thị giác (dừa, cát, biển) rồi chuyển sang ngôn ngữ tự nhiên.
Bạn đưa VLM ảnh chụp thực đơn nhà hàng và hỏi 'Món nào phù hợp cho người ăn chay?'. VLM cần làm gì?
Giải thích
Vision-Language Models (VLM) là mô hình AI kết hợp khả năng hiểu hình ảnh và ngôn ngữ tự nhiên trong một kiến trúc thống nhất. Thay vì dùng nhiều mô hình riêng lẻ cho OCR, phân loại ảnh, và trả lời câu hỏi, VLM làm tất cả với một bộ tham số duy nhất.
1. Vision Encoder: Thường là Vision Transformer (ViT), chuyển ảnh đầu vào thành chuỗi vector đặc trưng. Mỗi patch 16x16 pixel trở thành một token thị giác. Nhiều VLM khởi tạo từ CLIP encoder để tận dụng biểu diễn đã căn chỉnh với ngôn ngữ.
2. Projection Layer: Lớp cầu nối chuyển đổi vector ảnh sang không gian embedding của LLM. Giống như phiên dịch viên giữa hai ngôn ngữ.
3. LLM: Xử lý kết hợp token thị giác và token ngôn ngữ, tạo ra phản hồi bằng văn bản tự nhiên. VLM là nền tảng của các mô hình đa phương thức thống nhất hiện đại.
Quá trình xử lý một câu hỏi về ảnh diễn ra như sau:
Trong đó là vector đặc trưng ảnh, là vector đã chiếu, là phép nối (concatenation) với embedding văn bản.
from transformers import LlavaForConditionalGeneration, AutoProcessor
from PIL import Image
# Tải mô hình LLaVA (VLM mã nguồn mở)
model = LlavaForConditionalGeneration.from_pretrained(
"llava-hf/llava-v1.6-mistral-7b-hf"
)
processor = AutoProcessor.from_pretrained(
"llava-hf/llava-v1.6-mistral-7b-hf"
)
# Hỏi đáp về ảnh biển hiệu tiếng Việt
image = Image.open("bien-hieu-pho.jpg")
prompt = "<image>\nBiển hiệu này ghi gì? Giá bao nhiêu?"
inputs = processor(prompt, image, return_tensors="pt")
output = model.generate(**inputs, max_new_tokens=200)
print(processor.decode(output[0], skip_special_tokens=True))
# "Phở Thìn Bờ Hồ - Mở cửa 6h-22h - Giá từ 50.000đ"Y tế: VLM phân tích ảnh X-quang kết hợp bệnh án tiếng Việt, hỗ trợ bác sĩ chẩn đoán tại các bệnh viện tuyến huyện thiếu chuyên gia.
Giáo dục: Học sinh chụp ảnh bài toán hình học, VLM giải thích lời giải từng bước bằng tiếng Việt.
Tiếp cận: Người khiếm thị dùng VLM qua điện thoại để mô tả môi trường xung quanh, đọc nhãn hàng hoá, và nhận dạng tiền Việt Nam.
Thương mại điện tử: Chụp ảnh sản phẩm trên Shopee/Lazada, VLM tự động tạo mô tả sản phẩm tiếng Việt phong phú.
- VLM = Vision Encoder + Projection Layer + LLM, kết hợp 'nhìn' và 'hiểu' trong một mô hình.
- Projection Layer là cầu nối quan trọng nhất — chiếu vector ảnh sang không gian ngôn ngữ.
- VLM thực hiện được nhiều tác vụ: mô tả ảnh, hỏi đáp, OCR, suy luận thị giác.
- Hạn chế chính: ảo giác (hallucination) khi mô tả chi tiết không có trong ảnh.
- Các VLM hàng đầu: GPT-4V, Claude 3, Gemini (đóng), LLaVA (mở) — đều hỗ trợ tiếng Việt.
Kiểm tra hiểu biết
Trong kiến trúc VLM, Projection Layer có vai trò gì?