ym104432846
Вставьте ссылку на видео из Youtube, Rutube, VK видео
Задайте вопрос по видео
Что вас интересует?
00:01:19
Доклад о применении Rock-системы на PHP с искусственным интеллектом:
  • Докладчик расскажет о технической реализации системы рака (Rock) на PHP с использованием искусственного интеллекта и векторных баз данных
  • Система рака предназначена для поиска и предложения вариантов на основе внешних источников, включая файлы, сайты и базы данных
  • Преимуществом системы является возможность персонализированного поиска, понимания контекста запроса и естественного языка пользователя
00:08:40
Выбор и настройка векторной базы данных:
  • Рассмотрены наиболее популярные векторные базы данных на рынке, включая квадрант Милвус, Вей, Пенико и Хрома
  • Обсуждены особенности работы с векторными базами данных, включая использование эмбединга (числового представления объектов)
  • Отмечено преимущество хранения личных материалов о Rock-системах исключительно в облачной среде, исключая возможность установки локальной версии
00:14:56
Подготовка данных и создание эмбединга:
  • Определены структура хранения данных под векторами: идентификатор продукта (ключ), описание (значение)
  • Выбрана библиотека `transformers` для работы с локальными моделями, позволяющая использовать Python и формат ONNX
  • Принято решение создать клиента для взаимодействия с векторной базой данных, используя API библиотеки Kвадрат
00:20:35
Работа с векторной базой данных и API:
  • Для обработки поисковых запросов планируется создание структуры вектора (векторная база данных), где запросы будут сравниваться с сохранёнными векторами
  • Разработан пайплайн с функцией эмбендинга, обеспечивающий векторизацию запросов и возможность сравнения результатов работы различных моделей
  • Предложено использование API библиотеки для создания фильтров и обращения к квадранту через API-запросы
00:26:00
Использование LLM-моделей и формирование промтов:
  • Разработан алгоритм передачи товаров через векторную базу данных LLM-модели для формирования точного запроса контекста
  • Установлены параметры работы модели (температура), снижающие вероятность ошибочных выводов и галлюцинаций
  • Определена стратегия рекомендаций товаров пользователям магазина техники на основе переданных характеристик и ценовых предложений
00:28:44
Бизнес-задачи и преимущества Rock-системы:
  • Система обеспечивает круглосуточные консультации пользователей без привлечения живых сотрудников благодаря работе с базой данных и использованию серверных мощностей
  • Докладчик продемонстрировал возможность запуска интернет-магазина с использованием Docker и команды `Victoria` для скачивания необходимых компонентов
  • Рассматривалась проблема обновления векторной базы данных при частых изменениях ассортимента товаров в магазине, предложена автоматическая синхронизация записей с помощью cron-таблиц или вручную
0: Так, ну что, мы готовы продолжать? Господа, есть ли тут среди нас? Поднимите руки. Есть ли тот, кто занимается мотокроссом, катается на мотоциклах. Оо, здорово, потому что следующий наш докладчик между прочи.
1: Собирается в следующем году выступать на соревнованиях по мотокроссу. Вот у него был, правда, небольшой перерыв 14 лет, но ничего страшного. Я думаю, это вообще изи.
2: Так, присаживаемся, занимаем комфортные удобные места, потому что, потому что сейчас мы с вами будем узнавать, что все уже сегодня возможно в php, а именно авто.
3: Автоматизированная обработка запросов, персонализированные ответы, цифровые помощники и умные интерфейсы. Да, все это уже есть. Нам расскажет об этом Александр Чередников. Кьюти. В общем то, да, прошу на сцену.
4: Всем здравствуйте.
5: Так, я начну меня зовут Александр Черняков, работаю техническим директором в компании q тим и сегодня расскажу, как построить рак систему на php с искусственным интеллектом.
6: Немного о себе больше 8 лет разработки основной язык программирования это php есть реальные интеграции в продакшене с искусственным интеллектом, и также я занимаюсь подключением умных.
7: Устройств на php на самых разных уровнях.
8: Про что сегодня постараюсь рассказать, что такое рак и для чего он нужен. Проблематику поиска традиционных баз данных и их неодушевлённых ответов. Покажу техническую реализацию на
9: Php с искусственным интеллектом и векторными базами данных и немного разберу, какие проблемы бизнеса решает эта система.
10: Для доклад будет основан на онлайн магазине по продаже компьютерной техники.
11: И перейду к тому, что такое рак и для чего он нужен рак сам по себе это такой паттерн машинного обучения, который помогает крупным языковым моделям искать и предлагать вариант.
12: На основании внешних источников, будь то это файлы, сайты, базы данных и так далее.
13: Разберу аббревиатуру rock 1 буква ретривел это обозначение получения релевантных данных из открытых источников.
14: Аргумент это формирование ответа на основе пром, который в дальнейшем передаётся в ллм и generation, это как раз-таки генерация ответа самой лм на основе найденных данных.
15: Небольшой жизненный цикл rock системы. Допустим, пользователь делает запрос. Нужна rtx видеокарта. Далее запрос преобразовывается в числовые векторы. Ооо них я расскажу немного позже. Дальше идёт поиск по векторной базе данных после
16: Того, как мы нашли в векторной базе данных необходимые нам записи. Отправка идёт в ллм и ллм. Нам генерирует ответ с помощью искусственного интеллекта. И как пример ответ рекомендую ртикс 40 80 за Таку.
17: Какую-то цену, потому что потому что и даёт рекомендации, беря ту информацию, которую мы ей передаём заранее.
18: Небольшое сравнение традиционного поиска и rock системы. Ну, во первых, из обычных баз данных, да, субд, с которыми мы сёк, с которым мы привыкли работать, мы всегда получим актуальные данные, которые хранятся в нашей системе. Мы
19: Получим точную информацию из нашей базы данных, только если мы введём точный запрос или максимально точный запрос. Если мы не настроили какие-то ключевые слова, заранее не добавили их в базу данных. Соответственно, мы не сможем выпол.
20: По ним поиск и нет какой-то персонализации ответа при поиске напрямую из базы данных также понимает контекст, который задаёт пользователь, понимает естественный язык человека.
21: Понимает синонимы и сленг и персонализирует ответы при выдаче.
22: Где может применяться рак системы. Ну, это различные интернет магазины, различные интернет консультанты, которые могут подсказать, сравнить.
23: Показать какие-то сходства и так далее. Далее. Это обучающие порталы, например, это онлайн школы. Ученик где-то учится плохо. По его статистике нужно посмотреть, где ему не хватает.
24: Подтянуть каких-нибудь знаний. Мы идём, мы идём, соответственно в rock систему получаем на основании того, что есть в нашей системе, и предлагаем ему эти материалы для изуче.
25: Также это различные telegram, боты, различные консультанты вообще в принципе по любой теме.
26: Различные проверки технологических аспектов. Ну как пример, это проверки ваших мэров пэров в гитлабе, в гитхабе, когда мы можем на основании нашей архитектуры, нашей предметной области показа
27: Рак, рак системе, то откуда вообще, в принципе, брать информацию, как проверять код, который прилетает к нам на проверку. Мы можем дать все эти вещи и, например, рак система будет за нас оставлять в
28: Гитлабе на какой-то код комментарий, где что поправить это различные поисковые системы и многое другое, все, что может потребоваться бизнесу.
29: Разберу немного проблемы традиционного поиска например, если мы делаем обычный sql запрос к базе данных как самый простой пример пользователь приходит, вводит мне нужен ноутбук для программирования какими-то вещами.
30: Мы достаём оттуда ключевые слова. Это ноутбук, программирование и пытаемся Лайком найти по имени, по описанию, но, соответственно, результата мы никакого не получаем, потому что ни в описании, ни в имени у нас таких ключевых слов нету, если мы заранее их
31: Каких-нибудь k ворсах не задали далее тоже самое с эластиксерчем если мы правильно не настроим анализатор тоже самое ноутбук для программирования нам не выдаст каких-то корректных результатов, но хотелось бы так, чтобы.
32: Пользователь пришёл, запросил то, что ему надо и хотелось бы выдать ему уже какие-то рекомендации, возникает мысль может мы будем отправлять запросы напрямую в chat gpt может он что-то будет подсказывать, но тут есть
33: Большая проблема, любая в принципе лл. Может быть обучена на старых и неактуальных данных это как 1 момент и 2 момент при вопросе какие у вас есть игровые видеокарты rtx?
34: Chat gpt нам ничего не ответит, потому что в контексте мы ему ничего не передали и он, соответственно, начнёт додумывать.
35: От себя и придумывают, что же все-таки у нас может находиться. Также стоит не забывать то, что у крупных языковых моделей имеются галлюцинации, да, как пример пользователь спрашивает, если у
36: У вас макбуки с rtx видеокартой ллм отвечает да, макбук про про м. 3 max поддерживает внешний ртикс через тундер Болд, хотя это не так, но по крайней мере на момент составления презентации я не знаю, чтобы м 3.
37: Процессоры поддерживали такую технологию, это просто ллм додумала от себя.
38: И теперь перейду к векторным хранилищам, я немного расскажу про векторные хранилища, потому что это тема вообще другого доклада, но постараюсь рассказать.
39: В данной табличке указал самые используемые из тех, которые есть на рынке. Это квадрант милвус, вией, пенико, хрома. Единственное отличие пенико, на которой построены в принципе, разли
40: Личные материалы о rock системах и вообще в принципе о векторных базах данных она находится в облаке, вы не сможете её поставить к себе как локальную базу данных, в отличие от всех других и по QR-коду я добавил сайт на
41: Полное сравнение максимально возможных векторных баз данных, то есть можно посмотреть, что поддерживают базы данных, какие есть функции и так далее если интересно сканируйте QR-код, там интересная информация.
42: Так я вернул.
43: Расскажу кратко, что такое векторы и что такое эмбендинги, но векторы это само по себе математическое понятие это просто числовое представление, которое находится на какой-то координатной плоскости, а эмбендинги это
44: Уже набор векторов, которые преобразованы из какого-то объекта, будь то это текст, аудио, видео, картинка и так далее, и как пример при подборе.
45: Сопутствующей модели, которой будет векторизовать ваши объекты. Мы можем увидеть то, что
46: При написании запроса на английском языке и при написании запроса на русском языке векторы, которые будут храниться в нашем массиве, они будут максимально приближённые к друг другу. То есть если та языковая модель, которая
47: Преобразовывает векторы, поддерживает мультиязычность или хотя бы русский английский, то для неё схожесть слов будет максимально приближённая.
48: Далее как пример сходства в нашей базе данных хранится карта rtx 40 80, и вот ниже под ключами я указал, какие к нам могут прийти запросы, да и можно посмотреть в правой стороне под комментариями, насколько тот или иной за.
49: Вопрос да, пускай это будет игровая rtx nvidia geforce rtx насколько сходство будет максимально к тому приближённое, к тому, что лежит в нашей базе данных, ну и как пример холодильник самсунг уже будет совсем совсем далеко от нашей видеокарты.
50: Далее мой доклад будет основываться на на векторной базе данных квадрант, почему она была выбрана? Во первых, она поддерживает большинство.
51: Опций вообще, в принципе, она селфхост, база данных и плюс.
52: Есть библиотека, которая поддерживается сообществом, очень хорошо поддерживается и предоставляет все удобные методы с тем, что предоставляет сам квадрант.
53: Небольшое сравнение. Сделаю векторных и традиционных хранилищ, как можно заметить? Да, квадрат здесь по скорости самый быстрый в настройке, самый простой пенико. У нас тоже вроде бы векторная база данных, но скорость немного.
54: Побольше, потому что это находится в облаке. Ну и также редис, эластик, постгрес, они также поддерживают хранение векторов и вообще, в принципе, работу с векторами, но есть
55: Некоторые нюансы. Да, редис будет потреблять много памяти. Элластик будет сложен настройки, а посгрес будет слишком медленный. Хочу здесь заметить, это при учёте замеры были сделаны.
56: При учёте приблизительные, при хранении 1000000 векторов.
57: Так, здесь хотел показать, как в принципе производится поиск векторной базеда, поиск в нашем посгрес по эмбендинг делаем следующее, то есть выбирая
58: Все записи из таблицы products мы сортируем, точнее, извиняюсь, да, сортируем эмбендинги. Но здесь на самом деле происходит не сортировка. Здесь происходит косинусная.
59: Сходство, и мы в итоге получаем под дистанции. Это как раз-таки сходство, точнее, приближённость векторов к нашему поисковому запросу, как мы можем работать с квадрат квадрат.
60: Предоставляет удобное как rest api так предоставляет удобное джипси апи и мой доклад будет построен на rest api, но grpc может увеличить.
61: Производительность в плане общения с квадратом.
62: Далее берём любого http клиента, делаем пост, запрос, передаём в параметрам вектор наши эмбендинги. Я покажу как позже как это делать. Далее мы можем настроить какие-то фильтры.
63: По полезной нагрузке, которые хранятся вместе с этими векторами в нашей базе данных, устанавливаем лимит, устанавливаем пороговую оценку, ниже которой мы не должны получать наши записи из векторной базы данных и параметр
64: Указываем то, что мы должны получить полезную нагрузку при запросе вместе с ответом.
65: Далее получаем этот результат и, соответственно, как-то с ним работаем теперь я покажу реализацию рака в php.
66: Непосредственно той библиотекой, которую показывал ранее, перед тем, как нам, в принципе, приступить к реализации рак системы. Нам надо понять, какие данные у нас будут храниться под векторами. Да, и здесь я сделал такую
67: Синтетическую табличку это табличка продуктс. Под ключом у нас хранится идентификатор. Под значением у нас хранится описание, которое будет в дальнейшем векторизоваться. Описание состоит из имени и самого описания.
68: Да, товара и далее нам нужно это все как-то Завикторина ь. В примере указана библиотека transformers это та же библиотека transformers, которая
69: Сделано на пайтоне эта библиотека позволяет работать с локальными моделями, не обращаясь к внешнему api, не обращаясь к внешним серверам, то есть мы на php, подключая модель уже непосредственно работа.
70: С ней далее функция пайплайн, что она нам даёт при указании 1 параметром задания. Там есть различный выбор заданий, да, мы указываем то, что нам нужно задание преобразовывать в эмбендинги. В экстракторе у нас будет как раз-таки обра,
71: Работчик, который будет в дальнейшем преобразовывать наши переданные данные в эти эмбендинги, ну и соответственно, подбирается модель. Важно заметить то, что модель должна быть в формате onnx, почему так происходит, потому что
72: Php сам не умеет в своём формате каком-то векторизовать оникс точнее обучать модели оникс это общая модель для всех Языков программирования и да.
73: Даже если вы не нашли модели вот на сайтике хаггинг фейс, можно подобрать модель, да, нету какой-то модели в формате onnx в данной библиотеке трансформерс, которая приложена по ссылочке. Также прило.
74: Жил можно найти скрипт на питоне и преобразовать любую модель в формат onnx это просто чтобы знать.
75: Далее, для того, чтобы нам, в принципе, начать работать с нашей векторной базой, да, для того, чтобы туда нам записать какие-то вектора, нам нужно создать клиента, прокинуть в него транспорт, прокинуть в него самого клиента, да.
76: По, по контракту и законфигурированные создать коллекцию коллекция будет приблизительно сравнима, сравнима с революционной субд, как будто мы создаём таблицу, да.
77: Мы конфигурируем вектор и записываем её в нашу коллекцию. Ну, по типу, как будто вы и добавили новую колонку в реаллюционном субд. Дальше мы задаём этому вектору параметры, размер
78: Важен. Каждая модель, которую я показывал ранее, при векторизации возвращает разное количество векторов в массиве и указываем сходство. Да, здесь в данном случае по какому сходству мы будем искать это?
79: Косинусное сходство и указываем имя этому вектору. Далее для того, чтобы нам создать эту коллекцию, мы обращаемся прям на клиенте к методу коллекции, задаём имя и вызываем метод криейт.
80: Очень удобно ориентироваться по библиотеке квадрат, который я показал с тем-то, что методы сделаны так же, как и api самого квадрата, то есть, если посмотрите апи методы идентичные далее.
81: Ту функцию, которую я показывал ранее, она нам сейчас пригодится. Нам теперь нужно как-то наши данные из той таблички, которую я показывал ранее Завикторина ь. Для начала мы создадим коллекцию точек, да.
82: Структуру. Далее мы пробегаемся по нашей таб, по нашему массивчику продукт, берём его id. В данном случае тут небольшая помарка. В slider. Это будет не product name, а именно тот дискрипшен, который там указан.
83: Дальше мы применяем тот экстрактор, который был на предыдущем слайде. Передаём туда это описание, устанавливаем параметры, параметры. Нормалайз тру устанавливает, чтобы модель, которая нам будет возвращать, она может вернуть массив массив.
84: В массиве будет много массивов, это как раз-таки нормализует и получаем из ответа 1 элемент. Как раз это и будет набор векторов, который мы сможем посчитать перед
85: Записью или перед записью в базу данных, или перед запросом.
86: Далее в ту коллекцию, которую мы создали ранее. Нам нужно создать точки точки. Это как раз-таки есть сами записи, хранящиеся в квадрате. Указываем id как первичный ключ. Дальше.
87: Создаём структуру вектора, для чего это нужно? Потому что при передаче в квадрат параметр вектора нужно передать массив векторов и имя этого вектора для дальнейшего поиска. И также можем передать полезную нагрузку для товаров. Это
88: Будет вес, ширина, высота и так далее. Характеристики какие-то. И также обращаясь к коллекции продуктс. Обращаясь к методу поинтс, мы добавляем все эти точки, которые мы преобразовали в
89: Объект по инстракт. Далее мы сформировали векторную базу. Как же нам по ней искать?
90: Допустим, к нам из обычного реквеста от symphonic прилетает запрос, который нам нужно Завикторина ь, и сравнить с теми векторами, которые хранятся в нашей векторной базе данных.
91: Мы также берём эту функцию пайплайн, задаём тоже самое задание эмбендинг, которое будет преобразовывать наш запрос в бендинге. И важное уточнение, если вы векторизует свои
92: Данные 1 моделью, то не нужно векторизовать запрос другой моделью, потому что разные модели могут выдать разные векторы. То есть вы можете 2 разных эмбеддинга сравнить и также результат получится неверным. Далее.
93: Берём этот экстрактор, передаём туда запрос, также его векторизуем и получаем эмбендинг. Что мы можем делать с этим дальше? Дальше создаём тот же объект, вектор стракт, задаём ему имя, которое мы создавали ранее, и со
94: Даём поисковой запрос, передавая туда этот, эту структуру вектора.
95: Что ещё можно сделать на первых слайдах я показывал, как мы можем делать обращение к квадранту через api вот здесь библиотека предлагает удобное api по созданию таких фильтров, то есть мы
96: Опять же можем по документации квадранта, анод маст и так далее создавать новые фильтры и добавлять их.
97: Далее в поисковой запрос мы передаём наши фильтры, мы устанавливаем лимит, устанавливаем параметры при запросе квадранту, может быть, ну там есть большой ряд параметров, которые можно в неё
98: Передать я здесь оставил только 1 это h s w iv что делает этот параметр, если по простому это такая крутилка, за счёт которой точность поиска будет увеличиваться, но время запроса.
99: Будет снижаться важный параметр, как при настройке запросов к самой базе данных. Также указываем то, что мы должны получить полезную нагрузку в момент запроса и устанавливаем
100: Оценку, ниже которой нам в выдачу не надо выдавать записи. И, соответственно, также обращаясь к коллекции продуктс. Обращаясь к тем же точкам, мы делаем запрос с этим поисковым запросом, который мы сформировали ранее.
101: Покажу в чистом виде, как выглядит ответ. В данном случае от самого квадрата мы получаем результат с записями, с первичными ключами, которые мы передавали ранее с оценкой.
102: Записи с полезной нагрузкой, да, там будет, может быть большой массив и с версией записи. То есть мы можем увидеть, сколько раз эта запись менялась. Далее мы получаем статус. Тоже все. Окей. Очень удобный параметр.
103: Time посмотреть, сколько времени сам квадрат затратил на обработку нашего запроса.
104: Так, здесь мы получили наши товары и как будто бы кажется, но уже можно какую-то рекомендательную систему построить. У нас работает
105: Обработчик, который преобразовывает наши эмбеддинги через определённую модель. Здесь уже можно по какому-то запросу начинать напрямую выводить из какой-то базы данных, но это будет ещё не полный рак. И для того, чтобы нам построить какую-то кон,
106: Ционную систему нам нужно подключить ллм. Подскажите кто работал с lana локально так, а кто знает то что в докере сейчас добавлено тоже запуск моделей, все хорошо.
107: Как раз я и хотел показать то, что раннеры для запуска моделей это олама. Мы можем поднять сервер у себя, локально скачать нам нужную модель, запустить его и делать к нему обращение уже.
108: Как полноценный, полноценный ллм. Тоже самое сейчас предоставляет docker в каком-то виде. Он ещё, по моему, в бета режиме, но уже, по моему, они перевели. Сейчас могу ошибаться. И ещё 1 инструмент. Это лм студио.
109: Который также предоставляет запуск раннеров локально у себя на компьютере. Ну и внешние ллм сервера это дипси чат, gpt клаудии и все, с чем мы привыкли работать. Единственное, что хочу сказать при построении рак систем.
110: Когда вы будете поднимать у себя какую-нибудь ламу и будете использовать модель, конкретную модель нейросети при переезде в production нужно использовать ту же самую модель, чтобы
111: Потом не оказалось. Так почему у меня локально все работает, а при обращении к внешним серверам у меня почему-то ответы некорректные выдаются.
112: Далее формируем промт. Ты консультант в магазине техники пользователь искал. Передаём оригинальный запрос, чтоб лм понимал контекст. Передаём сюда найденные товары в нашей векторной базе данных. Можем здесь ещё пометить то, что
113: Ты должен основываться только на тех товарах, которые я тебе передал, чтобы он на себя не додумывал что-то. Ну и даём какую-то краткую рекомендацию, что он там должен делать, да?
114: Далее я пример здесь показываю на сервере лама, делаю post запрос к api, далее выбираю модель llama 3, точка 2. Передаю тот промт, который сформировал.
115: И далее устанавливаю настройки при запросе к самой ллм важный параметр для rock системы. Здесь это температура, чтобы rock система была точно не галлюцинировала и не выдавала что-то.
116: От себя этот параметр должен быть сведён к нулю, то есть минимально к нулю.
117: И далее, получая данные, которые нам выдало ллм, мы уже можем их вставить куда нужно и дальше с ними работать. Ну как пример нужен игровой процессор амди и ллм выдаёт. Следовательно, я рекомен.
118: Мендую такой-то процессор, амд, райзен 7 и так далее. Как лучший вариант для игрового процессора. И наши найденные товары из нашей базы данных, которые мы передали вот здесь специально указал низкую цену, чтобы было видно
119: То, что не ллм от себя додумала, а именно то, что я передал ей при запросе.
120: Ну и, соответственно, также далее можно прям сюда же написать, пускай это будет какой-то чат. А сравни-ка мне, чем отличается амд райзен 7 от амд райзен 9. Соответственно, данные отправляются в ллм, сравниваются.
121: Также на основании тех данных, которые мы ему переслали, или же какие-то рекомендации даёт от себя и выводит их, почему пич пи почему не python какой-нибудь, как обычно, любят спра.
122: Спрашивать. Ну, во первых, инфраструктура. У вас уже все подготовлено максимально вам подключить новую базу данных, какую-то векторную базу данных и с ней работать, да, далее весь персонал обучен. То есть мы работаем
123: На своём Любимом языке не подключаем, не формируем другие команды. Нам ничего это не мешает делать. Ну и соответственно, по производительности ничем не уступает. Тому же пайтону я сюда не прикладывал каких-то замеров. Это
124: Тоже не в рамках этого доклада, но так оно и есть. И какие бизнес задачи, в принципе, решает эта система. Ну, во первых, круглосуточные консультации в любой момент ваш пользователь ваш
125: Клиент пришёл, ввёл запрос, получил рекомендацию, не привлекая живого человека точность подбора, потому что данная система работает с данными из нашей
126: Базы данных. Масштабироваться мы можем уже не людьми в случае консультационных каких-то вещей, а серверными мощностями за счёт этого снижается нагрузка на бизнес и повышается конверсия.
127: За счёт большой обработки различных запросов.
128: На данном слайде приложил QR-код самой презентации да, если кто-то пропустил ссылочки и проектик на гитхаб, на чем был построен в принципе этот доклад в процессе, когда я.
129: Писал слайды, я параллельно писал и этот интернет-магазин можно зайти, запустить его, она там через docker скачает базу квадрант, запустить команду Виктор айс, он скачает это все и уже можно через обычную консоль.
130: Symphony вскую команду вводить какие-то запросики, он уже будет как-то отвечать, ну и посмотреть вообще, как там это все формируется.
131: Так, спасибо за внимание. Да, жду ваших вопросов.
132: Спасибо большое. Вау вау, у нас много вопросов. Давайте приступим тогда с передних рядов и пойдём туда глубже, ниже. Сейчас микрофон нам донесут. И постараемся, пожалуйста, для уважения других участников задавать максимально быстро и коротко, чтобы
133: Все успели спасибо за доклад, очень интересно, хотел уточнить по поводу rt x видеокарты она если у меня, если я на хосте хочу у себя развернуть векторную базу данных мне rt x видеокарта для этого нужна нет, не совсем это.
134: Было просто показано, как будто я продаю эти rtx видеокарты, ко мне пришёл пользователь, задал вопрос и ллм. Просто на основании моих данных, которые хранятся в базе данных, ему вывела ртикс видеокарты для развернуть нет нет нет, конечно.
135: Тож база данных векторная, она не сильно требовательная. Нет, не сильно требовательная. Спасибо. Да, давайте передадим и вот туда везде пройдём. Спасибо за доклад. У вас была табличка сравнения нескольких баз данных.
136: Марии дб. В последнем релизе появилась поддержка рак не тестировали, просто интересно нет, не тестировал я сегодня вот как раз на докладе узнал от алексея то, что у id be поддерживает векторную базу данных да, но надо попробовать там их просто все не.
137: Не, ну как бы все не перепробуешь, да, а так, спасибо. Да, за, я, давайте послушаем следующий вопрос. Подскажите, вот, а в случае, например, консультации именно какого-то специализированного онлайн консультант
138: Например, есть какой-то список вопросов и ответов, да, в экселе. Вот, и хочется, чтобы, значит, клиент задавал вопрос и, ориентируясь на вопросы ответы, как-то подбирал ответ. Вот в данном случае вы, понятно, сильно минимизируете запро.
139: Prompt, в да, фишку путём, собственно, поиска в своей базе данных. Угу. Вот. А тут что делать? Вот тут огромный этот, вместе огромный промт составлять вот такого, да, все верно. То есть промт формируется, формируется форми
140: Мируется. Это по, по типу квиза. Вот у нас то, что я говорил, есть в продакшн среде, у нас есть чат консультант бот по, там, заводу дверей, и он, ну, то есть 2
141: Может содержать много вообще опций, ручки там, косяки и так далее. Цвет вставки. И то есть мы создали 2 варианта, когда мы, когда у нас ллм задаёт нам вопросы, мы их складываем, складываем, складываем конечным
142: Промтом, просто ей отсылаем и она нам выдаёт какой-то ответ. И 2 вопрос. Плюс это преподготовка данных. То есть мы заранее, грубо говоря, смотрим, смотрим, смотрим в также в векторной базе данных, если что-то у нас не вывелось, мы соответственно выдаём то, что у нас
143: Такого не нашлось. И я позову там, например, консультанта, чтобы не потерять, ну, как бы, клиента. И другой момент, когда мы просто целенаправленный квиз собираем. То есть мы прям нажимаем и прям по вопросам идём, идём, идём, идём по вопросам, ну, это когда прям кнопочки
144: В телеграмме, то есть они заранее заготовлены. Не сама ллм задаёт вопросы, они заранее заготовлены. Вот. И мы по ним идём, идём и также отправляем в ллм. Спасибо за доклад. У меня вопрос небольшой. А здесь получается, если у меня, например, ну, условно, у клиента огромный магазин. Угу.
145: Очень часто идёт ротация, ну то есть обновление самих товаров. И здесь получается по сути, то есть как проблематично или нет, что, по сути, мне нужно постоянно векторную бд, обновлять нет, не проблематично. То есть делаем апсерт, меняем, соответственно,
146: Запись и все, как бы у нас уже запись обновлена, это, это происходит, грубо говоря, при обновлении какой-то записи или там условно по крону, например, как удобно, можно там по крону производить, можно там при обновлении. То есть у векторных баз данных нет такого, как, например, у clickhouse.
147: Когда она не любит частые вставки. Александр, подскажите, пожалуйста, вот при подготовке данных для загрузки. Угу. 2 базу. Вот используется ли какой-нибудь механизм фазе лоджик? Ну, типа, нечёткая логика, когда мы вот у нас есть, допустим, ну, название
148: Товара, да? Угу. И мы понимаем, что пользователь может там ввести с ошибкой его и так далее. Вот, допустим, какой-нибудь эластик, да, он позволяет это обрабатывать. И мы, ну, можем как бы сопоставлять, что он имел вот это ввиду, и мы с этим работаем. Или здесь имеется ввиду, что
149: Есть вариант написания там названия товаров, и мы должны в векторную базу вносить ручками все возможные, ну такие типичные ошибки, которые может совершить пользователь. Или это как-то автоматизировано там не совсем та модель, которая, в принципе,
150: Преобразовывать слова в эмбендинги, да, подбираемая вами для неё, например, машина, машинка, авто, там, автомобиль и так далее. По эмбендинг будет максимально приближённая к друг другу. То есть
151: Даже, ну, я вот то, что говорил какой-то сленг там от человека, также может понимать этот, как его нейросеть может также понимать. У нас был такой момент, то, что у нас те запросы, которые приходят к нам в бота, которые потом агрегируют,
152: Рак системы, они улетают в CRM в битрикс. То есть, чтобы смотреть, даже мы выбрали модель про мультиязыковую в плане только русский английский человек пришёл, писал на белорусском вот мы видели запросы и все равно модель при векторизации.
153: Она была приближённая к тому, ну, к той записи, которая хранилась у нас в базе данных. То есть это за счёт модели достигается.
154: У меня вопрос. Вот давайте представим ситуацию. Есть большой интернет-магазин, как вы сказали, и консультант бот, и запрос. Там, допустим, человек пишет, какая сейчас погода? Вот что вы будете делать? Вы отправляете этот запрос в куда?
155: Или как-то пытаетесь целевой нецелевой, по вашему, ну как бы мы сначала смотрим это в квадрате, то есть мы ничего не находим, да, то есть отправляете этот запрос, да, практически прямо отправляем это в квадрат, векторизуем.
156: Ничего не находим и говорим по вашему запросу ничего не найдено. Можно для того, чтобы не тратить даже в той же лм токены. Можно даже уже не пересылать дальше. Запрос в ллм. А если возвращён какой-то 1 результат, там, ну там, не знаю, там термометр, градусник и так далее.
157: То есть, что вы будете с этим делать? Ну, под температуру подошло, подошло. Я понял. Ещё раз спасибо. Присоединяюсь ко всем. Вопрос тоже про подготовку данных, конкретно про
158: Их рабу. На примерах. Там были довольно короткие строки. Это понятно. В реальности мы, как правило, будем засовывать гораздо больше. И. Угу. Такой нюанс, что если если очень большая строка, да, то вектор будет гигантским, и
159: И малоинформативным, да, если мы будем сужать сильно, то как бы нам мало данных, ничего нам не поможет. Соответственно, надо бить, бить по частям с каким-то перекрытием. И вопрос такой, как подбираете длину чанка, да, и какими
160: Не знаю, алгоритмами техникой. Может, там по контексту скажу. Скажу так, понял вопрос. Спасибо. Мы перед векторизацией, перед записью тех данных, которые нам нужно положить под конкретную, под конкретный запрос, мы соответствен.
161: Очень чётко подбираем то, к чему это подходит. То есть
162: Как это как бы выразиться. То есть для того, чтобы было максимально нужное совпадение нам того, что мы выбираем. И когда у нас максимально нужное совпадение, у нас очень сильно сокращается выборка, вообще очень сильно сокращаются какие-то товары, записи или ещё
163: Ещё что-то и при передаче, соответственно, этого контекста в ллм, там промты не такие большие получаются уже. Вот. Ну и плюс это регулируется температурой, которую я показывал. То есть нам не нужно там лимитами, температурой, чтобы просто не передавать какие-то больши
164: Прям ты спасибо за доклад, присоединяюсь. Такой вопрос, может быть, немного странный, но поскольку про php здесь ничего не спрашивают, я пойду в той же стезе все больше про ллм. И вот это вот все сделали решение на раге. Ну, с помощью
165: Рагга. Угу. С помощью аламы, инстансов и прочего, прочего сравнивали с решением без рага на поисковике. Ну, то есть вопрос заключается в бизнесовый больше. То есть, ребята, чтобы вы больше потратили
166: Сделали. Вы бы на обычном эластике с чем-нибудь. Угу. Бо, вы потратили сюды, какое-то сравнение делали, не делали. Я не делал, потому что есть такое-то, что есть просто поиск, как стандартный, через elastic, да?
167: Там, например, с транскрипцией ещё с чем-то это 1. А здесь пришёл вообще другой запрос от бизнеса. Мне нужен консультант, который будет подбирать, который будет сравнивать, который будет делать вот такие вот вещи. Соответственно, тут уже, ну, как бы.
168: Традиционные базы данных мало подходит. Тогда вопрос. Ну, я понял, что вы немножко другой бизнес кейс решали. Угу. Вкорячивали ли это решение в поиск, например, на том же сайте понятно, что это, скорее всего, чат, ботик, чат, ботик, там где-то крутится. Угу. Отвеча.
169: Вопросы, сам поиск, поиск работает также на эластике, на чем-то ещё или тот же вообще на эластике. Но вот именно как поиск, это пока не не применяли. Я хочу на 1 из проектов применить её как сравнительную си.
170: Систему, то есть максимально подбирать, грубо говоря, по результатам. То есть там уже и ластик не нужен будет. Все, понял. Спасибо. Спасибо большое. И давайте поблагодарим Сашу за столь интересный, полезный, спасибо, насыщенный доклад.