Векторизація
Швидке визначення
Векторизація - це список чисел (вектор), який представляє значення тексту, зображення або іншого елемента, так що подібні елементи отримують сусідні вектори. Векторизація робить можливим пошук за значенням.
На цій сторінці
Як працює векторизація
Модель векторизації читає текст і виводить вектор фіксованої довжини, зазвичай кілька сотень до кількох тисяч чисел. Модель навчена так, що тексти з пов'язаними значеннями опиняються близько один до одного в цьому просторі: "політика повернення" і "як я можу повернути свої гроші?" майже не ділять слів, але виробляють близькі вектори.
Ідея повертається до векторів слів, таких як word2vec (Міколов та колеги, 2013), які навчилися, що слова, що з'являються в подібних контекстах, мають подібні значення. Моделі на рівні речень, такі як Sentence-BERT (2019), розширили це на цілі речення та уривки, що є тим, що потрібно для пошуку та відповідей на запитання.
Для чого вони використовуються
Векторні уявлення забезпечують семантичний пошук: порівнюють вектор запитання з векторами збережених фрагментів і повертають найближчий. Вони є етапом отримання в генерації з підкріпленням (RAG). Вони також служать для кластеризації схожих розмов, виявлення дублікатів, рекомендацій схожих продуктів і маршрутизації повідомлень до правильної теми.
Мультимовні моделі векторних уявлень розміщують запитання французькою та фрагмент англійською близько один до одного, коли вони мають однакове значення, що дозволяє одній базі знань обслуговувати клієнтів багатьма мовами.
Практичні моменти
Вектори з різних моделей не є порівнянними: якщо ви зміните модель векторних уявлень, кожен збережений фрагмент потрібно буде повторно векторизувати. Векторні уявлення захоплюють значення, а не точні значення, тому вони погано підходять для точних фільтрів, таких як ціновий діапазон або посилання на продукт — для цього потрібні структуровані поля або пошук за ключовими словами. А довгі документи повинні бути розділені на фрагменти перед векторизацією, оскільки один вектор для цілого посібника розмиває його зміст.
Моделі векторних уявлень також відрізняються за покриттям мов, розмірністю (і, отже, вартістю зберігання) та місцем їх розміщення.
Векторні уявлення в AI SmartTalk
Кожен асистент AI SmartTalk використовує одну модель векторних уявлень для всіх своїх знань. Нові асистенти за замовчуванням використовують мультимовну модель, розміщену в ЄС, а також доступні моделі векторних уявлень OpenAI. Вектори зберігаються в PostgreSQL з pgvector і комбінуються з пошуком за ключовими словами та триграмами, щоб посилання на продукти та точні терміни знаходилися так само надійно, як і перефразовані запитання.
Поширені запитання
У чому різниця між векторним уявленням і токеном?
Токен — це частина тексту, приблизно фрагмент слова, який читає модель. Векторне уявлення — це вектор чисел, що представляє значення — токена, речення або цілого фрагмента.
Чи є векторні уявлення тим самим, що й векторна база даних?
Ні. Векторні уявлення — це вектори; векторна база даних або індекс зберігає їх і швидко знаходить найближчі.
Чи можу я пізніше змінити моделі векторних уявлень?
Так, але кожен збережений елемент повинен бути повторно векторизований новою моделлю, оскільки вектори з різних моделей живуть у різних просторах і не можуть бути порівняні.