Topik trending
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Anda sedang dalam wawancara Insinyur AI di OpenAI.
Pewawancara bertanya:
"Model GPT kami menghasilkan 100 token dalam 42 detik.
Bagaimana Anda membuatnya 5x lebih cepat?"
Anda: "Saya akan mengalokasikan lebih banyak GPU untuk pembuatan yang lebih cepat."
Wawancara selesai.
Inilah yang Anda lewatkan:
Kemacetan sebenarnya bukanlah komputasi, ini komputasi yang berlebihan.
Tanpa penembolokan KV, model Anda menghitung ulang kunci dan nilai untuk setiap token, mengulangi pekerjaan.
- dengan caching KV → 9 detik
- tanpa caching KV → 42 detik (~5x lebih lambat)
Mari selami untuk memahami cara kerjanya!
Untuk memahami caching KV, kita harus tahu bagaimana LLM mengeluarkan token.
- Transformer menghasilkan status tersembunyi untuk semua token.
- Status tersembunyi diproyeksikan ke ruang kosakata.
- Logit token terakhir digunakan untuk menghasilkan token berikutnya.
- Ulangi untuk token berikutnya.
Periksa ini👇
Jadi, untuk menghasilkan token baru, kita hanya membutuhkan status tersembunyi dari token terbaru.
Tidak ada status tersembunyi lainnya yang diperlukan.
Selanjutnya, mari kita lihat bagaimana keadaan tersembunyi terakhir dihitung di dalam lapisan transformator dari mekanisme perhatian.
Selama perhatian:
Baris terakhir query-key-product melibatkan:
- vektor kueri terakhir.
- semua vektor kunci.
Juga, baris terakhir dari hasil perhatian akhir melibatkan:
- vektor kueri terakhir.
- Semua vektor kunci & nilai.
Periksa visual ini untuk memahaminya dengan lebih baik:
Wawasan di atas menunjukkan bahwa untuk menghasilkan token baru, setiap operasi perhatian dalam jaringan hanya membutuhkan:
- vektor kueri token terakhir.
- Semua vektor kunci & nilai.
Tapi, ada satu wawasan kunci lagi di sini.
Saat kami menghasilkan token baru:
- Vektor KV yang digunakan untuk SEMUA token sebelumnya tidak berubah.
Jadi, kita hanya perlu menghasilkan vektor KV untuk token yang dihasilkan satu langkah sebelumnya.
Vektor KV lainnya dapat diambil dari cache untuk menghemat komputasi dan waktu.
Ini disebut caching KV!
Untuk mengulangi, alih-alih menghitung vektor KV secara berlebihan dari semua token konteks, cache.
Untuk menghasilkan token:
- Hasilkan vektor QKV untuk token yang dihasilkan satu langkah sebelumnya.
- Dapatkan semua vektor KV lainnya dari cache.
- Menghitung perhatian.
Periksa ini👇
Caching KV mempercepat inferensi dengan menghitung cache KV prompt sebelum menghasilkan token.
Inilah sebabnya mengapa ChatGPT membutuhkan waktu lebih lama untuk menghasilkan token pertama daripada yang lain.
Penundaan ini dikenal sebagai time-to-first-token (TTFT).
Meningkatkan TTFT adalah topik untuk hari lain!
69,16K
Teratas
Peringkat
Favorit
