Back home

Setelah model open source dibatasi, hal pertama yang perlu independen adalah model lapisan netral.

Tidak masalah jika modelnya bisa diubah. Yang benar-benar merepotkan adalah perilaku default yang dikodekan secara keras dalam kode.

Ketika model open source mulai dibatasi, hal pertama yang diekspos sering kali bukanlah entri download, namun asumsi default dalam kode. Nama model telah diubah, namun antarmuka masih ada, namun proses bisnis tidak lagi sinkron dengan perilaku lama: format keluaran, urutan pemanggilan fungsi, nada penolakan, panjang konteks, parameter pengambilan sampel, salah satu darinya dapat dilihat satu per satu, namun menumpuknya bersama-sama akan menyeret seluruh tautan.

Masalah seperti ini biasanya sulit dianggap sebagai masalah arsitektural. Selama tahap pengembangan, saya hanya melihat “bisa berjalan”. Setelah online, saya menemukan bahwa pemilihan model telah ditulis ke dalam logika bisnis. Beberapa bidang hanya beradaptasi dengan satu format pengembalian, beberapa percobaan ulang hanya mengenali satu metode penolakan, dan beberapa pengecualian fallback default ke model asli untuk memberikan penjelasan yang lebih panjang. Setelah pembatasan diberlakukan, semua tumpukan tersembunyi ini terungkap.

Perilaku default akan mengaitkan model dengan bisnis

Pada tahap akses, model sering dianggap sebagai penambahan SDK, menghubungkan API, dan menambahkan kata prompt. Setelah terhubung, hal yang paling sulit untuk dibersihkan bukanlah panggilan itu sendiri, tetapi cabang yang tumbuh di sekitar perilaku default. Apakah keluarannya harus benar-benar JSON, apakah pemanggilan alat harus dicoba lagi setelah kegagalan, di mana harus memotong masukan yang terlalu panjang, dan di lapisan mana perintah pengendalian risiko harus ditempatkan. Masalah-masalah ini sering kali masuk dalam kode bisnis.

Ketika model open source dibatasi atau dihapus dari pasaran, atau image lokal dan versi upstream mulai mengalami fork, perilaku default ini tidak lagi dapat diandalkan. Di permukaan, ini hanya mengubah model, tetapi di bawahnya perlu mengubah penguraian, pemantauan, rollback, dan pengujian pada saat yang bersamaan. Bagian tersulitnya bukanlah menulis beberapa baris adaptasi lagi, namun rangkaian asumsi awal tidak ditandai secara eksplisit dari awal hingga akhir.

Peran lapisan netral adalah menyebarkan asumsi implisit

Lapisan model-netral tidak abstrak demi abstraksi. Fungsinya sangat sederhana: meletakkan kata-kata cepat, verifikasi skema, perutean, percobaan ulang, penurunan versi, log, dan evaluasi di satu tempat, sehingga perbedaan model terlebih dahulu melewati serangkaian batasan yang sama. Dengan cara ini, meskipun modelnya digantikan oleh cloud, open source, inferensi lokal, atau penyedia lainnya, bisnis akan tetap melihat kontrak input dan output yang terpadu.

Begitu lapisan ini terbentuk, banyak hal yang awalnya tidak jelas tiba-tiba menjadi jelas. Bidang mana yang merupakan nilai wajib, bidang mana yang hanya merupakan preferensi model, kegagalan mana yang dapat dicoba ulang, kegagalan mana yang harus dibatalkan, konteks mana yang akan dipotong, dan indikator mana yang benar-benar dapat dibandingkan, semuanya akan berubah dari “diingat oleh pengalaman” menjadi “dibatasi oleh antarmuka”. Dampak yang ditimbulkan dari model terbatas ini tidak lagi langsung dimasukkan ke dalam kode bisnis, melainkan terlebih dahulu ke lapisan netral.

Tidak semua adegan layak untuk lapisan ini

Beberapa adegan tidak memerlukan lapisan yang terlalu tebal sama sekali. Ringkasan satu kali, pembuatan sementara, eksperimen internal, dan rantai alat yang sepenuhnya terkunci model tunggal, sudah cukup untuk menghubungkan model di tempat-tempat ini. Membangun lapisan netral yang lengkap untuk proses yang berumur pendek hanya akan membebani biaya di muka.

Lapisan ini diperlukan dimana model akan benar-benar berpartisipasi dalam penilaian bisnis. Seperti ekstraksi, perutean, eksekusi alat, respons layanan pelanggan, bantuan peninjauan, dan penulisan ulang batch. Dalam skenario ini, model bukanlah mainan, namun bagian dari proses. Selama model dapat berubah, atau kendala eksternal dapat mengganggu kestabilan pintu masuk tertentu, lapisan netral bukanlah hiasan melainkan dinding yang menjaga perubahan dalam batas-batasnya.

Apa yang sebenarnya memaksa model open source untuk dibatasi bukanlah alternatif pemasok tertentu, namun apakah tim memperlakukan “perbedaan model” sebagai warga negara kelas satu. Semakin awal perilaku default dalam kode disebarkan, semakin tidak pasif perilaku tersebut saat mengubah model nanti. Modelnya bisa berubah, tapi batasannya tidak bisa diikuti.