Baru-baru ini saya menerima email dari seorang sarjana berbakat yang menanyakan bagaimana Botpress berinteraksi dengan LLMs.
Dia sedang menulis sebuah makalah tentang menghindari penguncian vendor, dan ingin tahu apakah kami mungkin menggunakan kerangka kerja seperti LangChain atau Haystack.
Saya sangat senang berbagi dengannya bahwa kami menciptakan abstraksi kami sendiri yang memungkinkan pembangun Botpress untuk berinteraksi dengan LLMs.
Mengingat minat yang lebih luas pada subjek ini, saya ingin mempublikasikan informasi ini. Ini mungkin berguna bagi pengembang lain atau pengguna platform kami. Saya harap Anda menemukannya semenarik yang saya temukan saat membuatnya.
Dua cara Botpress berinteraksi dengan LLMs
Botpress telah menciptakan abstraksinya sendiri yang bekerja dalam dua cara:
1. Integrasi
Integrasi memiliki konsep tindakan yang memiliki jenis input dan output tertentu.
Kami memiliki komponen open source pada platform, sehingga komunitas dapat membuat integrasi mereka sendiri yang dapat bersifat pribadi atau tersedia untuk penggunaan publik.
Jadi penyedia LLM - OpenAI, Anthropic, Groq, dll. - masing-masing memiliki integrasi. Itulah salah satu cara pengguna kami dapat berinteraksi dengan mereka.
2. LLM antarmuka integrasi
Di atas konsep integrasi, kami menambahkan "antarmuka."
Ini hanyalah definisi skema standar yang dapat dikembangkan oleh integrasi. Kami membuat skema standar untuk LLMs.
Selama integrasi memperluas skema ini, integrasi dianggap sebagai penyedia LLM . Jadi, integrasi ini bekerja secara out-of-the-box di Botpress.
Berikut ini beberapa contoh integrasi Botpress untuk berbagai penyedia LLM yang berbeda:
Kami memiliki antarmuka yang serupa untuk text2image, image2text, voice2text, text2voice, dll.
Konfigurasi model
Di dalam Botpress Studio, kami memiliki dua konfigurasi umum: "Model Terbaik" dan "Model Cepat". Kami menemukan bahwa secara umum, sebagian besar tugas dapat dengan mudah disesuaikan dengan salah satu dari dua mode ini.
Namun selain pemilihan model murni, kami menemukan bahwa penyedia yang berbeda terlalu berbeda dalam hal pemanggilan alat dan format pesan untuk dapat dengan mudah menukar satu model dengan model yang lain dan mengharapkan kinerja yang baik.
Mesin inferensi Botpress
Oleh karena itu, kami menciptakan mesin inferensi kami sendiri yang disebut LLMz, yang bekerja dengan model apa pun tanpa (atau sangat sedikit) perubahan yang diperlukan. Mesin ini menyediakan pemanggilan alat yang jauh lebih baik dan sering kali memiliki kinerja yang jauh lebih baik dalam hal biaya token dan perjalanan pulang pergi LLM .
Mesin ini bekerja dengan tipe-tipe typescript di belakang layar untuk definisi alat, markdown untuk pesan dan format keluaran kode, dan LLM-native execution sandbox untuk inferensi.
LLMz menyediakan banyak pengoptimalan dan fitur debugging yang diperlukan untuk kasus penggunaan tingkat lanjut seperti:
- Kompresi token masukan
- Pemotongan token pintar
- Memori-ke-konteks yang dioptimalkan dengan token
- Pemanggilan alat paralel & komposit
- Campuran beberapa pesan + panggilan alat dalam satu panggilan LLM
- Alat-alat yang sepenuhnya aman (input & output)
- Sesi yang berumur panjang melalui serialisasi kotak pasir
- Alat mengejek, membungkus, dan menelusuri
- Isolasi eksekusi penuh dalam isolat V8 yang ringan (memungkinkan untuk menjalankan ribuan eksekusi bersamaan dengan cepat dan dengan harga yang sangat murah)
- Iterasi otomatis dan pemulihan kesalahan
Semua hal ini diperlukan untuk kasus penggunaan kami. Namun, semua itu tidak mungkin atau sangat sulit dilakukan dengan pemanggilan alat biasa.
Kasus terhadap model router ringan
Kami sudah lama berpikir untuk membangun model router ringan yang akan berada di atas model yang sudah ada dan secara otomatis memilih model yang tepat untuk tugas yang ada.
Namun kami memutuskan untuk tidak melakukannya karena beberapa alasan:
1. Dapat diprediksi
Sebagian besar klien kami - dapat dimengerti - menginginkan hasil yang dapat diandalkan dan dapat diprediksi.
Jadi, ide router model dinamis agak menakutkan bagi para agen tingkat tinggi. Hal ini membawa lapisan ketidakpastian lain ke LLMs.
2. Kecepatan
Latensi sangat penting untuk kasus penggunaan kami. Agar router menjadi cepat, modelnya harus sangat kecil (dan bisa dibilang lebih bodoh) daripada model yang akan dirutekannya - mungkin pengklasifikasi tradisional.
Meskipun secara umum mereka bekerja dengan baik ketika dilatih untuk tugas-tugas tertentu, a) ukuran konteksnya yang pendek menjadi masalah untuk perintah yang panjang dan b) mereka gagal menggeneralisasi ke perintah lain di luar apa yang telah dilatih.
3. Supremasi model atau kesetaraan model
Meskipun tolok ukur mungkin mengatakan sebaliknya, namun di alam liar, kami jarang melihat model yang mengungguli GPT-4o (sejauh ini).
Masih belum jelas apakah LLMs akan benar-benar berkinerja lebih baik pada tugas X daripada tugas Y dari waktu ke waktu, atau apakah semua LLMs akan menjadi sangat baik dalam banyak hal. Dalam kasus yang terakhir, pemilihan model tidak akan sepadan dengan usaha yang dilakukan.
Pemeriksaan masa depan LLMs dengan umpan balik
LLMs akan menjadi komoditas dalam beberapa tahun ke depan dan pemilihan model tidak akan menjadi masalah.
Karena alasan tersebut, kami memutuskan untuk menginvestasikan upaya kami dalam menyediakan mekanisme yang baik untuk menyediakan contoh-contoh LLMs .
Jadi kami telah membangun sebuah sistem untuk menangkap umpan balik. Sistem ini menyimpan "pembelajaran" untuk eksekusi di masa mendatang. Dan secara dinamis memberikan pembelajaran yang paling relevan pada waktu yang tepat untuk eksekusi di masa depan, untuk memastikan peningkatan yang andal dan berkelanjutan dari waktu ke waktu.
Seiring LLMs setiap pengembangan menuju kinerja yang lebih tinggi dan lebih tinggi lagi, kami siap dan bersemangat untuk memanfaatkannya sebaik mungkin bagi para pengguna platform kami.
Daftar Isi
Dapatkan informasi terbaru tentang agen AI
Bagikan ini: