AutoGen’in Çok Ajanlı Konuşma Yapısıyla Yeni Nesil LLM Uygulamaları
“AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation” makalesine bir bakış atalım.
For English:
Bu makaleyle Microsoft Research, çok ajanlı konuşma kalıpları hakkında yeni fikirler ortaya koymuştur. Bu, otonom ajanlar üzerine son zamanlardaki en önemli makalelerden biridir.
Özet
AutoGen, görevleri gerçekleştirmek için birbirleriyle konuşabilen, birden fazla geliştirici ajan aracılığıyla LLM uygulamaları oluşturmasına olanak tanıyan, açık kaynaklı bir çerçevedir. AutoGen ajanları özelleştirilebilir, karşılıklı konuşabilir ve LLM, insan girdileri ve araçların kombinasyonlarını kullanan çeşitli modlarda çalışabilir. Geliştiriciler AutoGen’i kullanarak ajan etkileşim davranışlarını da esnek bir şekilde tanımlayabilir. Farklı uygulamalara yönelik esnek konuşma kalıplarını programlamak için hem doğal dil hem de bilgisayar kodu kullanılabilir.
AutoGen, çeşitli karmaşıklıklarda ve LLM kapasitelerinde çeşitli uygulamalar oluşturmak için genel bir altyapı görevi görür. Ampirik çalışmalar, matematik, kodlama, soru cevaplama, operasyon araştırması, çevrimiçi karar verme, eğlence vb. alanlardaki birçok örnek uygulamada çerçevenin etkinliğini göstermektedir.
Geniş Özet
- AutoGen, geliştiricilerin görevleri gerçekleştirmek için birbirleriyle konuşabilen birden fazla ajan aracılığıyla LLM (büyük dil modeli) uygulamaları oluşturmasına olanak tanıyan açık kaynaklı bir çerçevedir.
- AutoGen ajanları özelleştirilebilir, karşılıklı konuşabilir ve LLM, insan girdileri ve araçların kombinasyonlarını kullanan çeşitli modlarda çalışabilir.
- Geliştiriciler, konuşma kalıplarını programlamak için doğal dili veya bilgisayar kodunu kullanarak ajanın etkileşim davranışlarını esnek bir şekilde tanımlayabilir.
- AutoGen, çeşitli karmaşıklıklarda ve LLM kapasitelerinde çeşitli uygulamalar oluşturmak için genel bir çerçeve görevi görür.
- Ampirik çalışmalar, matematik, kodlama, soru cevaplama, yöneylem araştırması, çevrimiçi karar verme, eğlence vb. alanlardaki birçok örnek uygulamada çerçevenin etkinliğini göstermektedir.
- LLM Uygulamaları için Çok Ajanlı Konuşmalarının Faydaları AutoGen’de Otomatik Yanıt Mekanizmasıdır. AutoGen’deki otomatik yanıt mekanizması, iş akışını tanımlamanın merkezi olmayan, modüler ve birleşik bir yoludur ve konuşmanın otomatik olarak ilerlemesine olanak tanır (Eleti ve diğerleri, 2023).
AutoGen’de Kontrol
- AutoGen, konuşma akışını doğal dil istemleriyle kontrol etmek için LLM’leri kullanarak programlama ve doğal dil aracılığıyla kontrole olanak tanır.
- Sonlandırma koşullarını, insan girdisi modunu ve araç yürütme mantığını belirtmek için kullanılan Python koduyla AutoGen’de programlama dili kontrolü de mümkündür.
- AutoGen, LLM çıkarımı yoluyla koddan doğal dil kontrolüne geçiş ve LLM tarafından önerilen metod çağrıları yoluyla doğal dilden kod kontrolüne geçiş ile doğal dil ve programlama dili arasında esnek kontrol geçişini destekler.
Konuşma Programlama Paradigması
- AutoGen, önceden tanımlanmış akışla statik konuşma ve birden fazla ajanıyla dinamik konuşma akışları da dahil olmak üzere, çeşitli modellerdeki çok ajanlı konuşma destekler.
- Özelleştirilmiş yanıt oluşturma metodu ve metod çağrıları, dinamik konuşma akışları elde etmek için kullanılır; AutoGen ayrıca yerleşik GroupChatManager aracılığıyla daha karmaşık dinamik grup sohbetini de destekler.
AutoGen uygulamaları
- AutoGen, matematik problemi çözme, erişimle zenginleştirilmiş kod oluşturma ve soru yanıtlama, gerçek dünya ortamlarında karar verme ve çok ajanlı kodlama dahil olmak üzere yüksek performanslı çok ajanlı uygulamalar geliştirmek için kullanıldı.
AutoGen ile Matematik Problemi Çözme
- AutoGen, açık kaynaklı yöntemler ve ticari ürünler de dahil olmak üzere alternatif yaklaşımlarla karşılaştırıldığında daha iyi performans sağlayan yerleşik ajanlarla , otonom matematik problemlerini çözmek için bir sistem oluşturmak için kullanıldı.
- AutoGen ayrıca, insanlar olmadan çözülemeyen zorlu sorunları çözmek için sistemin insan girdilerini etkili bir şekilde bir araya getirdiği, döngüdeki insan problem çözme sürecini göstermek için de kullanıldı.
Almayla Artırılmış Kod Oluşturma (Retrieval Augmented Code Generation) ve Soru Yanıtlama
- AutoGen, Almayla Artırılmış Kullanıcı Proxy Ajanı ve Almayla Artırılmış Asistan Ajanından oluşan, Almayla Artırılmış Sohbet adlı bir Almayla Artırılmış Üretim (RAG) sistemi oluşturmak için kullanıldı.
- Erişimle zenginleştirilmiş Sohbet, hem soru cevaplama hem de kod oluşturma senaryolarında değerlendirildi; etkileşimli erişim mekanizması süreçte önemsiz olmayan bir rol oynadı.
Metin Dünyası Ortamlarında Karar Verme
- AutoGen, ALFWorld kıyaslamasındaki görevleri çözmek için uygulanan iki ajanlı bir sistemle etkileşimli veya çevrimiçi karar almayı içeren etkili uygulamalar geliştirmek için kullanıldı.
- Önemli sağduyulu bilgileri sağlamak için bir topraklama ajanı tanıtıldı ve sistemin hata döngülerine karışmayı önleme becerisini önemli ölçüde artırdı.
Çok Ajanlı Kodlama
- AutoGen, OptiGuide’ı temel alan çok ajanlı bir kodlama sistemi oluşturmak için kullanıldı; çekirdek iş akışı kodu 430'dan fazla satırdan 100 satıra düşürüldü ve bu da önemli düzeyde üretkenlik artışı sağladı.
- Çok ajanlı tasarımının, güvenli olmayan kodu belirlemede F1 puanını %8 ve %35 oranında artırdığı gösterilmiştir.
Görev Değerlendirmesinde Rol Yapma İstemleri
- Manuel olarak hazırlanmış 12 karmaşık görevden oluşan bir pilot çalışmada, bir rol yapma ipucunun kullanılması, konuşma bağlamının ve rol hizalamasının daha etkili bir şekilde değerlendirilmesine yol açtı, bu da daha yüksek bir başarı oranı ve daha az LLM çağrısıyla sonuçlandı (Hong ve diğerleri, 2023).
AutoGen Kullanarak Konuşmaya Dayalı Satranç
- Konuşmalı Satranç, oyuncular için yerleşik ajanlar ve standart kurallara göre bilgi sağlamak ve hareketleri doğrulamak için bir tahta ajanı içeren bir doğal dil arayüz oyunudur.
- AutoGen, Konuşmalı Satrançta iki temel özelliği etkinleştirir: doğal, esnek ve ilgi çekici oyun dinamikleri ve önerilen her hamlenin yasal olup olmadığını kontrol ederek oyun bütünlüğünü korumaya yönelik temellendirme.
AutoGen: Birleşik Bir Konuşma Arayüzü
- AutoGen, karşılıklı konuşulabilir ajanlar ve konuşma programlama paradigmalarını birleştiren, çoklu ajan işbirliğine uygun yetenekli ajanları kullanan açık kaynaklı bir kütüphanedir.
- Ajanlar arasında birleşik bir konuşma arayüzünün yanı sıra, çok çeşitli uygulamaları barındırırken geniş yeteneklere sahip, sohbet için optimize edilmiş LLM’lerin güçlü yanlarından yararlanan bir ajan-etkileşim arayüzü oluşturmaya yardımcı olan otomatik yanıt mekanizmalarına sahiptir.
AutoGen’de Ajanların Kullanımına İlişkin Öneriler
- Öncelikle AssistantAgent ve UserProxyAgent gibi yerleşik ajanları kullanmayı düşünün ve bunları insan girdisi moduna, sonlandırma koşuluna, kod yürütme yapılandırmasına ve LLM yapılandırmasına göre özelleştirin.
- İki ajanlı sohbet veya grup sohbeti kurulumu gibi basit bir konuşma topolojisiyle başlayın ve özel bir yanıt yöntemini uygulamadan önce LLM, araç veya insana dayalı yerleşik yanıt yöntemlerini yeniden kullanmayı deneyin.
- UserProxyAgent ile yeni bir uygulama geliştirirken, her zaman döngüde olan insanlarla başlayın ve belirli uygulamalar veya görevler için gerektiğinde diğer kitaplıkları/paketleri kullanmayı düşünün.
Gelecek Çalışmalar
- Optimum çok ajanlı iş akışlarının tasarlanması, son derece yetenekli ajanların oluşturulması ve ölçek, güvenlik ve insan katılımının sağlanması AutoGen için önemli araştırma yönleridir.
- Art arda gelen arızalara karşı güvenlik önlemleri oluşturmak, ödül korsanlığını (reward hacking), kontrol dışı ve istenmeyen davranışları azaltmak, etkili insan gözetimini sürdürmek ve insan katılımının uygun düzeyini ve modelini anlamak, AutoGen ajanlarının güvenli ve etik kullanımı için çok önemlidir.
Görevleri Çözme Talimatları
- Gereksinime bağlı olarak görevleri çözmek için dil becerisini veya kod tabanlı yaklaşımı izleyin.
- Kod kullanıyorsanız kısmi kod veya kod değişiklikleri yerine tam kodu sağlayın.
- Komut dosyası türünü kod bloğuna ekleyin ve çıktı için ‘yazdır’ metodunu kullanın.
- Kodun yeniden çıktısını almadan önce yürütme sonucunu kontrol edin ve hataları düzeltin.
- Sorunu analiz edin ve kod başarıyla yürütüldükten sonra bile görev çözülmezse varsayımları yeniden gözden geçirin.
- Mümkünse yanıta doğrulanabilir kanıtlar ekleyin.
- Her şey bittiğinde sonunda “SONLANDIR” yanıtını verin.
Matematik Problem Çözme Sistemlerinin Değerlendirilmesi
- AutoGen, karşılaştırılan yöntemler arasında en yüksek problem çözme başarı oranına sahiptir.
- ChatGPT+Kod Yorumlayıcısı ve ChatGPT+Eklentisi belirli sorunları çözmeye çabalıyor.
- AutoGPT, kod yürütme sorunlarından kaynaklanan sorunlarda başarısız oluyor.
- LangChain ajanı problemlerde başarısız oluyor ve tüm denemelerde yanlış cevaplar üretiyor.
Döngüdeki İnsan Sorun Çözme
- AutoGen her üç denemede de sorunu tutarlı bir şekilde çözdü.
- ChatGPT+Code Interpreter ve ChatGPT+Plugin, üç denemeden ikisinde sorunu çözmeyi başardı.
- AutoGPT hiçbir denemede doğru bir çözüm üretemedi.
Çok Kullanıcılı Sorun Çözme
- AutoGen, LLM’lerin yardımıyla bir sorunu toplu olarak çözmek için birden fazla gerçek kullanıcıyı içeren bir sistem oluşturmak için kullanılabilir.
- Bir öğrenci sorunları çözmek için bir LLM asistanıyla etkileşime girer ve LLM gerektiğinde otomatik olarak uzmana başvurur.
- Uzmanın sorun bildirimine veya sorunun çözümünü doğrulama talebine yanıt vermesi beklenir.
- Uzman ve uzmanın asistanı arasındaki konuşmanın ardından son mesaj, ilk mesaja yanıt olarak öğrenci asistana geri gönderilir.
Almayla Arttırılmış Sohbet İş Akışı
- Almayla Artırılmış Kullanıcı Proxy’si, yerleştirme benzerliğine dayalı olarak belge parçalarını alır ve bunları soruyla birlikte Almayla Artırılmış Asistan’a gönderir.
- Almayla Geliştirilmiş Asistan, verilen soruya ve bağlama göre yanıt olarak kod veya metin oluşturur.
- LLM tatmin edici bir yanıt üretemezse, Almayla Artırılmış Kullanıcı Proxy’sine “Bağlamı Güncelle” ile yanıt verir.
- Yanıt kod blokları içeriyorsa, Almayla Artırılmış Kullanıcı Proxy’si kodu yürütür ve çıktıyı geri bildirim olarak gönderir.
- İnsan girdisi talebi etkinleştirilirse bireyler, “Güncelleme Bağlamı” da dahil olmak üzere her türlü geri bildirimi proaktif olarak Almayla Artırılmış Asistan’a gönderebilir.
Matematik Problem Çözme Sistemlerinin Sınırlamaları
- BabyAGI, CAMEL ve MetaGPT, matematik problemlerini kutudan çıktığı gibi çözmek için uygun seçimler değildir.
- MetaGPT sorunu çözmek için yazılım geliştirmeye başlar ancak çoğu zaman sorunu çözmez.
- LLM, yazdırma metodu olmadan kod verir, böylece sonuç yazdırılmaz.
Wolfram Alpha’nın çıktısı, doğru cevap da dahil olmak üzere 2 basitleştirilmiş sonuç içerir ancak GPT-4 her zaman yanlış cevabı seçmektedir. - LangChain hesaplama hatalarından dolayı 3 farklı yanlış cevap vermektedir.
Senaryo 1: Doğal Sorular QA Veri Kümesinin Değerlendirilmesi
- Almayla Geliştirilmiş Sohbet’in uçtan uca soru cevaplama performansı, Doğal Sorular veri seti kullanılarak değerlendirilir (Kwiatkowski ve diğerleri, 2019).
- HuggingFace’ten 5.332 yedeksiz içerik belgesi ve 6.775 sorgu toplandı.
Bağlamın tamamı temel alınarak bir belge koleksiyonu oluşturulur ve vektör veritabanında saklanır. - Sistem, soruları yanıtlamak için Almayla Artırılmış Sohbet’i kullanır.
Etkileşimli erişim özelliğinin avantajları, NQ veri kümesinden alınan bir örnek ajanıyla gösterilmiştir. - LLM asistanı (GPT-3.5-turbo) “Kusura bakmayın, açılış töreninde ABD bayrağını kimin taşıdığına dair herhangi bir bilgi bulamıyorum.
- GÜNCELLEME BAĞLAMI.” soruya cevap veremediğinde ajan, bağlam güncellendikten sonra soruya doğru yanıtı üretebilir.
- AutoGen W/O etkileşimli alımının avantajlarını araştırmak için (Adlakha ve diğerleri, 2023)’te gösterilenle aynı komut kullanılarak bir deney gerçekleştirilir.
- İlk 500 soru için F1 puanı ve Geri Çağırma sırasıyla %23,40 ve %62,60'tır.
- Doğal Sorular veri kümesindeki soruların yaklaşık %19,4'ü bir “Bağlamı Güncelle” işlemini tetikleyerek ek LLM çağrılarına neden olur.
Senaryo 2: Kod Tabanındaki En Son API’lerden Yararlanarak Kod Oluşturma
- Soru şu: “Bir sınıflandırma görevini gerçekleştirmek için FLAML’i nasıl kullanabilirim ve paralel eğitim için Spark’ı nasıl kullanabilirim? 30 saniye eğitim verin ve zaman sınırına ulaşıldığında işleri iptal etmeye zorlayın.”.
- Orijinal GPT-4 modeli, Spark ile ilgili API’lere ilişkin bilgi eksikliği nedeniyle doğru kodu oluşturamıyor.
- Almayla Artırılmış Sohbet ile en son referans belgeleri bağlam olarak sağlanır.
- GPT-4, kıvılcım ve kuvvet iptalini True olarak ayarlayarak doğru kod bloklarını oluşturur.
Gözlem: ALFWorld (Shridhar ve diğerleri, 2021)
- ALFWorld, gerçek dünyadaki ev sahnelerini simüle eden sentetik dil tabanlı etkileşimli bir karar verme görevidir.
- Ajanın, verilen birkaç örnekten kalıpları çıkarması ve görev kurallarını tam olarak anlamak için bunları ajanın ev ortamlarına ilişkin genel bilgisiyle birleştirmesi gerekir.