GigaChat хорошо отвечает на фактологические вопросы и вопросы, ответ на которые есть в промпте. Но память у каждой языковой модели ограничена, значит GigaChat не может обрабатывать большие базы данных.
Что же делать, если задача именно такая? Доучивание модели может занять недели, а то и месяцы, и, как мы знаем, не всегда целесообразно. Есть решение под названием Retrieval Augmented Generation («генерация с расширенным поиском», RAG).
Это механизм извлечения информации, при котором модель «режет» данные на небольшие фрагменты, чтобы найти те их них, которые с наибольшей вероятностью содержат нужный ответ. Порядок действий такой:
- Документы — текстовые файлы, PDF, данные из интернета, Википедии и других источников, например, базы патентов — загружаются в память.
- Каждый документ «разрезается» на части, для каждой части рассчитывается эмбединг — числовой вектор, отображающий смысл текста. Если у текстов похожий смысл, эмбединги тоже будут схожими.
- Затем векторы смыслов складываются в векторную базу данных.
Загружаем -> разрезаем -> создаём вектор -> складываем: