Дорогие мои пирожочки, сегодня я приглашаю вас в увлекательное путешествие, в котором мы раскроем таинства, скрытые за завесой искусственного интеллекта. В этом загадочном и многогранном мире у нас есть не что иное, как RuGPT-3 – священный грааль генерации русскоязычного текста. Эта нейросеть – не просто очередная игрушка для тех, кто устал от монотонности жизни. Она обладает силой преобразовывать слова в целые вселенные, открыв перед нами двери невероятных возможностей в области обработки естественного языка (NLP). При использовании ruGPT-3 ответы Модели формируются на автоматической основе.
RuGPT3XL. Примеры генерации на русском языке (zero-shot coding)
Это не просто аналог, это лихой и непокоримый собрат, созданный умами команды SberDevices, и он готов завоевать сердца всех, кто жаждет создавать тексты на родном языке. RuGPT-3 имеет невероятные возможности, которые многим из нас покажутся поистине волшебными. Давно известно, что Сбер разработал и опубликовал свою коллекцию генеративных текстовых моделей на русском языке – RuGPT3.
НейроСеть – русская модель ruGPT-3 XL от «Сбера», мысли нарика теперь доступны всем!
Названия интересующих курсов можно оформить на сайте через checkbox и передавать текст в затравку. После этого скачаем модель, дообучим и сохраним модель с тонкой настройкой (мы работали в google colab, при необходимости нужно будет установить и другие зависимости). Она даже сама ввела в контекст пионерскую форму и научилась пользоваться именем “Славя” – что уже является успехом.
Потрогать ruPrompts можно в Colab-ноутбуках и там же при желании – обучить затравку на собственных данных. Решение описанное в данной публикации совместимо с моделями mGPT-13B, так как принципиально их архитектура ничем не отличается от ruGPT-3.5. Самый любопытный момент в том, что указанный файл уже можно применять для выполнения задач инференса, просто указажите в AutoModelForCausalLM (пакета transformers) путь до папки output.
- В качестве основы для первых экспериментов были выбраны архитектуры GPT-3 Medium (350 миллионов параметров) и GPT-3 Large (760 миллионов параметров).
- Модели большой ёмкости в результате могут решать многие такие задачи без специального дообучения — им достаточно тех примеров, которые укладываются в «контекст модели», который у GPT-3 довольно внушительный — целых 2048 токенов.
- Квантованная модель (с пониженной битностью) ломается во время обучения стандартным тренером и превращается в битую гадость, которая потом отказывается работать, обнаруживая в своих тензорах крайние значения.
- Поэтому я стал искать различные способы её хоть как-то уместить в память карточки, по ходу дела узнал про библиотеку bitsandbytes, которая расширяет функционал библиотеки transformers, добавляя такие замечательные опции как load_in_8bit и load_in_4bit.
Шаг 4 – Создание GGML моделей
Пишем вызов стандартного transformers.Trainer, и натравливаем этого зверька на нашу модель. Кажется, температура у нас сегодня работает в обратную сторону – либо мне сильно не повезло. Интерфейс из себя представляет текстовое поле огромной длины, на нижнем конце которого генератор и его параметры – вроде стильно.
GPT-3 способна не только генерировать тексты (в том числе стихи, шутки и литературные пародии), но и исправлять грамматические ошибки, вести диалоги и даже писать более-менее осмысленный программный код. Быстрое развитие сетей, основанных на трансформерах, привело к появлению гигантских языковых моделей, подобных Generative Pre-trained Transformer 3 (GPT-3) от OpenAI, способных эффективно решать множество задач из области NLP. В настоящее время в научном сообществе ведётся активное изучение различных моделей внимания, предназначенных для снижения вычислительных затрат при обучении моделей и увеличения точности. При этом модели, составленные из одних только dense-блоков, являются своеобразным бенчмарком, позволяющим оценить степень снижения точности различных «ускоренных» вариантов модели. В октябре этого же года команды из SberDevices на основе статьи от OpenAI и кода модели GPT2 смогли разработать русскоязычный аналог под название ruGPT-3 в 5 вариациях от 125 млн. Признаков, используя мощности суперкомпьютера «Кристофари», а самое главное, что в данном случае код действительно открытый, за исключением модели на 13 млрд.
Для вашего удобства я подготовил репозиторий на HuggingFace содержащий указанный LoRA слой и всё необходимое для его правильной работы, тестовый пример применения можно посмотреть тут. Датасеты готовы, а это значит, что можно приступать к обучению самой модели, для этого будут использованы библиотеки torch, transformers и peft. Если в двух словах на этом этапе нам потребуется скачать модель ruGPT-3.5-13B из репозитория на HuggingFace, после чего скопировать конфигурации в папку output, а затем внести в них небольшие правки. И вот мы теперь мы в замешательстве, нейросеть «Сбера» RuGPT3 гонит полную пургу, являясь очередным бредогенератором. Очень интересны ответы на вопросы, какие пятерки получают студенты и какие педантичные преподаватели испытывают восторг от ответов НейроСети. Поэтому, если вы собираетесь использовать RuGPT-3, будьте внимательны.
Ваша тщательность поможет предотвратить высказывания, которые, возможно, всплывут и вызовут недоумение. Поскольку за прекрасным обликом всегда скрывается необходимость проверки – это аксиома, которую не стоит забывать. Она помогает делать трудные вещи доступными, словно упрощая уравнения в математике для задачки на уроке. RuGPT-3 как добрый собеседник – она заполняет пробелы в нашем тексте, предугадывая, что бы мы могли сказать дальше. Но даже лучше – она может поддерживать диалог и помогать исправить грамматические ошибки, словно в школе с доброй учительницей. Для следующих шагов запланировано тестирование “затравочного программирования” в части задавания примеров – one-shot coding / few-shot coding, а rugpt-3 как пользоваться также дообучение по какой-либо тематике.
Главное отличие оригинала от сгенерированных, это краткость изложения и погружения в инструменты работы сходу. Важно понимать, что модели типа GPT-1/2/3, на самом деле, решают ровно одну задачу — они пытаются предсказать следующий токен (обычно слово или его часть) в последовательности по предшествующим. Такой подход позволяет использовать для обучения «неразмеченные» данные, то есть обойтись без привлечения «учителя», а с другой стороны позволяет решать довольно широкий спектр задач из области NLP. Ведь в тексте диалога, например, реплика-ответ является продолжением истории общения, в художественном произведении — текст каждого абзаца продолжает предшествующий текст, а в сессии вопросов и ответов текст ответа следует за текстом вопроса. Модели большой ёмкости в результате могут решать многие такие задачи без специального дообучения — им достаточно тех примеров, которые укладываются в «контекст модели», который у GPT-3 довольно внушительный — целых 2048 токенов.
На практике, могут получиться коллизии и излишне схожие куски – однако, как оказалось, есть нечто ещё более опасное. Я скачал тут репозиторий gurgutan/ruGPT-13B-4bit, вместо fffrrt/ruGPT-3.5-13B-GPTQ. В нём кроме .safetensors есть простой .bin (gptqlora ищет конкретно .bin), а менять код библиотеки, я на данный момент не рассчитывал. В этой статье мы будем тестировать RuGPT3.5, как генератор истории для визуальной новеллы (буду честен, просто новеллы, ни разу не визуальной).
Примеры применения RuGPT-3
Кроме того, она является открытым исходным кодом, что позволяет разработчикам использовать ее в своих собственных проектах и создавать новые инструменты на ее основе. Одним из ярких примеров таких систем является модель ruGPT-3.5 на 13 миллиардов параметров, созданная командой Sber AI и опубликованная 20го июля 2023 года. Эта модель представляет собой языковую нейронную сеть оптимизированную под работу с русским языком, она может совершать различные задачи обработки текста, от генерации текста до ответов на вопросы и многого другого. Однако, может не значит умеет, оригинальная ruGPT-3.5 “из коробки” хорошо умеет только продолжать текст предложенный пользователем. До сих пор эта языковая модель считается самой масштабной и перспективной как инструмент работы с текстовой информацией.
Это приводит к тому, что воспроизвести их работу могут только крупные компании, обладающие серьёзными вычислительными ресурсами. Проект по обучению GPT-3 потребовал объединения усилий сразу нескольких подразделений. Стиль 3 следует использовать для генерации более непринуждённых бесед, рассказов, сочинений. Аналогов на русском языке просто нет, это заставляет смириться с недостатками, и верить в дальнейшую разработку открытых NLP.