Tổng quan
Token là đơn vị mà các mô hình OpenAI dùng để xử lý văn bản. Một token có thể biểu thị một ký tự, một phần của từ, cả từ hoặc dấu câu. Khoảng trắng cũng ảnh hưởng đến cách văn bản được chia thành các token.
Số token không giống với số từ. Cùng một văn bản có thể tạo ra số lượng token khác nhau tùy theo mô hình, kiểu mã hóa và ngôn ngữ.
Tìm hiểu cách văn bản trở thành token
Khi bạn gửi văn bản đến một mô hình:
Văn bản được chia thành các token.
Mô hình xử lý các token đó.
Mô hình tạo ra các token đầu ra. Chúng có thể bao gồm văn bản bạn nhận được và, với mô hình suy luận, cả các token suy luận nội bộ không hiển thị trong câu trả lời.
Ước tính sơ bộ cho văn bản tiếng Anh
Các ước tính sau có thể giúp bạn đánh giá độ dài của văn bản tiếng Anh:
1 token tương đương khoảng 4 ký tự.
1 token tương đương khoảng ba phần tư từ.
100 token tương đương khoảng 75 từ.
Đây chỉ là số ước tính, không phải số đếm chính xác. Độ dài câu và đoạn văn có thể khác nhau; các ngôn ngữ khác cũng có thể có mối tương quan khác giữa ký tự, từ và token.
Tính đến khoảng trắng và cách viết hoa
Một từ có thể được chia thành các token khác nhau tùy theo cách viết, cách viết hoa và văn bản xung quanh.
Ví dụ: red, Red và red không chứa văn bản giống hệt nhau: ví dụ cuối có một khoảng trắng ở đầu. Một kiểu mã hóa có thể biểu diễn chúng theo những cách khác nhau.
ID token cũng phụ thuộc vào kiểu mã hóa. Đừng cho rằng ID token trong ví dụ áp dụng cho mọi mô hình.
Phân biệt token đầu vào và đầu ra
| Loại | Nội dung mô tả |
| Token đầu vào | Các token được cung cấp cho mô hình trong một yêu cầu. Chúng còn được gọi là token câu lệnh. |
| Token đầu ra | Các token do mô hình tạo ra. Chat Completions gọi chúng là token hoàn thành. |
| Token đầu vào lưu trong bộ nhớ đệm | Các token đầu vào được tái sử dụng thông qua lưu trữ nội dung câu lệnh. Mức giá của chúng có thể khác với token đầu vào không được lưu trong bộ nhớ đệm. |
| Token suy luận | Các token mà mô hình suy luận sử dụng nội bộ trước khi tạo ra câu trả lời hiển thị. |
Token suy luận không hiển thị dưới dạng văn bản trả lời, nhưng vẫn được tính vào mức sử dụng đầu ra và được tính phí như token đầu ra.
Do đó, một câu trả lời hiển thị ngắn có thể sử dụng nhiều token hơn so với số lượng mà văn bản hiển thị cho thấy.
Đếm token trước khi gửi yêu cầu
Đếm token trong văn bản thuần túy
Sử dụng Công cụ phân tách token để xem cách văn bản được chia thành các token.
Để phân tách token trong văn bản thuần túy bằng chương trình, hãy dùng tiktoken. Chọn kiểu mã hóa cho mô hình đích, chẳng hạn bằng tiktoken.encoding_for_model(model).
Số token trong văn bản thuần túy không nhất thiết bao gồm mọi token trong một yêu cầu API. Cấu trúc thông báo, công cụ, lược đồ, hình ảnh và tệp có thể ảnh hưởng đến tổng số token đầu vào.
Đếm token cho toàn bộ đầu vào Responses
Để đếm token cho toàn bộ đầu vào của Responses API, hãy dùng API đếm token đầu vào.
API này chấp nhận các định dạng đầu vào của Responses, bao gồm thông báo, hình ảnh, tệp, công cụ và cuộc hội thoại. Số đếm này bao gồm các token định dạng dùng cho cấu trúc yêu cầu, chẳng hạn như vai trò và ranh giới của thông báo.
Số token đầu vào không dự đoán được mô hình sẽ tạo ra bao nhiêu token đầu ra.
Kiểm tra mức sử dụng token thực tế
Sau khi gửi yêu cầu, hãy kiểm tra thông tin sử dụng của yêu cầu đó. Tên trường khác nhau tùy theo điểm cuối:
Chat Completions báo cáo prompt_tokens, completion_tokens và total_tokens.
Responses báo cáo input_tokens, output_tokens và total_tokens.
Bạn cũng có thể xem hoạt động theo thời gian trong Bảng điều khiển mức sử dụng. Để xem hướng dẫn, bao gồm cả mức sử dụng khi phát trực tuyến, hãy đọc: Xem xét mức sử dụng và chi phí API.
Tuân thủ giới hạn của mô hình
Xem tài liệu của mô hình để biết cửa sổ ngữ cảnh và đầu ra tối đa. Các giới hạn này có thể khác nhau giữa các mô hình.
Cửa sổ ngữ cảnh giới hạn số token mà mô hình có thể xử lý trong một yêu cầu. Mô hình cũng có giới hạn đầu ra. Với mô hình suy luận, hãy chừa dung lượng cho cả token suy luận và câu trả lời hiển thị.
Nếu đầu vào quá lớn, bạn có thể:
Rút ngắn hoặc diễn đạt lại câu lệnh.
Loại bỏ ngữ cảnh không cần thiết hoặc bị lặp lại.
Chia đầu vào lớn thành các phần nhỏ hơn.
Tóm tắt hoặc xử lý trước văn bản rồi mới gửi.
Sử dụng chế độ cài đặt token đầu ra mà điểm cuối và mô hình của bạn hỗ trợ. Chat Completions sử dụng max_completion_tokens; Responses sử dụng max_output_tokens.
Các giới hạn về kích thước yêu cầu này tách biệt với giới hạn tốc độ API và giới hạn mức sử dụng hoặc chi tiêu hằng tháng. Hãy xem tài liệu về mô hình dành cho mô hình bạn sử dụng.
Tìm hiểu cách định giá token
Với API tính giá theo token, mức giá phụ thuộc vào mô hình và loại token. Token đầu vào, đầu vào lưu trong bộ nhớ đệm và đầu ra có thể có mức giá khác nhau. Các chức năng API khác có thể sử dụng đơn vị tính phí khác.
Xem mức giá hiện tại trên trang định giá API.
Khi so sánh các mô hình, hãy cân nhắc tổng số token và chi phí cần thiết để hoàn thành tác vụ. Mức giá thấp hơn cho mỗi triệu token không nhất thiết đồng nghĩa với tổng chi phí thấp hơn: các mô hình có thể tách token cho cùng một văn bản theo những cách khác nhau và tạo ra lượng đầu ra hoặc suy luận khác nhau.
Hãy thử nghiệm bằng các tác vụ tiêu biểu thay vì chỉ so sánh độ dài câu trả lời hiển thị.
Tính đến nhiều nội dung hoàn thành
Khi điểm cuối và mô hình hỗ trợ tạo nhiều nội dung hoàn thành, các nội dung bổ sung đó cũng sử dụng token.
Với Chat Completions, đặt n lớn hơn 1 sẽ tạo ra nhiều lựa chọn. Bạn sẽ bị tính phí cho số token được tạo ra trong tất cả các lựa chọn đó.
Với Completions API cũ, best_of có thể tạo ra các phương án nhưng không trả về tất cả. Ví dụ: best_of = 3 có thể tạo ra tối đa 3 × max_tokens token hoàn thành trên tất cả các phương án.
Các tham số này dành riêng cho từng điểm cuối. Đừng cho rằng một API hoặc mô hình khác cũng hỗ trợ n hay best_of.
