TokenSpan: Giải pháp giảm 11% chi phí Prompt LLM với Alias gọn nhẹ
Lê Lân
0
TokenSpan: Ý Tưởng Mới Trong Tối Ưu Prompt Cho Mô Hình Ngôn Ngữ Lớn
Mở Đầu
Trong kỷ nguyên của các mô hình ngôn ngữ lớn (LLM), kích thước prompt trở thành sức mạnh nhưng đồng thời cũng là một chi phí lớn. Mỗi lần bạn thêm nhiều ngữ cảnh chi tiết, bạn sẽ tiêu tốn số lượng token nhiều hơn. Điều này đặc biệt rõ ràng khi làm việc với các prompt dài, cấu trúc phức tạp hoặc nhiều mẫu câu truy vấn lặp đi lặp lại. TokenSpan không phải là thư viện nén thông thường mà là một thí nghiệm tư duy, đặt ra câu hỏi: liệu có thể giảm đáng kể số lượng token bằng cách thay thế các cụm từ lặp lại bằng các bí danh gọn nhẹ? Và liệu có thể áp dụng các ý tưởng từ mã hóa từ điển để giới hạn và nén ngôn ngữ giao tiếp với mô hình không? Bài viết sẽ cùng bạn khám phá những ý tưởng này, cùng nhìn nhận khả năng, hiệu quả và tính khả thi của chúng trong việc tối ưu prompt.
💡 Điểm nhấn quan trọng: Chi phí thật sự nằm ở số token gửi đi, không phải ở quá trình xử lý của mô hình. Vậy tại sao không giảm số token gửi và để mô hình tự xử lý việc thay thế?
TokenSpan: Ý Tưởng Cốt Lõi
Đặt Vấn Đề Chi Phí Token
Chi phí khi làm việc với các LLM là theo số token mà bạn gửi kèm vào prompt. Bạn càng cung cấp nhiều ngữ cảnh, càng tốn token và chi phí chạy mô hình càng lớn.
Giải Pháp Alias
TokenSpan đề xuất sử dụng alias (bí danh) thay cho những cụm từ hay xuất hiện nhiều lần. Ví dụ, thay vì viết đầy đủ "Microsoft Designer" nhiều lần, có thể dùng ký hiệu §a để thay thế. Mô hình có thể hiểu rằng §a tương đương với "Microsoft Designer" mà không cần bạn gửi lại nguyên cụm.
Ví dụ minh họa:
Alias
Nghĩa
§a
Microsoft Designer
Prompt gốc: How does Microsoft Designer compare to Canva?
Prompt tối ưu: How does §a compare to Canva?
Token mà mô hình tiêu tốn cho alias là không phát sinh thêm, bạn chỉ cần trả chi phí một lần khi xây dựng dictionary (bảng mã bí danh).
Mở Rộng Với Dictionary Tái Sử Dụng
Chiến Lược Xây Dựng Dictionary
Xây dựng dictionary một lần duy nhất chứa các alias với các cụm từ một cách có cấu trúc.
Nhúng dictionary đó vào prompt hệ thống hoặc bộ nhớ dài hạn.
Tái sử dụng dictionary này cho nhiều tương tác tiếp theo thay vì gửi lại dictionary trong mỗi lần gọi mô hình.
Lợi Ích
Tiết kiệm chi phí token lâu dài khi làm việc với prompt dài hoặc lặp lại.
Tăng tính nhất quán trong cách câu hỏi được đặt ra.
Giúp xử lý đa dạng cách diễn đạt của người dùng hiệu quả hơn.
Công Thức Tính Tiết Kiệm Token
Giả sử cụm từ gốc gồm 2 token, thay thế bằng alias 1 token (ví dụ §a), mỗi entry trong dictionary có overhead 4 token (gồm token alias, token ngăn cách, 2 token cụm từ).
Công thức tính token được tiết kiệm:
Ký hiệu
Ý nghĩa
X
Số lần xuất hiện cụm từ
Saved
Số token tiết kiệm được
Ví dụ tính toán:
Cụm từ "Microsoft Designer" xuất hiện 15 lần:
Note: Mỗi cụm từ phải xuất hiện ít nhất 5 lần mới bắt đầu có lợi về token.
Tại Sao Chọn Cụm Từ Hai Token?
Cụm 1 token không thể nén thêm.
Cụm dài hơn 2 token tiết kiệm nhiều token hơn nhưng ít xuất hiện thường xuyên.
Cụm 2 token nằm ở điểm cân bằng tối ưu: vừa phổ biến, vừa dễ nén.
Hiểu Về Overhead Khi Dùng Dictionary
Mỗi entry dictionary tốn 4 token:
1 token cho alias (ví dụ: §a)
1 token làm ký hiệu ngăn cách (→)
2 token cho cụm từ gốc
Overhead này làm cho việc sử dụng alias chỉ có lợi khi cụm từ xuất hiện đủ nhiều lần.
Kết Quả Thực Tế
Prompt gốc: 8,019 token
Sau khi thay thế alias: 7,138 token
Tiết kiệm: 881 token (~11%)
Mô hình vẫn duy trì được hiệu quả trong việc hiểu và xử lý prompt đã được mã hóa alias.
Kết Luận
Ngôn ngữ tự nhiên mang lại sự linh hoạt và thuận tiện cho người dùng nhưng đổi lại là:
Lặp lại nhiều lần các cụm từ cũ gây lãng phí token
Sai khác trong cách diễn đạt làm giảm độ chính xác
Chi phí xử lý token cao hơn
Nếu các ứng dụng xây dựng hệ thống giới hạn từ vựng và dùng các alias có cấu trúc, nó có thể:
Giảm đáng kể chi phí token
Thúc đẩy prompt chặt chẽ, có tổ chức hơn
Cải thiện sự nhất quán trong phản hồi mô hình
Những Bài Học Từ Các Tính Năng Tokenization
Các cụm từ phổ biến thường thành 1 token (ví dụ: "the")
Việc viết hoa ảnh hưởng đến token hóa (ví dụ: "Designer" khác "designer")
Từ hiếm bị tách nhỏ (ví dụ: "visioneering" → "vision" + "eering")
Dãy số không token hóa tốt (ví dụ: "123456" thành "123" + "456")
Dùng các chữ số làm alias có thể gây lỗi, ký hiệu đặc biệt như § hoặc @ an toàn hơn