Chuyển đến nội dung chính

Ước tính chi phí GPT bằng thư viện tiktoken trong Python

Học cách quản lý chi phí mô hình GPT với tiktoken trong Python. Tìm hiểu tokenization, BPE và ước tính chi phí API OpenAI hiệu quả.
· 7 phút đọc

Khám phá cùng AI

Khi làm việc với các mô hình OpenAI GPT trong Python, việc theo dõi chi phí là rất quan trọng. Đó là lúc thư viện tiktoken phát huy tác dụng—một công cụ giúp bạn ước tính đơn giản số tiền sẽ chi cho các cuộc gọi API bằng cách chuyển văn bản thành token, là các đơn vị cơ bản mà GPT và các LLM khác dùng để hiểu và tạo văn bản.

Tại đây, chúng ta sẽ tìm hiểu tokenization là gì và vì sao nó quan trọng đối với các mô hình ngôn ngữ, giới thiệu Byte Pair Encoding (BPE), rồi đi sâu vào cách thư viện tiktoken có thể giúp bạn dự đoán hiệu quả chi phí sử dụng GPT.

Ảnh chụp màn hình ảnh bìa của thư viện OpenAI tiktoken

Tokenization là gì

Tokenization là quy trình cốt lõi trong vận hành GPT hoặc các mô hình ngôn ngữ khác, đóng vai trò là bước đầu để chuyển ngôn ngữ tự nhiên sang định dạng mà các hệ thống AI tiên tiến này có thể hiểu và xử lý.

Về bản chất, tokenization chia nhỏ văn bản thành các phần nhỏ, dễ xử lý gọi là token. Tùy phương pháp tokenization, các token có thể là từ, một phần của từ, hoặc thậm chí là từng ký tự riêng lẻ.

Tokenization hiệu quả rất quan trọng vì nó trực tiếp ảnh hưởng đến khả năng của mô hình trong việc diễn giải văn bản đầu vào, tạo ra phản hồi mạch lạc, phù hợp ngữ cảnh và ước tính chính xác chi phí tính toán.

Byte Pair Encoding (BPE)

Byte Pair Encoding (BPE) là một phương pháp tokenization cụ thể đã trở nên nổi bật nhờ được sử dụng trong các mô hình GPT và các ứng dụng xử lý ngôn ngữ tự nhiên (NLP) khác. BPE cân bằng giữa mức độ chi tiết của tokenization theo ký tự và phạm vi rộng hơn của tokenization theo từ.

Nó hoạt động bằng cách lặp lại việc gộp cặp byte (hoặc ký tự) xuất hiện thường xuyên nhất trong văn bản thành một token mới duy nhất. Quy trình này tiếp tục trong một số vòng lặp xác định trước hoặc cho đến khi đạt kích thước từ vựng mong muốn.

Tầm quan trọng của BPE trong các LLM là không thể phủ nhận. BPE cho phép các mô hình này xử lý hiệu quả một dải từ vựng rất rộng, bao gồm từ phổ biến, từ hiếm và cả từ mới, mà không cần một kho từ vựng cố định quá lớn và cồng kềnh.

Tính thích ứng này đạt được bằng cách chia nhỏ các từ ít phổ biến thành các từ con hoặc ký tự có khả năng xuất hiện trong ngữ cảnh khác, từ đó cho phép mô hình ghép nối ý nghĩa của các thuật ngữ lạ từ những thành phần đã biết.

Một số đặc điểm chính của BPE:

  • Nó có thể đảo ngược và đảm bảo không mất thông tin, cho phép khôi phục hoàn hảo văn bản gốc từ các token. Ví dụ, nếu từ “exciting” chuyển thành [12 34 39 10 23], thì vectơ này có thể đảo ngược để trở lại từ “exciting” mà không mất mát.
  • BPE có thể xử lý mọi văn bản, ngay cả khi nó không có trong tập huấn luyện ban đầu của mô hình, khiến phương pháp này vô cùng linh hoạt.
  • Phương pháp này nén văn bản hiệu quả, với phiên bản đã token hóa thường ngắn hơn văn bản gốc. Trung bình, mỗi token đại diện cho khoảng bốn byte của văn bản gốc.
  • BPE cũng giúp mô hình nhận biết và hiểu các phần từ phổ biến. Ví dụ, "ing" thường xuất hiện trong tiếng Anh, nên BPE sẽ chia "exciting" thành "excit" và "ing." Việc thường xuyên gặp các từ con như "ing" trong nhiều ngữ cảnh giúp mô hình nắm bắt ngữ pháp và khái quát hóa các mẫu ngôn ngữ tốt hơn.

tiktoken

tiktoken là thuật toán BPE tốc độ cao do OpenAI phát triển. Phiên bản mã nguồn mở của thuật toán có sẵn trong nhiều thư viện, bao gồm Python. Theo GitHub của họ, tiktoken nhanh hơn 3–6 lần so với một tokenizer nguồn mở tương đương.

Ảnh chụp màn hình so sánh tiktoken với tokenizer của huggingface.

Nguồn

Thư viện tiktoken hỗ trợ ba phương thức mã hóa khác nhau. Encoding xác định cách văn bản được chuyển đổi thành token. Các mô hình khác nhau sử dụng các encoding khác nhau.

Ảnh chụp màn hình hiển thị 3 loại embedding và các mô hình tương ứng được hỗ trợ trong thư viện Tiktoken

Nguồn

Ước tính chi phí GPT bằng thư viện tiktoken trong Python

Thư viện tiktoken có thể mã hóa chuỗi văn bản thành token, và vì chúng ta biết tên encoding cho mô hình đang dùng, ta có thể dùng thư viện này để ước tính chi phí các cuộc gọi API trước khi thực hiện.

Step 1. Cài đặt tiktoken

!pip install openai tiktoken

Step 2. Nạp một encoding

Phương thức tiktoken.get_encoding trả về encoding phù hợp

encoding = tiktoken.get_encoding("cl100k_base")
encoding

Output:

>>> <Encoding 'cl100k_base'>

Ngoài ra, bạn cũng có thể nạp theo tên mô hình bằng phương thức tiktoken.encoding_for_model.

encoding = tiktoken.encoding_for_model("gpt-4")

Step 3. Chuyển văn bản thành token

Giờ bạn chỉ cần truyền chuỗi vào phương thức encode.

encoding.encode("This blog shows how to use tiktoken for estimating cost of GPT models")

Output:

>>> [2028, 5117, 5039, 1268, 311, 1005, 73842, 5963, 369, 77472, 2853, 315, 480, 2898, 4211]

Bạn có thể gọi phương thức length để biết chuỗi này có bao nhiêu token. Bảng giá cho mô hình này có trên trang web OpenAI.

Trong ví dụ này, chúng ta có 15 token đầu vào. Giá của GPT-4 là $10/1M token đầu vào, nên chi phí cho truy vấn này sẽ là $0.00015 ($10 / 1,000,000 * 15).

Ảnh chụp màn hình bảng giá các mô hình OpenAI GPT-4

Vì thuật toán BPE có thể đảo ngược hoàn toàn, bạn có thể dùng phương thức decode để chuyển từ token về chuỗi văn bản.

encoding.decode([2028, 5117, 5039, 1268, 311, 1005, 73842, 5963, 369, 77472, 2853, 315, 480, 2898, 4211])

Output:

>>> ‘This blog shows how to use tiktoken for estimating cost of GPT models’

Kết luận

Việc quản lý chi phí khi dùng các mô hình GPT trong Python không cần phải dựa vào phỏng đoán nhờ có thư viện tiktoken. Bằng cách hiểu tokenization, đặc biệt là phương pháp Byte Pair Encoding (BPE), và tận dụng tiktoken, bạn có thể ước tính chính xác chi phí liên quan đến các cuộc gọi API GPT. Hướng dẫn này đã đưa bạn đi qua những điều cốt yếu của tokenization, hiệu quả của BPE và quy trình đơn giản để dùng tiktoken chuyển văn bản thành token—rồi ngược lại—trong khi luôn để mắt đến ngân sách.

Dù bạn đang tối ưu chi phí, thử nghiệm ý tưởng mới hay mở rộng ứng dụng, việc có trong tay kiến thức và công cụ này giúp bạn luôn nắm rõ và kiểm soát chi phí sử dụng GPT. Hãy nhớ rằng, quản lý chi phí tính toán cũng quan trọng như công việc đổi mới bạn đang làm với các mô hình GPT. Với tiktoken, bạn có đầy đủ trang bị để tối ưu từng token—và từng đô-la.

Nếu bạn quan tâm đào sâu về embeddings và mở khóa các ứng dụng AI nâng cao như tìm kiếm ngữ nghĩa và hệ thống gợi ý, hãy xem khóa Introduction to Embeddings with the OpenAI API của DataCamp.

Nếu bạn là người mới bắt đầu và muốn có hướng dẫn thực hành từng bước về OpenAI API, hãy xem khóa Working With The OpenAI API và bài A Beginner's Guide to The OpenAI API: Hands-On Tutorial and Best Practices trên Datacamp.

Moez Ali

Tác giả

Moez Ali

Nhà khoa học dữ liệu, Nhà sáng lập & Người tạo ra PyCaret

Chủ đề

Liên quan