LINUX.ORG.RU

Локальная ИИ модель и встроенный перевод

 , ,


0

1

Прочитал данный комментарий (где к ИИ-агенту на основе локальной модели делается запрос на русском языке) и подумал — а ведь какую-то часть модели занимает «встроенный переводчик» с одного языка на другой. И этот переводчик не может не потреблять часть ограниченных вычислительных ресурсов.

Возникли вопросы:

  • Существуют ли аналогичные только англоязычные модели?
  • И даёт ли использование таких моделей (если они есть, конечно) заметный профит?

Обсудил эту тему с ИИ (в гугл-поиске)

«Однако важно понимать: сейчас практически невозможно найти современную модель, которая бы «не знала» русский язык совсем. Даже крошечные модели обучаются на гигантских массивах данных из интернета, где русский текст неизбежно присутствует.»

Вот лучшие варианты для слабых ПК с акцентом на английский язык:

  1. Microsoft Phi-3 Mini (3.8B параметров) Это «карманный» гигант. Она невероятно мала, но по качеству английского языка соперничает с моделями в два-три раза больше.
  • Почему она: Занимает около 2.2 ГБ оперативной памяти (в квантованном виде 4-bit).
  • Реакция на русский: Она его понимает, но отвечает на нем плохо. Это максимально близкий вариант к «англоцентричной» модели, которая не тратит ресурсы на качественную мультиязычность.

Как заставить их «забыть» русский?

Если ваша цель — экономить ресурсы и не давать модели переключаться на русский, используйте следующие хитрости при запуске:

System Prompt: В поле системных инструкций жестко пропишите: "You are an English-only assistant. Under no circumstances should you use or respond to any language other than English."

Спросил: А существуют ли способы (дистилляция?) убрать мультиязычность из существующей модели?

Суть ответа:

Для обычного пользователя это крайне трудозатратный процесс (нужны GPU для переобучения/дообучения). Гораздо проще найти уже «обрезанные» версии на Hugging Face.
Что искать:
Ищите модели с припиской «English-only» или «Monolingual».

Например, существуют версии Llama-3-8B-English, где из токенизатора вырезали всё лишнее. Такие модели работают быстрее и точнее в рамках одного языка, так как у них нет «паразитных» ассоциаций между похожими словами в разных языках.
★★★★★

Последнее исправление: greenman (всего исправлений: 4)

«чтобы экономить ресурсы, добавьте в промпт еще текста»

Отличный план, Уолтер, если я правильно понял :)

router ★★★★★
()

и подумал — а ведь какую-то часть модели занимает «встроенный переводчик»

Нет там никакого переводчика. Оно не "переводит", просто к значениям привязаны токены из разных языков. Считай, оно полиглот.

Существуют ли аналогичные только англоязычные модели?

Раньше только такие и были. Сейчас уже вряд ли.

И даёт ли использование таких моделей (если они есть, конечно) заметный профит?

Нет.

И предложенное решение лучше не делает, это лишнее отвлечение модели на мусор, не относящийся к целевому вопросу. Ну и дополнительное забивание контекста этим мусором (если это reasoning-модель, она ещё и "думанием" контекст засрёт, каждый раз упоминая про языки, и ещё больше себя путая).


Какую задачу ты пытаешься решить?

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

это лишнее отвлечение модели на мусор, не относящийся к целевому вопросу

ИМХО, это все же не мусор, а уточнение запроса. Но к экономии точно не относится

router ★★★★★
()
Ответ на: комментарий от mord0d

Эх, жаль что @Obezyan больше нет… У него получается гораздо лучше объяснять вещи простыми словами.

mord0d ★★★★★
()

а ведь какую-то часть модели занимает «встроенный переводчик» с одного языка на другой

Это очень большое натягивание или упрощение. Можно, конечно, и так выразиться, но на самом деле там нет никакого переводчика, LLM «угадывает, какое слово должно идти после предыдущего» (тоже упрощение некоторое, там не слова, а токены и т.д., но нам тут это не принципиально). Если модель обучена на текстах на разных языках, то там будут и токены из всех языков, и «понимать» она их будет тоже все. Какой-то отдельной функции переводчика для этого не нужно.

И этот переводчик не может не потреблять часть ограниченных вычислительных ресурсов.

Тоже неверно.

Если ваша цель — экономить ресурсы и не давать модели переключаться на русский, используйте следующие хитрости при запуске:

Глупость.

Единственный ресурс, который можно сэкономить на отсутствии поддержки любого языка кроме английского — память (в широком смысле — и оперативная и для хранения модели). Модель, обученная только на английских текстах будет меньше весить, соответственно занимать меньше места на HDD и в оперативной памяти. Но это именно размер всей модели. Промптами ты его, естественно, не уменьшишь. А ресурсов так потребляться будет наоборот чуть-чуть (совсем незначительно, но всё же) больше — больше токенов в инструкции.

Если цель сэкономить память — надо обучать модель с нуля, без использования текстов на языках, отличных от английского. При этом на обучение потребуется потратить на несколько порядков больше вычислительных ресурсов, чем на использование. Если оно тебе прям вот очень надо — можешь заняться.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от router

это все же не мусор, а уточнение запроса.

Если это в запросе от юзера — да.

Но в системном промпте это явно мусор, потому что модель каждый раз будет возвращаться к этой небольшой детали, и в "рассуждении" (блоке <think>) будет регулярно встречаться что-то в духе «О, а ещё мне нужно писать на английском, а не на других языках…», а потом снова парсить контекст, видеть всё больше про языки и в итоге в контексте будет так много про языки, что оно начнёт бредить.

Но к экономии точно не относится

И даже наоборот.
Во-первых это минус контекст (30-40 токенов в системном промпте про языки — ≈200 токенов в "рассуждении" модели), во-вторых минус время на генерацию "рассуждения".


Если нужен ответ на английском, просто в конце запроса пишем “Answer in English.”, Всё.

mord0d ★★★★★
()
Ответ на: комментарий от dataman

Как же грустно от вот этого очеловечивания «ИИ».

Не вижу ничего грустного в использовании таких оборотов в речи. Люди всегда «очеловечивают» инструменты в речи, и это вовсе не значит, что они всерьёз верят, что те «живые». Когда человек говорит «мой 3D-принтер очень капризный (привередливый, разборчивый) в том что касается качества пластика», или «пора телефон менять, старый стал мне мозги „иметь“ (чаще с другим словом)», или «компилятор ругается на ошибку», или даже «сварочный аппарат — мой лучший друг в этом деле» — ты же не думаешь, что все эти люди всерьёз считают принтер, телефон, компилятор или сварочный аппарат равными себе? Точно так же и «обсудил с ИИ». Здесь даже мягче — не ИИ же что-то там сделал, являясь субъектом, а сам говорящий что-то «обсудил». Просто людям так говорить привычнее, и для собеседника понятнее. Я даже больше скажу, по-моему, это скорее даже украшает язык, добавляя ему метафоричности, а не делает мне грустно.

CrX ★★★★★
()

у многих моделей словарь примерно 130к токенов и это покрывает и русский и китайский, но дело в том что для английских слов почти всегда одно слово один токен, а для русских может на одно слово и пять токенов быть.

тут важнее как обучили. модель не язык знает, а свой словарь и как в этом словаре одни токены другими продолжать.

все эти даже 7-8B модели это как недресеррованные животные, тебе нужен свой dataset и натаскать модель на узкую задачу, чтоб не скатывадась в мультиязычность и с темы не улетала. lora qlora шары нет сделать десяток тысяч фраз вопрос ответ по теме не так и просто.

ну или совет добавте в промт больше теста тоже рабочий. общаться как 70-80B модель она не сможет что не делай.

cylon17
()
Последнее исправление: cylon17 (всего исправлений: 1)
Ответ на: комментарий от CrX

Единственный ресурс, который можно сэкономить на отсутствии поддержки любого языка кроме английского — память (в широком смысле — и оперативная и для хранения модели). Модель, обученная только на английских текстах будет меньше весить, соответственно занимать меньше места на HDD и в оперативной памяти.

Если модель меньше, то и вычислений на каждый токен будет меньше - соответственно, как и хочет автор, будут экономиться все ресурсы.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Да, это правильное замечание.

Суть оно не сильно меняет, впрочем — дополнительный промпт ничего в этом плане не даст, нужна именно модель, обученная только на английском.

CrX ★★★★★
()
Ответ на: комментарий от CrX

А вообще интересно, какая там экономия получится. Если выкинуть все неанглийские токены (это не только русские же, языков много, в т.ч. всякие китайские иероглифы), количество известных модели токенов сократится в разы, как это скажется на количестве её параметров? Там не степенная ли зависимость?

firkax ★★★★★
()

А мне кажется наоборот, было бы круто, если бы модель обучалась на миллионах языков(у нас столько нет к сожалению), чтобы «строила у себя в голове» более абстрактные абстракции, не привязанные к определённому набору символов.

Bad_ptr ★★★★★
()
Последнее исправление: Bad_ptr (всего исправлений: 1)
Ответ на: комментарий от firkax

Если выкинуть «лишние» токены, то придётся и из обучающего датасета выкинуть данные, которые без таких токенов не закодировать. Датасет получится меньше (очевидно) и хуже (возможно). Хуже потому, что из-за выборки по условию моноязычности можно выкинуть более качественные тексты, написанные более образованными людьми на более сложные/широкие темы. Например, выкидываешь ‘ê’ - значит выкидываешь половину Толстого с его французскими вставками.

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)
Ответ на: комментарий от legolegs

Языков не миллионы, но немало всё-ж таки

все сиподобные языки сиподобны и работают в «императивной парадигме»
так же как и все «европейские», коих большинство среди «распространённых»

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

LLM знают и языки помимо си, тот же SQL. И естественные языки не ограничены европейскими, от того же китайского никуда не деться.

PS затребовал тут перевод мана на эльфийский. Слоп, конечно, но всё равно впечатляет, при том, что это с lmarena, а значит голая модель без поиска (какая модель не знаю, кодовое имя «petra»):

CAT(1)                    ELDARIN NÓTESSË                    CAT(1)

ESSË
       cat - hosta parmar ar tencë i sanya etelyanna

NÓTESSË
       cat [CILMË]... [PARMA]...

QUETES
       Hosta i parmar i sanya etelyanna. 
       Írë parma úva, hya parma ná '-', cenda i sanya tulta.

       -A, --show-all
              imya ve -vET

       -b, --number-nonblank
              nótë notienna i línar yassen ea parma, vihta -n

       -e     imya ve -vE

       -E, --show-ends
              tana '$' i metta ilya línëo

       -n, --number
              nótë notienna ilya línar

       -s, --squeeze-blank
              hosta rimba cumna línar minë erya

       -t     imya ve -vT

       -T, --show-tabs
              tana '^I' i tabuli

       -u     (úcarna) – alahasta

       -v, --show-nonprinting
              tana i lá tencanwa tengwar ve ^X ar M-x

       --help tana i tulcë ar metta

       --version tana i olossë ar metta

AMBË QUETES
       Lerya loicor i arta parmao mi http://www.gnu.org/software/coreutils/

TENGWELË
       Tengarë sina nótessë: <http://translationproject.org/team/>

HARYALË
       Copyright © 2016 Free Software Foundation, Inc.
       Sina ná mirwa software: lelyalye carë ar anta vista ter GNU GPL v3+ 
       <http://gnu.org/licenses/gpl.html>. Úmëa varta, ve i ná carna.

AMBË CENNIER
       tac(1)

       Sina nótessë ná quanta nótessë i GNU coreutils 8.25. 
       Mitya info ar cenda i quanta parma man(1)cat.
legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)

Да, и по теме. Как тут уже справедливо сказали, ключевое влияние на потупение модели при работе с русским языком оказывает тот факт, что токены для не-английского языка закодированы не оптимально и занимают больше места в контекстной памяти модели. Ни слов ни букв LLM не понимают, они понимают токены и этот словарь токенов создаётся и фиксируется до обучения модели, так что тут ничего не поделать, кроме того, чтобы писать промпты на английском вместо русского в случаях, когда ты на это способен.

Но кривой неграмотный английский с опечатками заставляет модель давать чуть худшие результаты, чем хороший английский, так что может быть лучше грамотно написать на родном языке, чем страдать с ингришем

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)

Какая-то борьба с воображаемыми ветряными мельницами. Ну общайся с моделькой на английском, сэкономишь ~20-40% контекста в текстовой сессии без reasoning-режима. Это в натуральном выражении какие-то сотни килобайт - первые мегабайты в оперативке.

Для слабых ПК - оптимизированные модельки и инструменты запуска. Нормальный подбор стека для инференса, вдумчивый выбор LLM-ки, настройка работы с памятью - дадут на порядки больше эффекта, чем поиск и уничтожение несуществующих «переводчиков».

ivbor
()

У меня deepin при установке сказал, мол, я, конечно, английский понимаю, но только общение на китайском даст все возможности.

С русским там совсем плохо, впрочем, отвечать по-русски оно могёт.

tiinn ★★★★★
()

токены и модель это сто тысяч токенов против миллиарда или сотни миллиардов параметров

Английский: около 500k слов в словаре, базовый запас 20-30k слов, так что словарь в сто тысяч токенов который покрыл еще русский и китайский и все языки он и так маленький :)

никто на токенах не экономит алгоритмы перевода текст в токены устоялись, да на русском контестное окно быстрее заполняется так как на слово больше токенов, но это не то место где можно что-то выиграть.

по ресурсам выбираешь квантификацию и размер модели (количество параметров)

cylon17
()

Существуют ли аналогичные только англоязычные модели?

Существует, например, qwen3.5-0.8b, но оно тупоооое.

И да, оно не переводит, оно знает. Судя по утилизации токенов нет особой разницы между запросом на русском и английском.

IPR ★★★★★
()
Ответ на: комментарий от dataman

И правда, человеки в среднем куда тупее, особенно в сравнении с передовыми моделями

lovesan ★★☆
()
Ответ на: комментарий от dataman

Как же грустно от вот этого очеловечивания «ИИ».

Почему? Если ИИ - это всего-лишь биты и байты, то и мы так-то всего лишь протоны, нейтроны и электроны.

IPR ★★★★★
()
Ответ на: комментарий от IPR

Судя по утилизации токенов нет особой разницы между запросом на русском и английском.

20-30% в русском языке добавляется на вход и выход в Qwen, в других моделях даже больше

One ★★★★★
()

Скорее всего идея так себе.

Во-первых, есть мнение, что многомерность прокачивает мышление и даёт больше, чем просто сумма. Возможность рассуждать на разных языках, возможность рассуждать в нескольких модальностях (текст, изображения и т. д.). Есть гипотеза, что модели проигрывают людям в том числе потому что у нас больше модальностей для построения ассоциаций. Чем больше осмысленных нейронных связей, тем лучше (а если проводить параллель с тем, что знание нескольких языков снижает риски нейродегенеративных заболеваний у людей, можно предположить, что у LLM знание нескольких языков может повышать их устойчивость к квантизации). Так что модель потупеет.

Во-вторых, если модель о чём-то рассуждает не на языке запроса, значит в обучающей выборке больше материалов на том языке. Если эту часть датасета отрезать, то модель опять же потупеет, потому что обучающих материалов на английском от этого больше не станет.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 4)
Ответ на: комментарий от mord0d

Нет.

А точно нет? Вот в эмбеддинге разница есть.

bge-m3-en-ru:latest 1dbcde8cc92f 407 MB 2 months ago
bge-m3:latest 790764642607 1.2 GB 2 months ago

ModelAvg Latency (ms)Throughput (char/s)
bge-m3-en-ru:latest162.41199.1
nomic-embed-text-v2-moe:latest199.1978.1
bge-m3:latest263.5739.1
snowflake-arctic-embed2:latest284.2685.2
KillTheCat ★★★★★
()
Ответ на: комментарий от dataman

Как же грустно от вот этого очеловечивания «ИИ».

Чтобы не было грустно, надо вводить жесткие правила на форуме, и этот идиотизм пресекать на корню уже пора!

James_Holden ★★★★★
()
Последнее исправление: James_Holden (всего исправлений: 1)
Ответ на: комментарий от router

Ты не уточняешь запрос указаниями мелких технических деталей как модель должна делать reasoning.

Это что-то типа «посчитайте этот пример обязательно без калькулятора». Если вы не в школе, где цель не эффективность решения, а практика, то это не даст ничего хорошего.

Если исполнитель потянулся к калькулятору, значит так он выдаст ответ быстрее. Если нейросеть полезла рассуждать на другом языке, значит у неё в датасете было больше релевантного контента по теме задачи на этом языке и так она выдаст более качественный ответ.

С тем же успехом можно просить нейросеть рассуждать с помощью предложений не короче 5 слов или начинать каждое предложение на букву «А». Это тупо добавление ещё одной задачи параллельной основной задаче. Две задачи будут выполнены менее эффективно, чем одна.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от IPR

Так я ровно об этом. Тулзы - это не свойство, не фича модели. Тулзы даются через какой-то harness-клиент. И, если они работают криво, дело не в модели, а в «агенте».

ivbor
()
Ответ на: комментарий от ivbor

Смотри: есть две модели у одной пики точёные qwen3.5-4b и granite4.1-4b. Первая при запросе из одного и того же агента начинает уходить в loop, подсирать иероглифами или тупо превышать заданное количество токенов. Вторая просто работает. И это не только с tools, но и в режиме обычного чата.

// А если честно, то все китайские LLM - говно.

IPR ★★★★★
()
Ответ на: комментарий от mord0d

Исправил. Не благодари.

Ну не скажи. Мне вчера чятГПТ с первого раза, больше итераций не было, написал годный скрипт в режиме «Рассуждение». И думал он над ним 2 минуты 20 секунд. Сколько бы я писал такую простыню, - представить страшно.

// И да, скрипт рабочий.

IPR ★★★★★
()
Последнее исправление: IPR (всего исправлений: 1)
Ответ на: комментарий от IPR

Сколько бы я писал такую простыню, - представить страшно.

Чем ниже опыт, тем выше кажется качество кода от LLM. ^_~

mord0d ★★★★★
()

Т.е. вместо того чтобы разумно формулировать запрос, прямо прося нейронку делать по существу, не распыляясь, вы предлагаете вырезать язык? Дистилляты все в основном кал, т.к. они обучаются не на чистых данных, а на продукте генерации нейронок, порой ещё более грубо впитывая их недостатки. Даже затюненные модели сколько наблюдал почти всегда в моих сценариях ведут себя хуже оригинальной модели, что логично, т.к. по мимо скармливания данных нужна валидация данных, бенчмарки и прочее, что как я понял почти никогда не делают(очень редкие модели снабжают обзором «до/после», мне вовсе пока таких не попадалось). По мне проблему вы выдумали, т.к. даже тот факт что кириллица в два раза больше занимает в токенах - вам во-первых никто не запрещает с ней общаться на английском получая соответствующую выдачу, во-вторых наличие русскоязычных данных только улучшает обобщение и «кругозор» модели, чисто англоязычная модель не факт что будет лучше даже в чисто лингвистических вещах, т.к. напомню, что англоязычные тексты не идеальны и порой там в выборке могут быть сочинения уровня российского второклассника или просто куча текстов от не носителей языка, от чего «чистоты» вы всё равно не получите. Поэтому если боитесь за токены, то правильно формулируте запросы и не забывайте про роль и прочие улучшения ну и на английском пишите, если же локально то разницы я особо не вижу, да может на английском чуть быстрее, но маленькие модели и так быстрые, а большие что так что эдак ждать, тем более что думают модели в основном на английском.

AKonia ★★★
()
Ответ на: комментарий от ivbor

Ну вообще-то отчасти и фича, т.к. модели специально обучают генерить инструментальные блоки определённого формата, если в начале системного промпта они также были корректно описаны. Если модель не будет им обучена, она ничего генерить не будет. Собственно даже банальная генерация json это также дополнительная категория данных из обучающей выборки, в противном случае качество генератов было бы максимально поганым, подобное же обучение нужно для стабилизации избранных сценариев. Собственно отчасти именно игрой с правильным дообучением плюшкам и балансом актуальные модели больше всего и соревнуются, т.к. архитектура меняется минимально.

AKonia ★★★
()

Если LLM не понимает русский, то она и в целом тупая и бесполезная.

Не нужно.

wandrien ★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария