Обсуждение LLM, таких как ChatGPT, основных затрат и подходов к оптимизации логического вывода.
Благодаря Реган Юэ вы можете прочитать китайскую версию этой статьи на mp.weixin.qq.com, juejin.cn, segmentfault.com и xie.infoq.cn. »!
В недавнем прошлом машинное обучение считалось сложной нишевой технологией, которую могли понять лишь немногие избранные. Однако по мере того, как приложения машинного обучения становятся все более мощными, интерес общественности растет, что приводит к появлению огромного количества контента, связанного с искусственным интеллектом. Кульминация этого случилась в ноябре 2022 года, когда мы увидели ChatGPT, и продолжилась в марте 2023 года с выходом GPT-4, когда даже самый скептически настроенный человек был удивлен тем, на что способны современные нейронные сети.
Хотя часть этого контента, несомненно, ценна, значительная его часть увековечивает страх и дезинформацию, например распространение идеи о том, что роботы заменят все рабочие места людей. или обнаружение секретных способов заработать огромные суммы денег на нейронных сетях. В результате становится все более важным развеять неправильные представления о машинном обучении и больших языковых моделях и предоставлять информативный контент, помогающий людям лучше понять эти технологии.
Эта статья призвана обсудить важнейший аспект современного машинного обучения, который часто упускается из виду или неправильно понимается — стоимость обучения больших языковых моделей. В то же время мы кратко рассмотрим, что такое LLM, и некоторые возможные методы оптимизации его вывода. Предоставляя исчерпывающие примеры, я надеюсь убедить вас в том, что эти технологии не появляются из воздуха. Получив представление о масштабе данных и лежащих в их основе расчетах, вы лучше понять эти мощные инструменты.
В основном я буду полагаться на недавнюю статью LLaMA от Meta AI из-за ее ясности в смысле количества данных и вычислений команды, используемой для обучения этих моделей. Пост будет разделен на следующие разделы:
- Во-первых, мы кратко рассмотрим что такое современные LLM;
- Затем мы обсуждаем сколько стоит обучение таких моделей;
- В заключение мы кратко рассмотрим некоторые популярные методы оптимизации языковых моделей для логического вывода.
Оставайтесь с нами, пока мы углубляемся в мир больших языковых моделей, и вы увидите, что все очень просто и очень сложно одновременно.
Введение в модели больших языков
Прежде чем мы рассмотрим затраты, связанные с обучением больших языковых моделей (LLM), давайте сначала кратко определим, что такое языковая модель.
Проще говоря, языковая модель — это тип алгоритма машинного обучения, предназначенный для понимания или генерации человеческого языка. В последнее время все более популярными становятся именно генеративные модели — семейство моделей GPT, разработанное OpenAI: ChatGPT, GPT-4 и т. д. (расшифровывается как для Generative Pre-trained Transformer, учитывая Transformerархитектуру, на которой он основан).
Менее популярные, но не менее важные примеры включают GPT-3 (175B), BLOOM (176B), Gopher (280B), Chinchilla (70B) и LLaMA (65B), где B относится к миллиардам параметров, хотя многие из этих моделей также имеют меньшие версии.
О количестве параметров ChatGPT и особенно GPT-4 ничего не известно, но, похоже, это примерно одинаковые цифры.
Эти модели «обучаются» с использованием огромного количества текстовых данных, что позволяет им изучать сложные шаблоны и структуры естественного языка. Однако задача, которую они решают во время обучения, очень проста: они просто предсказывают следующее слово (или токен) в последовательности.
Возможно, вы слышали, что такая модель называется авторегрессионной, что означает, что она использует прошлые результаты в качестве входных данных для будущих прогнозов и пошагово создает выходные данные. Это видно, в том числе, на примере ChatGPT:
Вы можете заметить, что модель генерирует ответ постепенно и фрагментами, которые иногда содержат меньше одного слова. Эти чанки называются токенами и они очень полезны в НЛП, хотя для нас сейчас не так важны.
На каждом временном шаге модель объединяет предыдущий вывод с текущим вводом и продолжает генерировать. Так происходит до тех пор, пока не будет достигнут специальный маркер End of Sequence (EOS). Опустив подсказку и взяв для простоты слова в качестве токенов, процесс можно проиллюстрировать следующим образом.
Этот простой механизм вместе с огромнымколичеством данных (больше, чем любой человек может прочитать за несколько жизней) позволяет модели генерировать согласованные и контекстуально соответствующий текст, имитирующий человеческое письмо.
Обратите внимание, что здесь речь идет только о генеративных моделях. Почему, если есть другие модельные семьи?
Причина довольно проста — задача генерации текста — одна из самых сложных для решения и в то же время одна из самых впечатляющих. ChatGPT набрал 1 миллион пользователей всего за 5 дней — быстрее, чем любое другое приложение до этого, и продолжает в том же духе.
Так называемые кодировщики (семейство моделей BERT ) могут быть гораздо менее увлекательными, но они также могут решать различные проблемы с производительностью на уровне человека и помогать вам с такими задачами, как классификация текста или Распознавание именованных сущностей (NER).
Я не буду приводить конкретные примеры того, что умеют LLM — в интернете их и так полно. Лучший способ получить представление — это попробовать ChatGPT самостоятельно, но вы также можете найти множество интересных ресурсов, таких как Репозиторий удивительных подсказок ChatGPT. Несмотря на впечатляющие возможности, современные модели больших языков имеют некоторые ограничения. К наиболее популярным и значимым из них относятся:
- Предвзятость и статичность. Поскольку LLM обучаются на данных из различных источников, они непреднамеренно узнают и воспроизводят предвзятости, присутствующие в этих источниках. Они также статичны в том смысле, что не могут адаптироваться к новым данным или обновлять свои знания в режиме реального времени без переобучения.
- Понимание и дезинформация. Хотя LLM могут генерировать человекоподобный текст, они не всегда могут полностью понять контекст ввода. Кроме того, авторегрессивный способ генерации выходного текста не запрещает модели генерировать ложь или бессмыслицу.
- Ресурсоемкость. Для обучения LLM требуются значительные вычислительные ресурсы, что приводит к высоким затратам и энергопотреблению. Этот фактор может ограничить доступность LLM для небольших организаций или отдельных исследователей.
Эти и другие недостатки являются активными темами для исследовательского сообщества. Стоит отметить, что область растет настолько быстро, что невозможно предсказать, какие ограничения будут преодолены всего за несколько месяцев — но, без сомнения, возникнут новые.
Одним из возможных примеров является тот факт, что более ранние модели просто росли по количеству параметров, а сейчас считается, что модели меньшего размера лучше обучать дольше и давать им больше данных. Это уменьшает размер модели и стоимость дальнейшего использования модели при выводе.
Таким образом, выпуск LLaMA развязал руки энтузиастам, и эти модели уже запускались локально на компьютерах, Raspberry Pi и даже телефонах!
Имея общее представление о том, что такое LLM, давайте перейдем к основному разделу этой статьи — оценке стоимости обучения больших языковых моделей.
Оценка стоимости моделей машинного обучения в целом и LLM в частности
Для оценки стоимости обучения больших языковых моделей необходимо учитывать три ключевых фактора, из которых состоит любой алгоритм машинного обучения:
- Данные,
- Вычислительные ресурсы и
- Архитектура (или сам алгоритм).
Давайте углубимся в каждый из этих аспектов, чтобы лучше понять их влияние на стоимость обучения.
Данные
LLM требуют огромных объемов данных для изучения шаблонов и структур естественного языка. Оценка стоимости данных может быть сложной задачей, поскольку компании часто используют данные, накопленные в ходе их бизнес-операций, вместе с наборами данных с открытым исходным кодом.
Кроме того, данные необходимо очищать, маркировать, организовывать и хранить эффективно, учитывая масштаб LLM. Затраты на управление и обработку данных могут быстро возрасти, особенно если учитывать инфраструктуру, инструменты и инженеров по обработке данных, необходимых для этих задач.
Чтобы привести конкретный пример, известно, что LLaMA использовала обучающий набор данных, содержащий 1,4 триллиона токенов общим размером 4,6 терабайт!
Меньшие модели (7B и 13B) обучались на токенах 1T, а более крупные (33B и 65B) использовали полный набор данных токенов 1,4T.
Думаю, теперь вы понимаете, что никто не преувеличивает, называя эти наборы данных огромными, и почему десять лет назад это было технически невозможно. Но еще интереснее обстоят дела с вычислительными ресурсами.
Вычислить
Фактический процесс обучения составляет значительную часть бюджета LLM. Обучение больших языковых моделей требует больших ресурсов и выполняется на мощных графических процессорах (GPU) из-за значительных возможностей параллельной обработки. NVIDIA каждый год выпускает новые графические процессоры, стоимость которых достигает сотен тысяч долларов.
Стоимость услуг облачных вычислений для обучения этих моделей может быть огромной и достигать несколько миллионов долларов, особенно с учетом перебора различных конфигураций.
Возвращаясь к статье LLaMA, авторы сообщают, что они обучали самую большую модель 65B в течение 21 дня на двух тысячах графических процессоров с 80 ГБ ОЗУ каждый.
Используемый авторами Графический процессор NVIDIA A100 является популярным выбором для обучения современных нейронных сетей. Платформа Google может предложить такие графические процессоры за 3,93 доллара США в час.
Итак, давайте сделаем несколько быстрых расчетов:
2048 графических процессоров x 3,93 долл. США в час x 24 часа x 21 день =
4,05 миллиона долларов
Четыре миллиона долларов — это бюджет, который не каждый исследователь может себе позволить, да? И это за один проход! Приведу еще один пример: в этой статье оценивается стоимость обучения GPT-3, и авторы получили 355 GPU-лет и 4,6 миллиона долларов.
Возможно, вы слышали, что «нейронные сети очень быстро обучаются на GPU», но относительно чего — никто не говорит.
Они действительно быстро тренируются, принимая во внимание огромный объем вычислений, и без этих графических процессоров они тренировались бы десятилетиями. Так что да, 21 день — это довольно быстро для LLM.
Архитектура (и инфраструктура)
Разработка современных LLM также зависит от работы квалифицированных исследователей и инженеров по разработке архитектуры и правильной настройке процесса обучения. Архитектура — это основа модели, определяющая, как она обучается и генерирует текст.
Для проектирования, реализации и управления этими архитектурами требуются знания в различных областях компьютерных наук. Инженеры и исследователи, ответственные за публикацию и предоставление передовых результатов, могут получать зарплату, достигающую сотни тысяч долларов. Стоит отметить, что набор навыков, необходимых для разработки LLM, может существенно отличаться от набора навыков «классического» инженера по машинному обучению.
Я думаю, теперь вы не сомневаетесь, что обучение LLM - это очень сложная и ресурсоемкая инженерная задача.
Теперь давайте кратко обсудим некоторые методы, позволяющие сделать процесс логического вывода более эффективным и экономичным.
Оптимизация языковых моделей для логического вывода
Действительно ли нам нужна оптимизация?
Вывод относится к процессу использования обученной языковой модели для генерации прогнозов или ответов, обычно в виде API или веб-службы. Учитывая ресурсоемкий характер LLM, важно оптимизировать их для эффективного вывода.
Например, модель GPT-3 имеет 175 миллиардов параметров, что составляет 700 ГБ чисел с плавающей запятой. Примерно столько же памяти займут активации, и помните, что речь идет об оперативной памяти.
Для обслуживания прогнозов без каких-либо методов оптимизации нам потребуется 16 графических процессоров A100 с 80 ГБ памяти каждый!
Несколько популярных методов могут помочь уменьшить требования к памяти и задержку модели, включая параллелизм моделей, квантование и другие.
Параллелизм модели
Параллелизм — это метод, который распределяет вычисления одной модели по нескольким графическим процессорам и может использоваться как во время обучения, так и при выводе.
Разделение слоев или параметров модели на несколько устройств может значительно повысить общую скорость логического вывода и очень часто используется на практике.
Квантование
Квантование включает снижение точности числовых значений модели (например, весов). Преобразовывая числа с плавающей запятой в целые числа более низкой точности, квантование может привести к значительной экономии памяти и ускорению вычислений без существенной потери производительности модели.
Довольно быстро возникает простая идея — использовать числа float16 вместо float32 и уменьшить объем памяти вдвое. Оказывается, можно преобразовать веса модели даже в int8 почти без потери точности за счет того, что они расположены близко друг к другу на числовой прямой.
Другие методы
Поиск способов оптимизации LLM является активной областью исследований, и другие методы включают:
- Дистилляция знаний — обучение небольшой модели студента имитированию поведения более крупной модели учителя;
- Отсечение параметров — удаление из модели избыточных или менее важных параметров для уменьшения ее размера и вычислительных требований;
- И использование таких платформ, как ORT (ONNX Runtime), для оптимизации графиков вычислений с помощью таких методов, как слияние операторов и свертывание констант.
В целом, оптимизация больших языковых моделей для логического вывода является важным аспектом их развертывания. Применяя различные методы оптимизации, разработчики могут гарантировать, что их LLM будут не только мощными и точными, но также рентабельными и масштабируемыми.
Почему OpenAI открыл доступ к ChatGPT?
После всего вышесказанного можно задаться вопросом, почему OpenAI решил открыть доступ к ChatGPT, учитывая высокие затраты, связанные с обучением и инференсом. Хотя мы не можем быть уверены в точных мотивах компании, мы можем проанализировать преимущества и потенциальные стратегические причины этого решения.
Прежде всего, OpenAI приобрел значительную популярность, сделав современные LLM более доступными для широкой публики. Демонстрируя практическое применение больших языковых моделей, компания привлекла внимание инвесторов, клиентов и технического сообщества в целом.
Во-вторых, миссия OpenAI вращается вокруг создания и развития ИИ. Открывая доступ к ChatGPT, компания, возможно, приближается к выполнению своей миссии и готовит общество к неизбежным изменениям. Предоставление доступа к мощным инструментам искусственного интеллекта стимулирует инновации, продвигая область исследований искусственного интеллекта. Этот прогресс может привести к разработке более эффективных моделей, более обширных приложений и новых решений различных проблем. Здесь стоит отметить, что архитектура ChatGPT и GPT-4 закрыта, но это другой разговор.
Хотя расходы, связанные с обучением и поддержкой больших языковых моделей, несомненно, значительны, выгоды и стратегические преимущества, связанные с открытием доступа к этим инструментам, могут перевесить расходы для некоторыхорганизаций. В случае с OpenAI открытие доступа к ChatGPT не только увеличило их популярность и показало себя лидером в области ИИ, но и позволило собрать больше данных для обучения более мощных моделей. Эта стратегия позволила им продвинуть свою миссию и внести свой вклад (в некотором смысле) в более широкое развитие технологий ИИ и LLM.
Заключение
Как мы видели, на стоимость обучения больших языковых моделей влияют различные факторы, в том числе не только дорогие вычислительные ресурсы, но также управление большими данными и опыт, необходимый для разработки передовых архитектур.
Современные LLM имеют миллиарды параметров, обучаются на триллионах токенов и стоят миллионы долларов.
Надеюсь, теперь вы лучше понимаете масштабы обучения и логического вывода больших языковых моделей, а также их ограничения и подводные камни.
Область NLP уже несколько лет переживает свой момент ImageNet, и теперь настала очередь генеративных моделей. Широкое применение и внедрение генеративных языковых моделей может революционно изменить различные отрасли и аспекты нашей жизни. Хотя трудно точно предсказать, как будут разворачиваться эти изменения, мы можем быть уверены, что LLM окажут определенное влияние на мир.
Лично мне нравится недавняя тенденция тренировать «умных», а не только «больших» моделей. Изучая более элегантные способы разработки и развертывания LLM, мы можем раздвинуть границы ИИ и НЛП, открывая двери для инновационных решений и светлого будущего для этой области.
Ресурсы
Если после прочтения статьи вы заинтересовались LLM и хотите узнать о них больше, вот несколько ресурсов, которые могут вам в этом помочь:
- Illustrated Transformer — отличное введение в архитектуру Transformer, которая положила начало большому взрыву НЛП Джея Аламмара;
- Как работает GPT-3 — визуализации и анимации — визуализация процесса авторегрессионного декодирования того же автора;
- GPT в 60 строках NumPy — отличная статья Джея Моди, в которой автор строит свой собственный простой GPT;
- Сделаем GPT: с нуля, в коде, прописано — крутой ролик известного Андрея Карпаты, который работал над Tesla Autopilot в должности старшего директора по ИИ в Tesla;
- Чтобы получить более глубокое представление об этой области, ознакомьтесь с репозиторием Awesome-LLM GitHub для получения более подробного списка ресурсов. Взгляните на Шиншиллу и LLaMA как на одну из самых влиятельных газет последнего времени.
Спасибо за чтение!
- Надеюсь, эти материалы были вам полезны. Следуйте за мной на Medium, чтобы получать больше подобных статей.
- Если у вас есть какие-либо вопросы или комментарии, буду рад любой обратной связи. Спрашивайте меня в комментариях или подключайтесь через LinkedIn или Twitter.
- Чтобы поддержать меня как автора и получить доступ к тысячам других статей на Medium, оформите членство в Medium, используя мою реферальную ссылку (без дополнительной платы для вас).