Ana içeriğe geç
Sürüm: 1.0.0

GaiaNet'te ajan çevirisi

Dr. Andrew Ng'nin ajan çevirisi, tek bir görev üzerinde çalışmak üzere birden fazla LLM "ajanının" nasıl koordine edilebileceğini gösteren harika bir örnektir. Birden fazla küçük LLM'nin (Llama-3 veya Gemma-2 gibi) birlikte çalışmasına ve tek bir büyük LLM'den (ChatGPT gibi) daha iyi sonuçlar üretmesine olanak tanır.

Her türlü ince ayarlanmış LLM ve bilgi tabanını çalıştıran 2000'den fazla düğüme sahip GaiaNet, ajan uygulamalarının kendi LLM arka uçlarını seçmeleri ve kullanmaları için büyük bir fırsat sunmaktadır.

LLM Çeviri Aracısına Giriş

Bu LLM Çeviri Aracısı, birden fazla dilde doğru ve verimli çeviriyi kolaylaştırmak için tasarlanmıştır. Yüksek kaliteli çeviriler sağlamak için açık kaynaklı LLM'ler (Büyük Dil Modelleri) kullanır. Kendi ince ayarlı modellerinizi veya Meta's Llama 3 gibi Hugging Face üzerindeki herhangi bir LLM'yi kullanabilirsiniz.

Bu aracının başlatılması ve çalıştırılmasıyla ilgili ayrıntılı komutlar için lütfen GitHub - Second State/translation-agent adresini ziyaret edin.

Başlamak için Çeviri Aracısını klonlayın.

git clone https://github.com/second-state/translation-agent.git

cd translation-agent
git checkout use_llamaedge

Ardından, ajanın ihtiyaç duyduğu arka uç API hizmetlerini sağlayan yerel bir GaiaNet düğümü kuracağız. Kendi GaiaNet düğümlerinizi kurmak istemiyorsanız elbette topluluktaki GaiaNet düğümlerini kullanabilirsiniz.

curl -sSfL 'https://github.com/GaiaNet-AI/gaianet-node/releases/latest/download/install.sh' | bash

Aracı uygulamasını çalıştırmak için aşağıdaki yapılandırmalara ve önkoşullara da ihtiyacınız olacaktır. Yerel düğümünüz yerine genel bir GaiaNet düğümü kullanıyorsanız http://localhost:8080 ile https://node_id.us.gaianet.network.

export OPENAI_BASE_URL="http://localhost:8080/v1"
export PYTHONPATH=${PWD}/src
export OPENAI_API_KEY="GAIANET"

pip install python-dotenv
pip install openai tiktoken icecream langchain_text_splitters

Demo 1: Llama-3-8B ile Çeviri Aracılarını Çalıştırma

İlk olarak, çeviri aracısını Meta AI'nin popüler Llama-3 modeliyle çalıştıralım. Bu demo için en küçük Llama-3 modelini (8b modeli) seçiyoruz. Çeviri görevi Çince'den İngilizce'ye. Kaynak metnimiz Çince, eski Çin kraliyet sarayı Yasak Şehir'e kısa bir giriş.

Adım 1.1: Bir Llama-3-8B GaiaNet düğümü çalıştırın

Modeli yapılandırın ve indirin. Modelin boyutu 5,73 GB olduğu için. İndirmek biraz zaman alabilir.

gaianet init --config https://raw.githubusercontent.com/GaiaNet-AI/node-configs/main/llama-3-8b-instruct/config.json

Ardından, GaiaNet düğümünü başlatmak için aşağıdaki komutu kullanın.

gaianet başlangıç

Adım 1.2 Çeviri Aracısını Llama-3-8B'nin üzerinde çalıştırın

Bulmak examples/example_script.py dosyasını klonlanmış ajan deponuza ekleyin ve kodunu inceleyin. Bu, aracınıza belgenizi nerede bulacağını ve nasıl çevireceğini söyler. Model adını kullandığınız modelle değiştirin, burada Meta-Llama-3-8B-Instruct-Q5_K_M modelini seçin; ayrıca istediğiniz kaynak ve hedef dilleri değiştirin (burada Çince kaynak dil olarak ve İngilizce hedef dil olarak).

import os
import translation_agent as ta

if __name__ == "__main__":
source_lang, target_lang, country = "Chinese", "English", "Britain"

relative_path = "sample-texts/forbiddencity.txt"
script_dir = os.path.dirname(os.path.abspath(__file__))

full_path = os.path.join(script_dir, relative_path)

with open(full_path, encoding="utf-8") as file:
source_text = file.read()

print(f"Source text:\n\n{source_text}\n------------\n")

translation = ta.translate(
source_lang=source_lang,
target_lang=target_lang,
source_text=source_text,
country=country,
model="Meta-Llama-3-8B-Instruct-Q5_K_M",
)

print(f"Translation:\n\n{translation}")

Daha sonra, bir examples/sample-texts klonlanmış deponuzdaki klasör. Çevirmek istediğiniz dosyayı bu klasöre koyun ve yolunu alın. Burada kaynak metnimizi adlandırdığımız için yasak şehi̇r.txt, belgenin göreli yolu şu şekilde olacaktır sample-texts/forbiddencity.txt.

Metin dosyanızın İngilizceye çevrilmesi için aşağıdaki komutları çalıştırın.

cd örnekleri̇
python example_script.py

Birkaç dakika bekleyin ve terminal ekranınızda tamamen çevrilmiş bir sürüm görünecektir.

Demo 2: gemma-2-27b ile Çeviri Aracılarını Çalıştırma

Çeviri Aracısını GaiaNet ile çalıştırmanın faydası, kullanıcıların farklı aracı görevler için farklı LLM'ler seçme ve yerleştirme yeteneğidir. Bu noktayı göstermek için şimdi çeviri aracısı LLM'sini Llama-3-8b'den benzer boyutta olan ancak dille ilgili birçok kıyaslamada daha yüksek puan alan Google'ın gemma-2-27b'sine değiştireceğiz.

Çeviri görevi daha önce olduğu gibi aynıdır. Kaynak metnimiz Çince, eski Çin kraliyet sarayı Yasak Şehir'e kısa bir giriş. Çeviri hedefi ise İngilizce.

Adım 2.1 Bir gemma-2-27b GaiaNet düğümü çalıştırın

Modeli yapılandırın ve indirin. Modelin boyutu 6.40G olduğu için indirilmesi biraz zaman alabilir.

gaianet init --config https://raw.githubusercontent.com/GaiaNet-AI/node-configs/main/gemma-2-27b-it/config.json

Ardından, GaiaNet düğümünü başlatmak için aşağıdaki komutu kullanın.

gaianet başlangıç

Adım 2.2 gemma-2-27b üzerinde çalışmak üzere Çeviri Aracısını çalıştırın

Bulmak examples/example_script.py dosyasını klonlanmış ajan deponuza ekleyin ve kodunu inceleyin. Bu, aracınıza belgenizi nerede bulacağını ve nasıl çevireceğini söyler. Model adını kullandığınız modelle değiştirin, burada gemma-2-27b-it-Q5_K_M modelini seçin; ayrıca istediğiniz kaynak ve hedef dilleri değiştirin (burada Çince kaynak dil olarak ve İngilizce hedef dil olarak).

import os  
import translation_agent as ta

if __name__ == "__main__":
source_lang, target_lang, country = "Chinese", "English", "Britain"

relative_path = "sample-texts/forbiddencity.txt"
script_dir = os.path.dirname(os.path.abspath(__file__))

full_path = os.path.join(script_dir, relative_path)

with open(full_path, encoding="utf-8") as file:
source_text = file.read()

print(f"Source text:\n\n{source_text}\n------------\n")

translation = ta.translate(
source_lang=source_lang,
target_lang=target_lang,
source_text=source_text,
country=country,
model="gemma-2-27b-it-Q5_K_M",
)

print(f"Translation:\n\n{translation}")

Daha sonra, bir examples/sample-texts klonlanmış deponuzdaki klasör. Çevirmek istediğiniz dosyayı bu klasöre koyun ve yolunu alın. Burada, kaynak metnimizi adlandırdığımız için yasak şehi̇r.txt, belgenin göreli yolu şu şekilde olacaktır sample-texts/forbiddencity.txt.

Metin dosyanızın İngilizceye çevrilmesi için aşağıdaki komutları çalıştırın.

cd örnekleri̇    
python example_script.py

İngilizceye çevrilmiş sonucu burada bulabilirsiniz.

Demo 3: Çeviri Aracılarının Phi-3-Medium uzun bağlam modeliyle çalıştırılması

Llama-3 ve Gemma-2 modelleri harika LLM'lerdir, ancak nispeten küçük bağlam pencerelerine sahiptirler. Aracı, tüm metnin LLM bağlam penceresine sığmasını gerektirir ve bu da çevirebilecekleri makalelerin boyutunu sınırlar. Bu sorunu çözmek için, büyük bir bağlam penceresine sahip açık kaynaklı bir LLM seçebiliriz. Bu demo için Microsoft'un Phi-3-medium-128k modelini seçtik, bu model 128k (100 binden fazla kelime veya birkaç kitap uzunluğunda) büyük bir bağlam penceresine sahip.

Yerel olarak başlattığımız Phi-3-medium-128k modeli tarafından desteklenen Çeviri Aracımız aracılığıyla Yasak Şehir'in Varsaille Sarayı ile işbirliği hakkında uzun bir Çince makale yayınlıyoruz.

Adım 3.1: Bir Phi-3-medium-128k GaiaNet düğümü çalıştırın

Modeli yapılandırın ve indirin.

gaianet init --config https://raw.githubusercontent.com/GaiaNet-AI/node-configs/main/phi-3-medium-instruct-128k/config_full.json

Ardından, GaiaNet düğümünü 128k bağlam penceresi ile başlatmak için aşağıdaki komutu kullanın.

gaianet başlangıç

Adım 3.2 Phi-3-medium-128k üzerine Translation Agent'ı klonlayın ve çalıştırın

Bulmak examples/example_script.py dosyasını klonlanmış ajan deponuza ekleyin ve kodunu inceleyin. Bu, aracınıza belgenizi nerede bulacağını ve nasıl çevireceğini söyler. Model adını kullandığınız modelle değiştirin, burada Phi-3-medium-128k-instruct-Q5_K_M modelini seçin; ayrıca istediğiniz kaynak ve hedef dilleri değiştirin (burada Çince kaynak dil olarak ve İngilizce hedef dil olarak).

import os  
import translation_agent as ta

if __name__ == "__main__":
source_lang, target_lang, country = "Chinese", "English", "Britain"

relative_path = "sample-texts/long_article.txt"
script_dir = os.path.dirname(os.path.abspath(__file__))

full_path = os.path.join(script_dir, relative_path)

with open(full_path, encoding="utf-8") as file:
source_text = file.read()

print(f"Source text:\n\n{source_text}\n------------\n")

translation = ta.translate(
source_lang=source_lang,
target_lang=target_lang,
source_text=source_text,
country=country,
model="Phi-3-medium-128k-instruct-Q5_K_M",
)

print(f"Translation:\n\n{translation}")

Daha sonra, bir examples/sample-texts klonlanmış deponuzdaki klasör. Çevirmek istediğiniz dosyayı bu klasöre koyun ve yolunu alın. Burada kaynak metnimizi adlandırdığımız için long_article.txt, belgenin göreli yolu şu şekilde olacaktır sample-texts/long_article.txt.

cd örnekleri̇
python example_script.py

Çeviri sonuçları etkileyiciydi, çeviri orijinal metnin nüanslarını ve bağlamını yüksek sadakatle yakaladı.

Çeviri Kalitesinin Değerlendirilmesi

Üç model, Llama-3-8B, gemma-2-27b ve Phi-3-medium, karmaşık tarihi ve kültürel içeriği Çince'den İngilizce'ye çevirmede farklı düzeylerde performans sergilemiştir.

Llama-3-8B, olgusal içeriği etkili bir şekilde yakalayan, ancak dilde zaman zaman sertlik gösteren, muhtemelen deyimsel ifadeleri tam olarak uyarlamayan doğrudan bir çeviri yaklaşımına işaret eden bir çeviri sunmaktadır. Bölüm başlıklarını ve orijinal metnin formatını korumamış ve bazı kısımları çevrilmeden bırakmıştır.

Buna karşılık, gemma-2-27b'nin çevirisi oldukça doğru ve Yasak Şehir'in kısa giriş makalesinin orijinal anlamını koruyor. gemma-2-27b'nin çevirisi, hem kaynak dilin hem de hedef dilin gramer yapılarının sofistike bir şekilde anlaşıldığını gösteren pürüzsüz ve doğal bir İngilizce akışı sergiliyor. gemma-2-27b'nin çıktısındaki kelime ve cümle yapılarının seçimi, yüksek derecede dilsel incelik göstermekte ve resmi ve tarihsel olarak nüanslı metinlerin çevirisi için uygun olabileceğini düşündürmektedir.

Phi-3-medium-128k modeli kitap uzunluğundaki metinleri Çince'den İngilizce'ye çevirebilir. Gelişmiş bellek kullanımı ve bağlamsal farkındalık ile büyük hacimli karmaşık içeriklerin işlenmesinde güçlü yetenekler sergiliyor. Çeviri kalitesi, metin uzunluğu arttığında bile tutarlı kalıyor ve bu da Phi'nin kapsamlı, ayrıntılı çeviriler gerektiren projelerde kullanılabileceğini gösteriyor. Ancak ilk paragrafta "Wenhua Hall" ifadesini "Yasak Şehir olarak da bilinir" şeklinde yanlış çevirmesi gibi bazı hatalar yaptığını görebilirsiniz.

Genel olarak, her modelin güçlü yönleri vardır; Gemma-2-27b dilsel incelik ve Phi-3-medium-128k uzun metinlerin üstesinden gelmek için öne çıkmaktadır.

Sonuç

GaiaNet, belirli görevler için ince ayarlanmış yeteneklerinden tam olarak yararlanmak için ajan uygulamalarınızda farklı açık kaynaklı LLM'leri seçmenin ve kullanmanın kolay bir yolunu sunar.

Yerel bir GaiaNet düğümü kurup çalıştırdıktan sonra, bunu başkalarıyla paylaşabilir ve GaiaNet ağına katılarak $$$ kazanabilirsiniz!