AI và LLMỨng dụng LLMCác gói Performance và Scale

Cache phản hồi theo ngữ nghĩa

Cache câu trả lời LLM theo ý nghĩa chứ không theo văn bản chính xác, để các câu hỏi diễn đạt lại trúng cache và bỏ qua lần gọi mô hình.

lần tra cứu trước mỗi lần gọi mô hình
1
thước đo tương đồng
3
ghi đè ngưỡng
Mỗi lần gọi
Bước 1 trên 6
Tạo một namespace

Đặt kích thước embedding và mức tương đồng được tính là trúng.

Phiên ví dụplaying
# Tạo một namespace
hotkv> SCACHE.CREATE support_bot 1536 THRESHOLD 0.92
OK

Một hướng dẫn minh họa động với các lệnh HotKV thật và phản hồi ví dụ. Nhấn vào bất kỳ bước nào để nhảy tới đó. Lệnh và phản hồi giữ nguyên bằng tiếng Anh, đúng như bạn gõ và thấy trong HotKV.

Vấn đề

Một trợ lý hỗ trợ nhận cùng một câu hỏi được diễn đạt theo cả trăm cách khác nhau. Một cache khớp chính xác trượt gần như tất cả, nên mỗi câu diễn đạt lại đều phải trả tiền cho một lần gọi mô hình đầy đủ và chờ toàn bộ phản hồi.

HotKV xử lý như thế nào

Một semantic cache lưu mỗi câu trả lời cạnh embedding của câu hỏi của nó và tra cứu các câu hỏi mới theo độ tương đồng. Nếu một prompt mới đủ gần với một prompt bạn đã trả lời, câu trả lời đã lưu được trả về và mô hình không bao giờ được gọi. Ngưỡng quyết định thế nào là đủ gần.

Từng bước một

Điều gì xảy ra, từng lệnh một

  1. 01

    Tạo một namespace

    Đặt kích thước embedding và mức tương đồng được tính là trúng.

    SCACHE.CREATE support_bot 1536 THRESHOLD 0.92
  2. 02

    Trượt cache, nên gọi mô hình một lần

    Lần đầu một câu hỏi được hỏi, trong cache chưa có gì tương tự, nên mô hình trả lời nó.

    SCACHE.GET support_bot 0.013 -0.21 0.88 ...
  3. 03

    Ghi nhớ câu trả lời

    Lưu câu hỏi, câu trả lời và embedding của câu hỏi, trong một ngày.

    SCACHE.SET support_bot "How do I reset my password?" "Open Settings > Security." 0.013 -0.21 0.88 ... TTL 86400
  4. 04

    Một câu diễn đạt lại trúng cache

    “forgot my login pass” rơi gần với câu hỏi đã lưu. Câu trả lời và độ tương đồng của nó được trả về, và mô hình được bỏ qua.

    SCACHE.GET support_bot 0.011 -0.19 0.87 ...
  5. 05

    Chặt chẽ hơn cho một lần tra cứu

    Một lần tra cứu có thể yêu cầu khớp gần hơn mặc định của namespace, cho những câu trả lời mà khớp gần đúng là chưa đủ.

    SCACHE.GET support_bot 0.2 0.4 0.1 ... THRESHOLD 0.99
  6. 06

    Đo khoản tiết kiệm

    Thống kê theo từng namespace cho thấy cache đã trả lời thay cho mô hình thường xuyên đến mức nào.

    SCACHE.STATS support_bot
Phù hợp ở đâu

Các tình huống thực tế

Hỗ trợ khách hàng

Đặt lại mật khẩu, bản sao hóa đơn và thời gian giao hàng được hỏi đi hỏi lại. Mỗi biến thể sau lần đầu được phục vụ từ cache.

Bot tri thức nội bộ

Nhân viên hỏi về ngày nghỉ, chi phí và quyền truy cập VPN bằng lời lẽ của riêng họ. Một câu trả lời phục vụ tất cả cho đến khi nó hết hạn.

Công cụ cho lập trình viên

“How do I paginate?” và “how to page through results” nhận cùng một câu trả lời đã được ghi tài liệu mà không cần lần gọi mô hình thứ hai.

Tích hợp sẵn

Bạn nhận được gì

Khớp theo ý nghĩa

Các câu hỏi tương tự dùng chung một câu trả lời đã cache, dù được diễn đạt thế nào.

SCACHE.GETSCACHE.SET

Bạn kiểm soát độ chặt chẽ

Đặt ngưỡng theo từng namespace và ghi đè nó trong một lần tra cứu.

SCACHE.THRESHOLD

Khoản tiết kiệm đo được

Thống kê theo từng namespace cho thấy số lần trúng, trượt và số mục.

SCACHE.STATS

Cosine, L2 hoặc tích vô hướng

Chọn thước đo phù hợp với mô hình embedding của bạn khi tạo namespace.

SCACHE.CREATE

Câu hỏi thường gặp

Một lần trúng cache tốn bao nhiêu?

Một lần gọi embedding và một lần tra cứu cache. Lần gọi mô hình và thời gian tạo của nó được bỏ qua.

Làm sao tránh câu trả lời sai do khớp lỏng?

Hãy nâng ngưỡng. Ngưỡng cao hơn cần khớp gần hơn, nên ít câu hỏi trúng hơn và mỗi lần trúng chắc chắn hơn.

Gói nào bao gồm nó?

Semantic cache là một phần của các gói Performance và Scale.

Trường hợp sử dụng liên quan

Thử trên khối lượng công việc của chính bạn

HotKV nói giao thức Redis, nên bạn có thể trỏ một client hiện có tới nó và chạy chính những lệnh này.