Создание GPT-ассистента руководителя на локальной LLM

Дата
20 июня 2024 г.
Статус
Завершено
Создание GPT-ассистента руководителя на локальной LLM

Как держать руку на пульсе проектов? Основанный на Llama 3 ассистент упрощает доступ к проектным документам и проектным wiki. Кейс компании из сферы заказной ИТ-разработки.

Саммари мероприятия

Свой GPT-ассистент руководителя на локальной LLM: конфиденциально и бесплатно

TL;DR

Спикер из аутсорс-компании AIDEA рассказывает, как они создали персонального AI-ассистента, работающего полностью локально (без отправки данных в OpenAI). Решение построено на Llama 3 8B и RAG (поиск по внутренней базе знаний). Главная цель — защита коммерческой тайны и независимость от облачных вендоров. Доклад о том, как собрать свой «ChatGPT» для бизнеса за пару недель на одной видеокарте RTX 4090.

Кому будет полезно

  • Роли: CTO, Tech Lead, ML-инженеры, Python-разработчики, руководители, переживающие за приватность данных.
  • Уровень: Middle+.
  • Условия: Если у вас есть куча внутренней документации (Wiki, Google Docs) и вы хотите поиск по ней, но службе безопасности запрещает использовать ChatGPT.

Краткий контекст

  • Спикер: Инженер компании AIDEA (занимаются аутсорс-разработкой).
  • Проблема: Нужно быстро находить информацию по проектам (ТЗ, регламенты), но данные нельзя передавать третьим лицам (OpenAI, Google, Apple).
  • Решение: Локальный Telegram-бот с RAG-системой на базе Llama 3, запущенный на собственном «железе».

Ключевые идеи

1. Приватность важнее удобства

Что сказали: Облачные решения (ChatGPT, Claude) и экосистемные фичи (Apple Intelligence) хороши, но они требуют передачи данных на чужие серверы. Для бизнеса это риск утечки и зависимость от вендора. Почему это важно: К 2030 году данных для обучения моделям не хватит, и корпорации начнут активнее использовать пользовательские данные. Локальная модель гарантирует, что ваши секреты останутся внутри контура. Как применить: Оцените риски передачи ваших данных (NDA, коммерческая тайна). Если риски высоки — смотрите в сторону Self-hosted LLM.

2. Архитектура «Песочницы» (Семантический роутер)

Что сказали: Нельзя просто свалить все документы компании в одну кучу (векторную базу) и искать по ним. Модель начнет путать проекты и галлюцинировать. Почему это важно: Если спросить про «разрешение картинок», модель может взять данные из проекта А и ответить ими на вопрос по проекту Б. Как применить:

  1. Сначала классифицируйте запрос пользователя (о каком проекте речь?).
  2. Подключайте только релевантный кусок базы знаний (индекс конкретного проекта).
  3. Используйте семантическое дерево тегов для документов.

3. Llama 3 8B — золотая середина

Что сказали: Тестировали разные модели (Mistral, Command R, Llama 70B). Остановились на Llama 3 8B. Почему это важно: Это лучший trade-off между качеством ответов (понимает русский, неплохо держит контекст) и скоростью работы на одной потребительской видеокарте (RTX 4090). Как применить: Для старта локального ассистента не нужен кластер серверов. Достаточно одной мощной карты с 24GB VRAM. Используйте квантованные версии моделей, если память ограничена.

4. RAG по Google Docs и Wiki

Что сказали: Ассистент индексирует реальные рабочие документы: ТЗ, регламенты, графики отпусков. Почему это важно: Это превращает «болтушку» в рабочий инструмент. Руководитель не отвлекает сотрудников вопросами «где ссылка на макет», а спрашивает бота. Как применить: Настройте парсинг ваших Google Docs/Confluence. Разбейте текст на чанки (куски) по 1000–2000 символов (желательно по смысловым блокам/параграфам) и положите в векторную БД (ChromaDB).


Примеры и кейсы

  • Поиск технических деталей:
    • Запрос: «Какое исходное разрешение фотографий в проекте Ламода?»
    • Результат: Бот находит конкретное ТЗ, цитирует требования к фото и дает прямую ссылку на документ.
  • Онбординг и регламенты:
    • Запрос: «Как устроить сотрудника?» или «Как настроить CI/CD для нового проекта?»
    • Результат: Выжимка из внутренней Wiki компании.
  • Саммари звонков:
    • Запись звонка прогоняется через модель Whisper (Voice-to-Text), сегментируется по спикерам, а затем LLM делает краткую выжимку договоренностей.

Ошибки и грабли

  • LangChain — зло (для продакшена):
    • Проблема: Библиотека LangChain постоянно меняется, документация устаревает, абстракции слишком сложные.
    • Решение: Спикер (и зал) советуют писать логику RAG самостоятельно на чистом Python/API, чтобы контролировать процесс, а не бороться с фреймворком.
  • Галлюцинации малых моделей:
    • Проблема: Модели на 8B параметров склонны выдумывать факты чаще, чем GPT-4.
    • Решение: Принцип «Доверяй, но проверяй». Бот должен всегда давать ссылку на источник, откуда он взял информацию.
  • Проблемы с парсингом:
    • Проблема: Библиотеки для чтения Google Docs иногда видят скрытые/странные символы или читают не весь документ. Приходится писать "костыли" для очистки данных.

Что можно сделать уже сегодня

  1. Найти железо: Выделить машину с видеокартой уровня RTX 3090/4090 (24 Гб памяти — оптимально).
  2. Скачать модель: Загрузить Llama 3 8B (можно fine-tune версию под русский язык, например, от Ильи Гусева).
  3. Выбрать базу знаний: Взять один конкретный проект или папку с документами для теста. Не пытайтесь индексировать всё сразу.
  4. Написать простой скрипт: Сделать скрипт, который превращает текст документов в векторы (embeddings) и сохраняет в ChromaDB.
  5. Протестировать поиск: Попробовать задавать вопросы по документам и посмотреть, насколько релевантные куски текста находит база.

Цитаты

«Давно крутится идея поднять своего ассистента... чтобы не кормить своими данными корпорации».

«Если не ответишь правильно — все бабушки умрут. Ну, это не всегда работает, но мы пробовали разные промпты».

«Лучше уходить из LangChain... В итоге приходится писать самим, потому что тратишь больше времени на понимание, как у них это работает».

Итоговый вывод

Создание собственного корпоративного AI-ассистента перестало быть задачей для гигантов. С появлением Llama 3 качественный RAG можно поднять за 1-2 недели силами небольшого отдела разработки. Главный секрет успеха — не в сложности нейросети, а в качественной подготовке данных (семантическое разделение проектов) и отказе от переусложненных библиотек вроде LangChain в пользу кастомного кода.