Обновить

Комментарии 9

Спасибо за статью!
Сколько времени ушло на обучение и на каком железе?

На эксперименты, как уже написал, ушло полгода. Но это в режиме "хобби": вечера, выходные. А если брать чистые финальные результаты, то суммарно около 120 часов (декодер+ядро) на одиночной 5090. Больше всего времени уходит на обучение именно декодера, примерно 3/4 от всего.

Не пробовали генерировать датасет другой - большой коммерческой моделью, типа deepseek?

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

А латентная последовательность как генерируется? По тем же принципам - трансформер с механизмом внимания предсказывает следующий латент?

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

извиняюсь, похоже не сразу понял суть вопроса ) Видимо речь о ядре модели? Да, там трансформер, который по последовательности латентов предсказывает следующий.

Подскажите, плиз, степень эквивалентности вашего решения decoder-only LLM, то есть можно ли считать Начальные слои обычной LLM аналогом (в операционном смысле) вашего encoder-а, а выходные слои аналогом decoder-а, промежуточные же занимаются отображением входных блоков смысла на выходные блоки?

Аналогия, естественно, не один в один, но хочется понять степень близости.

Плюс, если аналогия соответствует, на сколько обучение LLM на 2 миллиарда параметров с неким заимствованием, аналогичным вашему, ускорится/замедлится при тех же ресурсах? Вы оценивали такую альтернативу? Хотя понятно, что "аналогичное заимствование" предполагает доступ к результатам кого-то, кто обладает возможностью использовать много GPU. Но тем не менее, такое сравнение даст возможность сравнивать две архитектуры, более точно указывать плюсы и минусы. Возможно вы уже даже сравнивали, наши плюсы вашего решения?

Исключительно для задания шкалы сравнения: LLM на 4 миллиарда параметров может очень немало, разительно отличаясь в лучшую сторону от лучших ответов вашего решения. Хотя, с другой стороны, ваших усилий, конечно же, недостаточно для столь качественной подготовки обучающих данных, поэтом сравнивать результаты "в лоб" некорректно.

Эквивалентность только на общем функциональном уровне - генерировать текст ) А фактически эта модель - модульная. Энкодер и декодер отделены от "мышления" и выполняют только свою узкую функцию. Условно говоря, я могу оставить их и заменить ядро на более мощное или с другой архитектурой. Больше возможностей для экспериментов. Тем более, что обучение ядра - более легкий процесс. Кроме того, ядро в этой модели - отдельный языковой модельный процесс и он в латентном языке, а не в токенах. Т.е. обычная модель за проход должна выбрать следующий токен, а данная - формирует латентный "образ", описываемый 50-150 токенами. Конечно у такого подхода есть свои подводные камни и их немало уже попалось за время экспериментов и думаю еще будут, но на данный момент я убедился, во всяком случае для себя, что подход рабочий и буду его дальше развивать.

При ограниченных ресурсах обучать легче модульную систему. Каждый модуль в отдельности - более легкая модель.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации