Bizimle iletişime geçin

Yapay Zeka

Microsoft AutoGen: Gelişmiş Otomasyonla Çoklu Ajan AI İş Akışları

mm
Zeka Microsoft AutoGen

Microsoft Research tanıtıldı otomatik gen Eylül 2023'te karmaşık, çoklu ajan iş birliğine muktedir AI ajanları oluşturmak için açık kaynaklı bir Python çerçevesi olarak. AutoGen, araştırmacılar, geliştiriciler ve kuruluşlar arasında halihazırda ilgi gördü ve 290'dan fazla katkıda bulunan kişi var GitHub ve Mayıs 900,000 itibarıyla yaklaşık 2024 indirme. Bu başarının üzerine Microsoft, geliştiricilerin AI ajanlarıyla hızlı bir şekilde prototip oluşturmasını ve denemeler yapmasını sağlayan düşük kodlu bir arayüz olan AutoGen Studio'yu tanıttı.

Bu kütüphane, karmaşık görevleri çözmek, karar almayı otomatikleştirmek ve kodu verimli bir şekilde yürütmek için sorunsuz bir şekilde etkileşime girebilen akıllı, modüler aracılar geliştirmek içindir.

Microsoft yakın zamanda ayrıca şunları tanıttı: AutoGen Stüdyosu etkileşimli ve kullanıcı dostu bir platform sağlayarak AI aracı geliştirmeyi basitleştirir. AutoGen Studio, selefinin aksine kapsamlı kodlama ihtiyacını en aza indirir ve kullanıcıların aracıları sürükleyip bırakabileceği, iş akışlarını yapılandırabileceği ve AI odaklı çözümleri zahmetsizce test edebileceği grafiksel bir kullanıcı arayüzü (GUI) sunar.

AutoGen'i Benzersiz Kılan Nedir?

Yapay Zeka Aracılarını Anlamak

Yapay zeka bağlamında, bir ajan, genellikle doğal dil işleme ve makine öğrenimi kullanarak belirli görevleri yerine getirebilen otonom bir yazılım bileşenidir. Microsoft'un AutoGen çerçevesi, geleneksel yapay zeka ajanlarının yeteneklerini geliştirerek, karmaşık, yapılandırılmış görüşmelere katılmalarını ve hatta paylaşılan hedeflere ulaşmak için diğer ajanlarla iş birliği yapmalarını sağlar.

AutoGen, çok çeşitli aracı türlerini ve konuşma kalıplarını destekler. Bu çok yönlülük, daha önce insan müdahalesi gerektiren iş akışlarını otomatikleştirmesine olanak tanır ve bu da onu finans, reklamcılık, yazılım mühendisliği ve daha fazlası gibi çeşitli sektörlerdeki uygulamalar için ideal hale getirir.

Konuşmalı ve Özelleştirilebilir Temsilciler

AutoGen, mesajları işlemek, yanıtlar üretmek ve doğal dil talimatlarına dayalı eylemler gerçekleştirmek üzere tasarlanmış "konuşulabilir" aracılar kavramını tanıtır. Bu aracılar yalnızca zengin diyaloglara girmekle kalmaz, aynı zamanda belirli görevlerdeki performanslarını iyileştirmek için özelleştirilebilir. Bu modüler tasarım, AutoGen'i hem basit hem de karmaşık AI projeleri için güçlü bir araç haline getirir.

Ana Temsilci Türleri:

  • Yardımcı Temsilci: Kodlama, hata ayıklama veya karmaşık sorguları yanıtlama gibi görevleri yerine getirebilen LLM destekli bir asistan.
  • Kullanıcı Proxy Aracısı: Kullanıcı davranışını simüle ederek geliştiricilerin gerçek bir insan kullanıcıyı dahil etmeden etkileşimleri test etmelerini sağlar. Ayrıca kodu otonom olarak çalıştırabilir.
  • Grup Sohbet Temsilcileri:Birden fazla beceri veya bakış açısı gerektiren senaryolar için ideal, iş birliği içinde çalışan aracı koleksiyonu.

Çoklu Ajan İşbirliği

AutoGen'in en etkileyici özelliklerinden biri de şu desteği sunmasıdır: çoklu ajan işbirliğiGeliştiriciler, karmaşık görevleri daha verimli bir şekilde ele almak için her biri uzmanlaşmış rollere sahip bir aracı ağı oluşturabilir. Bu aracılar birbirleriyle iletişim kurabilir, bilgi alışverişinde bulunabilir ve topluca kararlar alabilir, aksi takdirde zaman alıcı veya hataya açık olacak süreçleri kolaylaştırabilir.

AutoGen'in Temel Özellikleri

1. Çoklu Ajan Çerçevesi

AutoGen, her bir etkenin bağımsız olarak veya başkalarıyla koordinasyon halinde çalışabileceği etken ağlarının oluşturulmasını kolaylaştırır. Çerçeve, tamamen otonom olan veya gerektiğinde insan denetimi içeren iş akışları tasarlamak için esneklik sağlar.

Konuşma Modelleri Şunları İçerir:

  • Birebir Konuşmalar: İki etken arasındaki basit etkileşimler.
  • Hiyerarşik Yapılar:Ajanlar, görevleri alt ajanlara devredebilir ve böylece karmaşık sorunların daha kolay çözülmesini sağlayabilirler.
  • Grup Görüşmeleri: Temsilcilerin bir görevi çözmek için birlikte çalıştığı çoklu temsilci grup sohbetleri.

2. Kod Yürütme ve Otomasyon

Birçok AI çerçevesinin aksine, AutoGen aracıların kodu otomatik olarak oluşturmasına, yürütmesine ve hata ayıklamasına olanak tanır. Bu özellik, insan müdahalesini en aza indirdiği ve geliştirme döngülerini hızlandırdığı için yazılım mühendisliği ve veri analizi görevleri için paha biçilmezdir. Kullanıcı Vekili Aracısı yürütülebilir kod bloklarını tanımlayabilir, çalıştırabilir ve hatta çıktıyı otonom olarak iyileştirebilir.

3. Araçlar ve API'lerle Entegrasyon

AutoGen aracıları, yeteneklerini önemli ölçüde genişleterek harici araçlar, hizmetler ve API'lerle etkileşim kurabilir. İster bir veritabanından veri almak, ister web istekleri yapmak veya Azure hizmetleriyle bütünleşmek olsun, AutoGen özellik açısından zengin uygulamalar oluşturmak için sağlam bir ekosistem sağlar.

4. Döngüdeki İnsanın Sorun Çözmesi

İnsan girdisinin gerekli olduğu senaryolarda, AutoGen şunları destekler: insan-aracı etkileşimleriGeliştiriciler, belirli görevlere devam etmeden önce bir insan kullanıcıdan rehberlik veya onay talep etmek üzere aracıları yapılandırabilir. Bu özellik, kritik kararların düşünceli bir şekilde ve doğru düzeyde denetimle alınmasını sağlar.

AutoGen Nasıl Çalışır: Derinlemesine Bir İnceleme

Aracı Başlatma ve Yapılandırma

AutoGen ile çalışmanın ilk adımı, aracılarınızı kurmayı ve yapılandırmayı içerir. Her bir aracı belirli görevleri yerine getirmek üzere özelleştirilebilir ve geliştiriciler kullanılan LLM modeli, etkinleştirilen beceriler ve yürütme ortamı gibi parametreleri özelleştirebilir.

Ajan Etkileşimlerini Düzenleme

AutoGen, aracılar arasındaki konuşma akışını yapılandırılmış bir şekilde yönetir. Tipik bir iş akışı şu şekilde görünebilir:

  1. Görev Tanıtımı: Bir kullanıcı veya aracı bir sorgu veya görev başlatır.
  2. Aracı İşleme:İlgili etkenler girdiyi analiz eder, yanıtlar üretir veya eylemler gerçekleştirir.
  3. Aracılar Arası İletişim:Ajanlar, görevi tamamlamak için veri ve içgörüleri paylaşarak iş birliği yaparlar.
  4. Görev Yürütme:Ajanlar gerektiğinde kod yürütür, bilgi getirir veya harici sistemlerle etkileşime girer.
  5. İptal:Görev tamamlandığında, bir hata eşiğine ulaşıldığında veya bir sonlandırma koşulu tetiklendiğinde konuşma sona erer.

Hata Yönetimi ve Kendini Geliştirme

AutoGen'in ajanları hataları akıllıca ele almak üzere tasarlanmıştır. Bir görev başarısız olursa veya yanlış bir sonuç üretirse, ajan sorunu analiz edebilir, düzeltmeye çalışabilir ve hatta çözümü üzerinde yineleme yapabilir. Bu kendi kendini iyileştirme yeteneği, uzun süreler boyunca otonom olarak çalışabilen güvenilir AI sistemleri oluşturmak için çok önemlidir.

Önkoşullar ve Kurulum

AutoGen ile çalışmadan önce, AI ajanları, orkestrasyon çerçeveleri ve Python programlamanın temelleri hakkında sağlam bir anlayışa sahip olduğunuzdan emin olun. AutoGen, Python tabanlı bir çerçevedir ve OpenAI'nin GPT modelleri veya Microsoft Azure AI gibi diğer AI hizmetleriyle birleştirildiğinde tam potansiyeli ortaya çıkar.

AutoGen'i Kullanarak Yükleyin pip:

pip install pyautogen

Optimize edilmiş arama yetenekleri veya harici kütüphanelerle entegrasyon gibi ek özellikler için:

pip install "pyautogen[blendsearch]"

Ortamınızı Ayarlama

AutoGen, ortam değişkenlerini ve API anahtarlarını güvenli bir şekilde yapılandırmanızı gerektirir. Çalışma alanınızı başlatmak ve yapılandırmak için gereken temel adımları inceleyelim:

  1. Çevre Değişkenleri Yükleniyor: Hassas API anahtarlarını bir .env dosyalayın ve bunları kullanarak yükleyin dotenv güvenliği sağlamak için. (api_key = os.environ.get(“OPENAI_API_KEY”))
  2. Dil Modeli Yapılandırmanızı Seçme: OpenAI'dan GPT-4 veya tercih edilen başka bir model gibi kullanacağınız LLM'ye karar verin. API uç noktaları, model adları ve anahtarlar gibi yapılandırma ayarlarının, aracılar arasında sorunsuz iletişimi sağlamak için açıkça tanımlanması gerekir.

Karmaşık Senaryolar için AutoGen Aracıları Oluşturma

Çoklu ajan sistemi oluşturmak için ajanları tanımlamanız ve nasıl davranmaları gerektiğini belirtmeniz gerekir. AutoGen, her biri farklı rollere ve yeteneklere sahip çeşitli ajan türlerini destekler.

Yardımcı ve Kullanıcı Proxy Aracıları Oluşturma: Kod yürütmek ve kullanıcı etkileşimlerini yönetmek için karmaşık yapılandırmalara sahip aracıları tanımlayın:

from autogen import AssistantAgent, UserProxyAgent

# Define LLM configurations
llm_config = {
    "model": "gpt-4",
    "api_key": api_key
}

# Create an Assistant Agent for complex coding and analysis tasks
assistant = AssistantAgent(
    name="coding_assistant",
    llm_config=llm_config
)

# User Proxy Agent to handle user interactions and code execution
user_proxy = UserProxyAgent(
    name="user_proxy",
    code_execution_config={
        "executor": autogen.coding.LocalCommandLineCodeExecutor(work_dir="coding_workspace")
    }
)

  1. Örnek 1: Karmaşık Veri Analizi ve Görselleştirme Bir AI aracısının finansal verileri getirdiği, istatistiksel analiz gerçekleştirdiği ve sonuçları görselleştirdiği bir görevi otomatikleştirmeniz gerektiğini düşünün. AutoGen'in bunu nasıl kolaylaştırabileceğine dair bir örnek:
    • İş Akışı:Yardımcı temsilcinin görevi, geçmiş hisse senedi fiyatlarını almak, temel performans ölçümlerini hesaplamak ve görsel çizimler oluşturmaktır.
    • Yürütme Akışı:Kullanıcı proxy aracısı, yardımcı aracı tarafından oluşturulan kodu inceler ve yürütür.
  2. Örnek 2: Akademik Makaleler için Otomatik Araştırma Asistanı Araştırma makalelerini özetlemek için bir asistana ihtiyaç duyduğunuz bir senaryoda, AutoGen aracıları bunu başarmak için verimli bir şekilde iş birliği yapabilir:
    • Araştırma Geri Alma:Bir ajan, web kazıma tekniklerini kullanarak ilgili akademik makaleleri getirir ve ayrıştırır.
    • Özetleme:Başka bir temsilci temel bulguları özetler ve özlü bir genel bakış oluşturur.
    • Alıntı Yönetimi: Yardımcı bir aracı atıfları yönetir ve bibliyografyayı biçimlendirir.

Çoklu Aracı İşbirliğinin Uygulanması

AutoGen'in gücü, birbirine bağımlı görevleri tamamlamak için birden fazla aracı koordine etme becerisinde yatmaktadır. Bir senaryoyu inceleyelim; Öğretmen-Öğrenci-Değerlendirici Modeli:

  1. Öğretmen Temsilcisi: Verilen bir konu hakkında açıklamalar ve talimatlar sağlar.
  2. Öğrenci Temsilcisi:Anlayışın pekişmesi için sorular sorar ve alıştırmalar yapar.
  3. Değerlendirici Temsilci:Öğrencinin çalışmalarını inceler ve geri bildirim sağlar.

Bu model, öğrenmeyi kolaylaştırmak için ajanların otonom olarak etkileşime girdiği eğitim amaçlı kullanılabilir.

Başlatma Örneği:

from autogen import AssistantAgent, UserProxyAgent

# Define agents for the educational workflow
teacher = AssistantAgent(name="teacher", llm_config=llm_config)
student = AssistantAgent(name="student", llm_config=llm_config)
evaluator = AssistantAgent(name="evaluator", llm_config=llm_config)

# Define the conversation flow among agents
teacher.send_message("Today's topic is calculus. Let's dive into differential equations.")
student.send_message("Can you explain the concept of a derivative?")
teacher.send_message("A derivative represents the rate of change of a function. Here's a simple explanation...")

Gelişmiş Kavramlar: Görev Yürütme ve Kod Oluşturma

AutoGen, aracıların yalnızca kod oluşturmadığı, aynı zamanda kodu çalıştırdığı ve hata ayıkladığı karmaşık iş akışlarını yürütmeyi destekler. Aracıların yazılım geliştirme görevlerinde iş birliği yaptığı bir durumu düşünün:

  1. senaryo:Bir yazılım projesi için kod oluşturma, test etme ve hata ayıklama sürecini otomatikleştirmeniz gerekiyor.
  2. Temsilcilerin Rolleri:
    • Kod Üretici Aracısı:Kullanıcı tarafından sağlanan spesifikasyonlara göre kod yazar.
    • Test Etme Temsilcisi: Oluşturulan kodu doğrulamak için otomatik testler çalıştırır.
    • Hata Ayıklama Aracısı: Sorunları otonom olarak belirler ve düzeltir.

Uygulama Akışı Örneği:

  1. Kod Üreteç Aracısı, bir özelliği uygulamak için Python kodu yazar.
  2. Test Aracısı birim testlerini çalıştırır ve varsa hataları bildirir.
  3. Hata Ayıklama Aracısı hataları analiz eder, kodu iyileştirir ve kod geçene kadar testleri yeniden çalıştırır.

Bu otomatik döngü, geliştirme süresini kısaltır ve kod güvenilirliğini artırır.

Hata Yönetimi ve Sürekli İyileştirme

AutoGen, sağlam hata işleme mekanizmalarıyla donatılmıştır. Aracılar, sorunları teşhis etmek, görevleri yeniden denemek veya gerektiğinde insan müdahalesi talep etmek üzere programlanabilir. Bu kendini geliştiren yetenek, karmaşık iş akışlarının bile zamanla sorunsuz bir şekilde yürütülebilmesini sağlar.

Örnek: Kendini İyileştiren İş Akışı

  • Bir aracı bir kod yürütme hatasıyla karşılaşırsa şunları yapabilir:
    • Hata günlüğünü analiz edin.
    • Sorunu düzeltmek için kodu değiştirin.
    • Düzeltmeyi doğrulamak için görevi yeniden yürütün.

Bu yinelemeli yaklaşım, AutoGen'i güvenilirlik ve hassasiyetin kritik önem taşıdığı senaryolar için güçlü bir araç haline getirir.

AutoGen'in Potansiyeli

Geleneksel Otomasyon Araçlarını Bozmak

AutoGen'in ajan iş birliği yoluyla iş akışlarını otomatikleştirme yaklaşımı, geleneksel Robotik Süreç Otomasyonu'na (RPA) göre önemli bir gelişmedir. LLM'lerden ve gelişmiş AI tekniklerinden yararlanarak AutoGen, daha karmaşık görevleri halledebilir ve dinamik ortamlara statik RPA botlarından daha verimli bir şekilde uyum sağlayabilir.

Bulut Yerel Stratejilerinde AutoGen'in Rolü

AutoGen aracıları, kapsayıcılarda durumsuz çalışacak şekilde tasarlanmıştır ve bu da onları bulut tabanlı ortamlarda dağıtım için ideal hale getirir. Bu yetenek, kuruluşların değişen iş yüklerini idare etmek için binlerce özdeş aracı dağıtabilmesiyle sorunsuz ölçeklemeyi mümkün kılar.

Diğer Çerçevelerle Karşılaştırma

Piyasada birçok çoklu aracı çerçevesi olmasına rağmen, AutoGen'in Microsoft ekosistemiyle (Azure, Microsoft 365, vb.) kusursuz entegrasyonu ona belirgin bir avantaj sağlar. Bu entegrasyon, özellikle Microsoft ortamına zaten gömülü olan kuruluşlar için daha tutarlı bir iş akışına olanak tanır.

Zorluklar ve Düşünceler

AutoGen ve AutoGen Studio, yapay zeka geliştirme için güçlü araçlar sunarken, dikkate alınması gereken zorluklar da var:

  • Güvenlik:Kod çalıştırabilen otonom ajanları çalıştırmak, doğal risklerle birlikte gelir. Geliştiriciler, yetkisiz eylemleri önlemek için sağlam güvenlik önlemleri uygulamalıdır.
  • ölçeklenebilirlik: AutoGen dağıtılmış sistemler için tasarlanmış olsa da, binlerce etken içeren bir uygulamayı ölçeklendirmek kaynak yoğun olabilir ve dikkatli bir altyapı planlaması gerektirebilir.
  • Etik kaygılar:Herhangi bir yapay zeka teknolojisinde olduğu gibi, özellikle halkla otonom olarak etkileşime giren ajanların konuşlandırılmasında etik hususlar söz konusudur.

Sonuç

AutoGen framework, akıllı, çoklu ajan sistemleri oluşturmak için yeni yollar açar. Karmaşık iş akışlarını otomatikleştirme, güçlü topluluk, kod yürütme ve sorunsuz ajan iş birliğini kolaylaştırma yeteneği onu diğer AI framework'lerinden ayırır.

 

Son beş yılımı, Makine Öğrenimi ve Derin Öğrenmenin büyüleyici dünyasına dalarak geçirdim. Tutkum ve uzmanlığım, özellikle AI/ML'ye odaklanarak 50'den fazla farklı yazılım mühendisliği projesine katkıda bulunmamı sağladı. Devam eden merakım, beni daha fazla keşfetmeye hevesli olduğum bir alan olan Doğal Dil İşleme'ye de çekti.