Pull to refresh

Comments 12

много текста... ну а всё таки,

Как сделать RAG для своей компании

??

Если нужен код, читайте предыдущие статьи.

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

Для этого случая можно по подробнее "Как сделать RAG для своей компании".

Задача: для внутренних нормативных документов (ВНД) сделать сервис (чат-бот), который бы отвечал на вопросы типа: Какие ВНД противоречат друг другу и в чем?

Шаги типа: примерный список вопросов – Готово (пример, см. выше).

Далее: Затащить все необходимое ПО в периметр компании (какие LLM + RAG), Подготовить оборудование (какая карта понадобится для чат-бота?), сделать то-то и то-то. Пошагово: что нужно сделать?

Речь не про интеллектуальный поиск в самих документах, а про запросы типа противоречивости документов, например, в одном документе (ВНД) исполнителем процесса указан отдел Х, а в другом ВНД - исполнителем этого же процесса отдел Y (чат-бот должен это выявить). Есть ли примеры внедрения подобных сервисов (локальных чат-ботов по ВНД).

Интересная задача по поиску противоречий. Но это не совсем RAG, это скорее стадия подготовки к RAG. Стадия чистки данных. RAG выбирает топ X документов на запрос пользователя. На запрос типа «Какие ВНД противоречат друг другу и в чем?», он не выберет ничего.

Здесь вам просто нужно загнать все документы в LLM с промтом «Какие ВНД противоречат друг другу и в чем?». Если документов очень много, то нужно будет делать пошагово, то есть сказать: «Я буду сейчас давать тебе документы, твоя задача - выяснить, какие ВНД противоречат друг другу и в чем?». Можно это автоматизировать, чтобы оно, например, раз в какой-то период прогоняло этот сценарий и выявляло дубликаты.

Про локальный запуск. Примерные скорости при использовании GPU vs CPU локально (первый параметр - это сложность нейросети, чем больше, тем в среднем качественней результат):

  • Локальные модели, помещённые на GPU/VRAM:

    • 7–13B: 20 токенов в секунду

    • 14–40B: 15 токенов в секунду

    • 70–700B: 10 токенов в секунду

  • Локальные модели, запущенные на CPU/RAM:

    • 7B: 8 токенов в секунду

    • 14–40B: 3 токена в секунду

    • 70–700B: 1,5 токена в секунду

В среднем один токен состоит из 3–5 символов, включая пробелы, знаки препинания и специальные символы. На однобитных LLM будет в несколько раз быстрее, но качество может пострадать немного.

Таким образом, если у вас, например, 100 документов средним размером 2 листа A4 (~4000 символов), то есть весь объем в 4 тысяч символов, то обработка всех документов будет занимать в среднем ~1,5 часа на GPU и 8 часов на CPU, либо ~2-3 часа на 1-битной сети на CPU. Это очень примерно.

Если у вас объем документов больше, то вы уже рискуете не попасть в контекстное окно нейросети, и нужно будет сравнивать наборы документов, что приведет к вынужденным повторным сравнениям и удлинит этот процесс.

GPU, про который мы здесь говорим, это что-то типа ~RTX 4090 ценой ~250 тыс. рублей

(какие LLM + RAG)

Что посоветуете из бесплатного? Для пробного тестирования и демонстрации решения задачи: «Какие ВНД противоречат друг другу и в чем?». Может есть описание такого стенда / реализации? Желательно на CPU.

Из беспатных LLM? ну собственно даже chatGPT сейчас имеет бесплатный тариф, правда ограниченный по токенам. Либо любую локальную LLM отсюда https://huggingface.co/models. Либо вот эту для CPU https://t.me/aigentto/19.

Причина проста - на один вопрос в данных может быть три ответа: один пятилетней давности, другой двухлетней, а третий - этого года.

Дату в инфо о документах втащить?

Не понял про МСР --там же приложение должно уметь вызывать MCP сервер, и как оно работает на локальных нейронках? Они же тупые, если только вы 32б не поставите, а это уже карточка на 40гб.

Можно дату, но зачем усложнять если просто берем отрезаем все что старше чем X. Какое приложение должно вызывать MCP сервер? У нас адаптер в виде slack бота, он коннектится к MCP которые уже роутит вопрос куда надо. Можно использовать и облачную и локальную LLM, есть локальные 1 битные, которые даже на CPU более менее работают

Интересная работа!Такой вопрос, при работе с документами вы работали с пдф или ворд?Просто сейчас думаю в компании сам накрутить анализ по документам, но в ворд и пдф могут быть картинки и поэтому думаю попробовать в парсер документов накрутить BLIP модель для описания изображений из документов и тоже информацию о них добавлять в текст документа

У нас нет, но сейчас работаю с компанией у которой все документы в docx, pdf, и большинство отсканированые пиксельные. Тут довльно хорошо работает OCR для распознования в текст:

Библиотеки pytesseract, pdf2image, PIL. Если нужно дайте знать я скину пример кода.

Sign up to leave a comment.

Articles