AGI ve geleceğin yapay zekası

MetaGPT: Tam Guide to the Best AI Agent Available Right Now

mm
Unite.AI sitesini Google'daki tercih ettiğiniz kaynaklara ekleyin

Büyük Dil Modelleri (LLM) gibi ChatGPT ile OpenAI, yaklaşık 80 milyon dolarlık aylık gelire ulaşarak şirket ve kullanıcı benimsemesinde bir patlama yaşadı. The Information’ın son raporuna göre, San Francisco merkezli şirket yıllık 1 milyar dolarlık gelire ulaşma yolunda ilerlemektedir.

Son olarak AutoGPT ve GPT-Mühendisliği hakkında bilgi vermiştik, bunlar açık kaynaklı LLM tabanlı AI ajanlarıdır ve karmaşık görevleri otomatikleştirmek için tasarlanmıştır. Ancak bu sistemler tutarlı olmayan sonuçlar, performans darboğazları ve çok yönlü talepleri karşılamada sınırlamalar gibi sorunlara sahiptir. Kod oluşturma konusunda uzmanlıklarını gösterirler, ancak yetenekleri genellikle burada sona erer. PRD oluşturma, teknik tasarım oluşturma ve API arayüzü prototiplemesi gibi kritik proje yönetimi işlevlerine sahip değillerdir.

İşte MetaGPT – Large Language modellerini kullanan bir çoklu ajan sistemi, Sirui Hong tarafından Standart İşletme Prosedürleri (SOP) ile LLM tabanlı çoklu ajan sistemlerini birleştirir. Bu ortaya çıkan paradigm, karmaşık ve gerçek dünya uygulamalarında etkili işbirliği ve görev bölümlendirmesi konusunda mevcut LLM sınırlamalarını bozar.

MetaGPT’nin güzelliği, yapısında yatmaktadır. Kodu gerçek zamanlı olarak manipüle etmek, analiz etmek ve dönüştürmek için meta-programlama tekniklerine dayanır. Hedef, dinamik programlama görevlerine uyum sağlayabilen esnek ve çevik bir yazılım mimarisi oluşturmaktır.

Çevik Geliştirme - Metagpt

Çevik Geliştirme

SOP’ler burada bir meta-fonksiyon olarak görev yapar, ajanları tanımlanan girdilere dayalı olarak otomatik olarak kod oluşturmaya yönlendirir. Basitçe söylemek gerekirse, bu, yüksek düzeyde koordine edilmiş bir yazılım mühendisleri ekibini, uyarlanabilir ve akıllı bir yazılım sistemine dönüştürmek gibidir.

MetaGPT Çerçevesini Anlama

Temel ve İşbirliği Katmanları

MetaGPT’nin mimarisi iki katmana bölünmüştür: Temel Bileşenler Katmanı ve İşbirliği Katmanı.

  1. Temel Bileşenler Katmanı: Bu katman, bireysel ajan operasyonlarına odaklanır ve sistem genelinde bilgi alışverişi sağlar. Ortam, Bellek, Roller, Eylemler ve Araçlar gibi temel yapı taşlarını tanır. Ortam, paylaşılan çalışma alanları ve iletişim yolları için sahneyi hazırlar, Bellek ise tarihi veri arşivi olarak görev yapar. Roller, alan özgü uzmanlıkları kapsüller, Eylemler modüler görevleri gerçekleştirir ve Araçlar ortak hizmetler sunar. Bu katman esasen ajanlar için bir işletim sistemi olarak görev yapar. Bu bileşenlerin nasıl birlikte çalıştığına ilişkin daha fazla ayrıntı, ‘Beyond ChatGPT; AI Agent: A New World of Workers‘ makalesinde mevcuttur.
  2. İşbirliği Katmanı: Temel bileşenlerin üzerine inşa edilen bu katman, bireysel ajanların işbirlikçi çabalarını yönetir ve optimize eder. Bilgi Paylaşımı ve İş Akışlarını Kapsülleme gibi iki mekanizma tanır.
    • Bilgi Paylaşımı: Bu, ajanları bir araya getiren işbirlikçi bir bağ görevi görür. Ajanlar, farklı seviyelerde bilgi depolayabilir, alabilir ve paylaşabilir, böylece冗余liği azaltır ve operasyonel verimliliği artırır.
    • İş Akışlarını Kapsülleme: Bu, Standart İşletme Prosedürleri (SOP)’nin devreye girdiği yerdir. SOP’ler, görevleri yönetilebilir bileşenlere ayırarak mavi çizimler olarak görev yapar. Ajanlar bu alt görevlere atanır ve performansları standart çıktılarla uyumlu hale getirilir.

MetaGPT ayrıca “Rol Tanımları” kullanır, böylece çeşitli uzmanlaşmış ajanlar gibi Ürün Yöneticileri, Mimarlar vb. başlatılabilir. Bu roller, ad, profil, hedef, kısıtlamalar ve açıklama gibi ana özelliklerle karakterize edilir.

Ayrıca, “Çapa Ajanları” bu ajanlara rol özgü rehberlik sağlar. Örneğin, bir Ürün Yöneticisinin rolü, “başarılı bir ürün oluşturmak” kısıtlamasıyla başlatılabilir. Çapa ajanları, ajanların davranışlarının genel hedeflerle uyumlu olmasını sağlar, böylece performansı optimize eder.

MetaGPT Ajanlarının Bilişsel Süreçleri

MetaGPT, gözlemleyebilir, düşünebilir, yansıtabilir ve eylemde bulunabilir. Belirli davranışsal işlevler gibi _think(), _observe(), _publish_message() aracılığıyla çalışırlar. Bu bilişsel modelleme, ajanların aktif öğrenenler olmasını sağlar, böylece adapte olabilir ve evrimleşebilir.

  1. Gözlem: Ajanlar, ortamı taramakta ve anahtar verileri Belleklerine entegre etmektedir.
  2. Düşünme ve Yansıma: _think() fonksiyonu aracılığıyla, roller eylemlerini gerçekleştirmeden önce düşünür.
  3. İleti Yayınları: Ajanlar, _publish_message() kullanarak, güncel görev durumlarını ve ilgili eylem kayıtlarını paylaşır.
  4. Bilgi Yoğunlaşması ve Eylem: Ajanlar, gelen mesajları değerlendirir ve iç depolarını günceller, ardından sonraki eylemin yolunu belirler.
  5. Durum Yönetimi: Görev kilidi ve durum güncelleme gibi özelliklerle, roller birden fazla eylemi ardışık olarak gerçekleştirebilir, gerçek dünya insan işbirliğini taklit eder.

MetaGPT için Kod İnceleme Mekanizmaları

Kod incelemesi, yazılım geliştirme yaşam döngüsünün kritik bir bileşenidir, ancak birçok popüler çerçevede bulunmamaktadır. Hem MetaGPT hem de AgentVerse, kod inceleme yeteneklerini destekler, ancak MetaGPT daha da ileri gider. Ayrıca, önceden derleme yürütmesini de içerir, bu da erken hata tespitine yardımcı olur ve kod kalitesini yükseltir. Kodlama işleminin yinelemeli doğası dikkate alındığında, bu özellik sadece bir eklenti değil, bir olgunluk gereksinimidir.

Çeşitli görevler boyunca yürütülen nicel deneyler, MetaGPT’nin neredeyse her senaryoda rakiplerini geride bıraktığını gösterdi. Pass@1, bir çerçevenin tek bir iterasyonda doğru kodu oluşturma yeteneğinin bir ölçüsüdür. Bu ölçüt, bir çerçevenin pratik bir ortamda faydasını daha gerçekçi bir şekilde yansıtır. Daha yüksek bir Pass@1 oranı, daha az hata ayıklama ve daha fazla verimlilik anlamına gelir, bu da doğrudan geliştirme döngülerini ve maliyetlerini etkiler. CodeX, CodeT ve hatta GPT-4 gibi gelişmiş kod oluşturma araçlarına karşı karşılaştırıldığında, MetaGPT hepsini aşar. Çerçevenin, HumanEval ve MBPP benchmark’lerinde %81,7 ile %82,3 arasında bir Pass@1 oranı elde etmesi yeteneği vardır.

MBPP ve HumanEval Metriklerini MetaGPT ve Diğer Önde Gelen Modellerle Karşılaştırma (https://arxiv.org/pdf/2308.00352.pdf)

MBPP ve HumanEval Metriklerini MetaGPT ve Diğer Önde Gelen Modellerle Karşılaştırma (https://arxiv.org/pdf/2308.00352.pdf)

Çerçeve ayrıca daha az token ve hesaplama kaynağı kullanır, bu da geleneksel yazılım mühendisliği maliyetlerinin bir kısmında yüksek bir başarı oranına ulaşmasını sağlar. Veriler, MetaGPT ile bir proje için ortalama 1,09 dolarlık bir maliyet olduğunu gösterdi, bu da bir geliştiricinin aynı görev için talep edeceği ücretin sadece bir kısmıdır.

Sisteminizde MetaGPT’yi Yerel Olarak Kurma Adımları

NPM, Python Kurulumu

  1. NPM’yi Kontrol Et ve Kur: İlk olarak, sisteminizde NPM’nin kurulu olduğundan emin olun. Değilse, node.js kurmanız gerekir. NPM’nin kurulu olup olmadığını kontrol etmek için terminalinizde bu komutu çalıştırın: npm --version. Bir sürüm numarası görürseniz, iyi gidiyorsunuz demektir.
  2. MetaGPT için bir bağımlılık olan mermaid-js‘i kurmak için bu komutu çalıştırın: sudo npm install -g @mermaid-js/mermaid-cli veya npm install -g @mermaid-js/mermaid-cli
  3. Python Sürümünü Doğrulayın: Python 3.9 veya üstünü kullanmanız gerekir. Python sürümünüzü kontrol etmek için terminalinizde bu komutu çalıştırın: python --version. Güncel değilseniz, en son sürümü Python resmi web sitesinden indirin.
  4. MetaGPT Deposunu Klonlayın: MetaGPT GitHub deposunu bu komutla klonlayın: git clone https://github.com/geekan/metagpt. Bu işlem için sisteminizde Git’in kurulu olması gerekir. Değilse, buraya gidin.
  5. Dizine Geçin: Klonladıktan sonra, MetaGPT dizinine bu komutla geçin: cd metagpt.
  6. Kurulum: MetaGPT’yi kurmak için Python kurulum betiğini çalıştırın: python setup.py install.
  7. Uygulama Oluşturun: python startup.py "GIRİNİZ-PROMPT" --code_review True çalıştırın

Not:

  • Yeni projeniz şimdi workspace/ dizininde olmalıdır.
  • --code_review True ile GPT modeli, kodun doğru çalışmasını sağlamak için ek işlemler gerçekleştirecektir, ancak bu daha fazla maliyet gerektirecektir.
  • Kurulum sırasında bir izin hatası ile karşılaşırsanız, alternatif olarak python setup.py install --user çalıştırabilirsiniz.
  • Belirli sürümlere erişim ve daha fazla ayrıntı için MetaGPT GitHub sürümleri sayfasını ziyaret edin: MetaGPT Sürümleri.

Docker Kurulumu

Konteynırlaştırma tercih edenler için Docker süreci basitleştirir:

  • Docker Görüntüsünü Çekin: MetaGPT resmi görüntüsünü indirin ve yapılandırma dosyasını hazırlayın:
docker pull metagpt/metagpt:v0.3.1
mkdir -p /opt/metagpt/{config,workspace}
docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
vim /opt/metagpt/config/key.yaml
  • MetaGPT Konteynerini Çalıştırın: Konteyneri bu komutla çalıştırın:
docker run --rm --privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
metagpt/metagpt:v0.3.1 \
python startup.py "Basit ve Etkileşimli bir CLI Tabanlı Taş, Kağıt, Makas Oyunu Oluşturun" --code_review True

MetaGPT’yi OpenAI API Anahtarınızla Yapılandırma

İlk kurulumdan sonra, MetaGPT’yi OpenAI API anahtarınızla entegre etmeniz gerekir. İşte bunu yapma adımları:

  1. OpenAI Anahtarınızı Bulun veya Oluşturun: Bu anahtarı OpenAI Panonuzda API ayarları altında bulabilirsiniz.
  2. API Anahtarını Ayarlayın: API anahtarını config/key.yaml, config/config.yaml veya bir çevre değişkeni (env) olarak ayarlayabilirsiniz. Öncelik sırası config/key.yaml > config/config.yaml > env şeklindedir.
  3. API anahtarını ayarlamak için config/key.yaml dosyasına gidin ve yer tutucu metni OpenAI anahtarınızla değiştirin: OPENAI_API_KEY: "sk-..."

OpenAI API anahtarınızı güvende tutmayı unutmayın. Asla bir kamu deposuna taahhüt etmeyin veya yetkisiz kişilerle paylaşmayın.

Örnek Uygulama Gösterimi

Ben, bir CLI tabanlı taş, kağıt, makas oyunu geliştirmek için bir hedef belirledim ve MetaGPT bu görevi başarıyla gerçekleştirdi.

Aşağıdaki video, oluşturulan oyun kodunun gerçek çalışmasını gösterir.

MetaGPT Demo Çalışması

MetaGPT, bir sistem tasarım belgesi oluşturdu – yaygın olarak kullanılan bir hafif işaretleme dili. Bu Markdown dosyası, UML diyagramları ile dolu olarak, mimari planının ayrıntılı bir görünümünü sundu. Ayrıca, API özellikleri, HTTP yöntemleri, uç noktalar, istek/yanıt nesneleri ve durum kodları ile ayrıntılı olarak verildi

MetaGPT Çıktısı - Sistem Tasarımı

MetaGPT Çıktısı – Sistem Tasarımı Markdown

Sınıf diyagramı, Game sınıfının özniteliklerini ve yöntemlerini detaylandırır, böylece kolayca anlaşılabilir bir soyutlama sağlar. Programın çağrı akışını da görselleştirir, böylece soyut fikirleri somut adımlara dönüştürür.

Bu, yalnızca planlama aşamasında manuel yükü azaltmakla kalmaz, aynı zamanda karar verme sürecini hızlandırır, böylece geliştirme pipeline’iniz çevik kalmasını sağlar. MetaGPT ile sadece kod oluşturmayı otomatikleştirmiyorsunuz, aynı zamanda akıllı proje planlamayı da otomatikleştirmiş oluyorsunuz, böylece hızlı uygulama geliştirme alanında rekabet avantajı sağlarsınız.

MetaGPT – Yazılım Geliştirmeyi Devrimleştirme

MetaGPT, üretken AI ve yazılım geliştirme alanında bir dönüşüm yaratır, zeki otomasyon ve çevik proje yönetimini sorunsuz bir şekilde birleştirir. ChatGPT, AutoGPT ve geleneksel LangChain modellerinin yeteneklerini aşar, görev bölümlendirmesinde, verimli kod oluşturmada ve proje planlamada uzmanlaşır. Daha fazlasını öğrenin

Bu makaleden çıkarılacak önemli noktalar:

  1. Meta-Programlamanın Gücü: Meta-programlama kullanarak, MetaGPT esnek ve uyarlanabilir bir yazılım çerçevesi sağlar. Miras araçların dar işlevselliğinin ötesine geçer ve sadece kodlama değil, proje yönetimi ve karar verme yönlerini de ele alan dönüştürücü bir yaklaşım sunar.
  2. İki Katmanlı Mimarisi: Temel ve işbirliği katmanları ile MetaGPT, uzmanlaşmış ajanların bir araya geldiği ve bir yazılım ekibi gibi işbirliği içinde çalışabileceği bir sinerjik ekosistem oluşturur.
  3. Optimize Edilmiş Kod İnceleme: Sadece kod oluşturmanın ötesinde, MetaGPT önceden derleme yürütmesi gibi özellikler sunar, bu da erken hata tespiti ve kod kalitesinin garantisi için bir ilk uyarı sistemidir.
  4. Bilişsel Ajanlar: MetaGPT’nin akıllı ajanları, _observe(), _think() ve _publish_message() gibi bilişsel işlevlerle donatılmıştır, böylece öğrenme ve adaptasyon yetenekleri kazanır.
  5. Kurulum ve Dağıtım: MetaGPT’nin, NPM ve Python ile yerel olarak veya Docker ile konteynırlaştırma yoluyla kolayca kurulabileceğini gösterdik.

Son beş yıldır Makine Öğrenimi ve Derin Öğrenme dünyasına kendimi adamış bulunuyorum. Tutkum ve uzmanlığım, özellikle AI/ML'ye odaklanarak 50'den fazla çeşitli yazılım mühendisliği projesine katkıda bulunmama yol açtı. Süregelen meraklılığım da beni Doğal Dil İşleme alanına yöneltti, bu alana daha da derinlemesine girmeye hevesliyim.