OpenAI
Halaman ini diterjemah oleh mesin. Lihat artikel asal dalam bahasa Inggeris.

Memahami dan mengira token

Ketahui cara token input, output, cache dan penaakulan mempengaruhi penggunaan API, had model dan kos.

Dikemas kini: 16 days ago

Gambaran keseluruhan

Token ialah unit yang digunakan oleh model OpenAI untuk memproses teks. Token boleh mewakili satu aksara, sebahagian perkataan, seluruh perkataan atau tanda baca. Ruang juga mempengaruhi cara teks dibahagikan kepada token.

Kiraan token tidak sama dengan kiraan perkataan. Teks yang sama boleh menghasilkan kiraan token yang berbeza bergantung pada model, pengekodan dan bahasa.

Fahami cara teks menjadi token

Apabila anda menghantar teks kepada model:

  1. Teks dibahagikan kepada token.

  2. Model memproses token tersebut.

  3. Model menjana token output. Ini boleh merangkumi teks yang anda terima dan, bagi model penaakulan, token penaakulan dalaman yang tidak dipaparkan sebagai teks jawapan.

Gunakan anggaran kasar untuk teks bahasa Inggeris

Anggaran ini boleh membantu anda menilai saiz teks bahasa Inggeris:

  • 1 token bersamaan dengan kira-kira 4 aksara.

  • 1 token bersamaan dengan kira-kira tiga perempat perkataan.

  • 100 token bersamaan dengan kira-kira 75 perkataan.

Ini hanyalah anggaran, bukan kiraan tepat. Panjang ayat dan perenggan berbeza-beza, manakala bahasa lain mungkin mempunyai hubungan yang berbeza antara aksara, perkataan dan token.

Ambil kira ruang dan penggunaan huruf besar

Sesuatu perkataan boleh dibahagikan kepada token yang berbeza bergantung pada ejaan, penggunaan huruf besar dan teks di sekelilingnya.

Contohnya, red, Red dan red tidak mengandungi teks yang sama: contoh terakhir mempunyai ruang di hadapan. Pengekodan boleh mewakilinya secara berbeza.

ID token juga bergantung pada pengekodan. Jangan anggap bahawa contoh ID token terpakai untuk setiap model.

Bezakan token input dan output

KategoriPerkara yang diterangkan
Token inputToken yang diberikan kepada model dalam sesuatu permintaan. Token ini juga dipanggil token prom.
Token outputToken yang dijana oleh model. Chat Completions memanggilnya token pelengkapan.
Token input cacheToken input yang digunakan semula melalui cache prom. Harganya boleh berbeza daripada token input tanpa cache.
Token penaakulanToken yang digunakan secara dalaman oleh model penaakulan sebelum menghasilkan jawapan yang dipaparkan.

Token penaakulan tidak dipaparkan sebagai teks jawapan, tetapi dikira dalam penggunaan output dan dibilkan sebagai token output.

Oleh itu, jawapan pendek yang dipaparkan boleh menggunakan lebih banyak token daripada yang digambarkan oleh teksnya.

Kira token sebelum menghantar permintaan

Kira teks biasa

Gunakan Tokenizer untuk melihat cara teks dibahagikan kepada token.

Untuk pentokenan teks biasa secara pengaturcaraan, gunakan tiktoken. Pilih pengekodan untuk model sasaran anda, contohnya dengan tiktoken.encoding_for_model(model).

Kiraan token teks biasa tidak semestinya merangkumi semua token dalam permintaan API. Struktur mesej, alat, skema, imej dan fail boleh mempengaruhi kiraan input penuh.

Kira input Responses yang lengkap

Untuk input Responses API yang lengkap, gunakan API pengiraan token input.

API ini menerima format input Responses, termasuk mesej, imej, fail, alat dan perbualan. Kiraannya merangkumi token pemformatan yang digunakan untuk struktur permintaan, seperti peranan dan sempadan mesej.

Kiraan input tidak meramalkan jumlah token output yang akan dijana oleh model.

Semak penggunaan token sebenar

Selepas membuat permintaan, periksa maklumat penggunaannya. Nama medan berbeza mengikut titik akhir:

  • Chat Completions melaporkan prompt_tokens, completion_tokens dan total_tokens.

  • Responses melaporkan input_tokens, output_tokens dan total_tokens.

Anda juga boleh menyemak aktiviti dari semasa ke semasa dalam Usage Dashboard. Untuk mendapatkan arahan, termasuk penggunaan penstriman, lihat: Menyemak penggunaan dan kos API.

Kekal dalam had model

Semak dokumentasi model anda untuk mengetahui tetingkap konteks dan output maksimumnya. Had ini boleh berbeza antara model.

Tetingkap konteks mengehadkan jumlah token yang boleh diproses oleh model dalam sesuatu permintaan. Model juga mempunyai had output. Untuk model penaakulan, sediakan ruang bagi token penaakulan serta jawapan yang dipaparkan.

Jika input anda terlalu besar, anda boleh:

  • Pendekkan atau ungkapkan semula prom.

  • Alih keluar konteks yang tidak diperlukan atau berulang.

  • Bahagikan input yang besar kepada bahagian yang lebih kecil.

  • Ringkaskan atau praproses teks sebelum menghantarnya.

Gunakan tetapan token output yang disokong oleh titik akhir dan model anda. Chat Completions menggunakan max_completion_tokens; Responses menggunakan max_output_tokens.

Had saiz permintaan ini berasingan daripada had kadar API serta had penggunaan atau perbelanjaan bulanan. Semak dokumentasi model untuk model yang anda gunakan.

Fahami penetapan harga token

Bagi harga API berasaskan token, kadar bergantung pada model dan kategori token. Harga token input, input cache dan output boleh berbeza. Keupayaan API yang lain mungkin menggunakan unit pengebilan yang berbeza.

Semak halaman harga API untuk mendapatkan kadar semasa.

Apabila membandingkan model, pertimbangkan jumlah token dan kos yang diperlukan untuk menyelesaikan tugas anda. Harga yang lebih rendah bagi setiap sejuta token tidak semestinya menghasilkan jumlah kos yang lebih rendah: model mungkin mentokenkan teks yang sama secara berbeza dan menjana jumlah output atau penaakulan yang berbeza.

Uji tugas yang mewakili penggunaan sebenar dan jangan hanya membandingkan panjang respons yang dipaparkan.

Ambil kira berbilang pelengkapan

Apabila titik akhir dan model menyokong penjanaan berbilang pelengkapan, pelengkapan tambahan tersebut turut menggunakan token.

Bagi Chat Completions, menetapkan n melebihi 1 akan menjana berbilang pilihan. Anda dikenakan bayaran untuk token yang dijana merentas pilihan tersebut.

Bagi Completions API lama, best_of boleh menjana calon yang tidak semuanya dikembalikan. Contohnya, best_of = 3 boleh menjana sehingga 3 × max_tokens token pelengkapan merentas semua calon.

Parameter ini khusus untuk titik akhir tertentu. Jangan anggap bahawa n atau best_of disokong oleh API atau model lain.

Adakah artikel ini membantu?