Yakın zamanda yetenekli bir akademisyenden Botpress ile LLMs arasında nasıl bir arayüz olduğunu soran bir e-posta aldım.
Satıcı kilitlenmesini önleme konusunda bir makale yazıyordu ve LangChain veya Haystack gibi bir çerçeve kullanıp kullanmadığımızı öğrenmek istiyordu.
Botpress kurucularının LLMs ile arayüz oluşturmasına olanak tanıyan kendi soyutlamalarımızı oluşturduğumuzu kendisiyle paylaşmaktan büyük memnuniyet duydum.
Konuya olan geniş ilgiyi göz önünde bulundurarak, bu bilgileri kamuya açıklamak istedim. Diğer geliştiriciler veya platformumuzun kullanıcıları için faydalı olabilir. Umarım siz de benim oluştururken bulduğum kadar ilginç bulursunuz.
Botpress ile arayüz oluşturmanın iki yolu LLMs
Botpress iki şekilde çalışan kendi soyutlamalarını yaratmıştır:
1. Entegrasyonlar
Entegrasyonlar, belirli girdi ve çıktı türlerine sahip eylemler kavramına sahiptir.
Platformda açık kaynak bileşenlerimiz var, böylece topluluk kendi entegrasyonlarını oluşturabilir ve bu entegrasyonlar özel veya genel kullanıma açık olabilir.
Yani LLM sağlayıcıları - OpenAI, Anthropic, Groq, vb. - her birinin bir entegrasyonu var. Bu, kullanıcılarımızın onlarla arayüz oluşturabilmesinin bir yoludur.
2. LLM entegrasyon arayüzleri
Entegrasyon kavramının üzerine bir de "arayüzler" ekledik.
Bunlar basitçe entegrasyonların genişletebileceği standart şema tanımlarıdır. LLMs için standart bir şema oluşturduk.
Bir entegrasyon bu şemayı genişlettiği sürece, entegrasyon bir LLM sağlayıcısı olarak kabul edilir. Bu yüzden Botpress adresinde kullanıma hazır olarak çalışır.
İşte farklı LLM sağlayıcıları için Botpress entegrasyonlarının bazı örnekleri:
Text2image, image2text, voice2text, text2voice vb. için benzer arayüzlerimiz var.
Model konfigürasyonları
Botpress Studio'nun içinde iki genel konfigürasyonumuz var: "En İyi Model" ve "Hızlı Model". Genel olarak çoğu görevin bu iki moddan birine kolayca uyduğunu gördük.
Ancak sadece saf model seçimine ek olarak, farklı sağlayıcıların araç çağırma ve mesaj formatları konusunda bir modeli diğeriyle kolayca değiştirip iyi performanslar beklemek için çok fazla farklılaştığını gördük.
Botpress çıkarım motoru
Bu nedenle, LLMz adında kendi çıkarım motorumuzu oluşturduk; bu motor, herhangi bir modelle hiçbir (veya çok az) komut değişikliği gerektirmeden çalışıyor. Ve çok daha iyi araç çağırma ve belirteç maliyeti ve LLM gidiş dönüşleri açısından genellikle çok daha iyi performans sağlar.
Bu motor, araç tanımları için sahne arkasında typescript türleri, mesaj ve kod çıktı formatı için markdown ve çıkarım için bir LLM-native execution sandbox ile çalışır.
LLMz, aşağıdaki gibi gelişmiş kullanım durumları için gerekli olan birçok optimizasyon ve hata ayıklama özelliği sağlar:
- Girdi belirteçleri sıkıştırma
- Akıllı belirteç kesme
- Belirteç için optimize edilmiş bellek-bağlam
- Paralel ve kompozit araç çağırma
- Tek bir LLM çağrısında birden fazla mesaj + araç çağrısının karışımı
- Tam tip güvenli aletler (giriş ve çıkış)
- Sandbox serileştirme sayesinde uzun ömürlü oturumlar
- Alet taklidi, sarma ve izleme
- Hafif V8 izolelerinde tam yürütme izolasyonu (binlerce eşzamanlı yürütmeyi hızlı ve çok ucuza çalıştırmaya izin verir)
- Otomatik iterasyonlar ve hata kurtarma
Tüm bunlar kullanım durumlarımız için gerekliydi. Ancak bunları normal araç çağırma yöntemiyle yapmak ya imkansızdı ya da çok zordu.
Hafif yönlendirici modellerine karşı durum
Uzun zamandır mevcut modellerin üzerine oturacak ve eldeki görev için doğru modeli otomatik olarak seçecek hafif bir yönlendirici modeli oluşturmayı düşünüyorduk.
Ancak birçok nedenden dolayı bunu yapmamaya karar verdik:
1. Öngörülebilirlik
Müşterilerimizin çoğu - anlaşılır bir şekilde - güvenilir ve öngörülebilir sonuçlar istiyor.
Dolayısıyla dinamik bir model yönlendirici fikri üst düzey ajanlar için biraz korkutucudur. LLMs adresine başka bir öngörülemezlik katmanı getirir.
2. Hız
Gecikme, kullanım durumlarımız için çok önemlidir. Yönlendiricinin hızlı olması için modelin, yönlendireceği modellerden (muhtemelen geleneksel bir sınıflandırıcı) çok küçük (ve muhtemelen daha aptal) olması gerekir.
Bunlar belirli görevler üzerinde eğitildiklerinde genellikle iyi performans gösterirken, a) kısa bağlam boyutları uzun istemler için bir sorundur ve b) eğitildikleri görevlerin dışındaki diğer istemlere genelleme yapamazlar.
3. Model üstünlüğü veya model eşitliği
Kıyaslamalar aksini söylese de, vahşi doğada modellerin GPT-4o'dan daha iyi performans gösterdiğini nadiren gördük (şimdiye kadar).
Zaman içinde LLMs 'un X görevinde Y görevinden gerçekten daha iyi performans gösterip göstermeyeceği ya da tüm LLMs 'un çoğu şeyde son derece iyi olup olmayacağı hala belirsizdir. İkinci durumda, model seçme çabasına değmeyecektir.
Geri bildirim ile LLMs 'u geleceğe hazırlama
LLMs birkaç yıl içinde bir meta olacak ve model seçimi gerçekten bir şey olmayacak.
Bu nedenlerle, çabamızı LLMs adresine örnekler sunmak için iyi bir mekanizma sağlamaya harcamaya karar verdik.
Bu yüzden geri bildirim almak için bir sistem kurduk. Gelecekteki uygulamalar için "öğrenilenleri" depoluyor. Ve zaman içinde güvenilir ve sürekli iyileştirmeler sağlamak için gelecekteki uygulamalar için en uygun öğrenmeleri anında dinamik olarak sağlar.
LLMs her biri daha yüksek ve daha yüksek performansa doğru geliştikçe, platformumuzun kullanıcıları için bunlardan en iyi şekilde yararlanmaya hazır ve heyecanlıyız.
İçindekiler
Yapay zeka ajanlarıyla ilgili en son gelişmelerden haberdar olun
Bunu paylaşın: