Создание семантического поиска на Android с помощью EmbeddingGemma
Simplified Coding
0:00 / 0:00
Создание семантического поиска на Android с помощью EmbeddingGemma
1 107 просмотров · 5 дней назад
Simplified Coding
118 тыс. подписчиков
1 107 просмотров · 5 дней назад
Создайте семантический поиск на Android с помощью EmbeddingGemma и посмотрите, что на самом деле происходит, когда приложение для Android начинает поиск по смыслу, а не по точному совпадению слов.
Семантический поиск может выглядеть удивительно умно. Ищете одно слово, получаете другое слово практически без совпадений по ключевым словам и каким-то образом получаете правильный результат.
Но есть проблема.
Ближайший вектор не является автоматически правильным ответом.
В этом эпизоде «Создание приложения RAG на устройстве Android с помощью Gemma» мы изолируем слой поиска и создаем небольшую систему семантического поиска непосредственно на Android с использованием EmbeddingGemma.
Никакого облачного API.
Никакой векторной базы данных.
Никакой обработки PDF-файлов.
Никакой генерации ответа с помощью LLM.
Только то, что важно для понимания поиска.
Вы увидите, как текст преобразуется в эмбеддинги, как эмбеддинги запроса сравниваются с эмбеддингами сохраненных документов, как косинусное сходство создает рейтинг и как Top K определяет, какие результаты остаются в списке.
Что еще более важно, мы также рассмотрим случай сбоя, который большинство демонстрационных примеров семантического поиска удобно пропускают.
Что происходит, когда правильного ответа нет в ваших данных?
Векторный поиск все равно что-то найдет.
Один кандидат всегда будет ближе всего.
Именно здесь начинают играть важную роль пороги сходства, отклонение и качество поиска.
В этом эпизоде также рассматривается важная деталь EmbeddingGemma, которую легко упустить при реализации семантического поиска на Android. Запросы и сохраненные документы используют разные роли поиска, хотя оба встраиваются с использованием одной и той же модели.
Мы также обсуждаем, почему семантический поиск не является простой заменой поиска по ключевым словам или лексическому поиску, и почему реальные системы RAG часто в конечном итоге комбинируют оба подхода.
Полный проект Android для этого курса доступен здесь:
https://github.com/probelalkhan/on-de...
Если вы проходите полный курс, цель состоит не только в создании еще одного демонстрационного примера RAG.
Цель — понять, почему поиск работает, где он дает сбои и что нужно измерить, прежде чем доверять ему в реальном Android-приложении.
Потому что найти ближайший результат легко.
А вот определить, действительно ли этот результат полезен, — более сложная задача.
#СемантическийПоиск #РазработкаAndroid #EmbeddingGemma #OnDeviceAI #AndroidAI #RAG #ВекторныйПоиск #ВстраиваниеТекста #КосинусноеСходство #Kotlin #JetpackCompose #ЛокальныйИИ #МашинноеОбучение #AIEngineering #РазработчикиAndroid