Некоммерческая организация LAION и энтузиасты по всему миру занимаются разработкой Open Assistant — это проект, цель которого в предоставлении всем желающим доступа к продвинутой большой языковой модели, основанной на принципах чат-бота, с конечной целью революции в инновациях в области обработки естественного языка.
Open Assistant ставит перед собой цель не просто повторить ChatGPT, но создать Ассистента будущего. Он будет понимать и решать поставленные задачи, использовать API, динамически исследовать информацию и многое другое.
Мы хотим создать Ассистента, которого каждый сможет настроить и расширить под свои нужды открытым и доступным способом. Одна из ключевых целей — сделать модель одновременно наиболее эффективной и небольшой, чтобы она могла работать на потребительском оборудовании.
Мы находимся в процессе разработки, опираясь на результаты уже проведённых исследований по применению RLHF к большим языковым моделям. В основном — InstructGPT.
В этой статье поговорим о проекте Open Assistant — и как вы можете внести свой вклад.
А кто это?
LAION занимаются развитием открытых инструментов, моделей и датасетов. Более того, раннее они участвовали в крупных проектах, существенно повлиявших на индустрию — датасет LAION-5B лёг в основу моделей Stable Diffusion.
Однако внести вклад может каждый — даже если вы не имеете никакого отношения к разработке или к машинному обучению: участвуйте в сборе данных для RLHF, общаясь от лица человека или Ассистента, модерируйте контент, переводите, рассказывайте друзьям и публике!
Но... Ведь есть аналоги!
Да, есть, вот их список:
-
ChatGPT, GPT-4, Bing Search от OpenAI & Mircosoft
закрытый исходный код; закрытый датасет; проприетарная лицензия
-
Bard от Google
закрытый исходный код; закрытый датасет; проприетарная лицензия
-
YaLM от Yandex
открытый исходный код; закрытый датасет; Apache 2.0
-
LLaMa от Meta*
открытый исходный код; открытый датасет; GPLv3.0
-
Alpaca от Stanford
открытый исходный код; открытый датасет; MIT
-
BLOOMZ от BigScience
открытый исходный код; открытый датасет; RAIL 1.0
-
Dolly от Databricks Labs
открытый исходный код; открытый датасет; Apache 2.0
Однако давайте подробнее разберём достоинства и недостатки каждой из этих моделей и причину, по которой всё же нужно нечто новое:
-
ChatGPT, GPT-4, Bing Search:
Первые в своём роде на подобном уровне, на текущий момент самые продвинутые. Но если в названии вашей компании или продукта содержится "Open", то вы обычно стремитесь соответствовать названию — открываете исходники и делаете политику вашей компании прозрачной. Однако OpenAI так не думает. Исходный код ChatGPT (GPT-3.5, GPT-4) закрыт, как и данные, использованные при обучении (верно и для DALL-E 2, Copilot и т. д.). Продукты OpenAI недоступны во многих местах — граждане не из этих стран не могут их использовать официально. Стоит ещё отметить непостоянную доступность и сбои веб-интерфейса ChatGPT. В OpenAI верят, что лишь они могут справиться с такой огромной ответственностью, но допускают утчеки части диалогов и платёжных данных. Есть вероятность закрытия ChatGPT в текущем виде для бесплатного использования — де-факто в любой момент OpenAI оставляют за собой право закрыть доступ к системе или перейти на платную основу (ну… Они отчасти так и сделали с GPT-4, фактически перенеся конечный продукт из категории free во freemium). Сотрудничество с Microsoft внесло свои коррективы. Смысл Open Assistant как раз в создании свободной и открытой альтернативы, чего корпорация нам не даёт, несмотря на своё название.
-
Bard
Сложно сделать анализ, проект на ранних стадиях развития. Можно лишь предположить, что, может быть, датасет у Google будет более широким и объемлющим. На текущий момент, судя по отзывам пользователей, получивших ранний доступ, и моим экспериментам, Бард не отличается умом и сообразительностью. А ещё всё, что описано выше для ChatGPT в плане закрытости, верно и для сего творения.
-
LLaMa
Неплохая языковая модель с качественной оптимизацией, но лицензия ограничивает конечного потребителя, подразумевая, что большинство бизнесов просто не смогут воспользоваться (по крайней мере легально) моделью без открытия исходного кода конечного продукта. Ну и качество, к сожалению, пока не на том же уровне, что и продукты OpenAI.
Веса, кстати, официально так и не выпустили. Они доступны только по запросу для "исследователей".
Но не будьте слишком оптимистично настроены, ведь следующий пример вовсю покажет, что с виду открытые продукты таких корпораций не стоят ничего, пока остаётся сама суть этой корпорации.
-
Alpaca
Можно назвать Alpaca форком LLaMa. Интересный подход к обучению на основе SFT с применением text-davinci-003 (модель OpenAI).
Но и тут есть поводы для грусти: технически, датасет легально использовать проблематично, так как TOS у OpenAI запрещает подобное использование пунктом 2.C.iii.
Вероятно, их всё ещё не засудили только в силу того, что проект некоммерческий, ну и судебный процесс ещё сильнее испортил бы уже достаточно тёмную репутацию компании. А ещё лицензия MIT не имеет силы, ведь GPLv3 оригинала ограничивает распространение форкнутой модели под иными лицензиями. Ну и история с весами LLaMa, а ещё их «копирайтом»...
Стоит отметить, что эту статью я начинал писать задолго до того, как выпускать, а именно этот кусок был написан ещё 20.03.23. Дело в том, что история получила неожиданное продолжение:
-
YaLM
На данный момент одна из крупнейших GPT-подобных языковых моделей в открытом доступе, действительно открытая и свободная лицензия (а ещё в связи с относительно недавним сливом исходников компании, можно назвать Yandex одним из крупнейших Open Source разработчиков).
Вот только, увы, возможность запустить YaLM на потребительском железе отсутствует: мало у кого есть видеокарты на 200GB VRAM, а более ёмкие модели Yandex на момент написания статьи не выпускали.
Технически, можно попробовать оптимизировать процесс долгим и упорным трудом, один энтузиаст даже выпускал об этом статью, но зачем оно вам? Даже с оптимизацией в виде квантизации и иных методов навряд ли удастся запустить её на вашем компьютере. Да и не в параметрах счастье! Параметры — не главное!
-
BLOOMZ
Интересное решение, особенно если учесть то, как впоследствии реализовали Petals. Но и тут (как жаль) прячутся подвохи: основной претензией является лицензия RAIL 1.0. В этом видео были подняты темы её несовершенства: неуниверсальность, спорные ограничения, странные и неудобные условия.
-
Dolly от Databricks Labs
Совсем недавно выпустили модель. Но сохраняется та же проблема, что и у Alpaca, — легальность. Был использован тот же датасет, а значит могут возникнуть проблемы с OpenAI.
Также стоит отметить, что не все вышеперечисленные проекты удачны с точки зрения качества. Результаты многих из них удручают, особенно условно открытых.
А что под капотом? Готово ли хоть что-то?
За всё время мы уже собрали невероятное количество данных: 124500 сообщений и 11500 деревьев диалогов (из ready_for_export и growing trees; всего — 60000, но на большую часть изначальных запросов пока что не ответили. Но даже с этим получается больше, чем у InstructGPT).
После отчистки датасета от спама, персональной информации и CSAM (Child Sexual Abuse Material) мы публично его выпустим для свободного использования 15 апреля. В этот же день будет выпущена первая готовая версия.
Мы уже в процессе тренировки моделей, были опубликованы ранние прототипы (которые необязательно лягут в основу готовой модели, на них не применялось RLHF), можете ознакомиться с одним из них здесь — это первая пробная попытка создания модели на английском языке с применением метода SFT (supervised-fine-tuning) в рамках проекта Open Assistant. Она основана на Pythia 12B и дообучена на ~22 тысячах примерах, собранных через https://open-assistant.io/ до 7 марта 2023 года.
Конечный вариант будет тоже использовать SFT, RM, RL.
Ещё есть Safety Bot, который будет использоваться поверх Open Assistant. Впрочем, никто ведь не помешает вам его отключить у себя, да? ;)
Идёт бурная работа над inference. В конце концов этот проект может использоваться в дальнейшем для похожих задач по задачам, основанным на HF (Human Feedback) или подобным методам, ведь весь исходный код открыт прямо сейчас.
Начинается планирование функций для следующих версий: например, внедрение LangChain (плагины, инструменты и динамическое извлечение данных из источников, включая поисковые системы)
Итог!
Как видите, на самом деле ещё нет ни одной по-настоящему свободной языковой модели. И наш проект стремится это исправить.
Никто не должен обладать монополией и централизацией на подобные вещи. Это должны быть свободные и открытые технологии.
Я в деле! А теперь... Что?
Если вы являетесь веб-разработчиком, ML-engineer, специалистом по Data Science, нашли какой-то баг или можете помочь в чём-то ещё, то стоит ознакомиться с этим и этим.
Но самое важное, что вы можете сделать, — помочь нам в сборе данных. Присоединяйтесь. Каждый ответ важен. Возможно, именно этот проект повлияет на будущее языковых моделей. По крайней мере в сегменте Open Source.
Ну и пару примеров с предварительной версии, для русского языка использовался автоматический перевод:
* Meta признана экстремистской организацией, её деятельность на территории РФ запрещена.
Комментарии (18)
AlexG37G
03.04.2023 11:57Второй день не приходит ссылка на вход. Пробовал другую почту - то же самое.
A sign-in link has been sent to your email address. :(
0x22almostEvil Автор
03.04.2023 11:57В спаме не лежит, случаем? В крайней случае можно через дискорд попробовать
venanen
03.04.2023 11:57Мне тоже не приходило, попробовал ten-minute email - пришло сразу. А через два дня и на мою почту письмо попало.
aramtop
03.04.2023 11:57+1Интересный проект! У вас на скриншотах показаны элементы переписки. Подскажите, где-то можно попробовать с ним пообщаться? Не могу найти, можете поделиться ссылкой, если да?
0x22almostEvil Автор
03.04.2023 11:57Есть несколько способов на данный момент, но модели сырые (были обучены только с применением SFT без RLHF), пока только побаловаться можно. Наиболее хороший результат на данный момент у Open Assistant (SFT) LLaMa, но её, увы, навряд ли официально сможем выложить от лица LAION. Впрочем, я уверен, что уже спустя сутки энтузиасты сами всё обучат, ну или кто-то совершенно случайно сольёт внутренние разработки :)
Если лень париться и просто хочется потрогать —https://huggingface.co/spaces/olivierdehaene/chat-llm-streaming. Русский пока в зачаточном состоянии (у Pythia с ним очень плохо в режиме SFT, даже не знаю, исправит ли ситуацию дальнейшее RLHF), в примере для статьи использовал автоматический переводчик (ру -> англ; англ -> ру), вот LLaMa может и без него на довольно недурном уровне, но... ¯\_(ツ)_/¯
Ещё можете на коллабе потыкать —https://colab.research.google.com/drive/15u61MVxF4vFtW2N9eCKnNwPvhg018UX7?usp=sharing, там как раз встроена функция переводчика автоматического, просто язык надо выбрать.
Самая первая демка — https://huggingface.co/OpenAssistant/oasst-sft-1-pythia-12b, на её основе писал под себя Telegram бота. Можно вызвать через API от Hugging Face или попытаться запустить у себя.
Guul
03.04.2023 11:57+1Есть ещё rwkv.
Там мало того что куча моделей, включая основанные на инструкте, но они ещё и с жиру бесятся.
Slightly weaker than ctx4096 model when ctxlen < 3k.
Это из описания модели на 7B параметров на контекст в 8к токенов
Jipok
03.04.2023 11:57+1Зашёл ради это комментария. Действительно rwkv выглядит самым интересным вариантов для запуска на обычном железе. Да и для разработчиков тоже. Ведь сама модель простая RNN без всяких замудрённостей в виде сетей внимания.
Жаль что в такой хорошей обзорной статье абсолютно ничего про это не сказано.
0x22almostEvil Автор
03.04.2023 11:57Чёрт, да, сейчас глянул, интересное решение. Как-то упускал из виду всё время...
Спасибо, что упомянули, возможно, что выпущу ещё один обзор, где уделю этому внимание.
nitro80
03.04.2023 11:57+1Я совершенно далёк от всего этого, но общаться с тем же ChatGPT мне нравится, и даже есть польза...
Скажите, а может ли помочь в развитии такая модель, как использовали раньше для поиска внеземных сигналов\ расшифровки белков, когда люди устанавливали на компьютере программу и она в свободное время производила вычисления? Или такое уже есть в природе?
0x22almostEvil Автор
03.04.2023 11:57По-моему, этим занимаются в основном всё же не языковые модели (по крайней мере не вида Instruct), хотя их использование в этих делах может разительно помочь. Из схожих тем припоминаю лишь: https://naked-science.ru/article/hi-tech/google-predskazyvaet-funktsii-belkov, https://deepmind.com/blog/article/AlphaFold-Using-AI-for-scientific-discovery. С остальным не очень знаком.
Takagi
03.04.2023 11:57+1Посыл статьи правильный, OpenAssistant - моё почтение, сам немного размечал. Но вот по фактам из статьи есть вопросы.
Можно назвать Alpaca форком LLaMa. Интересный подход к обучению на основе RLHF с применением text-davinci-003 (модель OpenAI).
В каком месте там RLHF или даже RLF? Там чистейший SFT.
Но и тут есть поводы для грусти: технически, датасет не совсем легален, так как TOS у OpenAI запрещает подобное использование пунктом 2.C.iii.
use output from the Services to develop models that compete with OpenAI;
И как это делает нелегальным датасет?
Llama вполне свободно лежит на HF: ссылка.
Как и многочисленные воспроизведения Альпаки, которые делаются за пару десятков баксов: ссылка.И всё это на самом деле ортогонально OpenAssistant, никто не мешает использовать оригинальный self-instruct на базовых моделях для него.
А ещё в статье почему-то нет ничего про OpenChatKit.
0x22almostEvil Автор
03.04.2023 11:57+1В каком месте там RLHF или даже RLF? Там чистейший SFT.
Да, действительно, не обратил внимания при написании, спасибо, исправил.
И как это делает нелегальным датасет?
Я не юрист, но многие соглашаются, что этот пункт довольно мутный и может быть использован, в том числе и для основы судебных исков против моделей, обученных на таком датасете. Да, сам датасет технически не будет нелегальным, но обучение на нём — по всей вероятности. Compete — очень расплывчатый термин. Имеется ли в виду, что конечный результат не должен быть коммерческим? Или в принципе не может существовать легально? За ремарку спасибо, подкорректировал.
Насчёт llama и alpaca: думаю, рука Цукерберга ещё просто не добралась до этих репов или они выборочно (не) забивают, в статье приводил примеры, которые показывают, что всё же что-то не так.
С OpenChatKit поверхностно знаком, но не успел изучить на должном уровне, в будущем возможно буду выпускать новые статьи.
Спасибо за отзыв.
alisa_famina
03.04.2023 11:57Кто-нибудь попробовал поучаствовать в обучении ассистента? Мне вторым заданием выпало: "Ответтье от лица ассистента. Придумайте настольную игру для четырёх человек". И мне вспомнился мем про ChatGPT и индийских женщин за компьютерами.
CTheo
Хороший обзор, спасибо.