Semantic Caching
Khám phá cách bộ nhớ đệm ngữ nghĩa (semantic caching) giúp giảm độ trễ và chi phí cho AI. Tìm hiểu cách thức hoạt động của nó đối với LLM và các pipeline thị giác máy tính với ví dụ thực tế từ Ultralytics YOLO26.
Bộ nhớ đệm ngữ nghĩa là một kỹ thuật tối ưu hóa nâng cao được sử dụng chủ yếu trong Generative AI và cho các Mô hình ngôn ngữ lớn (LLMs), giúp lưu trữ và truy xuất các phản hồi dựa trên ý nghĩa (ngữ nghĩa) của truy vấn thay vì văn bản chính xác của nó. Bằng cách xác định thời điểm một prompt mới đặt ra cùng một câu hỏi cơ bản với câu hỏi đã được trả lời trước đó, bộ nhớ đệm ngữ nghĩa loại bỏ nhu cầu phải gọi lại mô hình AI, từ đó giảm đáng kể thời gian xử lý và chi phí API.
Link to this sectionCách hoạt động của bộ nhớ đệm ngữ nghĩa#
Không giống như bộ nhớ đệm truyền thống yêu cầu khớp chuỗi ký tự giống hệt nhau, bộ nhớ đệm ngữ nghĩa chuyển đổi các truy vấn đầu vào thành các vectơ số học nhiều chiều được gọi là embeddings. Khi người dùng gửi một prompt, các hệ thống sử dụng bộ nhớ đệm ngữ nghĩa Redis hoặc các kho lưu trữ trong bộ nhớ tương tự sẽ thực hiện tìm kiếm vectơ để so sánh vectơ mới với các vectơ đã lưu trữ trước đó trong cơ sở dữ liệu vectơ.
Quá trình so sánh này dựa trên các thước đo khoảng cách toán học, phổ biến nhất là độ tương đồng cosine. Nếu điểm số tương đồng giữa truy vấn mới và truy vấn đã lưu vượt quá ngưỡng định sẵn (ví dụ: 0.95), nó được ghi nhận là một "cache hit" (trúng bộ nhớ đệm). Hệ thống sẽ lập tức trả về phản hồi đã lưu, bỏ qua hoàn toàn công cụ suy luận. Nếu điểm số thấp hơn ngưỡng, nó dẫn đến một "cache miss" (trượt bộ nhớ đệm), yêu cầu mô hình tạo phản hồi mới và lưu trữ cặp embedding-phản hồi mới cho các tương tác trong tương lai. Quy trình này cực kỳ hiệu quả trong các kiến trúc đám mây hiện đại để mở rộng quy mô các ứng dụng AI.
Link to this sectionCác ứng dụng trong thực tế#
Bộ nhớ đệm ngữ nghĩa rất quan trọng để triển khai các giải pháp AI tiết kiệm chi phí trên nhiều lĩnh vực khác nhau.
- Chatbot hỗ trợ khách hàng: Tại một bàn hỗ trợ CNTT, hàng trăm người dùng có thể đặt các biến thể của cùng một câu hỏi (ví dụ: "Làm cách nào để đặt lại mật khẩu của tôi?" so với "Các bước quên mật khẩu"). Bộ nhớ đệm ngữ nghĩa nhận diện các ý định này là giống hệt nhau, đảm bảo mô hình chỉ tính toán câu trả lời một lần. Điều này làm giảm đáng kể độ trễ suy luận và giảm mức sử dụng token cho các giải pháp quản lý API.
- Khám phá hình ảnh và RAG: Trong các pipeline đa phương thức, các nền tảng sử dụng trích xuất đặc trưng để lưu vào bộ nhớ đệm các embedding của hình ảnh tham chiếu. Khi người dùng tải lên một hình ảnh để tìm các mục tương tự về mặt thị giác, hệ thống có thể truy xuất ngay lập tức các kết quả khớp về mặt ngữ nghĩa từ bộ nhớ đệm, giúp tăng tốc hệ thống đề xuất hình ảnh mà không cần phải mã hóa lại các đầu vào hình ảnh lớn nhiều lần. Các nhà phát triển thường tích hợp các công cụ như LangChain để điều phối các lớp bộ nhớ đệm này.
Link to this sectionPhân biệt các thuật ngữ bộ nhớ đệm liên quan#
Để hiểu đầy đủ về tối ưu hóa AI, việc phân biệt bộ nhớ đệm ngữ nghĩa với các hình thức quản lý bộ nhớ khác là rất hữu ích:
- So với Bộ nhớ đệm Prompt: Bộ nhớ đệm prompt liên quan đến việc lưu các trạng thái toán học đã tính toán trước của một ngữ cảnh tĩnh (như tiền tố tài liệu dài) trong một phiên hoạt động để tăng tốc các truy vấn tiếp theo. Bộ nhớ đệm ngữ nghĩa lưu trữ kết quả đầu ra văn bản hoặc hình ảnh cuối cùng của một tương tác hoàn chỉnh để phục vụ các ý định hoàn toàn mới nhưng giống hệt nhau.
- So với KV Cache: KV cache là cơ chế bộ nhớ cấp thấp bên trong kiến trúc Transformer giúp lưu các trạng thái chú ý trung gian trong quá trình tạo văn bản token-theo-token để hỗ trợ suy luận thời gian thực. Bộ nhớ đệm ngữ nghĩa hoạt động ở lớp ứng dụng, lưu trữ toàn bộ quá trình trao đổi đầu vào-đầu ra trước khi nó chạm tới các lớp của mô hình.
Link to this sectionMô phỏng bộ nhớ đệm ngữ nghĩa trong thị giác máy tính#
Đoạn mã Python sau đây minh họa cách mô phỏng cơ chế cốt lõi của một bộ nhớ đệm ngữ nghĩa bằng cách sử dụng PyTorch và gói ultralytics. Bằng cách tính toán độ tương đồng giữa hình ảnh đã lưu trong bộ nhớ đệm và hình ảnh truy vấn mới bằng mô hình phân loại Ultralytics YOLO26, hệ thống có thể xác định xem liệu có cần thực hiện quy trình suy luận đầy đủ hay không.
import torch
from ultralytics import YOLO
# Load an Ultralytics YOLO26 classification model for embedding generation
model = YOLO("yolo26n-cls.pt")
# Extract the embedding for a previously 'cached' reference image
cached_embed = model.embed("reference_shoe.jpg")[0].flatten()
# Extract the embedding for a new user query image
new_embed = model.embed("user_uploaded_shoe.jpg")[0].flatten()
# Calculate cosine similarity to check for a semantic cache hit
similarity = torch.nn.functional.cosine_similarity(cached_embed, new_embed, dim=0)
# Apply a threshold to determine if the images are semantically equivalent
if similarity > 0.90:
print(f"Cache hit! Similarity: {similarity.item():.2f}. Returning cached response.")
else:
print(f"Cache miss! Similarity: {similarity.item():.2f}. Running full inference.")Đối với các nhóm đang tìm cách quản lý tập dữ liệu và triển khai các mô hình thị giác máy tính được tối ưu hóa cao có khả năng tích hợp liền mạch với các kiến trúc bộ nhớ đệm nâng cao, Nền tảng Ultralytics cung cấp một môi trường trực quan, toàn diện để đào tạo, theo dõi và phục vụ các mô hình ở quy mô lớn.






