p4

Mesin di balik Kvasir: protokol beralamat-peristiwa tempat agen memiliki node, stage server memegang lapisan, dan penempatan adalah sesuatu yang dinyatakan operator alih-alih ditebak jaringan.

p4 menjalankan satu model di beberapa mesin dengan memotongnya menjadi stage — irisan lapisan yang bersambung — dan memberi tiap stage prosesnya sendiri. Sebuah agen memiliki node-node pada satu host: ia memunculkan stage server, merutekan peristiwa di antara mereka, dan bertanggung jawab atas siklus hidupnya. Tak ada penjadwal yang memutuskan apa ditaruh di mana; operator menulis rencana penempatan, memuatnya, dan jaringan lalu melayani persis itu.

Jalur permintaan melalui deployment p4.

browser / SDK
  → gateway :8791              # payment, settlement, the wallet app
  → bridge :19000              # OUTER: session, submit, gather
  → p4 agent                   # owns this host's nodes
  → stage servers              # one process per layer slice
Pengalamatan

Sebuah stage menelepon agen stage berikutnya

Ketika sebuah stage menyelesaikan lapisannya, ia menyerahkan hasilnya ke stage berikutnya dengan meminta agennya sendiri membuka koneksi ke agen stage itu, di alamat yang diiklankan agen tersebut. Karena itu alamat yang diiklankan bukan sekadar kosmetik: ia harus terjangkau dari setiap host lain di ring, dan sebaiknya menyebut jaringan tercepat yang mereka bagi. Iklankan loopback, dan ring dua-host diam-diam menelepon dirinya sendiri.

Siklus hidup

Satu angka mengikat satu pemuatan

  • Load generation dipilih oleh siapa pun yang memuat dan dibandingkan untuk kesetaraan persis pada setiap sesi, inferensi, penyelesaian, dan unload. Angka itu tak tercatat di mana pun pada mesin-mesinnya, jadi pemuat menuliskannya ke disk *sebelum* perintah pertama berangkat — tanpa itu, model yang sudah termuat bahkan tak bisa diturunkan.
  • Generation sebuah node dan load generation adalah angka yang sama. Adapter memeriksa generation sumber pada tanda terima pelepasan terhadap pemuatan yang menaunginya dan menghentikan node bila keduanya berbeda, sehingga ring yang dimuat dengan dua angka berbeda melayani satu permintaan lalu kehilangan kepalanya.
  • Jurnal operasional wajib ada sebelum sebuah model mau dimuat sama sekali: itu adalah catatan penerimaan yang membuat sebuah pemuatan aman-diulang, bukan alat bantu debug.
Yang tidak dilakukannya

Kelalaian yang disengaja

p4 tak menerapkan template chat apa pun — ia meneruskan prompt buram dan mengharapkan pemanggil sudah merender format giliran model. Ia tak membuat keputusan penempatan. Dan ia tak punya gagasan tentang siapa yang harus dibayar: stage melaporkan baris token yang dijalankannya, dan penyelesaian adalah kontrak pihak lain. Masing-masing adalah sambungan yang diisi Kvasir di [bridge](/wiki/bridge), yang menjaga mesinnya tetap cukup sempit untuk mengikuti upstream.

Agen dan stage server native adalah satu rilis. Agen yang dibangun dari pohon sumber lebih baru gagal di READY karena kapabilitas yang hilang pada HELLO stage server — setelah memuat seluruh model. Bangun keduanya dari checkout yang sama.