Chuyển đến nội dung chính
Phiên bản: 2.0.0

Bản dịch Agentic trên Gaia

Bản dịch agentic của Giáo sư Andrew Ng là một ví dụ tuyệt vời về cách phối hợp nhiều "agent" LLM để thực hiện một nhiệm vụ duy nhất. Nó cho phép nhiều LLM nhỏ hơn (như Llama-3 hoặc Gemma-2) làm việc cùng nhau và tạo ra kết quả tốt hơn so với một LLM lớn duy nhất (như ChatGPT).

Gaia , với hơn 2000 nút chạy mọi loại LLm và cơ sở kiến thức được tinh chỉnh, cung cấp cơ hội to lớn cho các ứng dụng đại lý lựa chọn và sử dụng nền tảng LLM của riêng mình.

Giới thiệu về Đại lý dịch thuật LLM

Đại lý dịch thuật LLM này được thiết kế để tạo điều kiện dịch thuật chính xác và hiệu quả trên nhiều ngôn ngữ. Nó sử dụng LLM mã nguồn mở (Mô hình ngôn ngữ lớn) để cung cấp các bản dịch chất lượng cao. Bạn có thể sử dụng các mô hình được tinh chỉnh của riêng mình hoặc bất kỳ LLM nào trên Hugging Face như Llama 3 của Meta.

Để biết các lệnh chi tiết về cách khởi động và chạy tác nhân này, vui lòng truy cập GitHub - Second State / translation-agent.

Để bắt đầu, hãy sao chép Tác nhân dịch.

https://github.com/second-state/translation-agent.git sao chép Git

Đại lý dịch thuật CD
use_llamaedge Git Checkout

Tiếp theo, chúng ta sẽ cài đặt một nút Gaia cục bộ, cung cấp các dịch vụ API phụ trợ mà tác nhân yêu cầu. Tất nhiên, bạn có thể sử dụng các nút Gaia từ cộng đồng nếu bạn không muốn tự mình bắt đầu.

cuộn tròn -sSfL 'https://github.com/GaiaNet-AI/gaianet-node/releases/latest/download/install.sh' | Bash

Bạn cũng sẽ cần các cấu hình và điều kiện tiên quyết sau để chạy ứng dụng đại lý. Nếu bạn đang sử dụng nút Gaia công khai thay vì nút cục bộ của mình, hãy thay thế http://localhost:8080 với 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: Chạy Translation Agents với Llama-3-8B

Đầu tiên, hãy chạy tác nhân dịch thuật với mô hình Llama-3 phổ biến của Meta AI. Chúng tôi chọn mô hình Llama-3 nhỏ nhất (mô hình 8b) cho bản demo này. Nhiệm vụ dịch thuật là từ tiếng Trung sang tiếng Anh. Văn bản nguồn của chúng tôi bằng tiếng Trung, giới thiệu ngắn gọn về cung điện hoàng gia Trung Quốc cổ đại, Tử Cấm Thành.

Bước 1.1: Chạy nút Llama-3-8B Gaia

Định cấu hình và tải xuống mô hình. Vì kích thước của mô hình là 5, 73 GB. Có thể mất một lúc để tải xuống.

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

Tiếp theo, sử dụng lệnh sau để khởi động nút Gaia.

Gaianet bắt đầu

Bước 1.2 Chạy Translation Agent trên Llama-3-8B

Tìm Ví dụ/example_script.py nộp vào repo đại lý nhân bản của bạn và xem lại mã của nó. Nó cho đại lý biết nơi tìm tài liệu của bạn và cách dịch nó. Thay đổi tên model thành tên bạn đang sử dụng, ở đây chúng tôi đang sử dụng Meta-llama-3-8B-Hướng dẫn-Q5_K_M mẫu; Đồng thời thay đổi ngôn ngữ nguồn và ngôn ngữ đích bạn muốn (ở đây chúng tôi đặt Trung quốc làm ngôn ngữ nguồn và Tiếng Anh làm ngôn ngữ đích).

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}")

Sau đó, bạn có thể tìm thấy một Ví dụ/mẫu-văn bản thư mục trong repo nhân bản của bạn. Đặt tệp bạn muốn dịch vào thư mục này và lấy đường dẫn của nó. Ở đây, bởi vì chúng tôi đặt tên cho văn bản nguồn của chúng tôi forbiddencity.txt, đường dẫn tương đối đến tài liệu sẽ là văn bản mẫu/forbiddencity.txt.

Chạy các lệnh dưới đây để tệp văn bản của bạn được dịch sang tiếng Anh.

Ví dụ về CD
example_script.py Python

Đợi trong vài phút và bạn sẽ có một phiên bản dịch đầy đủ xuất hiện trên màn hình thiết bị đầu cuối của bạn.

Demo 2: Chạy Translation Agents với gemma-2-27b

Lợi ích của việc chạy Translation Agent với Gaia là khả năng cho phép người dùng lựa chọn và nhúng các LLM khác nhau cho các tác vụ agentic khác nhau. Để chứng minh cho quan điểm này, chúng tôi sẽ thay đổi LLM của translation agent từ Llama-3-8b thành gemma-2-27b của Google, có kích thước tương tự nhưng đạt điểm cao hơn trên nhiều chuẩn mực liên quan đến ngôn ngữ.

Nhiệm vụ dịch thuật vẫn giống như trước đây. Văn bản nguồn của chúng tôi bằng tiếng Trung, giới thiệu ngắn gọn về cung điện hoàng gia Trung Quốc cổ đại, Tử Cấm Thành. Mục tiêu dịch thuật là tiếng Anh.

Bước 2.1 Chạy nút Gemma-2-27b Gaia

Định cấu hình và tải xuống mô hình. Vì kích thước của mô hình là 6.40G, có thể mất một lúc để tải xuống.

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

Tiếp theo, sử dụng lệnh sau để khởi động nút Gaia.

Gaianet bắt đầu

Bước 2.2 Chạy Translation Agent để chạy trên gemma-2-27b

Tìm Ví dụ/example_script.py nộp vào repo đại lý nhân bản của bạn và xem lại mã của nó. Nó cho đại lý biết nơi tìm tài liệu của bạn và cách dịch nó. Thay đổi tên model thành tên bạn đang sử dụng, ở đây chúng tôi đang sử dụng Gemma-2-27B-it-Q5_K_M mẫu; Đồng thời thay đổi ngôn ngữ nguồn và ngôn ngữ đích bạn muốn (ở đây chúng tôi đặt Trung quốc làm ngôn ngữ nguồn và Tiếng Anh làm ngôn ngữ đích).

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}")

Sau đó, bạn có thể tìm thấy một Ví dụ/mẫu-văn bản thư mục trong repo nhân bản của bạn. Đặt tệp bạn muốn dịch vào thư mục này và lấy đường dẫn của nó. Ở đây, bởi vì chúng tôi đặt tên cho văn bản nguồn của chúng tôi forbiddencity.txt, đường dẫn tương đối đến tài liệu sẽ là văn bản mẫu/forbiddencity.txt.

Chạy các lệnh dưới đây để tệp văn bản của bạn được dịch sang tiếng Anh.

Ví dụ về CD    
example_script.py Python

Bạn có thể tìm thấy kết quả dịch bằng tiếng Anh tại đây.

Demo 3: Chạy Translation Agents với mô hình ngữ cảnh dài Phi-3-Medium

Các mô hình Llama-3 và Gemma-2 là LLM tuyệt vời, nhưng chúng có cửa sổ ngữ cảnh tương đối nhỏ. Tác nhân yêu cầu tất cả văn bản phải phù hợp với cửa sổ ngữ cảnh LLM và điều đó giới hạn kích thước của các bài viết mà họ có thể dịch. Để khắc phục sự cố này, chúng tôi có thể chọn một LLM mã nguồn mở với một cửa sổ ngữ cảnh lớn. Đối với bản demo này, chúng tôi chọn mô hình Phi-3-medium-128k của Microsoft, có cửa sổ ngữ cảnh khổng lồ 128k (hơn 100 nghìn từ hoặc độ dài của vài cuốn sách).

Chúng tôi chạy một bài báo dài bằng tiếng Trung về sự hợp tác của Tử Cấm Thành với Cung điện Varsaille thông qua Đại lý dịch thuật của chúng tôi được cung cấp bởi mô hình Phi-3-medium-128k mà chúng tôi bắt đầu tại địa phương.

Bước 3.1: Chạy nút Gaia Phi-3-medium-128k

Định cấu hình và tải xuống mô hình.

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

Tiếp theo, sử dụng lệnh sau để khởi động nút Gaia với cửa sổ ngữ cảnh 128k.

Gaianet bắt đầu

Bước 3.2 Sao chép và chạy Trình dịch trên đầu Phi-3-medium-128k

Tìm Ví dụ/example_script.py nộp vào repo đại lý nhân bản của bạn và xem lại mã của nó. Nó cho đại lý biết nơi tìm tài liệu của bạn và cách dịch nó. Thay đổi tên model thành tên bạn đang sử dụng, ở đây chúng tôi đang sử dụng Phi-3-trung bình-128k-hướng dẫn-Q5_K_M mẫu; Đồng thời thay đổi ngôn ngữ nguồn và ngôn ngữ đích bạn muốn (ở đây chúng tôi đặt Trung quốc làm ngôn ngữ nguồn và Tiếng Anh làm ngôn ngữ đích).

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}")

Sau đó, bạn có thể tìm thấy một Ví dụ/mẫu-văn bản thư mục trong repo nhân bản của bạn. Đặt tệp bạn muốn dịch vào thư mục này và lấy đường dẫn của nó. Ở đây, bởi vì chúng tôi đặt tên cho văn bản nguồn của chúng tôi long_article.txt, đường dẫn tương đối đến tài liệu sẽ là mẫu-văn bản/long_article.txt.

Ví dụ về CD
example_script.py Python

Kết quả dịch rất ấn tượng, với bản dịch nắm bắt các sắc thái và bối cảnh của văn bản gốc với độ trung thực cao.

Đánh giá chất lượng dịch thuật

Ba mô hình, Llama-3-8B, gemma-2-27b và Phi-3-medium, đã thể hiện các mức độ hiệu suất khác nhau trong việc dịch nội dung lịch sử và văn hóa phức tạp từ tiếng Trung sang tiếng Anh.

Llama-3-8B cung cấp một bản dịch nắm bắt hiệu quả nội dung thực tế nhưng đôi khi cho thấy sự cứng nhắc trong ngôn ngữ, có thể chỉ ra một cách tiếp cận dịch trực tiếp không hoàn toàn thích ứng với các biểu thức thành ngữ. Nó không giữ tiêu đề phần và định dạng của văn bản gốc và để lại một số phần nhất định chưa được dịch.

Ngược lại, bản dịch của gemma-2-27b khá chính xác và giữ nguyên ý nghĩa ban đầu của bài giới thiệu ngắn về Tử Cấm Thành. Bản dịch của gemma-2-27b thể hiện một dòng chảy tiếng Anh mượt mà và tự nhiên, cho thấy sự hiểu biết tinh vi về cả ngôn ngữ nguồn và cấu trúc ngữ pháp của ngôn ngữ đích. Việc lựa chọn các từ và cấu trúc câu trong đầu ra của gemma-2-27b thể hiện mức độ khéo léo ngôn ngữ cao, cho thấy nó có thể rất phù hợp để dịch các văn bản chính thức và mang sắc thái lịch sử.

Mô hình Phi-3-medium-128k có thể dịch văn bản dài từ tiếng Trung sang tiếng Anh. Nó thể hiện khả năng mạnh mẽ trong việc xử lý khối lượng lớn nội dung phức tạp, đề xuất xử lý bộ nhớ nâng cao và nhận thức theo ngữ cảnh. Chất lượng dịch thuật vẫn nhất quán ngay cả khi độ dài văn bản tăng lên, cho thấy tiện ích của Phi trong các dự án yêu cầu bản dịch rộng rãi, chi tiết. Nhưng bạn có thể thấy nó mắc một số lỗi nhất định như nhầm lẫn "Văn Hoa điện" là "còn được gọi là Tử Cấm Thành" trong đoạn đầu tiên.

Nhìn chung, mỗi mô hình đều có thế mạnh riêng, với gemma-2-27b nổi bật về sự khéo léo về ngôn ngữ và Phi-3-medium-128k để xử lý các văn bản dài.

Kết thúc

Gaia cung cấp một cách dễ dàng để lựa chọn và sử dụng các LLM nguồn mở khác nhau trong các ứng dụng đại lý của bạn để tận dụng tối đa các khả năng được tinh chỉnh của chúng cho các tác vụ cụ thể.

Khi bạn đã có một nút Gaia cục bộ và đang hoạt động, bạn có thể chia sẻ nó với người khác và kiếm tiền bằng cách tham gia mạng Gaia !