Какую архитектуру LLM (языковой модели большого размера) лучше всего выбрать для обучения с нуля?

Недавно мне пришло в голову, что я хочу обучить свою модель LLM в стиле instruct, например Llama-3.2-..B-Instruct или Mistral(/Mixtral). Однако я столкнулся с дилеммой выбора архитектуры. Какую архитектуру стоит выбрать: GPT-2, Llama, LLama-Vision, Mixtral или какую-то GPT-3-подобную с разреженным вниманием от Сбера? Я долго размышлял над этим вопросом, но так и не пришел к однозначному решению, так как у каждой из архитектур есть свои плюсы и минусы. 

Мои цели таковы: обучить модель с нуля до уровня, при котором она сможет давать понятные и связные ответы с определенной степенью смысла. В данный момент обучающие данные не полностью готовы, но я планирую собрать около 15-20 ГБ простого текста и 5-10 ГБ данных в формате вопрос-ответ. Объем потребляемой видеопамяти для меня не является критичным, поскольку я собираюсь ограничиться моделью в 8 миллиардов параметров и воспользуюсь арендованными видеокартами. Если возникнут сложности, я готов использовать DeepSpeed и разделить датасет на более мелкие куски размером по 50 МБ. 

Какую архитектуру вы посоветуете выбрать для этой задачи?
  • 18 ноября 2024 г. 12:23
Ответы на вопрос 3
Выбор архитектуры для обучения языковой модели большого размера (LLM) зависит от множества факторов, включая цели, доступные ресурсы и особенности архитектур. Вот несколько рекомендаций, которые могут помочь вам в выборе:

1. **LLaMA**: Модель LLaMA, особенно в варианте "Instruct", может быть хорошим выбором, так как она была создана с учетом задач, связанных с вопросами и ответами, и предоставляет высокую производительность при относительно компактной архитектуре. Если ваш фокус — обучение модели для выполнения инструкций и понимания языка, эта модель может оказаться весьма эффективной.

2. **Mistral**: Mistral и его вариации (включая Mixtral) также представляют интерес. Они предлагают улучшенное поведение на заданиях и обычно могут хорошо справляться с требуемыми задачами. Если вы хотите экспериментировать с архитектурой, механизмы Mixtral (разреженное внимание) могут предоставить преимущества при обработке больших контекстов.

3. **GPT-2 и GPT-3**: Эти модельные архитектуры хорошо изучены и обладают обширным сообществом, что облегчает получение поддержки и ресурсов. Однако они могут быть менее оптимизированы для задач инструкции по сравнению с LLaMA или Mistral.

4. **Оцените доступность данных и качество**: Учитывая, что вы собираетесь использовать текстовые данные и данные в формате Вопрос-Ответ, обращайте внимание на качество этих данных. LLaMA и Mistral могут быть более эффективными при работе с более специализированными первичными данными, что может привести к лучшим результатам в вопросах и ответах.

5. **Инструменты для обучения**: Использование DeepSpeed для распределенного обучения может помочь вам работать с большими объемами данных и моделей. Убедитесь в наличии необходимых ресурсов и оптимизированной инфраструктуры.

6. **Опыт и поддержка сообщества**: Если вы только начинаете, рассмотрите модели, у которых есть активное сообщество и множество обучающих материалов, как, например, у LLaMA или GPT. Это может существенно упростить процесс.

На основании перечисленного, **я бы рекомендовал начать с LLaMA или Mistral**, так как они более специализированы для задач инструкции и могут дать лучшие результаты для вашей задачи. GPT-2 и GPT-3 тоже являются хорошими вариантами, но возможны определенные пределы в их способности обрабатывать инструкции на более высоком уровне.
Трансформер, это де-факто стандарт
У тебя ошибка - 'обучить с нуля'. <br/> <br/> 1. llama3 обучалась на 15Тера-токенах, это примерно на три порядка больше чем в твоих гигабайтах, этого катастрофически мало, для того что бы что то внятное получилось. <br/> <br/> 2. Для обучения модели, <b>по мощности сравнимой с gpt3.5</b> нужно 10^26 степени flops (очень приблизительная оценка, скорее всего занижена, так как все очень зависит от использованного оборудования), посчитайте необходимое количество GPU и энергии, для того что бы достичь этого <br/> ------------- <br/> <br/> Что можно сделать и почему скорее всего это то же не получится и почему это тоже будет дорого - можно взять уже обученную (модели с пометкой <b>completion</b> а не instruction) модель и дообучить на своих данных. Если делать это в лоб то качество работы результата значительно упадет, если исходные данные будут хоть немного противоречить (не совпадать) с изначальной обучающей выборкой (есть алгоритмы анализа обучающей выборки на сравнение с исходной). Ни одна компания, создающая топовые модели не делится исходными данными (это похоже стало по цене сравнимо с затратами на вычисления), а те что делятся - очень слабые, хуже openai gpt3.5 это уже давно стало минимальным эталоном, все что хуже не будет адекватной instruction. Единственное, где finetuning еще как то можно использовать, - это доработка формата ответа (обучающую выборку собирают в купе с ответами самой модели или анализируя эти данные с ее помощью), а так же для фиксации направления использования (не instruction), например превратить модель в классификатор, ты ей текст, а она тебе ответ - типа сообщение содержит хейт, например буквой ответит). <br/> <br/> После тюнинга модели на своих данных, ее нужно продолжить дообучать, с помощью RLHF, это когда куча не дешевых людей (потому как дешевых уже давно заменяют другой моделью, например openai) анализируют ответы и помечают где модель ответила правильно а где нет, еще лучше когда дают оценку, или выбирают лучший из нескольких. <br/> <br/> Т.е. тебе нужна база вопросов, это еще одна обучающая выборка (специально подготовленная), скорее всего это еще одна причина, почему существуют сайты типа чат арены, где 'за бесплатно' у народа собирают огромную базу вопросов и их бенчмарков. <br/> <br/> p.s. резюмирую, если у тебя в кармане нет порядка $10кк а скорее всего в десятки раз больше, то 'с нуля' обучать свою модель у тебя не получится. <br/> <br/> В мире не так много компаний которые в принципе на это способны - в россии например сбербанк (гигачат) и яндекс (yandex gpt), последние этим занимаются давно (за долго до появления chatgpt) и единственная их проблема - не хватает денег, и возможно специалистов.
Похожие вопросы