“NVIDIA NIM Mikroservisleri ile Uygulamalarınızı Hızla Seslendirin ve Çeviri Yapın”

NVIDIA NIM, NVIDIA AI Enterprise’in bir parçası olarak, çoklu bulut, veri merkezi ve iş istasyonlarında önceden eğitilmiş ve özelleştirilmiş AI modelleri için GPU hızlandırmalı çıkarım mikro hizmetleri sunan konteynerler ile hizmet vermektedir. Artık konuşma ve çeviri için NIM mikro hizmetleri mevcuttur.

Yeni konuşma ve çeviri mikro hizmetleri, NVIDIA Riva’dan yararlanmakta ve otomatik konuşma tanıma (ASR), sinir ağı makine çevirisi (NMT) ve metinden sese (TTS) hizmetlerini sağlamaktadır.

NVIDIA konuşma ve çeviri NIM mikro hizmetlerini uygulamalarınıza entegre etmek, yalnızca gelişmiş ASR, NMT ve TTS ile küresel kullanıcı deneyimini ve erişilebilirliği artırmanın ötesinde bir fayda sağlar. Müşteri hizmetleri botları, interaktif sesli asistanlar veya çok dilli içerik platformları inşa ediyorsanız, bu NIM mikro hizmetleri, yüksek performanslı AI çıkarımı sağlamakta ve uygulamalarınızı ses ile etkinleştirmek için gereken esneklik ve doğruluğu sunmaktadır.

Temel Çıkarım Görevleri

Bu yazıda, tarayıcınızdan direkt olarak konuşma ve çeviri model arayüzlerini kullanarak ses transkribe etme, metni çevirmeye ve sentetik sesler üretmeye dair temel çıkarım görevleri yapmayı öğreneceksiniz. Ayrıca bu esnek mikro hizmetleri kendi altyapınızda nasıl çalıştıracağınızı, API’lardan nasıl erişeceğinizi ve uygulamalarınıza nasıl entegre edeceğinizi de öğrenebilirsiniz.

Video 1. Ses NIM mikro hizmetlerinin dağıtımına dair bir demo izleyin ve basit bir bilgiye dayalı etkileşim için sesten sesli etkileşim sağlama pipeline’ine bağlayın.

Konuşma ve Çeviri NIM ile Hızlı Çıkarım

Konuştaki NIM mikro hizmetleri, API kataloğunda bulunmaktadır. Tek bir butona tıklayarak, İngilizce konuşmaları transkribe edebilir, 30’dan fazla dil arasında metni çevirebilir veya metni doğal sesli konuşmaya dönüştürebilirsiniz. API kataloğu, konuşma ve çeviri NIM mikro hizmetlerinin temel yeteneklerini keşfetmek için rahat bir başlangıç noktası sunmaktadır.

Bu araçların gerçek gücü, verilerinizin bulunduğu her yerde dağıtılabilme esnekliğindedir. Bu mikro hizmetleri her uyumlu NVIDIA GPU üzerinde çalıştırabilir, API’lar aracılığıyla erişebilir ve uygulamalarınıza sorunsuz bir şekilde entegre edebilirsiniz. Bu çok yönlülük, konuşma NIM mikro hizmetlerinin yerel iş istasyonlarından bulut ve veri merkezi altyapısına kadar uzanan çeşitli ortamlarda dağıtılmasını sağlar.

NVIDIA Riva Python Müşterileri ile NIM Mikro Hizmetlerini Çalıştırma

Bu bölüm, nvidia-riva/python-clients GitHub reposunu klonlamayı ve sağlanan betikleri kullanarak NVIDIA API katalog Riva son noktasında basit çıkarım görevlerini çalıştırmayı anlatmaktadır.

Kısa bir süre içinde konuşma NIM mikro hizmetlerini test etmek için API kataloğundaki NIM sayfasına gidin ve Try API sekmesine tıklayın. Bu komutları kullanmak için bir NVIDIA API anahtarına ihtiyacınız olacaktır. Eğer hala bir anahtarınız yoksa, yalnızca Get API Key butonuna tıklamanız yeterlidir. Şimdi neler yapabileceğinize dair bazı örnekler bulabilirsiniz.

Akış Modunda Ses Transkribe Etme

Aşağıdaki komutu kullanarak bir ses dosyasını gerçek zamanlı olarak transkribe edebilirsiniz.

python python-clients/scripts/asr/transcribe_file.py 
    --server grpc.nvcf.nvidia.com:443 --use-ssl 
    --metadata function-id "1598d209-5e27-4d3c-8079-4751568b1081" 
    --metadata "authorization" "Bearer 
$API_KEY_REQUIRED_IF_EXECUTING_OUTSIDE_NGC" 
    --language-code en-US 
    --input-file <ses_dosyanızın_yolu>

İngilizceden Almancaya Metin Çevirme

Aşağıdaki komut, “Bu, Riva metin çevirisi için bir örnek metin” ifadesini Almancaya çevirir. Çevrilen cümle “Dies ist ein Beispieltext für Riva Textübersetzung” olacaktır.

python python-clients/scripts/nmt/nmt.py 
    --server grpc.nvcf.nvidia.com:443 --use-ssl 
    --metadata function-id "647147c1-9c23-496c-8304-2e29e7574510" 
    --metadata "authorization" "Bearer 
$API_KEY_REQUIRED_IF_EXECUTING_OUTSIDE_NGC" 
    --text "This is an example text for Riva text translation" 
    --source-language-code en 
    --target-language-code de

Sentetik Ses Üretimi

Aşağıdaki komut, “Bu ses, NVIDIA’nın metinden sese modelinden üretilmiştir” ifadesini sese dönüştürür ve ses çıktısını audio.wav adıyla kaydeder. Bu, uzak bir sistemde terminalde çalışıyorsanız ve ses çıkışı yerel mikrofonunuza yönlendirilemiyorsa oldukça kullanışlıdır.

python python-clients/scripts/tts/talk.py 
    --server grpc.nvcf.nvidia.com:443 --use-ssl 
    --metadata function-id "0149dedb-2be8-4195-b9a0-e57e0e14f972"  
    --metadata authorization "Bearer 
$API_KEY_REQUIRED_IF_EXECUTING_OUTSIDE_NGC" 
    --text "Bu ses, NVIDIA’nın metinden sese modelinden üretilmiştir" 
    --voice "English-US.Female-1" 
    --output audio.wav

NVIDIA ile Yerel Olarak Çalıştırma

Eğer advanced NVIDIA data center GPU’lar erişiminiz varsa, konuşma NIM mikro hizmetlerini yerel olarak çalıştırabilirsiniz. ASR, NMT ve TTS NIM iniş sayfalarındaki Docker sekmelerindeki talimatları izleyerek bunu gerçekleştirebilirsiniz. Alternatif olarak, her docker run parametresini açıkladığı ve kurulum sürecini rehberlik ettiği daha ayrıntılı Getting Started belgelerine başvurabilirsiniz.

NGC API anahtarı, NIM mikro hizmetlerini NVIDIA konteyner kayıt defterinden (nvcr.io) çekmek ve kendi sisteminizde çalıştırmak için gereklidir. Daha önce ürettiğiniz NVIDIA API anahtarı bu amaçla kullanılabilir. Ayrıca, ASR, NMT veya TTS NIM iniş sayfasına giderek Docker sekmesini seçip Get API Key butonuna tıklayarak bir anahtar alabilirsiniz.

NIM Mikro Hizmetlerini RAG Pipeline ile Entegre Etme

Bu bölümde, ASR ve TTS NIM mikro hizmetlerini sisteminizde başlatmayı ve NVIDIA Generative AI Examples GitHub reposundan temel bilgiye dayalı etkileşim (RAG) pipeline’ı ile nasıl bağlayacağınızı öğreneceksiniz. Bu yapı, belgeleri bir bilgi tabanına yüklemenizi, bu belgeler hakkında sesli sorular sormanızı ve yanıtları sentetik, doğal seslerle almanızı sağlar.

Çevreyi Ayarlama

NIM mikro hizmetlerini başlatmadan önce, NGC API anahtarınızı sisteminize NGC_API_KEY olarak dışa aktarın, bunu terminalde doğrudan veya çevresel kaynak dosyanız üzerinden yapabilirsiniz.

Daha sonra, NVIDIA konteyner kayıt defterine giriş yapın:

echo "$NGC_API_KEY" | docker login nvcr.io --username '$oauthtoken' 
--password-stdin

Ardından, bir LOCAL_NIM_CACHE dizini oluşturun:

export LOCAL_NIM_CACHE=<yol/nim_cache>
mkdir -p "$LOCAL_NIM_CACHE"
chmod 777 $LOCAL_NIM_CACHE

Bu dizinde modellerinizi saklayacak ve NIM konteynerlerine monte edeceksiniz. chmod 777 komutunu atlamadığınızdan emin olun, aksi takdirde NIM Docker konteyneri model dosyalarını LOCAL_NIM_CACHE dizinine indirmek için gerekli izne sahip olmayacaktır.

Varsayılan olarak, konuşma NIM mikro hizmetleri model dosyalarını yalnızca çalışmakta olan bir konteynerin içinde erişilebilen bir konuma indirecektir. Eğer yalnızca bir Riva hizmetini aynı zamanda çalıştırmayı planlıyorsanız, LOCAL_NIM_CACHE tanımlanmamalı ya da bir NIM konteynerini durdurup diğerini başlatmadan önce LOCAL_NIM_CACHE dizininizi temizlemelisiniz.

ASR NIM’i Başlatma

ASR NIM’i başlatmak için aşağıdaki betiği kullanın:

export CONTAINER_NAME=parakeet-ctc-1.1b-asr

docker run -it --rm --name=$CONTAINER_NAME 
  --runtime=nvidia 
  --gpus '"device=0"' 
  --shm-size=8GB 
  -e NGC_API_KEY=$NGC_API_KEY 
  -e NIM_MANIFEST_PROFILE=9136dd64-4777-11ef-9f27-37cfd56fa6ee 
  -e NIM_HTTP_API_PORT=9000 
  -e NIM_GRPC_API_PORT=50051 
  -p 9000:9000 
  -p 50051:50051 
  -v "$LOCAL_NIM_CACHE:/home/nvs/.cache/nim" 
  nvcr.io/nim/nvidia/parakeet-ctc-1.1b-asr:1.0.0

Eğer LOCAL_NIM_CACHE dizini boş ise (ilk defa bu komutu çalıştırıyorsanız), tamamlanması 20-30 dakika sürebilir. Bu süre zarfında, NIM akustik (çevrimdışı, gecikme için optimize edilmiş ve akış için optimize edilmiş) ve noktalama modellerini .tar.gz dosyaları olarak indirecek ve daha sonra bunları konteyner içinde çıkaracaktır.

TTS NIM’i Başlatma

ASR NIM’i durdurduktan sonra (Ctrl+C ile veya farklı bir terminalde docker stop veya docker container stop ile) TTS NIM’i başlatın:

export CONTAINER_NAME=fastpitch-hifigan-tts

docker run -it --rm --name=$CONTAINER_NAME 
  --runtime=nvidia 
  --gpus '"device=0"' 
  --shm-size=8GB 
  -e NGC_API_KEY=$NGC_API_KEY 
  -e NIM_MANIFEST_PROFILE=3c8ee3ee-477f-11ef-aa12-1b4e6406fad5 
  -e NIM_HTTP_API_PORT=9000 
  -e NIM_GRPC_API_PORT=50051 
  -p 9000:9000 
  -p 50051:50051 
  -v "$LOCAL_NIM_CACHE:/home/nvs/.cache/nim" 
  nvcr.io/nim/nvidia/fastpitch-hifigan-tts:1.0.0

TTS NIM’in başlatılması, ASR NIM’e göre çok daha hızlı olmalıdır; çünkü bileşen modellerinin toplam alanı daha azdır. Ancak, her iki NIM için de aynı LOCAL_NIM_CACHE dizinini kullandığımız için, TTS NIM hem ASR hem de TTS modellerini başlatacaktır.

NIM Mikro Hizmetlerini RAG Pipeline ile Bağlama

RAG web uygulaması, NVIDIA Generative AI Examples GitHub reposunun bir parçasıdır. Repo’yu klonladıktan sonra, yapmanız gereken en önemli şey RAG/examples/basic_rag/langchain/docker-compose.yaml dosyasını düzenlemektir. rag-playground hizmeti için PLAYGROUND_MODE değerini ses olarak ayarlayın ve bu hizmete aşağıdaki environment değişkenlerini ekleyin:

services:
  ...
  rag-playground:
    ...
    environment: 
      ...
      RIVA_API_URI: <riva-ip-adresi>:50051
      TTS_SAMPLE_RATE: 48000

RIVA_API_URI’yi, varsayılan bir değerle ayarlarsanız (aşağıda gösterildiği gibi), varsayılan değerin etrafına çift tırnak koymamaya dikkat edin. Eğer koyarsanız, Python os modülü, Riva URI tanımındaki çift tırnakları da metin olarak dahil edecektir, bu da sorun yaratacaktır.

RIVA_API_URI: ${RIVA_API_URI:-<riva-ip-adresi>:50051}

localhost ile çalıştığınızda dahi, IP adresinizi veya kalıcı bir ana bilgisayar adını belirtmeniz gerekir; aksi takdirde localhost çalışmayacaktır.

ASR ve TTS yeteneklerini bir RAG pipeline’ına eklemeye yönelik daha ayrıntılı talimatları Generative AI Examples repo’daki ASR ve TTS senkronizasyonu bölümünde bulabilirsiniz.

Docker-compose dosyasını uygun şekilde düzenledikten sonra, aşağıdaki komutu bu dosyanın bulunduğu dizinde çalıştırın:

docker compose up -d --build

Ayrıca, ağ içindeki her bir konteynerin çalıştığını doğrulayın:

docker ps --format "table {{.ID}}t{{.Names}}t{{.Status}}"

Test Etme

Kurulumunuzu test etmek için tarayıcınızda localhost:8090 adresine gidin. Eğer RAG uygulamasını uzaktan bir sistemde çalıştırıyorsanız, <uzak-IP-adresi>:8090 kullanın. Arayüz (Şekil 1 ve 2), büyük dil modeline (LLM) ses ya da metin ile soru sormanızı ve sözlü bir yanıt almanızı sağlar. Eğer modeller mevcutsa, ASR ve TTS dillerini menü seçenekleriyle değiştirebilirsiniz.

Belgeler üzerinde sorgulama yapmak için sağ üst köşedeki Knowledge Base sekmesine tıklayın. Burada PDF, düz metin veya markdown dosyalarını yükleyebilirsiniz. İçerikler çok boyutlu vektörler olarak ayrıştırılır ve bir vektör veritabanında indekslenir, bu şekilde LLM yeni bilgiler temelinde sorulara yanıt verebilir.

Örneğin, NVIDIA Blackwell Platform Arrives to Power a New Era of Computing başlıklı basın bülteninin bir PDF versiyonunu yükleyin. Varsayılan LLM’nin bu bilgiyle önceden eğitilmediğini unutmayın. Ardından, Converse sekmesine geri dönün, mikrofon simgesine tıklayın ve uygulamaya “NVIDIA Blackwell GPU’sunun kaç transistörü var?” diye sorun. Bilgi tabanı olmadan, LLM doğru yanıtı veremez (Şekil 1).

Screenshot showing the testing of the speech NIM and RAG pipeline without an knowledge base.
Şekil 1. Bilgi tabanı olmayan NIM ve RAG pipeline’inin test edilmesi.

Artık bilgi tabanı aktifken aynı soruyu tekrar sorun. Bu sefer, tam RAG pipeline’ını kullanarak, LLM doğru yanıtı verilen yeni bilgiler üzerinden sağlıyor (Şekil 2).

Şekil 2. Aktif bir bilgi tabanı kullanarak NIM ve RAG pipeline’inin test edilmesi.

Uygulamalarınıza Çok Dilliliği Ekleyin

Bu yazıda, NVIDIA konuşma ve çeviri NIM mikro hizmetlerini nasıl kuracağınızı ve bunları doğrudan tarayıcınız aracılığıyla interaktif konuşma ve çeviri model arayüzlerini kullanarak nasıl test edeceğinizi öğrendiniz. NIM konuşma ve çeviri mikro hizmetlerinin dağıtımındaki esnekliği ve bunları belge tabanlı bilgi geri kazanımı ile synthesize ses yanıtları için RAG pipeline’ına nasıl entegre edebileceğinizi keşfettiniz.

Güçlü çok dilli konuşma AI’yı kendi uygulamalarınıza eklemeye hazır mısınız? Konuşma NIM mikro hizmetlerini deneyerek ASR, NMT ve TTS’yi pipeline’larınıza eklemenin ne kadar kolay olduğunu görün. API’ları keşfedin ve bu NIM mikro hizmetlerinin uygulamalarınızı nasıl dönüştürebileceğini öğrenin.

Kaynak

Nvdia Blog

Exit mobile version