ИИ-перевод на своем сервере
Свой машинный перевод на VPS работает без лимитов на символы, не отправляет тексты в чужое облако и стоит только цены сервера. Для документов, приложений и ботов это надежнее и дешевле облачных API.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Зачем переводить локально
Облачные переводчики берут деньги за миллионы символов, режут скорость на бесплатных тарифах и видят все, что ты переводишь. Локальная нейросеть на VPS снимает эти проблемы: переводишь неограниченно, данные не покидают сервер, задержка минимальна.
Есть два практичных движка для CPU: Argos Translate (легкий, офлайн, простой) и модели NLLB/Marian от Hugging Face (качественнее, тяжелее). Начнем с Argos как самого дружелюбного.
Типичные сценарии, где локальный перевод выигрывает у облака: массовая локализация каталога товаров, перевод потока пользовательских сообщений в поддержке, обработка субтитров и документации. Везде, где объемы большие и текст чувствительный, свой сервер и дешевле, и безопаснее.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для ИИ-переводаУстановка Argos Translate
Argos работает офлайн на CPU и ставится одной командой:
apt update && apt install -y python3 python3-venv python3-pip
python3 -m venv ~/mt-venv
source ~/mt-venv/bin/activate
pip install argostranslate
Скачиваем и ставим языковую пару англ-рус из Python:
import argostranslate.package as pkg
pkg.update_package_index()
avail = pkg.get_available_packages()
p = next(x for x in avail if x.from_code=='en' and x.to_code=='ru')
pkg.install_from_path(p.download())
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Первый перевод
После установки пары переводим текст:
import argostranslate.translate as tr
print(tr.translate("The temple of Anubis stands in silence.", "en", "ru"))
Argos держит модели локально в ~/.local/share/argos-translate и не требует интернета после установки. Модели небольшие, а перевод на AMD EPYC у MAATRIX идет практически мгновенно даже для абзацев. Под капотом Argos использует движок CTranslate2 и переводит через промежуточный английский, если прямой пары между языками нет — так одна пара en-ru открывает путь ко многим направлениям.
NLLB для качества
Если нужен более точный перевод и редкие языки, бери NLLB от Meta через transformers. Она знает 200 языков:
pip install transformers torch sentencepiece --index-url https://download.pytorch.org/whl/cpu
pip install transformers sentencepiece
from transformers import pipeline
translator = pipeline("translation",
model="facebook/nllb-200-distilled-600M",
src_lang="eng_Latn", tgt_lang="rus_Cyrl")
print(translator("Knowledge is the light of the soul.")[0]['translation_text'])
Дистиллированная модель на 600M параметров — компромисс между качеством и ресурсами, комфортно живет на CPU-сервере с достаточным объемом RAM.
API-сервис перевода
Оборачиваем переводчик в HTTP-эндпоинт:
from fastapi import FastAPI
import argostranslate.translate as tr
app = FastAPI()
@app.post("/translate")
def translate(text: str, source: str = "en", target: str = "ru"):
return {"translation": tr.translate(text, source, target)}
pip install fastapi uvicorn
uvicorn app:app --host 127.0.0.1 --port 8005
Проверка:
curl -X POST "http://127.0.0.1:8005/translate?text=Hello+world&target=ru"
Пакетная обработка и ошибки
Для перевода целых файлов гоняй текст построчно и складывай результат. Так переводят субтитры, документацию, экспорт базы:
while IFS= read -r line; do
curl -s -X POST "http://127.0.0.1:8005/translate?text=$(python3 -c "import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1]))" "$line")"
done < input.txt > output.txt
- Пара языков не найдена — Argos переводит только установленные пары, en-ru не значит ru-de.
- NLLB грузится долго — модель весит больше гигабайта, прогревай при старте.
- Плохое качество на сленге — переходи с Argos на NLLB для сложных текстов.
- Обрезается длинный текст — режь на предложения, у моделей есть лимит длины входа.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для ИИ-переводаОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Argos или NLLB?
Argos легкий, офлайн и простой — идеален для частых типовых переводов на CPU. NLLB качественнее и знает 200 языков, но требует больше ресурсов.
Работает ли перевод без интернета?
Да. После установки языковых пакетов Argos переводит полностью офлайн, а NLLB кеширует модель локально и не обращается в сеть.
Можно ли встроить перевод в приложение?
Да, через FastAPI-обертку получаешь HTTP-эндпоинт, к которому обращается бэкенд сайта, бот или мобильное приложение.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.