Задать вопрос
@ILoveAsm

Что выбрать за архитектуру LLM для обучения с нуля?

Недавно я понял, что хочу обучить свою llm'ку типа instruct, например как Llama-3.2-..B-Instruct или Mistral(/Mixtral), но встал вопрос о выборе архитектуры. Что же выбрать? GPT2? Llama? LLama-Vision? Mixtral? Или же GPT-3-подобную со sparse attn от сбера? Я долго думал, но к однозначному ответу не пришел. У всех архитектур свои плюсы и минусы.
Из моих задач: обучить с нуля модель до уровня понятных и связных ответов с хоть каким-то смыслом.
Обучающие данные полностью не готовы, но планирую собрать около 15-20гб простого текста и 5-10гб вида вопрос-ответ
Объем потребляемой видеопамяти не важен, собираюсь делать модель не больше 8 млрд параметров, умещу в арендованные видеокарточки, если что извернусь с deepspeed и разделю датасет на маленькие куски по 50мб

Что посоветуете выбрать?
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@rPman
У тебя ошибка в постановке цели - 'обучить с нуля'.

llama3 обучалась на 15Тера-токенах, это примерно на три порядка больше чем в твоих гигабайтах, этого катастрофически мало, для того что бы что то внятное получилось.

Для обучения модели, по мощности сравнимой с gpt3.5 нужно 10^26 степени flops (очень приблизительная оценка, скорее всего занижена, так как все очень зависит от использованного оборудования), посчитайте необходимое количество GPU и энергии, для того что бы достичь этого объема вычислений (для примера бери nvidia a100 80gb считая что ее мощность 20tflops это 2*10^13, да так считать не правильно, и в зависимости от задач число можно как увеличивать в 20 раз так и уменьшать в разы).
------------

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

НО! Ни одна компания, создающая топовые модели не делится исходными данными (это похоже стало по цене сравнимо с затратами на вычисления), а те что делятся - очень слабые, хуже openai gpt3.5 это уже давно стало минимальным эталоном, все что хуже не будет адекватной instruction.

Единственное, где finetuning еще как то можно использовать, - это доработка формата ответа (обучающую выборку собирают в купе с ответами самой модели или анализируя эти данные с ее помощью), а так же для фиксации направления использования (не instruction), например превратить модель в классификатор, ты ей текст, а она тебе ответ - типа сообщение содержит хейт, например буквой ответит).

После тюнинга модели на своих данных, ее нужно продолжить дообучать (из gpt35 так сделали gpt4), с помощью RLHF, это когда куча не дешевых людей (потому как дешевых уже давно заменяют другой моделью, например openai) анализируют ответы и помечают где модель ответила правильно а где нет, еще лучше когда дают оценку, или выбирают лучший из нескольких.

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

p.s. резюмирую, если у тебя в кармане нет порядка $10кк а скорее всего в десятки раз больше, то 'с нуля' обучать свою модель у тебя не получится.

В мире не так много компаний которые в принципе на это способны - в россии например на это способны богатейшие только сбербанк (гигачат) и яндекс (yandex gpt), последние этим занимаются давно (за долго до появления chatgpt) и единственная их проблема - не хватает денег (и блокировка доступа к покупке оборудования), и возможно специалистов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы