Англійська для розробників Weaviate
Освоєння англійського словника, який розробники використовують для векторного пошуку, класів схем і гібридних запитів під час обговорення Weaviate з командою.
Векторні бази даних, такі як Weaviate, мають словник, який змішує терміни пошуку інформації (релевантність, відновлення) з векторними математичними термінами (метрика відстані, розмірність) — і пошук командного будівництва або функції RAG повинні говорити обома мовами точно, оскільки «результати пошуку погані» можуть означати дуже різні речі залежно від того, в якому шарі проблема. Цей підручник містить інформацію англійською мовою, яку використовують під час обговорення Weaviate з командою.
Ключовий словник
** Вбудоване векторне представлення ** — числове представлення тексту, зображень або інших даних, створених за допомогою моделі, розташованих у високовимірному просторі, так, щоб семантично схожі елементи були близькі один до одного.
- “В пошуку відсутні очевидні синонімії, оскільки вбудовану модель було навчено на іншому домені — перемикання на модель, налаштовану на домен, має виправити проблему з відкликанням.” *
** Пошук найближчого сусіда (ANN) ** — приблизний пошук найближчого сусіда, клас алгоритмів Weaviate використовується для швидкого пошуку найближчих векторів до вектора запиту, що забезпечує невелику точність, але значно збільшує швидкість пошуку.
- “При такому розмірі збірки пошук найближчого сусіда є занадто повільним для виробництва — нам слід налаштувати параметри індексу ANN замість того, щоб повністю вимкнути наближення.” *
** Метрика відстані ** — функція (косінус, добутку точок, Евклідова/ L2), яку використовують для вимірювання подібності між двома векторами, які мають збігатися з тим, як було навчено вбудовану модель, щоб отримати значущі результати.
- “Ми отримуємо погані результати, тому що збірку налаштовано для відстані L2, але модель вбудовування була навчена і нормалізована для косинусної подібності.” *
** Гібридний пошук ** — поєднання пошуку за векторною схожістю з традиційним пошуком за ключовими словами (BM25) у одному запиту, зазвичай, змішаному з параметром вагань, для пошуку як семантичних, так і точних збігів.
- “Чисто векторний пошук не знайшов точний SKU продукту у запиту — перехід на гібридний пошук з більшою вагою ключових слів повинен надійним чином знайти точні відповідності.” *
** Клас схеми ** — термін Weaviate для типу збірки з визначеним набором властивостей і налаштуваннями векторизації, аналогічним до таблиці у реляційній базі даних.
- “Перед додаванням цієї нової властивості до класу схеми, пам’ ятайте, що зміна векторизованих властивостей існуючого класу зазвичай вимагає переіндексування всієї збірки.” *
** Поріг певності / оцінки** — межа, яку застосовують до результатів пошуку на основі оцінки подібності, використовується для виключення результатів, які технічно є « найближчими », але насправді не є відповідними. “Повернення перших десяти результатів незалежно від балів вводить користувача в оману, коли є лише дві справді відповідні відповіді — застосуємо порог впевненості і покажемо менше, але кращі результати.”
Звичайні фрази
- Чи відповідає метрика відстані тут тому, як була тренована вбудована модель?
- Чи є це проблемою з вбудовуванням, чи проблемою з ранжуванням запитів?»
- Чи є це гібридним пошуком замість чистої векторної схожості?
- «Чи додавання цієї властивості до класу схеми вимагає повторного індексування?»
- Чи застосовуємо ми поріг балів, чи просто повертаємо сирий топ-N незалежно від актуальності?»
Приклади висловлювань
Перегляд запиту на звантаження: “Цей запит повертає перші двадцять найближчих сусідів безумовно — додамо поріг певності, щоб ми не виявляли мало пов’ язані результати лише для того, щоб заповнити підрахунок.”
Пояснення рішення про проектування:
- “Ми використовували гібридний пошук, оскільки наші користувачі шукали як за описами природною мовою, так і за точним номером деталі, а чистий векторний пошук не мав останнього.” *
Опис вади:
- “Кваліфікація пошуку знизилася після оновлення вбудованої моделі, оскільки ми зберегли старе налаштування метричної відстані — нова модель очікує косинусної подібності, а не L2, яку ми налаштували.” *
Професійні поради
- Скажіть “recall”, коли проблема полягає в тому, що відповідні результати не з’ являються взагалі, і “ranking”, коли відповідні результати з’ являються, але в неправильному порядку — об’ єднання їх відсилає зневадження в неправильному напрямку.
- Під час перегляду поведінки пошуку, запитайте “чи відповідає метрика відстані тренуванню вбудованої моделі?” — невідповідності тут є дуже поширеною, легкою причиною поганих результатів.
- Використовуйте “гібридний пошук” саме для позначення поєднання векторного і ключового пошуку — це специфічна, названа техніка, а не нечітке описування “використання двох видів пошуку”
- Розрізняти « ANN » (приблизний найближчий сусід, щоденний режим виробництва) від « точного найближчого сусіда » (повільніший, використовується переважно для малих збірок або порівняння з фактами).
Практичні вправи
- Поясніть у двох реченнях, чому невідповідність метрики відстані може погіршити якість пошуку навіть за умови хорошої моделі вбудовування.
- Напишіть рекомендацію у одному реченні щодо того, коли слід використовувати гібридний пошук замість чистого векторного пошуку.
- Опишемо вашими словами різницю між проблемою відновлення і проблемою ранжування.
На практиці: Навігація нюансів для не-народжені мовці
Будьмо чесними - професійний розвиток не тільки про написання коду. Це про комунікацію цього коду ефективно, співпрацюючи з вашою командою, і переконуючись, що всі розуміють бачення за вашою роботою. Для не рідних англомовних носіїв, це може бути особливо складним, коли справа доходить до спеціалізованого словника векторних технологій пошуку, таких як Weaviate. Самі слова можуть бути відносно простими, але тонкі нюанси фразування - спосіб, в який ідеї представлені в перегляді коду, обговорення Slack або навіть опис запитів на витяг - можуть значно вплинути на те, як ваш внесок приймається і розуміється.
Однією з поширених перешкод є очікування щодо * ясності * в технічній комунікації. Розробники часто використовують точну мову, щоб уникнути неоднозначності, але для когось, чия перша мова не є англійською, це може здатися надто формальним або навіть коротким. Це не про пояснення, що зводяться до нуля; це про те, щоб переконатися, що ваше значення передається з максимальною точністю і мінімальним місцем для неправильного тлумачення. Наприклад, сказати «Це вирішує проблему» цілком прийнятно в швидкому повідомленні Slack, але описуючи * чому * ви виправили його - детально описуючи кореневу причину, визначену за допомогою аналізу векторної схожості - демонструє глибше розуміння і створює довіру. Аналогічно, під час перегляду коду когось іншого, надання зворотнього зв’ язку на зразок « Клас схеми може отримати користь від більш детального індексування » є більш конструктивним, ніж просто заява « Це потребує роботи ». Останнє не має контексту і не пояснює * як * його поліпшити.
Іншою ключовою областю, на якій варто зосередитися, є використання активного проти пасивного голосу. Хоча пасивне фразування не є поганим за своєю суттю, надмірне використання може зробити ваш письмовий текст заплутаним і неясним. Замість того, щоб сказати « Дані було індексовано », краще буде сказати « Ми індексували дані за допомогою weaviate CLI. » Це підкреслить * хто * виконав дію і продемонструє знайомість з інструментом. Крім того, навчання сформулювати логіку за рішеннями проектування - особливо ті, що включають складні конфігурації схем або гібридні стратегії запитів - є ключовим для демонстрації вашої цінності в команді. Не просто скажіть що ви зробили; поясніть чому ви обрали цей підхід.
Нарешті, пам’ятайте, що документація не є виключно технічними специфікаціями; це спільні зусилля для побудови спільного розуміння. Під час написання PR- описів, розгляньте можливість додавання короткого резюме змін архітектури і як вони збігаються з загальною стратегією Weaviate. Це показує вашу обізнаність з більш широким контекстом і заохочує рецензентів швидко зрозуміти важливість вашої роботи.
weaviate cl i -c mydata -o "SELECT * FROM MySchema WHERE similarity($vector) > 0.8" --output json
Ця команда ілюструє поширений сценарій: використання weaviate CLI для виконання гібридного запиту — комбінації векторного пошуку і фільтрування на основі певних критеріїв — для отримання відповідних даних з mydata набору даних в MySchema класі. Вихідний JSON надає конкретні докази використовуваних параметрів пошуку і отриманих результатів, полегшуючи обговорення щодо оптимізації продуктивності або коригування схеми.