Günümüzde işletmeler, artan veri hacimleri ve çeşitliliği ile karşı karşıya. Özellikle PDF ve sunumlar gibi multimodal belgelerden içgörü çıkarmak, büyük bir zorluk haline geldi. Geleneksel metin tabanlı çıkarım yöntemleri ve temel geri yüklemeye destekli üretim (RAG) süreçleri, karmaşık belgelerin sunduğu değerin tam anlamıyla yakalanmasında yetersiz kalıyor. Sonuç olarak, birçok işletme önemli içgörüler kaybediyor, iş akışları verimsizleşiyor ve operasyonel maliyetler artıyor.
Bu blog yazısında, bir multimodal çıkarım hattı oluşturmanın temel bileşenlerini inceleyecek, NVIDIA NeMo Retriever mikro hizmetleri kullanarak örnek kodlarla birlikte bir grafik işleme sürecini adım adım göstereceğiz.
NVIDIA NeMo Retriever Çıkarım Hattı
NeMo Retriever çıkarım süreci, multimodal belge işleme için örnek bir mimaridir. Milyonlarca belgeden farklı dosya türlerinden bilgiçekmek için mikro hizmetler kullanmaktadır. NeMo Retriever gömme ve yeniden sıralama modelleri ile birleştirildiğinde, tam bir ölçeklenebilir RAG çözümü oluşturur; bu durum, NVIDIA AI Blueprint for RAG‘de gösterilmektedir (Şekil 1).

Bir sonraki bölümde, NeMo Retriever çıkarım hattının basit bir kullanım senaryosunu, işlenmiş verileri kullanarak adım adım ele alacağız.
Multimodal Belge Anlayışı ile Bir İş Görevi Tamamlama
Bu amaçla, NVIDIA Blackwell GPU’ları hakkında ürün kaynaklarını içeren bir organizasyonun paylaşılan klasörünü düşünelim. Dosyalar, PDF, PPTX ve JPEG gibi farklı türlerde metin, resimler, grafikler ve tablolar içermektedir.
Bu örnekte, bir müşteri destek mühendisi, bir ortağı desteklemek için NVIDIA Blackwell performans karşılaştırmasını talep ediyor.
Bu tür bir talep, bir sohbet kullanıcı arayüzünden veya otomatik içerik üreticisinden gönderilebilir. Burada, doğrudan istem ile hattın Python istemcisini kullanarak göstereceğiz.
Adım 1: Bir GPU ile Hattı Kurmak
Blueprint’i, bir yerel veya bulut makinesinde Docker kullanarak dağıtın. Dağıtım kılavuzunu NVIDIA belgelerinden bulabilirsiniz.
Bu örnekte, tüm hat, bir AWS g6e.xlarge makinesinde (L40S GPU, 48 GB) yayımlandı. İstediğiniz profil için tüm dağıtılan hizmetlerin çalıştığını doğrulayın.
Hattın hizmetleri, görsel öğe tanıma ve optik karakter tanıma (OCR) modellerini, gömme modelini, Milvus DB’yi ve gözlem araçlarını (Prometheus, Grafana, Attu, Zipkin ve diğerleri) içermektedir.
Not: Prototipleme amacıyla, hat kaynak koduna Build an Enterprise RAG Pipeline sayfasından erişebilirsiniz.
Adım 2: Depodaki Dosyalar İçin Alım Görevi Gönderme
Tüm hizmetler çalıştıktan sonra, Python istemcisi veya CLI (komut satırı arayüzü) aracılığıyla alım görevleri gönderebiliriz.
Burada Python istemcisi kullanımını göstereceğiz.
Bu örnekte, koleksiyonumuzdaki dosyaların yolunu geçiyoruz ve işleme dahil etmek istediğimiz görevleri (yani çıkarım, bölme ve gömme) tanımlıyoruz. Çıkarma görevini tüm modaliteleri içerecek şekilde, bölme görevini ise metni 1.024 token büyüklüğüne parçalayacak şekilde ayarlıyoruz.
from nv_ingest_client.client import Ingestor
demo_files = "demo_files/*"
ingestor = (
Ingestor(message_client_hostname="localhost")
.files(demo_files)
.extract(
extract_text=True,
extract_tables=True,
extract_charts=True,
extract_images=True,
text_depth="page",
)
.dedup()
.split(
tokenizer="meta-llama/Llama-3.2-1B",
chunk_size=1024,
)
.embed()
.vdb_upload()
)
result = ingestor.ingest()
Adım 3: İşlem Sonuçlarını Analiz Etme
Alım görevi tamamlandığında, sonuçların yapısını analiz edebiliriz (Şekil 3):
import pandas as pd
df = pd.DataFrame([])
for doc in result:
for obj in doc:
df = pd.concat([df,pd.json_normalize(obj)])
display(df)
Görev çıkarımı, her bir belgeden farklı modalitelerde çeşitli nesnelerle sonuçlandı. Bunlar arasında metin, resimler ve grafikler ile tablolara atıfta bulunan yapılandırılmış nesneler bulunmaktadır.
Örneğin, çıkarılan bir metin nesnesini görebiliriz:
# çıkarılan rastgele bir metin nesnesini yazdır.
print(df[df['document_type']=='text'].sample(1)['metadata.content'][0])
# Çıktı:
# NVIDIA GB200 NVL72 | Veri Sayfası | 1
# NVIDIA GB200 NVL72
# Yeni bilgisayar Çağına güç veriyor.
# Gerçek Zamanlı Trilyon Parametre Modellerini Açma
# NVIDIA GB200 NVL72, 36 Grace CPU’yu ve 72 Blackwell GPU’yu
# bir NVIDIA® NVLink® bağlı, sıvı soğutmalı, rack ölçekli tasarım
# dâhilinde bağlar. Tek bir devasa GPU olarak hareket ederek, 30 kat daha hızlı
# gerçek zamanlı trilyon-parametre büyük dil modeli (LLM) çıkarlama
# yapmaktadır. GB200 Grace Blackwell Superchip, NVIDIA GB200’ün
# önemli bir bileşenidir ...
Metin aynı zamanda daha küçük parçalara da bölünebilir. Parçalama stratejisini Ingestor’un bölme yapılandırması ile kontrol edebiliriz.
İşte çıkarılan rastgele bir tablonun örneği:
# tespit edilen grafik
from base64 import b64decode
from IPython import display
rand_extracted_object = df[df['document_type']=='structured'].sample(1)
display.Image(b64decode(rand_extracted_object['metadata.content'][0]))
Görsel nesne çıkarımının yanı sıra, bunun metinsel içeriği de kaydedilmiştir:
# tablo metinsel içeriği
rand_extracted_object['metadata.table_metadata.table_content'][0]
# Çıktı:
# "| Ürün Özellikleri' |n| NVIDIA GB200 Grace Blackwell Superchip, iki yapılandırmada gelir: GB200 NVL72 ve GB200 NVL2 |n| Özellik | GB200 NVL72 | GB200NVL2 | GB200 Grace Blackwell | Superchip |n| Yapılandırma | 36 Grace CPU, | 2 Grace CPU, | 1 Grace CPU, |n| 72 Blackwell GPU, | 2 Blackwell GPU | 2 Blackwell GPU ....
Bu nesneler, görev tarafından otomatik olarak parçalara ayrılıp gömülmüştür. Milvus koleksiyonunda, otomatik olarak oluşturduğumuz vektör gömme işlemlerini izleyebiliriz. Bunun için Milvus istemcisi ya da, ilk adımda yayımlanan web kullanıcı arayüzünün Attu hizmetini kullanabiliriz.
Adım 4: Alım
NeMo Retriever çıkarım hattı, alınan veriler ve NeMo Retriever gömme modelini esas alarak bir alım bileşeni oluşturarak gösterilecektir. İlk olarak, gömme ve oluşturucu LLM mikro hizmetleri için NVIDIA istemcisini tanımlayalım.
from openai import OpenAI
nvidia_client = OpenAI(
api_key="...",
base_url="https://integrate.api.nvidia.com/v1"
)
Kullanıcı sorgusunu (alım sırasında kullanılan gömme modelini kullanarak) özetleyin:
user_query = "Müşteri destek mühendisiyim. İstemcim için - Grace Blackwell'ın iki yapılandırması arasındaki temel fark nedir?"
# kullanıcı sorgusunu göm
response = nvidia_client.embeddings.create(
input=user_query,
model="nvidia/nv-embedqa-e5-v5",
encoding_format="float",
extra_body={"input_type": "query", "truncate": "NONE"}
)
user_query_vector=response.data[0].embedding
Kullanıcının sorgusuna en benzer sonuçları almak için NeMo Retriever çıkarım Python istemcisini kullanın:
from nv_ingest_client.util.milvus import nvingest_retrieval
query_results = nvingest_retrieval(
[user_query],
"nv_ingest_collection",
hybrid=False,
embedding_endpoint="http://localhost:8012/v1",
model_name="nvidia/llama-3.2-nv-embedqa-1b-v2",
top_k=1,
gpu_search=True,
)
top_result = query_results[0][0]['entity']['text']
Gereken bağlantılı bir istem oluşturun ve yanıtı alın:
prompt = """Aşağıdaki bağlama dayanarak kullanıcı sorgusuna cevap verin:
bağlam:
{}
kullanıcı sorgusu:
{}
""".format(top_result, user_query)
completion = nvidia_client.chat.completions.create(
model="meta/llama-3.2-3b-instruct",
messages=[{"role":"user","content":prompt}],
temperature=0.2,
top_p=0.7,
max_tokens=200,
stream=True
)
for chunk in completion:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")
Bir doğrudan arama yapmadan son derece alakalı bir parça elde ettik.
Bu basit kullanım senaryosu, hızlı bir dağıtım ayarıyla, multimodal kurumsal kaynak dosyalarının otomatik bağlamsal anlayışını gerçekleştirebileceğimizi göstermektedir.
Sonuç
NVIDIA NeMo Retriever çıkarım hattı, çok modlu belge işlemeyi, PDF, sunum ve tablolar gibi farklı dosya türlerini otomatik olarak ele alarak çözmektedir. Metin, görseller, tablolar ve grafiklerden anlamlı içerik çıkarır; böylece daha önce izole edilmiş bilgileri erişilebilir, yapılandırılmış verilere dönüştürür. Bu, kuruluşların mevcut bilgi havuzlarından daha derin içgörüler elde etmesini sağlar.
Bu çözümün arkasındaki mimari, nesne tespiti, grafik çözümleme ve vektör gömme gibi ileri bileşenleri bir araya getirerek verimli ve bağlamsal arama imkânı sunmaktadır. Modaliteler arasındaki ilişkileri koruyarak ve bunları anlamsal arama ile yüzeye çıkararak, hat kapsamlı bir belge anlama yaklaşımı sunmaktadır. NeMo Retriever ile bu uçtan uca hattın uygulanması, işletme bilgi yönetiminde önemli bir ilerleme kaydedilmiş olup, statik, yeterince kullanılmayan belgeleri yüksek değerli varlıklara dönüştürmektedir. Bu durum, üretken yapay zeka uygulamaları ve daha akıllı karar alma süreçlerini desteklemektedir.
Yeni verilerin sürekli olarak çıkarılması ve kullanılması ile NeMo Retriever, kuruluşların daha iyi AI modellerine yol açan daha iyi veri kalitesi üretmesine, dolayısıyla daha değerli veriler yaratmasına yardımcı olabilen bir veri döngüsü oluşturabilir.
NVIDIA AI blueprint for RAG’i kullanarak NeMo Retriever çıkarım hattına başlayın veya build.nvidia.com üzerinde çıkarım, gömme ve yeniden sıralama için bireysel NeMo Retriever mikro hizmetlerini deneyin.