Giờ ta mở rộng agent để "nhìn" và "nghe âm thanh phi ngôn ngữ". Multimodal không phải xử lý từng modality rời rạc rồi ghép; thách thức thật là hợp nhất (fusion) khi các tín hiệu đến không đồng bộ và mâu thuẫn nhau.
Các modality thường gặp
- Ảnh/video: khách chụp sản phẩm, hóa đơn, màn hình lỗi, tài liệu.
- Giọng nói: yêu cầu, mô tả bằng lời.
- Âm thanh phi ngôn ngữ: tiếng máy kêu, tiếng ho, tiếng còi — chẩn đoán qua âm.
- Khách gửi ảnh mã lỗi trên remote.
- Khách nói "máy chạy được vài phút là tắt".
- Khách gửi 5 giây audio tiếng máy.
- Agent hợp nhất: đọc mã lỗi (vision) + mô tả (voice) + phân tích tiếng (audio) → chẩn đoán "lỗi cảm biến áp suất".
Hai chiến lược fusion
- Early fusion: đưa tất cả modality vào một mô hình multimodal duy nhất (nhận ảnh + audio + text cùng lúc). Mạnh khi cần hiểu quan hệ chéo, nhưng khó kiểm soát.
- Late fusion: xử lý từng modality bằng mô hình chuyên biệt (OCR cho ảnh, phân loại cho audio), rồi đưa các kết quả dạng text vào LLM để suy luận. Dễ debug, dễ chèn logic — thường là lựa chọn thực chiến.
# Late fusion: mỗi modality → text, rồi hợp nhất ở LLM
context = []
if image: context.append(f"[Ảnh] {vision_model(image)}") # mô tả/OCR
if audio: context.append(f"[Âm thanh] {audio_classify(audio)}") # nhãn + độ tin
if speech: context.append(f"[Khách nói] {asr(speech)}")
answer = llm.chat([
{"role": "system", "content": FUSION_PROMPT},
{"role": "user", "content": "\n".join(context)}
])
Xử lý bất đồng bộ và mâu thuẫn
Các modality không tới cùng lúc: ảnh gửi trước, lời nói tới sau 3 giây. Cần một buffer thời gian gom các tín hiệu liên quan trong một cửa sổ (ví dụ 10 giây) trước khi suy luận.
Khi mâu thuẫn (ảnh báo lỗi A, khách mô tả triệu chứng lỗi B):
- Gắn độ tin cậy cho mỗi tín hiệu (OCR rõ nét vs mờ).
- Nếu chênh lệch lớn → agent hỏi lại thay vì đoán.
- Ưu tiên tín hiệu khách chủ động cung cấp gần nhất.
Checklist thiết kế multimodal
- [ ] Chọn early hay late fusion và ghi rõ lý do?
- [ ] Có buffer gom tín hiệu bất đồng bộ theo cửa sổ thời gian?
- [ ] Mỗi modality có gắn độ tin cậy?
- [ ] Có nhánh "hỏi lại" khi tín hiệu mâu thuẫn/thiếu?
- [ ] Giới hạn kích thước ảnh/độ dài audio để kiểm soát chi phí và trễ?
- [ ] Xử lý ảnh mờ/thiếu sáng (yêu cầu chụp lại)?
Chi phí và độ trễ
Ảnh độ phân giải cao và audio dài tốn token và thời gian. Các bước kiểm soát:
- Resize ảnh về mức đủ đọc (ví dụ cạnh dài 1024px).
- Cắt audio về đoạn cần thiết.
- Với late fusion, chạy các modality song song để không cộng dồn trễ.
Sai lầm thường gặp
- Xử lý modality tuần tự. Chạy vision rồi audio rồi text nối tiếp làm trễ cộng dồn; hãy chạy song song.
- Đoán bừa khi mâu thuẫn. Ảnh và lời nói lệch nhau mà agent vẫn tự tin chẩn đoán → sai nghiêm trọng. Hãy hỏi lại.
- Không gắn độ tin cậy. Coi OCR mờ ngang với OCR nét dẫn tới quyết định sai.
- Gửi ảnh gốc 12MP. Tốn token, chậm, không cần thiết. Resize trước.
- Bỏ qua buffer bất đồng bộ. Suy luận ngay khi có ảnh mà chưa chờ lời nói → thiếu ngữ cảnh.
Học xong bài này rồi?
Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu,
và học hết khóa thì có chứng chỉ.
Lưu tiến độ của tôi