gonzo-обзоры ML статей – Telegram
gonzo-обзоры ML статей
24K subscribers
2.75K photos
2 videos
3 files
1.36K links
Авторы:
Гриша Сапунов, ранее руководитель разработки Яндекс-Новостей, ныне CTO Intento. Области интересов: AI/ML/DL, биоинформатика.
Лёша Тихонов, ранее аналитик в Яндексе, автор Автопоэта, Нейронной Обороны... Области интересов: discrete domain, NLP, RL.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
❤‍🔥26💯6👍2
"Извинити"
😁185🍾35🍓6🔥4👍3
Приготовьтесь к запуску GPT Store на следующей неделе!

https://techcrunch.com/2024/01/04/openais-app-store-for-gpts-will-launch-next-week/

"GPTs effectively democratize generative AI app creation — at least for apps that use OpenAI’s family of models. In fact, GPTs could kill consultancies whose business models revolve around building what are essentially GPTs for customers."
13🤔5👍3
[Singapore] TinyLlama: An Open-Source Small Language Model
Peiyuan Zhang, Guangtao Zeng, Tianduo Wang, Wei Lu
Статья:https://arxiv.org/abs/2401.02385
Код: https://github.com/jzhang38/TinyLlama

В полку SLM (Small Language Models) прибыло! TinyLlama — это моделька размера 1.1B, обученная на 3T токенов! Для сравнения намного большую 70B Шиншиллу (https://news.1rj.ru/str/gonzo_ML/1216) обучали на меньшем датасете в 1.4T токенов. По рецептам Шиншиллы оптимальное обучение для 1B модели было бы на 20B токенов (https://news.1rj.ru/str/gonzo_ML/1223), а тут 3T, почувствуйте разницу! Кажется, это в первый раз для настолько малой модели.

Из других SLM за последнее время были, например, Phi 1 и 1.5 с 1.3B (https://news.1rj.ru/str/gonzo_ML/1871), Phi 2 c 2.7B (https://news.1rj.ru/str/gonzo_ML/2173) или Gemini Nano с 1.8B и 3.2B (https://news.1rj.ru/str/gonzo_ML/2117).

Это интересное направление, потому что в целом все бегут за большими размерами, и ниша малых моделей недоисследована, а с учётом важности инференса они не менее важны. При этом давно уже есть наблюдения, что можно пообучать модель сильно за пределами compute optimal рецептов Шиншиллы, и это продолжает приносить плоды.

Архитектура классическая, декодер трансформера по рецепту Llama 2 с её же токенизатором. Данные собрали из SlimPajama (почищенный вариант RedPajama) и Starcoderdata, суммарно 950B токенов, так что обучали примерно 3 эпохи. Сэмплили датасеты в пропорции 7:3.

При этом задействовали разные продвинутые штуки и взяли RoPE энкодинги, RMSNorm pre-norm, SwiGLU, grouped-query attention.

Для скейлинга и ускорения задействовали Fully Sharded Data Parallel (FSDP) из Пайторча, свежий Flash Attention 2, заменили fused SwiGLU из xFormers на оригинальный и сэкономили памяти (это, кстати, для меня удивительно, мои первые ожидания, что fused реализация должна быть лучше) -- это позволило уместить модель в 40Gb памяти.

В итоге на A100-40G получили training throughput в 24,000 токенов в секунду. Для обучения на 300B токенов TinyLlama-1.1B требуется 3,456 A100 GPU-часов, в то время как у Pythia эта цифра равна 4,830 и у MPT’s вообще 7,920 часов.

Использовали для обучения Lit-GPT (https://github.com/Lightning-AI/lit-gpt, базируется на nanoGPT). AdamW, cosine learning rate, warmup, gradient clipping.

Обучалось 90 дней на 16 A100-40G GPU. По ценам AWS на p4d (https://aws.amazon.com/ec2/instance-types/p4/) это было бы примерно $140k между прочим.

Результат хорошо бьёт бейзлайны в лице OPT-1.3B, Pythia-1.0B и Pythia-1.4B. На MMLU правда хуже. С увеличением вычислительного бюджета перформанс продолжает расти, не понял только почему он более шумным становится.

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

Респект!
👍40🔥147
This media is not supported in your browser
VIEW IN TELEGRAM
😁12🌚2💯2👍1
Beyond Chinchilla-Optimal: Accounting for Inference in Language Model Scaling Laws
Nikhil Sardana, Jonathan Frankle
Статья:https://arxiv.org/abs/2401.00448

Продолжаем тему про оптимальные режимы обучения LLM с учётом инференса и выход за границы рецептов Шиншиллы.

Инференс -- основной этап жизненного цикла большинства моделей. В области software engineering это полностью аналогично этапу эксплуатации программы, именно там она проживает большую часть своей жизни. Разработка и обучение -- это так, короткий момент детства. Особенно это важно для открытых моделей, да и для закрытых тоже, когда они деплоятся на кучу устройств.

Суперзакрытая GPT-3 в 2021 генерила 4.5B слов в день (https://openai.com/blog/gpt-3-apps), а у Character.ai в конце 2022 эта цифра была 1B (https://blog.character.ai/introducing-character/). После запуска ChatGPT и с новыми улучшенными GPT-3.5 и 4 Turbo цифры наверняка значительно выше. Плюс если перевести в токены, то это ещё раза в полтора надо умножить для английского (который, наверное, основной язык, для других эта цифра заметно выше).

Вообще, если предположить, что популярная модель генерит 10B токенов в день (допустим, что токены промпта сюда включены), то при обучении на 3T токенов (как TinyLlama, https://news.1rj.ru/str/gonzo_ML/2251) цифры обработанных токенов сравняются через 300 дней. При нынешней скорости прогресса, за год модель может успеть и задепрекейтиться… Так, GPT-4 вышла в марте 2023 (https://news.1rj.ru/str/gonzo_ML/1383), а более новая GPT-4 Turbo в ноябре 2023 (https://news.1rj.ru/str/gonzo_ML/2055), и она в целом лучше и, что ещё более важно, сильно дешевле старой модели. Оставляем за скобками, что обучены они были ещё сильно раньше, и что для обучения новой модели может использоваться старая.

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

Первый большой прорыв в поиске оптимальных режимов (с точки зрения вычислительного бюджета, размера модели и количества токенов в обучении) произошёл в работе про Chinchilla (https://news.1rj.ru/str/gonzo_ML/1216). После той работы многие начали использовать найденные в ней рецепты, где количество токенов должно скейлиться в той же пропорции, что и число параметров модели. Некоторые модели при этом уже выходили сильно за этот рецепт, те же LLaMa и Llama 2. На обучении различных моделей было видно, что графики лосса и качества решения downstream задач не выходят на плато, можно продолжать и дальше.

В этом месте возникает логичный trade-off, 1) обучить большую модель по [уже] классическим рецептам Шиншиллы, или 2) обучить модель поменьше размером, но на большем числе токенов. Если итоговое качество одинаковое, то у второго варианта есть выигрыш в инференсе -- сэкономим кучу ресурсов, а может также и откроем новые рынки, если модель можно гонять на устройствах меньшей мощности, куда большая модель не лезет.

Очень прав был Ричард Хэмминг, когда он рассматривал эволюцию железа, софта и приложений в контексте экономики (если ещё не читали его “The Art of Doing Science and Engineering”, то это must read, https://press.stripe.com/the-art-of-doing-science-and-engineering):

“Computers have opened the door much more generally to the mass production of a variable product, regardless of what it is: numbers, words, word processing, making furniture, weaving, or what have you. They enable us to deal with variety without excessive standardization, and hence we can evolve more rapidly to a desired future!”

Эта цитата, мне кажется, тоже очень в тему того, что сейчас происходит вокруг AI, Foundation Models и LLM в частности.

Возвращаясь к статье, авторы обновляют scaling laws Шиншиллы, чтобы учесть в них массовый инференс и выступают за более долгое обучение меньших моделей. В формулировке они исходят из того, что количество запросов на инференс не зависит от размера модели (при условии одинакового качества).
👍11🔥32
Цель: минимизация суммарных FLOPS на обучение и весь инференс. Для трансформера с N параметров используется стандартная аппроксимация для FLOPS: 6N на токен обучения и 2N на токен в инференсе, соответственно нужно найти argmin 6NDtr + 2NDinf, где Dtr и Dinf -- число токенов в обучении и инференсе соответственно.

Задача в работе про Шиншиллу ставилась как “при заданном вычислительном бюджете найти оптимальные N (параметры) и Dtr (токены), минимизирующие лосс предобучения”.

В текущей работе задача иная “при заданном лоссе найти N и Dtr, минимизирующие стоимость компьюта”. Стоимость компьюта зависит от будущего инференса, так что его надо оценить до обучения.

Полученные графики показывают отношение предлагаемых работой FLOPs, параметров и токенов предобучения к значениям оптимальным для Шиншиллы. Это представлено в виде кривых для разных значений лосса и потребностей в инференсе. Когда потребности в инференсе невелики, то Шиншилла оптимальна.

Например, для модели уровня качества Chinchilla-7B при потребности в инференсе 10^11 токенов оптимальнее обучить 6B модель на 1.18x оригинальных данных. Этот выбор приведёт к уменьшению итоговых FLOPs.

Но интереснее конечно не FLOPs уменьшать, а деньги. На инференсе и на обучении загрузка (Model FLOPs Utilization, MFU) железа очень разная, последовательная генерация приводит к особенно низкой загрузке. К тому же на инференсе можно сделать квантизацию и на том же железе более эффективно это считать. А ещё можно и инференс на другом более дешёвом железе делать…

В обновлённую формулу добавляются MFU обучения и инференса, а также цена за FLOPs, получаются другие кривые (подразумевая обучение на A100-80GB, инференс на A100-40GB с квантизацией INT8 и по ценам Lambda Labs). Короче, можно экономить. В некоторых условиях до 50%+.

Тренд на обучение меньших моделей подольше вовсю цветёт и разворачивается!
8👍4🔥2👏1
This media is not supported in your browser
VIEW IN TELEGRAM
8