Cara jimat kos token ejen pengekodan dengan Paritok
Paritok memampatkan bacaan fail dan output alat untuk mengurangkan penggunaan token sehingga 74 peratus. Ketahui mekanisme teknikal dan pengiraan titik pulang modal anda.
Tindakan Paritok terhadap permintaan
Paritok ialah gerbang token: proksi yang berada di antara ejen pengekodan anda dengan API model dan memampatkan setiap permintaan sebelum menghantarnya. Ejen anda berhubung dengan http://127.0.0.1:8080 dan bukannya penyedia model. Proksi ini menulis semula skema alat, bacaan fail, output alat dan pusingan perbualan lama, menghantar muatan yang lebih kecil ke hulu, serta menyerahkan semula balasan tanpa perubahan.
Penyedia mengenakan caj berdasarkan apa yang sampai kepada mereka, jadi muatan yang lebih kecil bermakna invois yang lebih rendah. Itulah konsep keseluruhannya. Ini adalah tuntutan yang berbeza daripada "konteks anda bertahan lebih lama", dan itulah sebabnya alat ini menarik dan bukan sekadar kemas.
Projek ini masih baharu. Tag awam pertamanya bertarikh Julai 2026 dan tag semasa ialah v1.3.0, bertarikh 5 Ogos 2026. Pemberat dan kod gerbang dilesenkan di bawah Apache 2.0. Model pemampatan tersebut ialah penyesuai LoRA (low-rank adaptation) pada Qwen3-4B-Instruct-2507, yang dilatih menggunakan 45,000 sampel sulingan guru yang diambil daripada trajektori ejen pengekodan sebenar.
Mengapa ini bukan pemotongan konteks
Pemotongan akan memadam data. Apabila ejen menghampiri had konteks dan membuang giliran perbualan yang paling lama, fail yang dibaca pada giliran 3 akan hilang. Jika ejen memerlukan fail tersebut pada giliran 20, ia perlu membaca fail itu semula, jadi anda membayar kos token tersebut buat kali kedua. Penjimatan itu hanyalah pinjaman sementara.
Paritok menggantikan segmen dengan bentuk yang lebih pendek berserta tag, [REF:id], dan menyimpan teks penuh pada proksi. Model mendapatkan semula segmen dengan memanggil read_original atau expand_context. Ini mengubah mod kegagalan. Pemotong gagal dengan cara melupakan maklumat, dan ia tidak akan memberitahu anda. Pemampat gagal dengan memberikan ringkasan yang kehilangan data kepada model, dan model boleh meminta teks asal apabila ringkasan tersebut tidak mencukupi.
Penapis alat (tool filter) berfungsi dengan cara yang sama. Skema alat yang ditapis akan digantikan dengan stub dan bukannya dibuang, dan model boleh mendapatkan semula alat tersebut dengan memanggil gateway_search_tools. Ini penting kerana penapis yang menyembunyikan alat secara kekal akan mengubah keupayaan ejen anda, dan anda hanya akan menyedarinya melalui tugasan yang gagal secara senyap.
Tiga tuil, dan yang mana satu percuma
Tuil pertama ialah penapis skema alat. Setiap permintaan membawa keseluruhan tatasusunan tools. Dalam satu pusingan Claude Code dengan beberapa pelayan MCP (model context protocol) dilampirkan, projek tersebut mengukur blok itu pada kira-kira 29,000 token. Penapis tersebut membenamkan permintaan pengguna dan setiap penerangan alat dengan BAAI/bge-small-en-v1.5, iaitu model pembenaman 130 MB, mengekalkan alat yang sepadan, dan memotong selebihnya. Blok tersebut turun kepada kira-kira 8,000 token. Model pembenaman itu berjalan pada CPU.
Tuil kedua ialah pemampatan kandungan, dan ini adalah bahagian yang memerlukan model 4B pada GPU. Bacaan fail, output alat dan sejarah ditulis semula kepada 25.7% daripada saiz asalnya. Itulah punca angka utama 74% itu. Baca dengan teliti: 74% ialah kadar pemampatan pada kandungan yang dimampatkan, bukan potongan pada bil anda.
Tuil ketiga ialah peringkasan sejarah. Apabila bajet konteks penuh, pusingan di luar tetingkap terkini akan diringkaskan supaya sesi yang panjang terus berjalan dan tidak mencapai had.
Hanya tuil kedua memerlukan GPU. Itu adalah ayat paling berguna di halaman ini. pip install "paritok[toolselect]" memberikan anda penapis alat pada VPS CPU biasa, dan ia merupakan separuh daripada produk yang tidak mengenakan sebarang kos bulanan kepada anda. Cuba dahulu sebelum anda menyewa kad.
Apa yang diukur oleh projek ini, dan pada harness yang mana
The data behind this chart
[
{
"label": "Paritok-4B-v1",
"compressed_to_pct": 25.7,
"quality_retained_pct": 86.5
},
{
"label": "gpt-4.1-mini",
"compressed_to_pct": 50.2,
"quality_retained_pct": 85.6
},
{
"label": "gpt-5",
"compressed_to_pct": 61.9,
"quality_retained_pct": 93.6
}
]Ini adalah angka yang diterbitkan sendiri oleh projek tersebut, diukur pada harness miliknya sendiri terhadap SWE-bench Lite. Paritok-4B-v1 memampatkan kandungan kepada 25.7% daripada saiz asal sambil mengekalkan 86.5% daripada kadar penyelesaian tanpa mampatan. Menggunakan gpt-5 sebagai pemampat mengekalkan kualiti yang lebih tinggi, 93.6%, tetapi hanya memampatkan kepada 61.9%, dan anda perlu membayar harga model frontier untuk menjimatkan kos model frontier.
Baca lajur kualiti dengan jujur. Mengekalkan 86.5% daripada kadar penyelesaian bermakna larian yang dimampatkan gagal menyelesaikan masalah yang berjaya diselesaikan oleh larian tanpa mampatan, hampir satu daripada tujuh penyelesaian. Pada penanda aras, itu hanyalah nombor dalam jadual. Pada repositori anda, itu adalah tugasan yang anda jalankan dua kali.
The data behind this chart
[
{
"label": "Turn 1",
"saved_pct": 25
},
{
"label": "Turn 5",
"saved_pct": 39
},
{
"label": "Turn 12",
"saved_pct": 57
},
{
"label": "Turn 20",
"saved_pct": 63
}
]Penjimatan hujung-ke-hujung meningkat apabila sesi berjalan, kerana sejarah terkumpul dan sejarah adalah perkara yang dimampatkan. Projek ini melaporkan kira-kira 25% pada satu pusingan, 39% menjelang pusingan ke-5, dan 63% menjelang pusingan ke-20. Ia juga menyatakan di mana pertumbuhan itu terhenti: pada bajet 200,000 token, penjimatan mutlak mendatar pada sekitar 48,000 token setiap pusingan, sekitar pusingan ke-8 hingga ke-12, kerana sebaik sahaja konteks penuh, sejarah berhenti berkembang. Angka "melebihi 85%" yang sering dipetik menggambarkan sesi yang tepu dengan konteks. Itu adalah kes terbaik, jadi jangan merancang berdasarkan angka tersebut.
Adakah GPU 24GB berbaloi untuk Paritok?
Kad 24 GB merupakan unit sewaan biasa untuk model bersaiz ini. Setakat 7 Ogos 2026, kadar median yang diterbitkan untuk RTX 4090 dengan 24 GB ialah $0.44 sejam, dengan penyenaraian termurah sekitar $0.20. Ambil $0.44. Jika dibiarkan berjalan sepanjang bulan, iaitu 730 jam, kosnya ialah $321. Jika dijalankan hanya pada waktu bekerja, 8 jam sehari selama 22 hari, jumlahnya ialah 176 jam, iaitu $77.
Sekarang, tukarkan pengurangan token kepada pengurangan dolar. Pengurangan ini terpakai pada token input. Token output melalui proksi tanpa diubah, jadi ia tidak terjejas sama sekali. Andaikan token input adalah 80% daripada jumlah dolar anda, yang merupakan kadar biasa bagi ejen pengekodan, dan semak andaian tersebut dengan bil anda sendiri. Penjimatan dolar anda kemudiannya adalah pengurangan token didarab dengan 0.8.
The data behind this chart
[
{
"label": "Turn 5 (39% saved)",
"bill_always_on_usd": "1,030",
"bill_workday_only_usd": 248
},
{
"label": "Turn 20 (63% saved)",
"bill_always_on_usd": 637,
"bill_workday_only_usd": 154
},
{
"label": "Saturated (85% saved)",
"bill_always_on_usd": 472,
"bill_workday_only_usd": 114
}
]Pada angka sesi tepu 85%, anda menjimatkan 68% daripada bil, jadi kad yang dibiarkan berjalan akan membayar kosnya sendiri sebaik sahaja perbelanjaan ejen bulanan anda melebihi kira-kira $472, atau kira-kira $114 jika anda menghentikan instans di luar waktu bekerja. Pada angka turn-20 sebanyak 63%, jumlah tersebut menjadi $637 dan $154. Pada angka turn-5 sebanyak 39%, iaitu keadaan sebenar bagi sesi pendek, anda memerlukan kira-kira $1,030 sebulan sebelum kad tersebut berbaloi untuk disewa.
Dua perkara menjadikan situasi ini lebih baik daripada yang dicadangkan oleh jadual. Model tersebut tidak memerlukan 24 GB: binaan q4 adalah sekitar 2.5 GB dan binaan bf16 sekitar 8 GB, jadi kad yang lebih kecil, atau kotak GPU yang sudah anda jalankan untuk tujuan lain, akan mengurangkan setiap angka dalam carta tersebut. Selain itu, menghentikan instans apabila tiada sesiapa yang mengekod adalah faktor penentu terbesar di sini, kerana ia memotong kos sewaan sebanyak kira-kira tiga perempat.
Satu perkara menjadikannya lebih buruk. Proses pemampatan memerlukan kerja yang nyata. Setiap token yang dimampatkan oleh model 4B adalah token yang perlu dibaca dan kemudian ditulis, yang menambah latensi pada setiap giliran ejen. Pada kad yang anda sewa mengikut jam, kos tersebut muncul sebagai masa menunggu, bukan sebagai baris dalam invois, jadi ia mudah terlepas pandang sehingga anda merasakannya.
Jika anda sedang menimbang antara jam GPU sewaan berbanding token API secara umum, titik pulang modal antara GPU VPS dan token API menggunakan pengiraan yang sama untuk inferens itu sendiri.
Menjalankan gateway Paritok pada VPS
Python 3.10 atau lebih baharu diperlukan. Ubuntu 24.04 membekalkan Python 3.12, jadi imej VPS kosong sudah memadai untuk bahagian yang hanya menggunakan CPU.
sudo apt update && sudo apt install -y python3-venv curl
python3 -m venv /opt/paritok/venv
source /opt/paritok/venv/bin/activate
pip install "paritok[proxy]==1.3.0"
pip install "paritok[toolselect]==1.3.0"Tetapkan versi secara spesifik. Repositori tersebut mengeluarkan tag v1.2.8 pada 29 Julai 2026 dan v1.3.0 pada 5 Ogos 2026. Projek yang bergerak sepantas ini sering menamakan semula kunci konfigurasi antara setiap release. Menggunakan pip install paritok kosong, atau git clone bagi main, akan memberikan anda gateway yang berbeza pada minggu hadapan dan tidak meninggalkan rekod tentang versi mana yang menghasilkan angka yang anda ukur.
Backend lalai ialah Ollama. Tarik model tersebut, kemudian berikan nama ringkas yang dicari oleh proksi.
ollama pull paritok/paritok-4b-v1
ollama cp paritok/paritok-4b-v1 paritok-4b-v1Tulis paritok.yaml di sebelahnya. use_gpu_server: false adalah perkara yang mengekalkan pemampatan pada perkakasan anda sendiri.
use_gpu_server: false
local_model:
base_url: http://localhost:11434paritok proxy --port 8080 --config-file paritok.yamlparitok up ialah jalan pintas untuk semua langkah di atas: ia menarik model jika tiada dan memulakan proksi pada port 8080. Periksa proksi sebelum anda menghalakan ejen kepadanya.
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/stats/health mengembalikan objek JSON kecil yang mengandungi "status":"ok" dan rentetan versi. /stats mengembalikan jumlah pemampatan dan anggaran proksi sendiri tentang jumlah yang telah dijimatkan. Anggap anggaran tersebut sebagai proksi yang menilai kerjanya sendiri, dan sahkan ia dengan halaman penggunaan pembekal anda.
Untuk throughput dan bukannya kemudahan, vLLM menyediakan adapter di atas model asas.
vllm serve Qwen/Qwen3-4B-Instruct-2507 \
--enable-lora \
--lora-modules paritok-4b-v1=paritok/paritok-4b-v1 \
--port 8000Ollama lebih cepat untuk disediakan. vLLM mengendalikan permintaan serentak dengan jauh lebih baik, yang mula menjadi penting sebaik sahaja lebih daripada satu ejen berkongsi pelayan yang sama. Perbezaan praktikal antara Ollama dan vLLM adalah perkara yang menentukan pilihan ini untuk anda.
Halakan ejen ke proksi dengan pemboleh ubah persekitaran URL asas.
export ANTHROPIC_BASE_URL=http://127.0.0.1:8080
export OPENAI_BASE_URL=http://127.0.0.1:8080Codex CLI mengabaikan OPENAI_BASE_URL, jadi projek tersebut menulis ~/.codex/config.toml untuk anda apabila codex.enabled: true ditetapkan dalam paritok.yaml. Mengeksport pemboleh ubah itu sahaja akan menyebabkan Codex berhubung terus dengan pembekal, dan tandanya ialah pembilang /stats yang tidak pernah bergerak semasa anda bekerja.
Pastikan listener berada pada 127.0.0.1, jangan sekali-kali pada 0.0.0.0. Proksi menghantar kunci API pembekal anda ke hulu, jadi proksi yang boleh dicapai dari internet merupakan relay terbuka untuk kunci tersebut: sesiapa yang menemui port itu akan membelanjakan wang anda tanpa perlu melihat kunci itu sendiri. Capai ia dari komputer riba melalui terowong SSH atau VPN dan bukannya membuka port tersebut.
Jalankannya di bawah systemd supaya ia kekal aktif selepas reboot. Laraskan laluan untuk memadankan pemasangan anda.
[Unit]
Description=Paritok compression proxy
After=network-online.target
[Service]
User=paritok
WorkingDirectory=/opt/paritok
ExecStart=/opt/paritok/venv/bin/paritok proxy --port 8080 --config-file /opt/paritok/paritok.yaml
Restart=on-failure
[Install]
WantedBy=multi-user.targetAktifkan ia dengan sudo systemctl enable --now paritok, kemudian jalankan curl /health sekali lagi. Unit yang bermula dan terus berhenti biasanya bermaksud laluan fail konfigurasi salah, dan journalctl -u paritok -n 50 akan mencetak puncanya.
Pilihan dihoskan dan kosnya
Projek ini juga menjual perkhidmatan pemampatan. Tetapkan use_gpu_server: true dengan kunci API dan model 4B akan berjalan pada perkakasan mereka, dengan harga $0.30 bagi setiap sejuta token yang diproses, percuma sehingga akhir Ogos 2026 menurut dokumentasi mereka sendiri. Ini menghapuskan kos sewa GPU dan semua kerja operasi yang dinyatakan di atas.
Ini juga bermakna prompt anda dan fail yang dibaca oleh ejen anda akan meninggalkan mesin anda dan sampai kepada pihak ketiga sebelum ia sampai kepada penyedia model anda. Self-hosting wujud untuk mengelakkan langkah tambahan tersebut. Tentukan perkara yang ingin anda utamakan sebelum menetapkan flag tersebut, kerana flag itu hanyalah perubahan satu baris tetapi kesannya jauh lebih besar.
Cara mengukur prestasi sebelum dan selepas anda sendiri
Angka yang diterbitkan adalah angka projek, daripada harness projek, pada SWE-bench Lite. Repositori anda bukan SWE-bench Lite. Ukur prestasi anda sendiri.
- Jalankan satu minggu biasa tanpa proksi dalam laluan. Rekodkan token input, token cache-read, dan token output sebagai baris berasingan daripada halaman penggunaan pembekal anda, bukan sebagai satu jumlah dolar keseluruhan.
- Jalankan minggu seterusnya dengan proksi di hadapan, melakukan jenis kerja yang sama.
- Bandingkan baris input dan cache-read. Output sepatutnya hampir sama, kerana tiada apa yang memampatkannya. Jika output berubah dengan banyak, sesuatu selain proksi telah berubah.
- Kira tugasan yang perlu anda buat semula. Itu adalah separuh daripada kualiti pertukaran tersebut, dan tiada papan pemuka di mana-mana yang melaporkannya.
- Tambahkan jam GPU pada minggu kedua sebelum anda membandingkan jumlah keseluruhan.
Memisahkan input daripada output adalah penting kerana kedua-duanya diletakkan harga secara berbeza dan pemampat hanya menyentuh salah satu daripadanya. Sehingga Ogos 2026, Claude Sonnet 4.6 berharga $3 bagi setiap juta token input dan $15 bagi setiap juta token output, dan bacaan prompt-cache adalah 10% daripada kadar input, iaitu $0.30 bagi setiap juta. Jurang antara kos token input dan output adalah penentu sama ada pemampat bahagian input berbaloi untuk anda. Ke mana perginya token Claude Code sebenarnya memberitahu anda bahagian konteks anda yang mana cukup besar untuk perlu dimampatkan.
Prompt caching merumitkan aritmetik penapis alat (tool-filter) secara khususnya. Blok alat berada di hadapan permintaan, jadi selepas pusingan pertama ia biasanya merupakan cache hit pada 10% daripada harga input. Memotong 21,000 token daripada blok yang dicache menjimatkan 21,000 pada $0.30 bagi setiap juta, kira-kira $0.006 bagi setiap pusingan, bukannya $0.063 seperti yang dicadangkan oleh kadar tanpa cache. Projek ini mengekalkan blok yang ditapis dalam keadaan beku untuk sesi tersebut supaya awalan (prefix) yang dicache tidak berubah. Penapis yang memilih semula alat setiap pusingan akan membatalkan awalan tersebut dan menelan kos yang lebih tinggi daripada penjimatan yang diperoleh.
Perkara yang belum disahkan
Setiap angka prestasi di atas datang daripada projek itu sendiri. Tiada pengesahan bebas bagi keputusan SWE-bench Lite, dan dengan tag pertama bertarikh Julai 2026, kod ini juga mempunyai sejarah operasi yang sangat singkat. Kadar pemampatan dan angka kualiti yang dikekalkan kedua-duanya diukur oleh pihak yang mendapat manfaat jika angka tersebut kelihatan baik. Ini tidak bermakna angka tersebut salah. Ia bermakna angka tersebut tidak disahkan, dan anda harus menilainya secara berbeza daripada angka yang anda hasilkan sendiri.
Satu tingkah laku yang didokumentasikan perlu diketahui sebelum anda menyalahkan persediaan anda. Model embedding yang digunakan oleh penapis alat dimuatkan pada permintaan pertama dan bukannya semasa permulaan, jadi projek ini mendokumentasikan tempoh pemanasan selama 10 hingga 15 saat, kemudian sekitar 15 ms bagi setiap panggilan selepas itu. Hantar satu permintaan percubaan selepas proksi bermula supaya giliran ejen sebenar anda yang pertama tidak kelihatan tergantung.
Empat perkara yang boleh anda tentukan sendiri dalam satu petang: sama ada proksi bermula dan kekal aktif, sama ada /stats bergerak semasa anda bekerja, sama ada baris input-token pembekal anda benar-benar berkurangan, dan sama ada ejen masih menyelesaikan kerja tersebut. Perkara-perkara ini menentukan kesesuaiannya untuk persediaan anda dengan lebih baik daripada mana-mana penanda aras yang diterbitkan.
Mengenai kedudukan alat ini berbanding alatan anda yang lain: get laluan LiteLLM yang dihoskan sendiri menghala dan mengukur permintaan tanpa mengubah kandungannya, jadi kedua-duanya menyelesaikan masalah yang berbeza dan boleh dirangkaikan, dengan Paritok diletakkan paling hampir dengan ejen. Jika matlamat sebenar adalah bil yang lebih kecil dan bukannya alat khusus ini, set kawalan kos yang lebih luas untuk ejen pada VPS merangkumi beberapa perubahan yang tidak memerlukan kos untuk dicuba terlebih dahulu.
FAQ
Adakah Paritok mengurangkan bil API saya atau hanya penggunaan konteks saya?
Ia mengurangkan bil tersebut kerana proksi menulis semula permintaan sebelum ia sampai kepada penyedia, dan penyedia mengenakan caj berdasarkan apa yang diterimanya. Saiz pengurangan tersebut adalah lebih kecil daripada yang digambarkan oleh tajuk utama. Angka 74% adalah kadar pemampatan bagi kandungan yang dimampatkan. Secara keseluruhan, projek ini melaporkan kira-kira 25% bagi satu pusingan dan 63% menjelang pusingan ke-20, dan hanya token input yang berubah. Token output dilalui tanpa sebarang perubahan.
Berapa banyak GPU yang saya perlukan untuk mengehos sendiri model pemampatan?
Binaan q4 adalah sekitar 2.5 GB dan binaan bf16 sekitar 8 GB, jadi model ini muat di dalam kad 24 GB dengan ruang yang masih banyak. Kad yang lebih kecil juga boleh berfungsi, dan ia mengubah pengiraan titik pulang modal (break-even) untuk kelebihan anda. Penapis skema alat (tool-schema filter) tidak memerlukan GPU langsung: ia menggunakan BAAI/bge-small-en-v1.5, iaitu model embedding 130 MB yang berjalan pada CPU. Pasang paritok[toolselect] pada VPS biasa dan anda mendapat pengurangan blok alat dengan kos penggunaan RAM yang sedikit.
Apa yang berlaku jika pemampat membuang sesuatu yang diperlukan oleh ejen?
Tiada apa-apa yang dibuang. Segmen yang dimampatkan membawa tag [REF:id] dan model mendapatkan semula teks penuh dengan read_original atau expand_context. Skema alat yang ditapis hanya dijadikan stub dan bukannya dipadamkan, dan model mendapatkan semula skema tersebut dengan gateway_search_tools. Risiko sebenar adalah lebih senyap daripada fail yang hilang: model berfungsi berdasarkan ringkasan yang lossy dan tidak pernah menyedari bahawa ia sepatutnya meminta versi asal. Itulah yang diukur oleh angka 86.5% kualiti yang dikekalkan pada SWE-bench Lite.
Mengapa permintaan pertama saya mengambil masa lima belas saat?
Model embedding di sebalik penapis alat dimuatkan pada permintaan pertama dan bukannya semasa permulaan (startup). Projek ini mendokumentasikan masa pemanasan (warm-up) selama 10 hingga 15 saat, kemudian kira-kira 15 ms bagi setiap panggilan selepas itu. Hantar satu permintaan percubaan dengan curl selepas memulakan proksi, dan pusingan ejen sebenar yang pertama tidak akan tergendala.
Patutkah saya menggunakan pelayan GPU yang dihoskan dan bukannya mengehos sendiri?
Ia menghapuskan kos sewaan GPU dan penyelenggaraan, dengan harga $0.30 bagi setiap juta token yang diproses setakat Ogos 2026. Ia juga menghantar prompt anda dan fail yang dibaca oleh ejen anda kepada pihak ketiga sebelum ia sampai kepada penyedia model anda. Jika anda mengehos sendiri untuk memastikan kod berada pada infrastruktur yang anda kawal, tetapan tersebut membatalkan sebab anda bermula. Pengehosan sendiri memastikan kedua-dua konteks dan kunci API penyedia kekal pada mesin anda sendiri.