SON DAKİKA

Nvdia

LangGraph Ajanlarınızı Üretimde Tek Kullanıcıdan 1,000 Çalışana Nasıl Ölçeklendirilir?

Güçlü bir AI ajanı geliştirdiniz ve bunu iş arkadaşlarınızla paylaşmaya hazırsınız, fakat bir büyük korkunuz var: Ajan aynı anda 10, 100 veya hatta 1.000 meslektaşınız tarafından kullanıldığında çalışacak mı? Bu kritik soruyu yanıtlamak, bir AI ajanını üretime almanın önemli bir parçasıdır. Yakın zamanda, AI-Q NVIDIA Blueprint kullanarak bir derin araştırma ajanını içsel olarak dağıttığımızda bu soruyla karşılaştık. Bu uygulama, LangGraph kullanılarak oluşturulmuş bir ajandır.

Bu yazıda, NVIDIA NeMo Ajan Araç Seti’nden yararlanarak agentik AI uygulamamızı üretime alma sürecimizde kullandığımız araçlar ve teknikler ele alınacaktır.

Güvenli ve Ölçeklenebilir Bir Derin Araştırmacı Nasıl Geliştirilir?

Derin araştırma uygulamalarının kullanımı yaygındır; birçok birey düzenli olarak Perplexity, ChatGPT veya Gemini gibi araçları kullanmaktadır. Ancak, birçok kuruluş gibi, NVIDIA’nın gizli bilgileri ile bu derin araştırma araçlarını kullanmak zorlayıcı olabilir. Bu nedenle, NVIDIA bu yılın başında bir derin araştırma uygulamasını yerinde dağıtmak için açık kaynak bir blueprint yayınladı. Bu blueprint, içsel dağıtım sürecimizin başlangıç noktasıydı.

Mimari

AI-Q araştırma ajanı, kullanıcıların belgelerini yüklemesine, iç veri kaynaklarına erişmesine ve araştırma raporları oluşturmak için webde arama yapmasına olanak tanır. Blueprint, NeMo Ajan Araç Seti kullanılarak uygulanmış ve belge alma, retrieval ve büyük dil modeli (LLM) çağrıları için çeşitli NVIDIA NeMo Retriever modelleri kullanılmıştır.

Üretim dağıtımımız, AI fabrikası referans mimarisi doğrultusunda yerel olarak dağıtılmış NVIDIA NIM mikro hizmetleri ve üçüncü parti gözlemleme araçlarına erişim sağlayan iç bir OpenShift kümesi kullanılmaktadır. Karşılaştığımız zorluk, sistemin hangi kısımlarının, farklı NVIDIA ekipleri arasında yüzlerce kullanıcıya yayılmayı desteklemesi gerektiğini belirlemekti.

A diagram of an agentic system showing a user prompt going to an agent, which coordinates reasoning, report generation, web search, and enterprise file retrieval using NVIDIA Llama Nemotron reasoning, NeMo Retriever, and LLM NIM microservices.
Şekil 1. AI-Q araştırma ajanı blueprint mimari diyagramı

Bu zorluktan kurtulmak için üç aşamalı bir süreç izledik ve her aşamada NeMo Ajan Araç Seti’nden yararlandık:

  1. Tek kullanıcı olarak uygulamayı profil çıkarmak ve darboğazları belirlemek.
  2. Yük testleri yaparak veri toplamak ve yüzlerce kullanıcı için gereken mimariyi tahmin etmek.
  3. Aşamalı dağıtım sırasında uygulamayı izlemek.

Adım 1: Tek Bir Agentik Uygulamayı Nasıl Profil Çıkartır ve Optimize Edersiniz?

Bir agentik uygulamayı üretime almakta karşılaşılan bir zorluk, her agentik uygulamanın farklı olmasıdır. “Bir AI uygulaması, 100 kullanıcı başına bir GPUya ihtiyacı vardır.” gibi genel kılavuzlar oluşturmak zordur. Bu nedenle, bir uygulamayı ölçeklendirmek için ilk adım, bir kullanıcı için uygulamanın nasıl çalıştığını derinlemesine anlamaktır. NeMo Ajan Araç Seti değerlendirme ve profil çıkarma sistemi, veri toplamayı ve uygulamanın davranabileceği hakkında nicel bir anlayış elde etmeyi kolaylaştırır.

NeMo Ajan Araç Seti Profiler’ını Kullanma

Değerlendirme ve profil çıkarma aracını kullanmak için, uygulamanızın yapılandırma dosyasına bir değerlendirme bölümü eklemeniz yeterlidir. Değerlendirme yapılandırması, uygulama için örnek kullanıcı girdilerini içeren bir veri kümesi içerir. Agentik uygulamalar deterministik değil, bu nedenle bir kullanıcının sağlayabileceği çeşitli girdiler için uygulamanın performansını anlamak kıymetlidir.

eval:
  genel:
    output_dir: tek_kullanici_sonuclari
    dataset:
      _type: json
      file_path: ornek_girdiler.json
    profiler:
      token_uniqueness_forecast: true
      workflow_runtime_forecast: true
      compute_llm_metrics: true
      bottleneck_analysis:
        enable_nested_stack: true
      concurrency_spike_analysis:
        enable: true
        spike_threshold: 7

AI-Q araştırma ajanı, NeMo Ajan Araç Seti işlev kaplamaları kullanarak geliştirilmiş bir LangGraph uygulamasıdır. Bu kaplamalar, profiler’ın uygulamanın farklı bölümleri için zamanlama ve token kullanımını otomatik olarak kaydetmesine olanak tanır. Uygulamada takip etmek istediğimiz alt adımlar için basit dekoratörler ekleyerek kaydetme işlemini özelleştirebiliriz.

from aiq.profiler.decorators.function_tracking import track_function

@track_function(metadata={"source": "custom_function"})
def my_custom_function(a, b):
  return a + b

Değerlendirme komutu, girdiler kümesi üzerinden iş akışını çalıştırır ve çeşitli yararlı metrikler toplar/hesaplar.

aiq eval --config_file configs/eval_config.yml

Mevcut olan çıktıların bir örneği, bir Gantt (veya Su Dalgası) grafiğidir. Bu grafik, bir kullanıcı oturumu sırasında hangi işlevlerin çalıştığını gösterir. Bu bilgi, uygulamamızın hangi kısımlarının darboğaz oluşturabileceğini belirlememize yardımcı oldu. AI-Q araştırma ajanın ana darboğazı, NVIDIA Llama Nemotron Super 49B akıl yürütme LLM çağrılarıydı. Darboğazı bilmek, o LLM için NVIDIA NIM’in dağıtımını çoğaltmaya ve ölçeklendirmeye odaklanmamıza olanak tanıdı.

Gantt chart showing the sequence and overlap of steps in a report writing process, including planning, parallel search, section writing, reflections, and final summary. Tasks are color coded and labeled with brief descriptions.
Şekil 2. NeMo Ajan Araç Seti’nden Gantt grafiği, zamanlama ve darboğazları gösterir

Doğruluğu Değerlendirme

Zamanlama ve token kullanımı yanı sıra, değerlendirme ve profil çıkarma aracı, değerlendirme metriklerini de hesaplayabilir. Bizim durumumuzda, uygulamanın hızlı ve birçok kullanıcı için yanıt verebilir olması yeterli değil, aynı zamanda faydalı raporlar da üretmesi gerekiyordu. Derin araştırma kullanım durumumuza özgü metrikler oluşturarak, bu profiling ve değerlendirme aracını uygulama kodunun farklı sürümlerini karşılaştırmak için kullandık. Bu karşılaştırma, yaptığımız optimizasyonların rapor kalitesini azaltmadığından emin olmak için yararlı oldu. Araç, çeşitli formatlarda metrikleri raporlar; özellikle kullanışlı bir seçenek de bu metriklerin Weights and Biases gibi bir platforma aktarılması ve zaman içinde deneyimlerin görselleştirilmesidir.

A dashboard compares two machine learning models using bar and radar charts for metrics like accuracy, recall, and precision. Feature importances are listed below.
Şekil 3. İki farklı özellik dalı arasındaki metriklerin karşılaştırılması

Adım 2: Mimarin 200 Kullanıcıyı Kaldırabilir Mi? İhtiyaçlarınızı Tahmin Etme

Uygulamanın bir kullanıcı için performansını anladıktan ve optimize ettikten sonra, bir sonraki adıma geçmeye hazırdık: birden fazla kullanıcıyla yük testi yapmak. Yük testinin amacı (a) uygulamayı daha yüksek bir yoğunlukta çalıştırmak, (b) kırılan her şeyi düzeltmek ve (c) nihai dağıtım için gereksinimleri bilgilendirecek veri toplamaktı.

200 eşzamanlı kullanıcıyı destekleyecek mimarinin ne olacağını anlamak için, mevcut donanımımızla 10, 20, 30, 40 ve 50 eşzamanlı kullanıcıyla bir yük testi gerçekleştirdik. Yük testi sırasında toplanan veriler, tam dağıtım için gerekli donanım ihtiyaçlarının tahmin edilmesinde kullanıldı.

Yük testini gerçekleştirmek için NeMo Ajan Araç Seti boyutlandırma hesaplayıcısını kullandık.

Eşzamanlılık Verilerini Yakalama

Toolkit boyutlandırma hesaplayıcısı, aynı profil çıkarma ve değerlendirme aracını kullanarak simüle edilmiş iş akışlarını, farklı eşzamanlılık seviyelerinde paralel olarak çalıştırır.

aiq sizing calc 
 --calc_output_dir $CALC_OUTPUT_DIR 
 --concurrencies 1,2,4,8,16,32
 --num_passes 2

Hesaplayıcı, yük testi sırasında her LLM çağrısı için p95 zamanlaması ve genel iş akışı için p95 zamanlaması da dahil olmak üzere çeşitli metrikleri toplar. *Not: aşağıdaki çıktı, bir aracın örneği içindir, içsel derin araştırma ajanı yük testinin gerçek verisi değildir.

Line graph showing the relationship between concurrency and p95 LLM latency and workflow runtime; as concurrency increases, both latency and runtime increase, with workflow runtime rising more steeply.
Şekil 4. NeMo Ajan Araç Seti boyutlandırma hesaplayıcısı ile yakalanan zamanlama verisi

Ölçeklendirme İçin Tahmin

Farklı eşzamanlılıklarda veri topladıktan sonra, mevcut mimari ve donanımımızın kaç kullanıcıyı destekleyebileceğini anlayabiliriz. Örneğin, aşağıda belirtilen çıktıda yük testini bir GPU’da çalıştırırsak, sonuçlar bize bir GPU’nun 10 eşzamanlı kullanıcıyı gecikme eşiğimiz içinde destekleyebileceğini söyler. Bu bilgilerle, 100 eşzamanlı kullanıcı için 10 GPU’ya ihtiyaç duyulduğunu tahmin edebiliriz.

Two scatter plots comparing "Concurrency vs P95 LLM Latency" (left) and "Concurrency vs P95 Workflow Runtime" (right). Both show increasing trends, with one outlier removed in the left plot. The axes indicate concurrency (x-axes) and latency/runtime in seconds (y-axes). Legends and trend lines are included in both plots.
Şekil 5. NeMo Ajan Araç Seti boyutlandırma hesaplayıcısının donanım ihtiyaçları için tahmini

Diğer Öğrenimler

Yük testi yapmanın diğer bir faydası, birden fazla kullanıcı çalıştırma sonucunda ortaya çıkabilecek darboğazları veya hataları keşfetmektir. AI-Q araştırma ajanının ilk yük testinde, iki hatayı saptayarak düzelttik:

1. Yük testi sırasında donanım metriklerini izlerken, bir NVIDIA NIM mikroservisinin ayrılan CPU’nun %100’ünü kullandığını bulduk. Bu bulgu, NIM’in daha az CPU ile yerleştirilmesine neden olan helm şemasında bir yapılandırma hatasını düzeltmemize yardımcı oldu.

Line graph showing total CPU percentage utilization over time, with a sharp rise and brief fluctuations before stabilizing at around 100%.
Şekil 6. Stres testi sırasında CPU açlığı

2. Uygulamanın LLM çağrısı zaman aşımına uğradığında başarısız olacağı birkaç yer tespit ettik. Ara vermelerin ve daha iyi hata yönetimini ekleyerek, geçici hataların kullanıcı deneyimini tamamen bozmasına engel olduk.

try: 
async with asyncio.timeout(ASYNC_TIMEOUT):
  async for chunk in chain.astream(input, stream_usage=True):
    answer_agg += chunk.content
      if "</think>" in chunk.content:
        stop = True
      if not stop:
       writer({"generating_questions": chunk.content})

except asyncio.TimeoutError as e: 
writer({"generating_questions": "Akıl yürütme LLM'den zaman aşımı hatası, lütfen tekrar deneyin"})
return {"queries": []}

Adım 3: Araştırma Ajanınızın Performansını Ölçmek, İzlemek ve Optimize Etmek

Tüm bu bilgilerle, AI-Q araştırma ajanını uygun sayıda yedekle birlikte çeşitli sistem bileşenlerinde dağıtabildik. Son adım olarak, küçük ekiplerle başlayarak aşamalı bir yaklaşım kullanarak ölçeklendirme yaptık ve ek kullanıcılar ekleyerek devam ettik. Dağıtım sırasında uygulama performansını gözlemlemek kritik öneme sahipti. NeMo Ajan Araç Seti OpenTelemetry (OTEL) toplayıcısı ve Datadog’u kullanarak logları, performans verilerini ve LLM izleme bilgilerini topladık.

genel:
  telemetry:
    tracing:
   otelcollector:
     _type: otelcollector
       # OTEL toplayıcınızın uç noktası
       endpoint: http://0.0.0.0:4318/v1/traces
       proje: sizin_projeniz

OTEL toplayıcı entegrasyonu, bireysel kullanıcı oturumları için özel izleri görüntülememizi sağladı ve uygulama performansı ile LLM davranışını anlamamıza yardımcı oldu.

A performance trace dashboard showing a timeline of tasks, including "generate_summary" and "search_msg," with bars indicating their execution times and overlaps.
Şekil 7. Datadog alev grafiği, bir gerçek kullanıcı oturumunun zamanlamasının gösterilmesi

Ayrıca, izlerimiz üzerinden performans verilerini toplamak, uygulamanın performansını anlama konusunda bize yardımcı oldu. Aşağıdaki grafik, ortalama gecikme sürelerini ve aşırıperformans gösteren kullanıcı oturumlarını göstermektedir.

A dashboard screenshot showing high latency span analysis, with graphs and data tables breaking down unusual and typical latency by resource name, span kind, input mime type, and input value.
Şekil 8. Datadog gecikme analizi, bireysel izlenen işlevler için p95 sürelerini ve anormal değerleri göstermektedir.

Sonuç

NeMo Ajan Araç Seti’ni bir dizi AI fabrikası referans ortağı ile bir araya getirerek, AI-Q NVIDIA Blueprint’in içsel bir versiyonunu başarıyla dağıtma şansı bulduk. NeMo Ajan Araç Seti ile yapmayı öğrenin veya AI-Q NVIDIA araştırma ajanı blueprints‘i kendiniz deneyin.

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri