AI в мире бизнеса: обзор h2oGPT / Хабр

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

по информационной безопасности

, ведь тот же ChatGPT, например, открыто общается с интернетом. И в этот момент на сцену выходит open source.

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

Используйте навигацию, если не хотите читать текст полностью:

Что такое h2oGPT
H2O LLM Studio
Какие модели доступны пользователям
Обучение модели
Обзор участников рынка

Что такое h2oGPT


h2oGPT представляет собой набор репозиториев с открытым исходным кодом, «обернутый» в оболочку H2O LLM Studio (о ней подробнее в следующем разделе). Само название проекта уже недвусмысленно намекает нам на применение Generative Pretrained Transformer. Кстати, самостоятельно познакомиться с ботом поближе и почитать документацию можно на сайте разработчика, на Hugging Face или на GitHub.

Компания 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 ГБ.

Тут нужно сделать оговорку: применение одной видеокарты для обучения LLM хоть и возможно, но вряд ли оправдано с практической точки зрения. Такой эксперимент мы проводили, когда сравнивали возможности GPU A100 40 GB и A6000 Ada 48 GB для обучения больших языковых моделей.

Архитектура и пайплайн продуктовой линейки H2O.ai. Источник.

Возможности 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 включает несколько последовательных шагов.

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

Источник.

Какие модели доступны пользователям


Сегодня у пользователей есть доступ к нескольким настроенным моделям, на которых функционирует h2oGPT. Они содержат до 40 млрд параметров и подходят для коммерческого использования под лицензиями Apache 2.0. Рассмотрим некоторые из них.

Pythia-6.9b

Это

модель трансформера

с 6,9 миллиардами параметров, обученная

на наборе данных Pile

от

EleutherAI

. Основное внимание разработчики уделили исследованиям в области интерпретируемости и динамики обучения, а не применению в коммерческих чат-ботах. Pythia6.9b была оценена с использованием

LM Evaluation Harness

.

Исследование Pythia направлено на понимание того, как развиваются и эволюционируют LLM в процессе обучения и масштабирования. Pythia-6.9b, как и остальные в наборе, основана на архитектуре GPTNeoXForCausalLM и использует трансформеры для обработки текста. Модель доступна для работы через Hugging Face и содержит 9,9 ГБ файлов, разделенных на две части.

Характеристики модели

  • Размер модели: 6,9 миллиардов параметров;
  • Требуемая VRAM: 13,8 ГБ;
  • Поддерживаемые языки: английский;
  • Архитектура модели: GPTNeoXForCausalLM;
  • Длина контекста: 2 048 токенов;
  • Максимальная длина модели: 2 048 токенов;
  • Версия трансформеров: 4.22.2;
  • Класс токенизатора: GPTNeoXTokenizer;
  • Размер словаря: 50 432;
  • Диапазон инициализации: 0.02;
  • Тип данных Torch: float16.

Pythia-12b и Pythia-12b-deduped

Обе модели — часть серии Pythia и используются для генерации текста на английском языке. Суффикс deduped в названии указывает на то, что модель была очищена от дублирующих данных во время обучения.

Pythia-12B и Pythia-12B-deduped содержат по 12 миллиардов параметров. Эти модели были обучены на одинаковых данных в одном и том же порядке и включают в себя по 154 промежуточные контрольные точки. Обе разработаны для исследований в области интерпретируемости и превосходят по производительности аналогичные модели, например, из наборов OPT и GPT-Neo.

GPT-neox-20b

Это авторегрессионная языковая

модель

с 20 миллиардами параметров, разработанная EleutherAI и обученная на большом

наборе данных Pile

с использованием библиотеки

GPT-NeoX

. GPT-neox-20b во многом

похожа

на GPT-J-6B.

В ходе обучения модели особый акцент был сделан на разработке подходящей параллельной архитектуры для обучения на нескольких графических процессорах. Несмотря на потенциал модели, есть трудности в ее развертывании. Для этого придется установить соответствующее оборудование и увеличить размер входных данных до 2 048 токенов. Это потребует больше видеопамяти.

MPT-7b-storywriter

Модель

относится к семейству

Mosaic Pretrained Transformer

(MPT), разработанных компанией

MosaicML

. Они используют модифицированную архитектуру трансформеров, оптимизированную для эффективного обучения и инференса. В частности, MPT-7B-StoryWriter-65k+ была специально обучена на подмножестве книг из

набора данных books3

для чтения и создания вымышленных историй с очень длинными контекстами.

Модель основана на модифицированной архитектуре декодера-трансформера и была обучена с использованием технологий FlashAttention и ALiBi (Attention with Linear Biases). Последняя — ключевой архитектурный выбор в модели MPT-7B, который позволяет модели обрабатывать контексты длиной до 65 000 токенов и даже выходить за пределы этого количества при выводе. MPT-7B-StoryWriter-65k+ способна генерировать тексты длиной до 84 000 токенов на одном узле с восемью GPU A100 80 GB.

Falcon-7b

Модель

из семейства Falcon, разработанного TII. Содержит семь миллиардов параметров и предназначена только для генерации текста (causal decoder-only). Обучена на 1,5 триллионах токенов

RefinedWeb

, и доступна под лицензией Apache 2.0.

Разработчики обучали модель на 384 графических процессорах A100 (40 ГБ) с использованием стратегии 2D-параллелизма (PP = 2, DP = 192) в сочетании с ZeRO на AWS SageMaker. Изначально Falcon-7B обучена только на английском и французском языках.

Bloom-176b

Открытая авторегрессионная

модель

со 176 миллиардами параметров, разработанная и обученная с использованием

BigScience

на

корпусе ROOTS

. Он включает сотни источников на 46 естественных и 13 программных языках.

Bloom использует для обучения технологию Megatron-DeepSpeed. Она позволяет эффективно распределять обучение по нескольким устройствам, используя параллелизм данных, тензоров и конвейеров. Модель обучена с использованием алгоритма Byte Pair Encoding (BPE) и может распознавать и использовать 250 680 уникальных токенов.

Bloom демонстрирует высокую производительность в задачах многоязычного резюмирования. И она увеличивается с ростом количества параметров модели. Кроме того, общая точность Bloom на тестах crowS-Pairs для английского и французского языков была близка к 0.50.

На практике применение этой LLM в h2oGPT выглядит достаточно сомнительным: модель слишком тяжела для чат-бота и дообучения. Для работы Bloom-176B нужно 360 ГБ оперативной памяти. Однако Microsoft представила уменьшенную версию с весами INT8 (от оригинальных весов FLOAT16), которая работает на движке DeepSpeed Inference и использует параллелизм тензоров. Эта версия модели разделена на восемь частей и может быть распределена по восьми GPU, что позволяет более эффективно использовать доступные ресурсы.

Небольшое резюме по моделям

Большинство перечисленных LLM обучены на относительно небольшом количестве токенов с использованием законов масштабирования

Chinchilla

. Однако оказалось, что небольшие модели, тренированные на большем количестве токенов, такие как LLaMa и Falcon, могут работать еще лучше.

За исключением mpt-7b-storywriter, все перечисленные модели имеют относительно небольшую длину контекста (2 048 лексем) и могут резюмировать примерно одну страницу текста. Очевидно, модели с большей длиной контекста были бы предпочтительнее для многих генеративных задач.

Также все перечисленные модели, кроме falcon-7b, были обучены на наборе данных Pile объемом 825 ГБ. Falcon обучалась на RefinedWeb, который представляет собой 2,8 ТБ интернет-данных, подготовленных с помощью усовершенствованных методов фильтрации и дедупликации.

Обучение модели

Подход к обучению

Вот как сами разработчики h2o.ai

описывают

процесс обучения.

Для обучения h2oGPT используется PEFT, стандартный пайплайн по работе с Hugging Face, и LoRA (Low Rank Approximation). К тому же, в таких условиях требуемое состояние оптимизатора составляет порядка 20 МБ вместо 20 ГБ.

В результате количество параметров для обучения обычно составляет около 0,1% от исходных весов, а степень аппроксимации можно настроить с помощью всего нескольких параметров, большинство из которых не оказывают большого влияния на точность. Это делает LoRA одной из самых полезных техник для эффективного файнтюнинга.

Чтобы еще больше снизить требования к памяти дорогостоящих GPU, разработчики отказались от 32- и 64-битной полной точности обучения. Вместо этого они использовали 16-, 8- и 4-битное обучение с использованием аппаратной и программной поддержки смешанной точности.

Обучение или инференс с базовой моделью в 8- или 4-битном формате достигается с помощью PEFT и BitSandBytes. Обратная сторона такой экономии — время на обучение модели и генерацию текста, которое существенно увеличивается по сравнению с 16-битной архитектурой.

Для файнтюнинга разработчики h2oGPT рекомендуют использовать карты NVIDIA A100 или H100. Или применить 4-битное обучение для карт с меньшим объемом видеопамяти. При этом 16-битное обучение рекомендуется использовать везде, где это возможно. Далее приводится краткое сравнение требований для обучения LLM:

Метрики оценки качества моделей

Для оценки качества работы моделей H2O.ai использует комплекс

EleutherAI

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

ShareGPT

, предоставленные h2oGPT, для улучшения качества ответов и оценивания их результатов. В качестве

модели вознаграждения

используют

OpenAssistant

или более продвинутые LLM, такие как GPT-3.5/4.

Среди выявленных недостатков генеративных моделей:

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

Обзор участников рынка

Раз уж мы говорим о h2oGPT как продукте для коммерческого использования, почему бы не взглянуть на то, что сегодня уже есть на рынке? Посмотрим, какие продукты занимают лидирующие позиции, в чем их особенности, сильные стороны и как они себя позиционируют. А также — чего им удалось добиться за прошедшее время.

OpenAI

ChatGPT

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

Кроме того, есть попытки применения ChatGPT для решения серьезных технологических задач, например, поиска новых материалов, генерации медико-биологических компонентов для вакцин, доказательства математических теорем или создания дизайна.

Известно, что OpenAI ведет переговоры о привлечении более восьми миллиардов долларов от холдинга G42 из Абу-Даби, специализирующегося на ИИ. Полученные инвестиции пойдут на разработку собственных чипов в надежде отказаться от влияния NVIDIA (а может, даже составить конкуренцию производителю).

Планируется, что новые чипы будут носить название Tigris. Но и на этом OpenAI не собирается останавливаться. После того, как в нее уже было вложено 13 миллиардов долларов от Microsoft, начался новый виток переговоров о вложении еще 100 миллиардов при эмиссии собственных акций на 86 миллиардов долларов.

Таким образом, если Сэму Альтману удастся пройти все «тонкие» моменты, его компания станет вторым самым дорогим стартапом в истории. Пальма первенства пока что у Илона Маска с его SpaceX (150 миллиардов долларов), но возможно, ему придется уступить.

Google

Gemini

— прямой конкурент ChatGPT. Он интегрирован с реальными результатами поисковых запросов и поддерживает большинство расширений Google, таких как Google Maps и YouTube. Это делает его более актуальным для пользователей. Кроме того, Gemini способен понимать не только текст, но и видео, изображения и аудио, решать математические и физические задачи, а также писать код на разных языках программирования с разной степенью точности.

Вероятно, Сундар Пичаи продолжит политику, начатую в 2023 году, по достижению «амбициозных целей» по наращиванию прибыли и сокращению издержек на производство. После запуска Gemini акции Google выросли на 6%, тогда как количество сотрудников снизилось на 12 000 человек, причем под сокращение попали разработчики из разных отделов, таких как Asistant и Fitbit. Видимо, в этом году политика останется неизменной.

Stability.AI

Stable Vicuna

— первый крупномасштабный открытый чат-бот, обученный так, чтобы соответствовать ожиданиям человека. Этот метод обучения называется Reinforcement Learning from Human Feedback, или RLHF. Stable Vicuna является развитием модели Vicuna v013b.

Microsoft

HuggingGPT

— система, которая состоит из LLM в качестве контроллера и имеет множество экспертных моделей из состава совместных исполнителей (из HuggingFace Hub). Платформа Hugging Face предоставляет инструменты и ресурсы для разработчиков и исследователей, чтобы облегчить создание, обучение и развертывание моделей машинного обучения. Она включает в себя библиотеки для работы с моделями, такие как Transformers и Tokenizers, а также платформу для хостинга и совместной работы над моделями, наборами данных и приложениями.

Anthropic

Claude

— чат-бот от Anthropic, который использует собственную языковая модель для обработки и генерации текста. По словам разработчиков, отличие Claude в том, что он ориентирован на безопасность и ответственность. Чат-бот способен генерировать и анализировать длинноформатные тексты (блоги, эссе и т. д.), а также код.

Sber

GigaChat

— голосовой помощник, разработанный компанией Sber в рамках собственной цифровой банковской экосистемы, но ориентированный на широкого пользователя. GigaChat использует передовые технологии искусственного интеллекта для обработки естественного языка при общении с пользователями. Он предоставляет возможность задавать вопросы, получать информацию, генерировать код, управлять банковскими услугами и выполнять другие задачи с помощью голосовых команд и текстовых сообщений.

По последним данным, финансовый эффект от применения GigaChat должен составить не менее 10 миллиардов рублей, модель активно развивается и совершенствуется, а доступ открыт для всех желающих.

Общие проблемы нейросетей в корпоративной среде

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

Возможно, именно последний пункт можно назвать решающим. Специалисты по информационной безопасности опасаются внедрять во внутренние системы генеративные AI-продукты, а разработка частных LLM пока доступна далеко не каждой компании. Решит ли эту проблему open source-проект h2oGPT — покажет время.

Как думаете, есть ли будущее у LLM с открытым исходным кодом в коммерческой сфере? Делитесь мнением в комментариях.

Source

Read also