h2oGPT

Материал из DZWIKI
Перейти к навигации Перейти к поиску

h2oGPT представляет собой набор репозиториев с открытым исходным кодом, «обернутый» в оболочку H2O LLM Studio. Само название проекта уже недвусмысленно намекает нам на применение Generative Pretrained Transformer.

Компания H2O.ai, разработчик h2oGPT, заявляет, что ее продукт — часть инициативы по внедрению больших языковых моделей в корпоративный сегмент через open source. По словам разработчиков, их цель — представить открытые альтернативы коммерческим LLM, сделать доступ к таким моделям свободным и, в то же время, «ответственным». При этом акцент сделан на безопасности h2oGPT для использования внутри компаний, поскольку чат-бот может «жить» в пределах корпоративной сети, не отдавая данные в интернет.

h2oGPT может работать с различными типами и форматами файлов, включая csv, docx, pdf, mp3, zip, txt, ppt и wav. Понимает Markdown- и HTML-разметку, может читать электронные письма и так далее. В его составе значатся языковая модель, эмбеддинг, базы данных для документов, интерфейс командной строки, а также расширенный интуитивно понятный графический интерфейс. Последний включает в себя функции для работы пользователя, поддержку голосового TTS с использованием лицензированных Microsoft Speech T5, в том числе клонирование голоса и потоковую аудио-конвертацию, а также режим голосового управления AI Assistant для беспроводного управления чатом h2oGPT.

Чат-бот поддерживает интеграцию с различными инференс-серверами: HF TGI server, vLLM, Gradio, ExLLaMa, Replicate, OpenAI, Azure OpenAI и Anthropic. Более того, последняя предлагает API для работы с сервером и клиентом на Python. Это позволяет использовать h2oGPT в качестве замены OpenAI и обеспечивает высокое качество по результатам более чем 1 000 единичных и интеграционных тестов.

Что отмечают разработчики

  • Поддержка открытой векторной базы данных Chroma и векторной базы данных Weaviate;
  • Суммаризация и извлечение информации, которое достигает производительности 80 токенов в секунду при использовании модели LLaMa;
  • Применение HyDE (Hypothetical Document Embeddings) для улучшения поиска на основе ответов LLM;
  • Поддержка моделей LLaMa2, Mistral, Falcon, Vicuna, WizardLM, AutoGPTQ;
  • Поддержка инференс-серверов HF TGI, vLLM, Gradio, ExLLaMa, Replicate, OpenAI, Azure OpenAI, Anthropic.
  • Поддержка Docker.

Помимо этого h2oGPT может работать на Linux, macOS и Windows, поддерживает UI или CLI с потоковой передачей всех моделей и воспринимает любую открытую LLM от Hugging Face. А еще поддерживает веса адаптера LoRA, 4-битное квантование и умеет работать без интернета.

Разделы

H2O LLM Studio

H2O LLM Studio — платформа для обеспечения качества данных и расширение h2oGPT для обучения LLM. Платформа предлагает веб-интерфейс без кода и Python API. Это, вероятно, будет плюсом для пользователей, у которых нет больших навыков в программировании. То есть, обучать и настраивать языковую модель можно через графический интерфейс без кодинга.

В H2O LLM Studio пользователь может настроить:

  • набор данных,
  • модель,
  • оптимизатор,
  • learning rate,
  • токенизатор,
  • адаптер,
  • валидационный набор данных и т. д.

При этом полностью поддерживаются логирование, валидация и мультимодальность. Если достаточно вычислительных ресурсов, пользователь может отслеживать прогресс обучения, степень понимания моделью контекста, корректность ответов, предвзятость, запоминание данных и другие параметры.

Также есть информация, что LLM Studio использует популярные адаптеры для файнтюнинга. Среди них — Low-Rank Adaptation (LoRA) и QLoRA. Такой подход позволяет проводить дообучение небольших LLM на обычных GPU — даже в Google Colab или Kaggle. Например, модели, которые содержат менее 10 миллиардов параметров, можно обучить на одной NVIDIA T4 16 ГБ.

Возможности H2O LLM Studio

H2O LLM Studio функционально настроена на выполнение множества задач. Модели можно обучить резюмированию длинного текста, следованию инструкциям, генерации ответов с учетом логической связности и т. д. Кроме того, разработчики обещают, что h2oGPT можно применять в самых разных коммерческих сферах.

H2O.ai заявляет, что планирует интегрировать новые методы квантования моделей, дистилляции и длинно-контекстного обучения (длина контекста более 100 тысяч токенов). Компания также планирует поддерживать больше мультиязычных и мультимодальных моделей, упростить масштабирование и добавить возможность изменения базового кода под корпоративные нужды.

Вот что еще H2O LLM Studio обещает пользователям:

  • простой и быстрый файнтюнинг любой доступной LLM без необходимости какого-либо опыта кодирования;
  • использование графического интерфейса пользователя (GUI), специально разработанного для больших языковых моделей;
  • применимость LoRA, а также 16-, 8- и 4-битной моделей обучения;
  • использование расширенных метрик для оценки сгенерированных моделью ответов;
  • визуальное отслеживание и сравнение производительности моделей посредством интеграции с Neptune;
  • легкий экспорт своих моделей в Hugging Face Hub.

Чтобы запустить GUI для чат бота в самом базовом варианте, используйте команду:

python generate.py --base_model=h2oai/h2ogpt-oasst1-512-12b

Что стоит учесть при работе с H2O LLM Studio

  • Набор для обучения должен присутствовать в виде пары «запрос — ожидаемый ответ».
  • Как всегда, важен ответственный подход к выбору контента для обучения моделей (например, чтобы избежать оскорблений, унижений, притеснений по какому-либо признаку).
  • «галлюцинации» выбранных LLM — проблема пользователей, которую придется решать самостоятельно.

Пайплайн работы с системой H2O LLM Studio

Типичный рабочий процесс подготовки данных в H2O LLM Studio включает несколько последовательных шагов.

  • Загрузка данных пользователем. В процессе из коннекторов импортируются различные типы документов;
  • Выбор целевой задачи обучения (предварительное обучение, настройка инструкций, разработка чат-бота или RLHF);
  • Включение в набор дополнительных данных из других источников;
  • Очистка данных — например, удаление длинных строк с чистыми пробелами или необычными символами, которые могут помешать анализу или моделированию;
  • Проверка качества данных c использованием метрик bleu / meteor / similarity или модели вознаграждения RLHF. При необходимости в проверке можно использовать дополнительные фильтры — например, по длине или на наличие ненормативной лексики;
  • Преобразование данных и метаданных в подходящий формат, например JSON;
  • Подготовка данных в соответствии с требованиями целевой модели — например, по длине контекста или отсечения.

Ссылки