Я новичок в теме LLM (всего 2-3 дня) и столкнулся с потенциальной проблемой в RAG Pipelines. Какое утверждение неверно/верно?
Модели LLM используют самые фундаментальные единицы обработки в качестве токенов. Токены создаются с помощью токенизаторов (будут зависеть от модели)
Токен передается в LLM последовательно (из списка токенов за раз, что также определяет окно контекста)
При «обучении» «вложения» инициализируются случайным образом. После обучения создается матрица внедрения, в которой имеется встраивание для определенного токена.
Теперь, в RAG, почему мы можем «настраивать» наше собственное встраивание? Я понимаю, что это помогает при векторном поиске уже сохраненных внедрений, но, наконец, когда вы отправляете все это в модель, это «обходит» внедрения модели и запускает процесс вывода, как обычно? Кроме того, почему в конвейерах RAG не часто упоминаются токенизаторы?
Прошел несколько веб-сайтов, но процесс везде абстрагирован. Там упоминается «мы создаем вложения», и все готово!
Потому что вы читаете очень глупые статьи о RAG, используя RAG, вы можете переобучить свой LLM (кодер, декодер и т. д.), но в основном никто им не пользуется, и достаточно выполнить векторный поиск для получения новой пользовательской информации, чтобы создать контекст для окончательного запроса LLM.
Я нашел ответ.... это была глупая мелочь. Суть вопроса в том, что когда вы извлекаете вложения на основе семантического поиска, конечный результат (независимо от того, что происходит) в конечном итоге будет преобразован только в текст, отсюда и название «дополненная» генерация — по сути, прославленный механизм улучшение контекста запроса в отношении этого простого приложения
Таким образом, по сути, два процесса (имеющие определенное встраивание в векторную БД) по сравнению с встраиванием в саму модель, естественно, являются отдельными и не влияют друг на друга.