Pull to refresh
5
0
Александр@inkln

User

Send message

Не то чтобы какая-то отдельная магия, специальных статей не подскажу.

На стыке в основном классические алгоритмы ml и зрения. Смысл был скорее в том, чтобы аккуратно их переписать на gpu, а так же "подружить" с OpenXLA (https://openxla.org/xla). OpenXLA - замечательный фреймворк, который помогает собирать довольно хорошие по производительности gpu ядра на основе не сильно сложного для разработчика кода.

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

Дальше говорю по состоянию мира открытых или публично доступных LLM на примерно конец прошлого декабря:

Поведение LLM модели очень сильно зависит от используемых токенизаторов, а токенизаторы при обучении в основном видят только чистый текст. Случайная небольшая ошибка от OCR, например "ворона"->"ворсна" вносит значительное изменение в результат работы токенизатора и смысл входа в значительной мере теряется.

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

Me:
Сколько букв "а" в слове "аааааааааа"?

Some LLM (32B):
В слове "аааааааааа" 9 букв "а".

На самом деле 10, ошибка из-за того, что после токенизации появляются токены "аа, ааа" количество которых сложно связано с ожидаемым ответом.

Если же "помочь" токенизатору модели, то все сразу станет просто:

Me:
Сколько букв "а" в слове "а а а а а а а а а а"?

Some LLM (32B):
В этой строке 10 букв "а".


False positive слова, пришедшие не совсем из контекста, а так же случайно перепутанный порядок, например, абзацев в общем тексте, обычно большими моделями обрабатываются нормально.

Information

Rating
Does not participate
Registered
Activity

Specialization

Бэкенд разработчик, ML разработчик
Ведущий