Redis Vector Search: англійською мовою для інженерів, що будують застосунки штучного інтелекту

Вивчіть англійську термінологію для векторного пошуку Redis — VSS, індекс HNSW, FT. CREATE, векторні поля, запити KNN, гібридний пошук і Redis Stack.

Векторний пошук перейшов від дослідницьких статей до виробничих застосунків штучного інтелекту, і Redis став одним з найпопулярніших варіантів для зберігання і запиту вбудованих даних з низькою затримкою. Інженери, що будують семантичний пошук, рекомендаційні рушії або конвеєри з покращеним пошуком (RAG), повинні обговорювати типи індексів, стратегії запитів і дизайн схем з точністю. Цей підручник містить англійську лексику, яка використовується під час перегляду проекту, коментарів щодо запитів на звантаження і обговорень команди, коли у стеку знаходиться векторний пошук Redis.

Ключовий словник

** VSS (Vector Similarity Search) ** — можливості Redis, частина модуля RediSearch, що надає змогу зберігати високовимірні вектори поряд зі звичайними полями даних і виконувати запити на їх подібність, а не на точне збігнення. “Ми обрали VSS замість виділених векторних баз даних, тому що ми вже працювали з Redis у виробництві і не хотіли вводити ще одну службу стану.”

** HNSW index ** — Ієрархічний малий світ, який можна пересувати, приблизний алгоритм найближчого сусіда, який обмінює невелику кількість точності відновлення на значно швидшу швидкість запиту у масштабі. “Ми перейшли з індексу FLAT на індекс HNSW, як тільки кількість вбудованих перевищила півмільйона — затримка запиту впала з 80 мс до менше ніж 5 мс.”

** FT.CREATE ** — команда Redis, яку використовують для створення індексу пошуку, включаючи визначення схеми для текстових, числових, міток і векторних полів. “Схема в FT.CREATE визначає поле VECTOR з алгоритмом HNSW і встановлює кількість розмірів до 1536, щоб відповідати вбудованим OpenAI Ada.”

** Векторне поле ** — тип поля у схемі індексу RediSearch, у якому зберігається масив з рухомою комою фіксованого розміру, що представляє вбудоване поле. “Кожен документ продукту має векторне поле description_embedding, яке заповнюється шляхом передачі опису продукту через вбудовану модель у час індексування.”

** KNN запит ** — запит на K- найближчих сусідів, який повертає K найбільш схожих векторів до заданого вектора запиту, впорядкованих за косинусом або евклідової відстанню.

  • “Кінечна точка пошуку виконує запит KNN з K встановленим на 10, потім переранжує результати за допомогою легкого перехресного кодера перед поверненням трьох найкращих клієнту.” *

** Гібридний пошук ** — запит, який поєднує оцінку векторної подібності з традиційними умовами фільтрування (мітка, діапазон чисел, повний текст), таким чином, результати повинні задовольняти як семантичні, так і структуровані критерії. “Ми реалізували гібридний пошук, щоб користувачі могли сказати «знайти продукти, схожі на цей опис, але тільки в категорії взуття і за ціною менше 50 фунтів» — попередній фільтр відбувається перед етапом KNN.”

** Redis Stack ** — дистрибутив Redis, який поєднує ядро Redis з набором модулів, включаючи RediSearch (для векторного і повнотекстового пошуку), RedisJSON, RedisTimeSeries і RedisBloom. “Упевніться, що витягнутий вами образ Docker є redis/redis-stack, а не простий redis — VSS вимагає модуля RediSearch, який поставляється тільки з Redis Stack.”

** Вбудована розмірність ** — кількість значень з рухомою комою у векторі, які повинні точно збігатися між схемою індексу і кожним вектором, збереженим або запитаним за допомогою цієї схеми.

  • “Ми зіткнулися з помилкою невідповідності розмірів під час перегляду, оскільки вбудовану модель було оновлено з 768 до 1024 розмірів, але схема індексу не була відтворена.” *

Корисні фрази

  • «Я запустю FT.CREATE з полем VECTOR, використовуючи алгоритм HNSW, косинусну метрику відстані, і розмірність 1536 — тоді ми можемо почати вбудовувати вбудовування»
  • «Перефільтрування в гібридному запиту зменшує набір кандидатів перед кроком KNN, який зберігає високу віддачу без сканування повного індексу»
  • «Ми зберігаємо необроблений JSON-документ з JSON.SET і зберігаємо вектор в окремому геш-полі, індексованому RediSearch — таким чином ми можемо оновити вбудовування без переписування всього документа»
  • «На мільйон векторів, FLAT пошук стає занадто повільним для використання в реальному часі; HNSW з EF_RUNTIME налаштованим на 200 дає нам правильний баланс швидкості і відновлення для нашого випадку використання»
  • Команда FT.SEARCH повертає як відстань, так і поля документа — ми нормалізуємо косинусну відстань до відсотка подібності перед тим, як відобразити її в інтерфейсі користувача

Поширені помилки

** Використання « пошук за вектором » замість « запит за подібністю ». ** Люди, які не є носієм мови, іноді описують запит KNN як « пошук за вектором », що звучить незграбно для англомовних інженерів. Стандартною фразою є « запит за подібністю », « виконати пошук за подібністю » або « виконати пошук найближчого сусіда ». Вираз « Я запитую за косинусною подібністю » є ясним і природнім.

** Плутанина « index » як іменника і дієслова без правильного прикметника. ** Інженери іноді кажуть « ми індексуємо вбудовані дані у Redis », коли правильним висловлюванням є « ми індексуємо вбудовані дані * у * Redis » або « ми зберігаємо і індексуємо вбудовані дані за допомогою RediSearch ». Сам індекс є * у * (або * на *) базі даних, а не * до * неї. Це розрізнення має значення в письмовій документації і проектних документах.

** Плутанина « розмірність » і « вимірність ». ** Обидва слова коректні, але * розмірність * використовується як злічений іменник у практичних розмовах Redis: « вектор має 1536 вимірів » або « вбудована вимірність — 1536 ». * Вимірність * частіше зустрічається у наукових працях (« прокляття вимірності »). У повсякденній інженерній англійській, для зрозумілості, краще використовувати простіші dimensions або embedding dimension.

Завдяки цьому словнику ви зможете повністю долучитися до обговорення архітектури систем пошуку за допомогою штучного інтелекту — від початкового проектування схеми до налаштування продуктивності і аналізу виробничих подій.

Національна мова: мова, що використовується для спілкування між ненаціональними групами

Redis Vector Search (VSS) набирає популярності в розробці застосунків штучного інтелекту, і розуміння термінології є ключовим - не тільки для ефективності, але і для чіткого спілкування в технічній команді. Для розробників, які вивчають професійну англійську, особливо тих, чия перша мова не є англійською, точність цих термінів може здатися пригнічуючим. Розглянемо, як підійти до цього завдання, зосередившись на побудові впевненості у тому, що ви точно виражаєте себе і розумієте складні дискусії навколо векторного пошуку.

Однією з найпоширеніших перешкод є різниця між « індексом » і « алгоритмом ». У багатьох перекладах використовується слово « індекс » для позначення HNSW (Hierarchical Navigable Small World), яке, хоча і є технічно точним, може затьмарювати суть процесу. Замість того, щоб сказати «ми використовуємо індекс HNSW», більш ефективним формулюванням - особливо при поясненні колегі - буде «Ми використовуємо алгоритм * HNSW *, щоб створити швидке і масштабоване векторне рішення пошуку». Замість того, щоб просто сказати « створити векторне поле », краще сказати: « Ми використовуємо FT.CREATE для ініціалізації нового векторного поля, що містить наші вбудовані дані. » Це підкреслює * дію *, яку слід виконати, і уникнення жаргону, який може не бути відразу зрозумілим. Під час перегляду коду, ви можете побачити такі коментарі: « Чи можете ви розібратися в обґрунтуванні вибору цього конкретного розміру індексу HNSW? Менший індекс може призвести до збільшення затримки під час запитів KNN. ” - запит на пояснення чітко оформлений, уникаючи припущень про розуміння розробником основних компромісів з продуктивністю. Пам’ ятайте, що активне слухання і запитання, які пояснюють, є основними навиками під час роботи з технічним словником. Не вагайтеся сказати: «Чи можете ви пояснити, що ви маєте на увазі під «оптимізацією параметрів запиту KNN»?»

Іншою областю, де часто виникають нерозуміння, є опис типів запитів. « KNN » (K найближчих сусідів) може здатися абстрактним. Замість того, щоб просто сказати « ми виконуємо запит KNN », розгляньте його так: « Ми використовуємо запит KNN для ідентифікації найбільш схожих векторів у нашому наборі даних, на основі косинусної подібності — що дозволяє нам отримати елементи з відповідним семантичним вмістом. » Це додає контекст і підкреслює практичний результат. При написанні описів PR важлива точність. Замість того, щоб сказати « Впроваджено гібридний пошук », що є неясним, описайте його так: « Впроваджено гібридну стратегію пошуку, що поєднує пошук за точною фразою з пошуком за векторною подібністю, щоб поліпшити відновлення як структурованих, так і неструктурованих даних. » Такий рівень деталізації демонструє чітке розуміння архітектури системи і її передбачуваної функціональності.

Нарешті, пам’ ятайте, що професійний словник англійської мови постійно розвивається; будьте в курсі найкращих практик у вашій команді і в більших спільнотах. Не бійтеся просити про пояснення – це завжди краще шукати розуміння, ніж ризикувати неправильним спілкуванням.

redis-cli FT.CREATE my_vector_field --capacity 100000 --orders metric cosine

Поширені запитання

Про що ця стаття "Redis Vector Search: англійською мовою для інженерів, що будують застосунки штучного інтелекту"?

Вивчіть англійську термінологію для векторного пошуку Redis — VSS, індекс HNSW, FT. CREATE, векторні поля, запити KNN, гібридний пошук і Redis Stack.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Redis Vector Search: англійською мовою для інженерів, що будують застосунки штучного інтелекту"?

Приблизно 9 min.