1. Настроить окружение у себя или предоставить статический IP для того, чтобы мы открыли ssh к нашей машине, на которой есть ollama + qdrant (доступы будут предоставлены после 5 августа)
2. Для работы использовать связку Ollama + Llama 8b + Qdrant* (для начала работы будет предоставлен docker-compose.yml)
3. Разработать и протестировать оптимальный механизм разбития текста на чанки (для начала работы будет предоставлен сплиттер, написанный на Go и скомпилированный под linux amd64)
4. Разработать ретривел на Python, который будет делать запросы в Llama 8b, а также заливать вектора в Qdrant
5. Сформировать вектора для 25 тестовых гостов (будет предоставлен архив с документами)
6. На первом этапе добиться адекватных ответов нейронки по одному документу. В случае успеха переходить к следующему этапу.
7. Протестировать запросы к табличным данным при формировании векторов для документов с вырезанными таблицами и с документами, где таблицы являются частью документа.
8. Сформировать вектора для 65000 документов (будет предоставлен архив с 65000 документами и метаданными)
9. Добиться адекватных ответов по нескольким документам. Идентификаторы документов будут передаваться путем обращения к нашей функции в постгресе.
10. Протестировать возможность запроса ко всем документам в базе без предварительного отбора N релевантных документов.
11. В случае успеха на предыдущих этапах провести дообучение нейронки с учетом специфики запросов.
Примечание: Qdrant является рекомендуемым хранилищем векторов. Можно реализовать все с Chromadb, здесь мы не ограничиваем выбор, но по нашему мнению Qdrant более удобен в работе, имеет GUI. Адаптер для Qdrant-а можно взять со старого ретривела.
Примечание: Важным требованием является добиться возможности нейронки выводить название источника (номера госта) в тексте ответа. Поэтому необходимо подумать, в каком виде хранить информацию в каждом чанке и соответствующим образом настроить промпт. Как вариант, добавлять в начало каждого чанка название источника (номера госта).
Примечание: в ходе предварительных тестов мы добились лучших результатов со следующими параметрами:
Размер чанка: 300 токенов
Чанки без наложения (chunk overlap)
Алгоритм поиска Manhattan distance
Модель для заливки векторов nomic-embed-text
Эти параметры приводим исключительно для сведения.
Опубликован 27.08.2024 в 12:35
Заказ находится в архиве