Devasa API’lerle Bağlantılı Büyük Dil Modeli Gorilla LLM
“Gorilla: Large Language Model Connected with Massive APIs” makalesini inceliyoruz.
For English:
Bu makale, geleneksel RAG konseptlerine meydan okumaktadır ve API veri kümelerindeki modellerde finetune yapılmasının inanılmaz sonuçlar verebileceğini gösterir. Bu alandaki ToolLLM gibi diğer makaleler de oldukça etkilidir ve incelenmelidir.
Özet
Büyük Dil Modelleri (LLM’ler) son zamanlarda etkileyici bir ilerlemeye tanık oldu; modeller artık matematiksel akıl yürütme ve program sentezi gibi çeşitli görevlerde mükemmelleşiyor. Ancak API çağrıları yoluyla araçları etkili bir şekilde kullanma potansiyelleri henüz gerçekleşmedi. Bu, LLM’lerin büyük ölçüde doğru girdi argümanları oluşturamamalarından ve bir API çağrısının kullanımını yanlış hatırlama (halüsinasyon yaşama) eğilimlerinden dolayı, GPT-4 gibi günümüzün en gelişmiş LLM’leri için bile zorlu bir iştir.
API çağrıları yazma konusunda GPT-4'ün performansını aşan, ince ayarlı LLaMA tabanlı bir model olan Gorilla’yı piyasaya sürüyoruz. Bir belge almayla birleştirildiğinde Gorilla, test zamanındaki belge değişikliklerine uyum sağlama konusunda güçlü bir yetenek sergileyerek esnek kullanıcı güncellemelerine veya sürüm değişikliklerine olanak tanır. Aynı zamanda, doğrudan LLM’leri yönlendirirken sıklıkla karşılaşılan halüsinasyon sorununu da önemli ölçüde azaltır. Modelin yeteneğini değerlendirmek için HuggingFace, TorchHub ve TensorHub API’lerinden oluşan kapsamlı bir veri kümesi olan APIBench’i tanıtıyoruz. Geri çağırma sisteminin Gorilla ile başarılı entegrasyonu, LLM’lerin araçları daha doğru kullanma, sık sık güncellenen belgelere ayak uydurma ve sonuç olarak çıktılarının güvenilirliğini ve uygulanabilirliğini artırma potansiyelini göstermektedir. Gorilla’nın kodu, modeli, verileri ve reposu https://gorilla.cs.berkeley.edu adresinde mevcuttur.
Önemli Noktalar
- APIBench’i, karmaşık ve çoğu zaman örtüşen işlevlere sahip geniş bir API külliyatını, ML API’lerini (modellerini) genel model merkezlerinden çıkararak oluşturuldu.
- Ayrıca Self-Instruct’ı kullanarak API başına 10 sentetik kullanıcı sorusu istemi oluşturuyoruz. Böylece veri kümesindeki her girdi bir talimat referans API çifti haline geldi.
- Daha sonra veri setimizi kullanarak belge alma özelliğine sahip LLaMA-7B tabanlı bir model olan Gorilla’ya ince ayar yapıyoruz. Gorilla’nın, API işlevsellik doğruluğu ve halüsinasyon hatalarını azaltma açısından GPT-4'ten önemli ölçüde daha iyi performans gösterdiğini bulundu.
- Son olarak, AST ağacı eşleştirme değerlendirme ölçütümüzü sunarak Gorilla’nın kısıtlamaları anlama ve bunlar hakkında mantık yürütme yeteneğini gösterildi.
- LLM’lerin kodlama görevlerinde daha iyi performans göstermelerini sağlamak için bağlam içi öğrenme, görev ayrıştırma ve kendi kendine hata ayıklama ( in-context learning, task decomposition, and self-debugging) dahil bir dizi strateji önerildi. İstemlemenin yanı sıra, dil modellerini özellikle kod oluşturmaya yönelik olarak ön-eğitme çabaları da olmuştur.
- Kendi kendine talimat paradigmasının rehberliğinde sentetik talimat verileri oluşturmak için GPT-4'ü kullanıldı. Referans API belgeleriyle birlikte üç bağlam içi örnek sunuldu ve modele, API’yi çağıran gerçek dünya kullanım senaryoları oluşturma görevi verildi. Modele, talimatlar oluştururken herhangi bir API adı veya ipucu kullanmaktan kaçınması talimatı özellikle verildi.
- Gorilla, özellikle API çağrıları için, geri alma özelliğine sahip ince ayarlı LLaMA-7B modelidir. {talimat, API} çiftlerini oluşturmak için kendi kendine talimat kullanılıyor. LLaMA’ya ince ayar yapmak için bunu, her veri noktasının kullanıcı ve aracı için birer tur içeren bir konuşma olduğu, kullanıcı aracısı sohbet tarzı bir konuşmaya dönüştürüyoruz. Daha sonra temel LLaMA-7B modelinde standart talimat ince ayarını gerçekleştiriyoruz. Deneylerimiz için Gorilla’yı av köpeğiyle ve av köpeği olmadan eğitiyoruz.
- Retriever ile eğitim için, talimat ayarlı veri kümesinde ayrıca kullanıcı istemine eklenmiş ek bir “Referans için bu API belgelerini kullanın: <retrieved_API_doc_JSON>” dizesi bulunur. Bu sayede LLM’e sorunun ikinci yarısını ilk yarıyı cevaplamak için ayrıştırmayı öğretmeyi amaçlıyoruz. Bunun a) LLM’nin API belgelerindeki test zamanı değişikliklerine uyum sağlamasını sağladığını ve b) bağlam içi öğrenmeden elde edilen performansı iyileştirdiğini ve son olarak c) halüsinasyon hatasını azalttığını gösterdik. Şaşırtıcı bir şekilde, bir LLM’i geri alma yoluyla artırmanın her zaman performansın artmasına yol açmadığını ve zaman zaman performansa zarar verebileceğini gördük.
- Gorilla Çıkarımı Çıkarım sırasında, kullanıcı istemi doğal dilde sağlar. Bu basit bir görev olabilir (örneğin, “Bir görüntüdeki nesneleri tanımlamak istiyorum”) veya belirsiz bir hedef belirtebilirler (örneğin, “Hayvanat bahçesine gidiyorum ve hayvanları takip etmek istiyorum”) gibi. Gorilla, eğitime benzer şekilde, iki modda çıkarım için kullanılabilir: sıfır atış ve geri alma ile. Sıfır atışta, bu istem (başka bir istem ayarı YOKTUR), Gorilla LLM modeline beslenir ve daha sonra görevin ve/veya hedefin gerçekleştirilmesine yardımcı olacak API çağrısını döndürür. Alma modunda, alıcı (BM25 veya GPT-Index’ten biri) ilk olarak API Veritabanında saklanan en güncel API belgelerini alır. Bu daha sonra kullanıcı istemine ve Gorilla’ya beslemeden önce Bu API belgelerini referans olarak kullanır. Gorilla’nın çıktısı çağrılacak bir API’dir. Açıklandığı gibi birleştirmenin yanı sıra, sistemimizde başka prompt mühendisliği YAPMIYORUZ. Bu API’leri çalıştıracak bir sistemimiz olsa da bu makalenin odak noktası bu değildir.
Detaylı Özet
Büyük Dil Modellerindeki Gelişmeler (LLM’ler)
- LLM’lerdeki son gelişmeler, doğal diyalog, matematiksel akıl yürütme ve program sentezi dahil olmak üzere önemli yeni yetenekleri mümkün kılmıştır [10, 5, 32, 6, 29, 30].
- Bu ilerlemelere rağmen LLM’ler hala sabit bir ağırlık kümesinde depolayabildikleri bilgilerle, statik bir hesaplama grafiği ve sınırlı bağlam kullanarak hesaplayabildikleri şeylerle sınırlıdır.
- LLM’lerin araçları kullanmasını sağlayarak, çok daha büyük ve değişen bilgi tabanlarına erişim sağlayabilir ve karmaşık hesaplama görevlerini gerçekleştirebiliriz [33, 26, 39, 37, 2].
LLM’lerin Araç Kullanımındaki Zorluklar
- Araçların LLM’lere büyük ölçekli entegrasyonu, API’lerin tüm kümesini tek bir bağlamda tanımlamak mümkün olmadığından, araçları nasıl entegre ettiğimize dair yaklaşımın yeniden düşünülmesini gerektirir [35, 24].
- API’lerin çoğu, incelikli sınırlamalar ve kısıtlamalarla örtüşen işlevlere sahip olacaktır.
- Bu yeni ortamda LLM’leri basitçe değerlendirmek, yeni kıyaslamalar gerektirir.
APIBench: LLM’leri Değerlendirmeye Yönelik Kapsamlı Bir Veri Kümesi
- APIBench, TorchHub, TensorHub ve HuggingFace [42] dahil olmak üzere genel model merkezlerinden ML API’lerinin alınmasıyla oluşturulmuş, karmaşık ve sıklıkla örtüşen işlevlere sahip geniş bir API topluluğudur.
- Veri kümesi, TorchHub’dan 94 API çağrısını, TensorHub’tan 696 API çağrısını ve HuggingFace’ten görev kategorisi başına en çok indirilen 20 modeli içeriyor.
- Veri kümesindeki her girdi, Self-Instruct [42] kullanılarak oluşturulan API başına 10 sentetik kullanıcı sorusu istemi içeren bir talimat referans API çifti haline gelir.
Gorilla: Belge Alma Özelliğine Sahip LLaMA-7B Tabanlı Bir Model
- Belge alma özelliğine sahip LLaMA-7B tabanlı bir model olan Gorilla, API işlevselliğinin doğruluğu ve halüsinasyon hatalarının azaltılması açısından GPT-4'ten önemli ölçüde daha iyi performans göstermektedir [42].
- Gorilla’nın erişime duyarlı eğitimi, modelin API belgelerindeki değişikliklere uyum sağlamasına olanak tanır.
API Çağrılarıyla LLM’lerin Değerlendirilmesi ve Eğitimi
- Önceki çalışmalar öncelikle değerlendirme ve eğitim için sistematik bir yöntem oluşturmaktan ziyade LLM’leri “istem yazma” potansiyelini göstermeyi amaçlamıştır [35, 24, 41, 1].
- Makalenin odak noktası sistematik değerlendirme ve gelecekte kullanılmak üzere bir hat oluşturmaktır.
Araç Kullanımı ve Program Sentezi için LLM’lerin İnce Ayarı
- Gorilla, LLM’lerin konuşma becerilerini geliştirmek yerine milyonlarca araçtan yararlanma becerilerini geliştirmeyi vurguluyor [40, 38, 9].
- Bu makale, temel modele bilgi erişimiyle destek vererek ince ayar yapılmasına yönelik çalışmalara öncülük etmektedir.
- Araştırmacılar, bağlam içi öğrenme, görev ayrıştırma ve kendi kendine hata ayıklama dahil olmak üzere kodlama görevlerinde LLM’leri daha iyi performans göstermeye teşvik etmek için çeşitli stratejiler önermişlerdir [44, 18, 7, 17, 46, 8, 36].
- Önceki çabalar genellikle belirli araçlara veya belirli alanlara odaklanırken, makale çok çeşitli araçları (yani API çağrılarını) açık uçlu bir şekilde keşfetmeyi amaçlamaktadır.
API Çağrılarında LLM’ler için İncelikli Anlama ve Zorluklar
- LLM’lerin, parametre boyutu ve doğrulukla ilgili alt sınırlar gibi kısıtlamalarla birlikte makine öğrenimi API çağrılarına ilişkin incelikli bir anlayışa ihtiyacı vardır.
- “10 milyondan az parametre kullanan ancak ImageNet doğruluğunu en az %70 koruyan bir görüntü sınıflandırma modelini çağırın” şeklindeki örnek bir istem, doğru şekilde yorumlama ve yanıt verme zorluğunu vurgulamaktadır.
API’ler için Retriever-Aware Eğitimi
- API çağrılarına eşlik eden karmaşık kısıtlamalar nedeniyle, API’ler için LLM’de finetune yapılması gereklidir.
- Retriever-Aware eğitimi, kullanıcı istemine API belgelerinin eklenmesini ve LLM’e ilk yarıyı yanıtlamak için ikinci yarıyı ayrıştırmayı öğretmeyi içerir.
- Bu yöntem, bağlam içi öğrenmeden elde edilen performansı artırır, API belgelerindeki test zamanı değişikliklerine uyum sağlar ve halüsinasyon kaynaklı hatayı azaltır.
Gorilla’nın API Dokümantasyonunda Test Zamanındaki Değişikliklere Uyarlanabilirliği
- Gorilla, API belgelerindeki test zamanı değişikliklerine uyum sağlayabilir, bu da cevapların zaman içinde doğruluğunu ve geçerliliğini korumasına yardımcı olur.
- Kuruluşların tercih ettikleri model kayıtlarını değiştirebilmesi nedeniyle API kaynaklarındaki değişikliklere uyum sağlayabilir.
- Bu uyarlanabilirlik, Gorilla’yı API çağrıları için sağlam ve güvenilir bir araç haline getirerek pratik faydasını önemli ölçüde artırır.
Kısıtlamaları Anlamak ve Saygı Duymak
- Gorilla doğruluk, öğrenilebilir parametre sayısı, disk boyutu, en yüksek bellek tüketimi, FLOPS vb. gibi kısıtlamaları anlayabilir ve bunlara uyabilir.
- Maliyet ve gecikme gibi bu kısıtlamalara dayanarak belirli bir görev için uygun API’yi belirleyebilir.
- Gorilla, geri almaları kullanırken en iyi performans gösteren model GPT-3.5'ten daha iyi performans gösterir ve Sıfır atış durumunda en yüksek doğruluğa sahiptir.
Gorilla’nın API’lerde Gezinme Yeteneği
- Gorilla, farklı kısıtlamalar arasındaki dengeleri göz önünde bulundurarak API’lerde gezinebilir.
- Bu yetenek, daha geniş dünyadaki araçlarla etkileşime girdiklerinden büyük dil modelleri (LLM’ler) için önemlidir.
Gorilla’nın Tanıtımı
- Gorilla, üç büyük veri kümesinde GPT-4'ten daha iyi performans gösteren, işe uygun API’ler seçmek ve kısıtlamaları halüsinasyon olmadan karşılamak üzere LLM’e finetune yapılarak hazırlanmış, devrim niteliğinde bir işlem hattıdır.
- Araştırma, bu API’lerin daha derinlemesine anlaşılmasını teşvik etmek için 11.000'den fazla talimat-API çiftinden oluşan kapsamlı bir veri kümesi yayınladı.
- Bu kaynak, daha geniş bir topluluğa, mevcut API’lerin incelenmesi ve karşılaştırılması için değerli bir araç olarak hizmet edecek ve makine öğreniminin daha adil ve optimize edilmiş bir şekilde kullanılmasına katkıda bulunacaktır.
Veri Kümesi Ayrıntıları
- Veri kümesi üç farklı alandan oluşur: Torch Hub, Tensor Hub ve HuggingFace.
- Bu veri kümesindeki her girdi, ayrıntı bakımından zengindir ve verinin doğasını daha da aydınlatan kritik bilgi parçalarını taşır.
- Kapsamlı bir anlayış ve etkili kullanım sağlamak için her API ile 10 benzersiz talimattan oluşan bir set oluşturulur.
Sonuç
LLM’ler çeşitli alanlarda hızla popülerlik kazanıyor. Çalışmamızda, LLM’in belirli bir görev için uygun API’yi doğru bir şekilde belirleme yeteneğini geliştirmek üzere tasarlanan teknikleri ön plana çıkarıyoruz; bu, bu teknolojinin ilerlemesinde önemli ancak sıklıkla gözden kaçan bir husustur. API’ler, çeşitli sistemlerin etkili bir şekilde iletişim kurmasını sağlayan evrensel bir dil olarak işlev gördüğünden, bunların doğru kullanımı, LLM’lerin daha geniş dünyadaki araçlarla etkileşim kurma yeteneğini artırabilir. Bu yazıda, LLM’lerin API’leri çağıracak şekilde ince ayarını yapmak için yeni bir hat olan Gorilla’yı öneriyoruz. İnce ayarlı modelin performansı, topladığımız üç büyük veri kümesinde en son teknolojiye sahip LLM’i (GPT-4) geride bırakıyor. Gorilla, halüsinasyon olmadan makine öğrenimi modellerine güvenilir API çağrıları oluşturur, test süresindeki API kullanım değişikliklerine uyum sağlama konusunda etkileyici bir yetenek sergiler ve API’leri seçerken kısıtlamaları karşılayabilir.