Приготовьтесь к запуску 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."
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."
TechCrunch
OpenAI's app store for GPTs will launch next week | TechCrunch
OpenAI plans to launch its app store for GPTs, the GPT Store, sometime soon. But there's no word on revenues sharing.
❤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 правда хуже. С увеличением вычислительного бюджета перформанс продолжает расти, не понял только почему он более шумным становится.
Кажется, работа -- верх открытости. Весь код обучения, промежуточные чекпойнты, все детали обучения доступны.
Респект!
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 правда хуже. С увеличением вычислительного бюджета перформанс продолжает расти, не понял только почему он более шумным становится.
Кажется, работа -- верх открытости. Весь код обучения, промежуточные чекпойнты, все детали обучения доступны.
Респект!
arXiv.org
TinyLlama: An Open-Source Small Language Model
We present TinyLlama, a compact 1.1B language model pretrained on around 1 trillion tokens for approximately 3 epochs. Building on the architecture and tokenizer of Llama 2, TinyLlama leverages...
👍40🔥14❤7
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 Шиншиллы, чтобы учесть в них массовый инференс и выступают за более долгое обучение меньших моделей. В формулировке они исходят из того, что количество запросов на инференс не зависит от размера модели (при условии одинакового качества).
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🔥3❤2
Цель: минимизация суммарных 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%+.
Тренд на обучение меньших моделей подольше вовсю цветёт и разворачивается!
Задача в работе про Шиншиллу ставилась как “при заданном вычислительном бюджете найти оптимальные 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
gonzo-обзоры ML статей
Продолжаем линию маленьких моделей, Microsoft анонсировал phi-2. https://www.microsoft.com/en-us/research/blog/phi-2-the-surprising-power-of-small-language-models/ We are now releasing Phi-2, a 2.7 billion-parameter language model that demonstrates outstanding…
huggingface.co
microsoft/phi-2 · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
🔥40❤1