{"id":14275,"url":"\/distributions\/14275\/click?bit=1&hash=bccbaeb320d3784aa2d1badbee38ca8d11406e8938daaca7e74be177682eb28b","title":"\u041d\u0430 \u0447\u0451\u043c \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u044b \u0430\u0432\u0442\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f72066c6-8459-501b-aea6-770cd3ac60a6"}

Как запустить корпоративный GPT на opensource-проектах. Без VPN и дообучения

В 2024 году нет необходимости кого-то убеждать в том, что интеграция AI в бизнес-процессы — это критическая необходимость для выживания бизнеса в будущем. AI-ассистенты способны ускорить и увеличить эффективность вашу и ваших сотрудников, а иногда и вовсе заменить «средних» специалистов.

OpenAI - все еще удерживает лидерские позиции, но ему уже наступают на пятки - Claude 3, Google(Gemini), а главное - появляются все более и более мощные open source модели - LLAMA2, Mixtral, и целое семейство на hugging face.

Основные юзкейсы для бизнеса

Для клиентов:

  • Генерация контента
  • Автоматизация customer support Q&A боты для клиентов
  • автоматизация бизнес процессов

Для сотрудников:

  • Q&A боты для сотрудников
  • Онбординг
  • Документ драфтинг
  • Суммаризация и поиск информации в документах
  • Ассистенты интегрированные с внутренними CRM, ERP

ChatGPT со своей экосистемой ассистентов позволяет постросить подобные решения. В том числе загрузить свои документы как базу знаний, интегрировать ассистенты с внутренними системами и тд. Однако встает вопрос по защите корпоративных данных и вообще получения доступа в реалиях блокировок и ограничений. Благо, бум генеративного AI сопровождается бумом open source моделей, UI, API wrappers и тд.

В этой статье мы рассмотрим как организовать доступ к таким ассистентам для сотрудников. Будем рассматривать только opensource решения 🙂

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

Проекты

LocalAI

Этот проект в первую очередь позволяет развернуть OpenAI совместимый API, за которым можем стоять локальная модель. Также это может работать как прокси API к OpenAI - чтобы работать без VPN. Таким образом, этот проект нужен если хотим развернуть локальную модель и хотим OpenAI совместимый API. Один из плюсов - они также поддерживают tools, function calling(то есть opensource модели можно интегрировать с внутренними CRM, ERP), генерация изображений, аудио.

Для запуска локальной модели желательно иметь сервер с GPU.

Chatbot UI

Просто веб интерфейс, который очень похож на ChatGPT, и который вы можете развернуть на своей инфраструктуре. Поддерживает модели OpenAI, Anthropic, Google Gemini, Mixtral

PrivateGPT

PrivateGPT is a production-ready AI project that allows you to ask questions about your documents using the power of Large Language Models (LLMs), even in scenarios without an Internet connection. 100% private, no data leaves your execution environment at any point.

Загрузите свои документы и получите бота, который способен отвечать на вопросы, ссылаясь при этом на эти документы. Пожалуй лучший open source проект для кейса, когда нужно превратить инструкции для сотрудников в Q&A бота. Также огромный плюс - что они также поддерживают OpenAI совместивый API, который под капотом будет делать RAG по вашим документам).

BIG-AGI

BIG-AGI 🧠✨Welcome to big-AGI 👋, the GPT application for professionals that need function, form, simplicity, and speed. Powered by the latest models from 12 vendors and open-source model servers, big-AGI offers best-in-class Voice and Chat with AI Personas, visualizations, coding, drawing, calling, and quite more -- all in a polished UX.

Это в первую очередь просто веб интерфейс для большого количества моделей, но с более мощным функционалом чем Chatbot UI. С интеграцией с внешними инструментами - может гуглить, загружать веб страницы, делать ReAct. Также поддерживаются модели по генерации изображений. Другая особенность - “AI Personas” - ассистены для разных задач(Пока что довольно сложно настраивать своих, но вы можете делать своих персон со своими системными промтами)

Telegram бот

Можете запустить свой телеграм бот, даже несколько для разных задач. Например, можете сделать асистентов с разным system prompt для разных задач. Опять таки, за телеграм ботом может быть просто ваш ключ к OpenAI, а может быть ваша локальная модель запущенная с помощью LocalAI

Как собрать решение под себя

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

Ниже я приведу примеры комбинаций под разные задачи.

Для запуска вам может потребоваться:

  • OpenAI аккаунт(ключ), который вы можете оплачивать
  • VPS - виртаульный сервер(желательно где-нибудь в европе, например в timeweb)
  • GPU сервер - сервер с видео картой. Можете рассмотреть цены на Yandex Cloud или запуск на своем железе

ChatGPT без vpn

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

Варианты комбинаций:

  • OpenAI аккаунт, VPS, Chatbot UI/BIG-AGI - если нужен веб интерфейс
  • OpenAI аккаунт, VPS, Telegram bot
  • GPU сервер, LocalAI, Chatbot UI/BIG-AGI
  • GPU сервер, LocalAI, Telegram bot

Q&A бот

Как превратить инструкции для сотрудников в бота, который способен отвечать на вопросы?

Часто эту задачу называют “дообучение на своих данных”. Чаще всего вам не нужно дообучение(это дорого и не так эффективно), вам нужно предоставить качественный контекст(см. RAG) из своих данных для LLM.

Варианты комбинаций:

  • OpenAI аккаунт, VPS, PrivateGPT
  • OpenAI аккаунт, VPS, PrivateGPT, Chatbot UI/BIG-AGI
  • OpenAI аккаунт, VPS, PrivateGPT, Telegram bot
  • GPU сервер, PrivateGPT
  • GPU сервер, LocalAI, PrivateGPT

Ассистенты с system prompt

Этот тот случай, когда мы можете создать много ассистентов решающих узко-направленные задачи. При этом, вся логика описана в system promt. Тот самый случай, когда какую-то инструкцию для сотрудника по выполнению определенной задачи(например, подготовки документа, технической конфигурации и тд) можно заменить ботом, который помогает сотруднику эту задачу выполнить гораздно быстрее и проще. Например, в reputation.ru есть ассистент, который генерирует kubernetes манифесты для публикации приложений, уточняя у разработчика все необходимые детали приложения.

  • OpenAI аккаунт, VPS, Telegram bot
  • OpenAI аккаунт, VPS, BIG-AGI(сделать кастомную “AI persona”)
  • GPU сервер, LocalAI, Telegram bot
  • GPU сервер, LocalAI, BIG-AGI(сделать кастомную “AI persona”)

Заключение и мысли про finetuning(дообучение)

Часто вижу что компании хотят сделать свою LLM заточенную под их предметную область и часто ошибочно полагают что дообучение существующих foundation models это правильный путь. В тоже время их задачу может решить промпт инжиниринг или качественный контекст(RAG).

Bloomberg потратил $10 миллионов чтобы дообучить и сделать BloombergGPT заточенную под финансовые задачи. Через две недели вышла GPT4, которая превзошла их модель на тех самых финансовых задачах без всякого finetuning.

Поэтому лучше:

  1. Получите доступ к одной из foundation models(OpenAI, Claude3, Google Gemini или запустите локально Llama 2, Mistral). Моя заметка-сравнение некоторых моделей на русском языке
  2. Поиграйтесь с проптом и разными техниками промпта, попробуйте разбить задачу на несколько этапов, дайте LLM примеры
  3. Дайте LLM доступ к базе знаний через RAG
  4. Сделайте набор тестов и сравните разные модели
  5. Если нужен специфичный стиль выдачи, формат или нужно улучшить поведение модели на сложных "edge cases" - попробуйте finetuning

На последок неплохое видео от OpenAI про то как выжимать максимум из LLM:

0
10 комментариев
Написать комментарий...
Виктор Петров
Дайте LLM доступ к базе знаний через RAG

Я правильно понимаю, что это работает как обычная индексация какого-то корпуса, примерно на уровне elastic search? То есть фактически берем какую-то коллекцию документов, скармливаем на вход модели без дообучения - и этого достаточно?

Ответить
Развернуть ветку
Aidar Musin
Автор

В целом правильно понимаете. Однако алгоритм извлечения информации из корпуса документов может быть сложнее чем простой TFIDF в elastic search

Ответить
Развернуть ветку
Виктор Петров

Я с gpt4all и mistral сейчас экспериментирую. Очень противоречивые впечатления. Красивая идея: на базе пачки доков получить собственного карманного эксперта в сложной теме без дообучения. По факту же - видимо, всё упирается в подготовку данных и их объём всё таки. Пока результатами тестов недоволен.

Ответить
Развернуть ветку
Aidar Musin
Автор

Да, к тому же очень сильно завиcит от доменной области. Подготовка документов и их разбивка очень сильно влияет. Можете рассмотреть вариант чтобы разбитый корпус еще дополнительно прогонять через LLM чтобы делать суммаризиацию или какое-то другое извлечение информации. А еще всякие подходы к промптингу типа CoT пред ответом.

Ответить
Развернуть ветку
Виктор Петров

Вот тут, видимо, и засада. Пользователю предлагается взять пачку txt, pdf, csv, отдать на вход модели – и можно пользоваться. Но этого недостаточно.
Для примера: скармливаю пачку спецификаций по оборудованию. Модель об этом изначально ничего не знает, нету этих данных в интернете. Задаю запрос по конкретной характеристике - скажем, по диаметру воздуховода. Уверенно отвечает - но настолько мимо, что хоть стой хоть падай. И куда копать - неясно.
Ну, попробую менять формат на входе.

Ответить
Развернуть ветку
Irvin Con

да нейро любит приврать... с умным видом = в prompt прописывайте условие
—-
вот недавнее видео про claude в вашу тему https://www.youtube.com/watch?v=Evg4HXvsYVY&t=8s&pp=ygUkQW50aHJvcGljJ3MgTWV0YSBQcm9tcHQ6IEEgTXVzdC10cnkh

Ответить
Развернуть ветку
Антон Кузьмин

Вы описали тест Needle in haystack https://arize.com/blog-course/the-needle-in-a-haystack-test-evaluating-the-performance-of-llm-rag-systems/

Попробуйте потюнить ваш промпт для извлечения фактов, ну и разные форматы документов тоже

Ответить
Развернуть ветку
Константин Сорокин

Весьма полезно, благодарю за столь подробно освещенную тему!

Ответить
Развернуть ветку
Алеоп

Я правильно понимаю, что хоть и размещаем что-то на своем корп сервере, то ОпенАи может в любой момент прикрыть лавочку?

Ответить
Развернуть ветку
Aidar Musin
Автор

может, поэтому вы можете использовать локальную модель. В тоже время, лавочка уже прикрыта для РФ, но все кому нужно обходят :)

Ответить
Развернуть ветку
7 комментариев
Раскрывать всегда