Pemindahan model Gemma-4 31B milik Google ke AWS Inferentia2 inf2.24xlarge menghasilkan padanan token-ke-token yang sempurna berbanding rujukan CPU—namun setiap ayat yang dihasilkan adalah tidak masuk akal. Jurang antara “padanan” (matching) dan “berfungsi” (working) kini menjadi amaran kepada sesiapa sahaja yang cuba memuatkan LLM berskala besar ke dalam cip inferens tersuai Amazon.

Mengapa padanan token-ke-token tidak mencukupi

Pembangun membandingkan setiap token output daripada peranti Inferentia dengan token yang dihasilkan oleh larian CPU model tersebut. Alirannya adalah identik, jadi perkakasan tersebut kelihatan telah menghasilkan semula pelaksanaan rujukan dengan tepat. Hakikatnya, kedua-dua aliran tersebut memasukkan prom yang cacat ke dalam model yang telah dibuang templat sembangnya dan dibekalkan dengan penanda giliran yang salah. Templat yang hilang menyebabkan model masuk ke dalam gelung infiniti, mengeluarkan teks yang tidak bermakna. Perkakasan telah menjalankan tugasnya—ia menghasilkan semula pepijat yang wujud dalam kod rujukan.

Pengajarannya mudah: SEQ_MATCH (kesamaan token berturutan) tidak sama dengan ketepatan. Jika pelaksanaan rujukan itu rosak, replika perkakasan yang setia akan mewarisi kegagalan yang sama. Pengesahan mesti melangkaui pariti tahap token; ia memerlukan semakan fungsi hujung-ke-hujung dengan input yang diformat dengan betul.

Buffer yang menyamar sebagai parameter

Semasa fasa pemuatan, pemuat model telah melangkau komponen yang dipanggil layer_scalar. Kod tersebut mendaftarkan objek ini sebagai sebuah buffer dan bukannya parameter dalam definisi model PyTorch. Buffer adalah tensor statik yang tidak dikemas kini semasa latihan, dan banyak pemuat (loader) mengabaikannya apabila menukar ke format yang serasi dengan Neuron. Tindakan melangkau komponen ini menyebabkan faktor penskalaan bagi beberapa lapisan kekal pada nilai lalai, sekali gus memesongkan pengiraan matematik di seluruh rangkaian. Tiada ralat yang timbul; model berjaya dikompil, dan saluran paip (pipeline) inferens berjalan, tetapi keputusan numeriknya adalah salah.

Bagi sesiapa yang memindahkan model besar ke Inferentia, audit setiap tensor bukan parameter. Walaupun sesuatu tensor tidak bertujuan untuk dipelajari, ia mungkin masih penting untuk pengiraan laluan hadapan (forward-pass) yang betul. Mengesahkan penyertaan buffer secara manual dapat mengelakkan ralat skala senyap yang sukar didiagnosis.

Ketidaktentuan spot-instance dan kompilasi 39 minit

Menjalankan model dengan 31 bilion parameter pada spot instance kelihatan murah, tetapi penjimatan tersebut datang dengan acara tuntutan semula (reclaim) yang tidak dapat diramalkan. Masa kompilasi pembangun—sekitar 39 minit untuk menterjemah model ke dalam kod serasi Neuron—hilang apabila AWS menuntut semula instance tersebut. Untuk mengatasi gangguan, mereka membina rangkaian keselamatan tiga serangkai:

  • ModelBuilder mengekalkan penggunaan memori dalam had hos 384 GB, mengelakkan kegagalan (crash) yang akan memaksa permulaan semula.
  • Pencerminan S3 segera (Immediate S3 mirroring) bagi kedua-dua fail pemberat (weight files) mentah dan "neffs" (fail boleh laksana Neuron) yang telah dikompil membolehkan instance baharu menyambung tepat di mana instance sebelumnya terhenti.
  • Pencari pelbagai wilayah (multi-region poller) mengimbas wilayah AWS untuk kapasiti spot yang tersedia dan melancarkan instance baharu sebaik sahaja ia muncul.

Langkah-langkah ini mengubah kompilasi titik tunggal yang rapuh kepada saluran paip yang berdaya tahan yang mampu bertahan dalam ketidaktentuan pasaran spot.

Perangkap sharding dengan susun atur perhatian campuran

Gemma-4 31B menggunakan dua konfigurasi perhatian. Sesetengah lapisan menggunakan empat kepala kunci-nilai (KV heads), manakala yang lain menggunakan jumlah yang berbeza. Pembahagian (splitting) model secara sama rata merentasi lapan pangkat (ranks) selari akan gagal apabila jumlah kepala KV sesuatu lapisan tidak boleh dibahagi dengan tepat. Percubaan untuk melakukan sharding pada lapisan 4-head merentasi lapan pangkat akan memaksa setiap pangkat mengendalikan separuh kepala—suatu kemustahilan matematik yang mencetuskan ketidakpadanan bentuk (shape mismatches) dan ralat masa larian (runtime errors).

Penyelesaiannya adalah dengan mereplikasi lapisan yang di-shard secara global (lapisan dengan jumlah kepala yang serasi) merentasi semua pangkat dan hanya melakukan sharding pada lapisan “sliding” yang jumlah kepalanya membolehkan pembahagian yang sama rata. Strategi hibrid ini mengekalkan kecekapan tensor-parallel sambil mengelakkan pembahagian kepala KV yang tidak sah, sekali gus menghapuskan ralat tensor-parallelization yang menghantui percubaan sebelum ini.

Rumusan

Memindahkan LLM gergasi ke Inferentia adalah lebih daripada sekadar latihan kompil-dan-jalan. Ia memerlukan ujian fungsi yang ketat melangkaui kesamaan token, pengesahan teliti bahawa setiap tensor—sama ada parameter atau buffer—dikendalikan dengan betul, dan strategi penggunaan yang menjangkakan tuntutan semula spot-instance. Akhir sekali, sharding mesti menghormati geometri perhatian dalaman model; jika tidak, keupayaan selari yang menjanjikan kelajuan akan menjadi punca kegagalan senyap.