Фреймворк был создан в сотрудничестве с Togeter, LAION и Ontocord.

Недавно я запустил образовательный информационный бюллетень, посвященный ИИ, у которого уже более 150 000 подписчиков. TheSequence — это информационный бюллетень, ориентированный на машинное обучение, без BS (то есть без шумихи, без новостей и т. д.), чтение которого занимает 5 минут. Цель состоит в том, чтобы держать вас в курсе проектов машинного обучения, научных работ и концепций. Пожалуйста, попробуйте, подписавшись ниже:



В мире фундаментальных моделей разгорается битва между моделями доставки с открытым исходным кодом и моделями доставки на основе API. В области преобразования текста в изображение это представлено трениями между версиями с открытым исходным кодом, такими как Stable Diffusion, и моделями на основе API, такими как DALL-E. Во вселенной больших языковых моделей (LLM) продукты на основе API, такие как ChatGPT, доминируют в заголовках. Недавно сторонники искусственного интеллекта с открытым исходным кодом Together, Ontocord и LAION совместно выпустили OpenChatKit, альтернативу ChatGPT с открытым исходным кодом с сопоставимым набором возможностей.

OpenChatKit 0.15 запускается под лицензией Apache-2.0, предоставляя полный доступ к исходному коду, весам моделей и обучающим наборам данных. Поскольку это инициатива сообщества, ее развитие и расширение окружают ожидания.

Эффективный чат-бот должен понимать инструкции на естественном языке, поддерживать контекст диалога и модерировать свои ответы. OpenChatKit предлагает базового бота, а также компоненты, необходимые для создания специализированных чат-ботов на основе этого фундамента.

В комплект входят четыре основных элемента:

· Настроенная под инструкции модель большого языка, усовершенствованная для чата с помощью EleutherAI GPT-NeoX-20B, с более чем 43 миллионами инструкций, выполняемых на 100% экологически чистых вычислительных ресурсах;

· Рекомендации по тонкой настройке модели для достижения оптимальной точности в конкретных задачах;

· Универсальная поисковая система, которая позволяет дополнять ответы ботов информацией, полученной из репозиториев документов, API или других источников информации в режиме реального времени на этапе вывода;

· Модель модерации, созданная на основе GPT-JT-6B и предназначенная для управления вопросами, на которые отвечает бот.

OpenChatKit также содержит инструменты, которые облегчают обратную связь с пользователями и позволяют членам сообщества вносить новые наборы данных, тем самым обогащая растущий пул открытых обучающих данных, которые со временем улучшают LLM.

Разберем разные компоненты

1) Инструкция после LLM

GPT-NeoXT-Chat-Base-20B, ориентированная на инструкции большая языковая модель, служит основой для OpenChatKit. Построенный на модели EleutherAI GPT-NeoX, он был точно настроен с учетом данных, подчеркивающих разговорный обмен. Тонкая настройка модели охватывает различные задачи, в том числе многоходовой диалог, ответы на вопросы, классификацию, извлечение и обобщение. Модель была настроена с использованием набора из 43 миллионов высококачественных инструкций. В сотрудничестве с LAION и Ontocord был создан набор данных OIG-43M, на котором основана модель. GPT-NeoXT-Chat-Base-20B по умолчанию обеспечивает надежную основу для широкого спектра задач, связанных с естественным языком.

2) Рецепты тонкой настройки

LLM демонстрируют замечательные возможности в ответах на вопросы общего назначения и часто достигают повышенной точности при точной настройке для конкретных приложений. Например, Google PaLM обеспечивает примерно 50-процентную точность медицинских ответов; однако, включив поддержку инструкций и точную настройку с помощью специализированной медицинской информации, Google разработал Med-PaLM, точность которого достигла 92,6%. Аналогичную стратегию можно применить и к другим задачам.

OpenChatKit предлагает инструменты для адаптации чат-бота для специализированных приложений, и продолжается сотрудничество с исследовательскими группами и компаниями для разработки пользовательских моделей для различных задач, таких как образование, финансы или поддержка клиентов.

Процесс тонкой настройки можно представить в виде следующих шагов:

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

II. Сохраните набор данных в виде файла JSON и следуйте предоставленным инструкциям для точной настройки модели чата.

III. Не пренебрегайте моделью модерации! Прежде чем развертывать точно настроенную модель, помните о вопросах, не относящихся к предметной области, которые модель модерации может потребоваться отфильтровать. При необходимости соберите данные модерации и соответствующим образом настройте модель модерации.

3) Система поиска ответов, обновляемых в реальном времени

OpenChatKit включает в себя масштабируемую систему поиска, позволяющую чат-боту интегрировать в свои ответы часто обновляемый или настраиваемый контент, такой как информация из Википедии, ленты новостей или спортивные результаты.

Используя систему поиска, чат-бот получает соответствующую информацию в ответ на определенный запрос, предоставляя доступ к текущим данным. Это обеспечивает «контекст», необходимый модели для точного ответа на вопросы. Чтобы проиллюстрировать возможности системы поиска, включена поддержка индекса Википедии, а также пример кода, демонстрирующий, как вызывать API веб-поиска в процессе поиска. Следуя предоставленной документации, пользователи могут связать чат-бот с любым набором данных или API во время логического вывода, беспрепятственно добавляя обновляемые данные в режиме реального времени в генерируемые ответы.

4) Система модерации

Последний компонент OpenChatKit состоит из модели модерации с 6 миллиардами параметров, полученной из GPT-JT. В чат-приложениях эта модель модерации работает в сочетании с основной моделью чата, тщательно проверяя вводимые пользователем данные на предмет любого неподходящего контента. Основываясь на оценке модели модерации, чат-бот может ограничить ввод модерируемыми темами. Для более специализированных задач модель модерации может использоваться для выявления вопросов, не относящихся к предметной области, и вмешательства, когда запрос не соответствует теме.

На этапе вывода выполняется поэтапная классификация, в ходе которой вопросы пользователей распределяются по пяти группам.

Использование OpenChatKit

Процесс установки и установки, обучения и запуска заданий вывода с помощью OpenChatKit очень прост, как показано в следующем коде:

pip install bitsandbytes # optional, to use 8bit-adam
bash training/finetune_GPT-NeoXT-Chat-Base-20B.sh
$ python inference/bot.py
Loading /home/csris/src/github.com/togethercomputer/OpenChatKit/inference/../huggingface_models/GPT-NeoXT-Chat-Base-20B to cuda:1…
Welcome to OpenChatKit shell. Type /help or /? to list commands.
>>> Hello.
Setting `pad_token_id` to `eos_token_id`:0 for open-end generation.
Hello human.
>>>