Настройка Базы Данных для ИИ: Полное руководство для новичков | Об этом НЕ говорят БЕСПЛАТНО! #ai

Настройка Базы Данных для ИИ: Полное руководство для новичков | Об этом НЕ говорят БЕСПЛАТНО! #ai21:03

Информация о загрузке и деталях видео Настройка Базы Данных для ИИ: Полное руководство для новичков | Об этом НЕ говорят БЕСПЛАТНО! #ai

Автор:

Маша Маск: Искусственный интеллект и нейросети

Дата публикации:

04.09.2024

Просмотров:

110.7K

Описание:

В этом видео автор рассказывает, как подготовить и создать идеальную базу данных для ИИ‑ассистента, объясняя ключевые этапы простыми словами. Он начинает с того, почему AI‑ассистенты часто дают плохие ответы (00:19), затем описывает содержание видео (00:29). Далее рассматривается стоимость русскоязычной базы данных (02:37), векторизация (03:07) и важные условия обработки текста (03:13). Автор объясняет, что такое эмбеддинг (04:09) и как проходит процесс векторизации (05:12). Он показывает, как ИИ формирует ответ (05:40) и что происходит, если база не преобразована в векторный формат (06:38). В 06:57 он делится историей из жизни, а в 07:37 показывает, где можно найти идеальную базу данных. В 07:48 он предлагает лайфхак, а в 08:30 – подготовку и настройку базы знаний. Далее автор рассказывает о разметке данных (08:34), правильном разбиении текста (10:36), результатах ИИ и примерах сравнения (11:23). Он объясняет выбор правильного формата файла (12:48), хранение векторных данных (14:15) и приводит практику (15:04). В конце, в 20:43, подводит итог, что должен знать каждый.

Транскрибация видео

Даже у опытных разработчиков-ассистентов с ИИ часто возникают проблемы.

Их чат-боты не всегда понимают запросы пользователей и выдают много лишней информации или просто отвечают некорректно.

Это случается как с новичками, так и с теми, кто давно работает с ИИ.

почему так происходит все дело в неправильно настроенной базе данных для ассистентов с искусственным интеллектом всем привет я маша маск подпишись и я открою тебе будущее в этом видео я расскажу как правильно подготовить и настроить идеальную базу данных для вашего ассистента с искусственным интеллектом чтобы ваши трансформеры всегда работали корректно и

выдавали только самые точные ответы такую информацию вы вряд ли где-то найдете в свободном доступе тем более бесплатно так что смотрите это видео до конца и обязательно подписывайтесь поехали для начала разберемся с основами какие у нас в принципе есть базы данных и

Существует два вида баз данных – реляционные и векторные.

Реляционная база данных хранит данные в виде таблиц, как в Excel, где информация преобразована в строки и столбцы.

Для поиска нужной информации система проверяет точное совпадение значений в этих ячейках.

Например, если вы ищете слово «корова», то система не покажет вам слово «молоко», поскольку здесь не учитывается контекст.

Базовый пример из жизни, где используется реляционная база данных – это поисковик внутри любого документа.

Вы вбиваете

слово для поиска

и система вам выдаст ровно те абзацы, где точно используется это слово, и не покажет вам абзацы со схожим смыслом.

Это и отличает реляционные базы данных от векторных, которые, в свою очередь, этот контекст учитывают.

Векторные базы данных предназначены для анализа любых неструктурированных данных, таких как текст, изображение, аудио и даже видео, и находят схожие значения, а не только точные совпадения.

То есть они учитывают контекст.

Например, «колесо» и «велосипед» — морфологическая форма слов разная,

а их смысловая составляющая может быть похожа.

Поэтому для анализа такого рода данных искусственный интеллект использует векторные базы данных.

В векторной базе данных слова и другие объекты преобразуются в числа, то есть векторы, но об этом мы поговорим чуть позже.

Теперь поговорим о том, как искусственный интеллект работает с текстом на базовом уровне.

Все начинается с токенов.

Искусственный интеллект сначала преобразует текст,

Токены – это минимальная единица текста, с которой работает ИИ.

Токеном может быть слово, часть слова и даже отдельная буква.

Процесс разбиения текста на токены называется токенизацией.

Теперь представьте, что токенизация – это как обмен валют, где у каждой валюты есть свой курс.

Например, английское слово «стар» и русское слово «окно» имеют по 4 буквы.

Но английское слово start токенизируется в один токен, а русское слово окно токенизируется в два токена.

Это связано с более сложной морфологией слов и наличием окончаний, суффиксов и других частей слова.

Поэтому обработка текста искусственным интеллектом на русском языке обходится дороже, чем, например, на английском.

После токенизации происходит процесс векторизации данных, то есть токены превращаются в числа, а точнее в векторы.

И здесь важно понимать следующие вещи.

Искусственный интеллект анализирует текст только после того, как он преобразован в числовой формат, а точнее в векторы.

Так, баста, карапузики, кончились ваши танцы.

Тишина в классе.

Открываем тетради и пишем.

Классная работа.

Вектор это просто массив чисел, где каждое число отражает определенное значение или контекст слова.

Ясно?

Зачем она нам вообще про это рассказывает?

А дело в том, что мы можем измерять расстояние между этими векторами.

И чем ближе векторы будут находиться друг к другу, тем более похожи объекты, которые они представляют.

Это значит, что ИИ может находить релевантные ответы на запросы пользователей, просто сравнивая, насколько близко находятся векторы друг к другу.

Есть еще такая штука, как имбейдинг.

Это способ представления текста в числовой формат, то есть векторы, которые ИИ может анализировать.

Он помогает определять контекст, то есть отличить питона как змею от питона языка программирования.

Таким образом, сам вектор – это массив чисел, а имбейдинг – это способ преобразования текста в вектор.

Почему это важно?

Потому что этот принцип помогает искать и находить данные по смыслу, а не только по точному совпадению.

А сейчас слушаем меня внимательно.

Такого вам ни в одном Хогвартсе не расскажут, даже если вы лично проходили обучение у профессора Снейпа на факультативе по программированию.

Впереди самое важное, что нужно понять.

Так что настроитесь.

А пока разошлите это видео всем знакомым волшебникам и маглам.

Пусть все знают, как правильно готовить ассистентов с искусственным интеллектом.

И обязательно поставьте лайк, а ваш магический палец мне сегодня очень пригодится.

Итак, процесс векторизации.

Вот как процесс векторизации данных выглядит наглядно.

Пользователь загружает в систему разные типы файлов.

Например, тексты, изображения и любые другие.

Далее система разбивает данные из этих файлов на логические блоки, то есть чанки, об этом я подробнее расскажу позже.

Затем каждый чанк превращается в числовой формат, то есть векторы это как раз процесс эмбеддинга.

И эти векторы сохраняются в векторной базе данных для быстрого поиска и анализа информации.

И вот как выглядит процесс формирования ответа искусственным интеллектом.

Пользователь вводит текстовый запрос.

Далее искусственный интеллект преобразует этот запрос в вектор с помощью процесса эмбеддинга, чтобы понять его смысл.

Далее происходит поиск векторной базы данных.

База данных, в свою очередь, содержит векторы, предоставляющие различные фрагменты текста, то есть чанки.

На схеме они обозначены фиолетовым цветом.

Искусственный интеллект сравнивает вектор запроса с векторами чанков, чтобы найти наиболее похожий на себя, то есть наиболее подходящий по контексту и соответствующий запросу пользователя.

Затем выбранные фрагменты текста вместе с системным промптом, обратите на это внимание, это говорит о том, что не надо все подряд писать в системном промпте.

отправляются в большую языковую модель.

Системный промп помогает модели ИИ понять, каким должен быть ответ.

И затем происходит формирование ответа пользователю.

То есть на основе полученных данных LLM формирует ответ и возвращает пользователю в виде текста.

А если ваша база данных не преобразована в векторный формат, то ИИ не сможет анализировать ее детально с учетом контекстов.

В этом случае ИИ просто ищет совпадения на уровне слов, символов и т.д.

что является не совсем корректным и делает результат менее точным и часто приводит даже к ошибкам.

Для закрепления материала расскажу вам историю из жизни.

Буквально на днях знакомый поделился забавной историей.

Он был на международной конференции и общался с иностранными коллегами.

И один из коллег, он был немец, решил рассказать анекдоты, произносит такую фразу It's raining cats and dogs outside, что в переводе с английского буквально означает, что на улице идет дождь из кошек и собак.

Несколько человек, плохо знавших английский, переглянулись между собой и потом обсуждали, как это вообще возможно.

На самом деле это всего лишь английское выражение идиома, которое обозначает сильный ливень.

Поэтому те, кто не знаком с такими идиомами, могут легко запутаться.

Вот почему важно учитывать контекст, неважно, будь то в языке или в работе с искусственным интеллектом.

Так как же выглядит идеальная база знаний?

Если вы думаете, что никогда не видели, как выглядит идеальная база знаний, вы точно ошибаетесь.

Что я имею в виду?

Сейчас будет супер лайфхак.

Возьмите любую инструкцию от чего угодно, от чайника, утюга или любой другой бытовой техники.

Вот, например, у меня инструкция от Фена.

Это, если что, не Dyson и не реклама.

Это, по факту, и есть пример хорошо подготовленной базы знаний для вашего ассистента с искусственным интеллектом.

Открываем, изучаем, смотрим.

Ориентировочно так и должна выглядеть идеальная база для ассистента с искусственным интеллектом.

База знаний это чаще всего текст.

Конечно, могут быть и другие объекты, такие как таблицы, изображения, даже видео, но чаще всего это текст.

И я буду рассказывать на примере текстовых баз данных.

Переходим теперь к основной части, а именно подготовке и настройке базы знаний.

С чего начать?

Начинаем всегда с разметки данных.

Чтобы ваш ИИ-ассистент работал всегда корректно и выдавал только правильные ответы, нужно заранее подготовить тексты, а именно разбить его на логические абзацы.

Разделение текста на логические блоки помогает ИИ быстрее и проще анализировать информацию.

Это связано с тем, что логические абзацы показывают ИИ

где начинается одна тема и заканчивается другая, что облегчает анализ текста для ИИ.

Плюс вся информация должна быть сгруппирована по темам.

Например, информация о доставке должна быть в одном месте, а не находиться в разных частях текста.

Во время обработки текста ИИ выделяет связанные по смыслу куски текста, то есть чанки.

Кто такое чанк?

Чанг – это фрагмент текста, который модель ИИ выделяет для анализа во время обработки данных.

Например, если текст касается доставки, то один чанг может быть о способах доставки, другой – о стоимости доставки, а третий – об условиях доставки.

Такие фрагменты помогают модели ИИ лучше понимать содержание текста и находить нужную информацию.

Почему это важно?

Когда текст уже разделен на логические части, модели ИИ проще определять, какие фрагменты текста наиболее релевантны для ответа пользователям.

Это улучшает качество поиска и точность ответов, поскольку в этом случае ИИ тратит меньше ресурсов на обработку информации и может быстрее находить нужные данные.

Если же текст

не структурирован на логические части заранее, модель ИИ будет вынуждена выделять фрагменты текста на основе общих инструкций и системных настроек, заданных пользователем в системном промте.

Это может привести к менее точным ответам, поскольку ИИ не всегда может точно определить,

где заканчивается одна тема и начинается другая.

В таком случае ответы могут быть слишком общими или, наоборот, слишком ограниченными, что снижает их полезность для пользователя.

Давайте разберем на примерах, как правильно разбивать информацию в тексте при подготовке вашей базы данных.

Логические абзацы.

Разделяйте каждый смысловой блок отдельными символами.

Какими угодно, но искусственный интеллект лучше понимает разделение двумя пустыми строками, то есть двойным нажатием клавиши Enter.

Это способ простой, но реально очень эффективный.

Он показывает искусственному интеллекту, где заканчивается одна тема и начинается другая.

Заголовки.

Добавляйте заголовки перед каждым новым блоком.

Это помогает улучшить структуру текста и делает ее более понятной для модели искусственного интеллекта.

Подзаголовки и списки.

Если текст громоздкий, объемный, с множеством разных деталей в рамках одной темы,

то рекомендуется использовать подзаголовки и списки.

Это упрощает поиск и анализ информации для ИИ и повышает точность ответов.

Как это работает на практике?

Давайте сравним, какой результат ИИ выдает, когда текст разбит на логические части,

И когда текст сплошной.

Пром для искусственного интеллекта для обоих случаев будет один и тот же.

Допустим, это будет про доставку в Нижний Новгород.

Ответ с правильно подготовленным текстом лаконичный и содержится только та информация, которую мы запросили у искусственного интеллекта.

Ответ же с плохо подготовленной базой данных, то есть когда мы использовали сплошной текст.

Здесь искусственный интеллект возвращает длинный текст, и пользователю может быть сложно найти нужную, и это, конечно же, будет раздражать.

Потому что искусственный интеллект взял все, что входило в контекст в базе данных, то есть максимально близкие вектора, но об этом чуть позже, и выдал это в ответе.

Представьте, что вас в жизни спрашивают, любите ли вы путешествовать, а вы отвечаете, да, я люблю путешествовать, и, кстати, неделю назад я вернулся из гор, там была такая потрясающая паста, а еще я купил там рюкзак, а еще нас накрыл дождь,

И вообще у меня куча эмоций, и вообще я думаю, а что бы мне купить такое для следующей поездки, и куда бы мне отправить?

Ну, то есть, понимаете, да, слишком много информации, и вместо простого «да, люблю» вы даете кучу ненужной информации.

И тем самым перегружаете собеседника ненужными деталями.

Так и с искусственным интеллектом.

Плюс это влияет на стоимость обработки, во втором случае она будет значительно дороже.

Поскольку искусственному интеллекту придется обрабатывать больший объем текста.

В случае, когда текст структурирован и разбит на логические части, процесс поиска информации происходит значительно быстрее и дешевле.

Следующий шаг после разбивки текста на логические части – это выбор правильного формата файла.

Для текстов предпочтительно выбирать txt-формат, так как он не содержит лишнее форматирование и лишних символов.

В формате txt хранится только чистый текст, что облегчает работу искусственному интеллекту.

Для базы данных лучше изначально использовать формат txt и создавать базу знаний в простом текстовом редакторе, таком как, например, блокнот, потому что он содержит только чистый текст без лишних символов, а это экономит вычислительные ресурсы и облегчает обработку.

Для табличных значений есть CSV и TSV форматы.

Мне лучше всего подходят для статичных табличных данных, то есть когда данные в таблице не меняются или редко меняются.

Пример, если у вас есть какой-то фиксированный каталог или прайс-лист, которые не меняются, тогда вам подойдет этот формат.

Если же табличные данные постоянно меняются и вам необходимо поддерживать актуальность этих данных,

тогда подойдет облачное решение, такие как, например, Google Sheets.

Если же у вас есть как текстовый формат, так и изображение, может быть, аудио или видео, то есть все вместе, тогда идеальным решением будет JSON-формат.

Он позволяет объединить тексты, таблицы и другие форматы в одном структурированном файле.

Но вообще желательно не смешивать разные форматы данных.

Лучше в таком случае разбивать отдельно текстовые форматы, табличные, видео, аудио и так далее.

И еще одна важная вещь, про которую стоит сказать, это хранение векторных данных или векторные хранилища.

Подробно останавливаться на этом не буду, потому что тема масштабная, но глобально здесь есть два варианта.

Более простой и более сложный.

Более сложные – это внешние векторные хранилища.

Они больше подходят для глобальных масштабных проектов с большим объемом баз данных.

Их основные плюсы заключаются в том, что они гибкие, легко масштабируются и настраиваются под разноформатные задачи.

Но, во-первых, они, как правило, платные, во-вторых, они дешевые.

требуют технических знаний для их использования и настройки.

И простой вариант – это внутренние векторные хранилища, такие как, например, у OpenAI.

Они намного проще и подходят даже для тех, кто хочет быстро начать работу с ИИ без глубоких технических знаний.

Плюс они дешевле обходятся при интеграции с другими сервисами.

Теперь давайте перейдем к практике и посмотрим, как правильно подготовленная база знаний помогает ассистентам с искусственным интеллектом выдавать точные и корректные результаты.

А заодно и посмотрим, как выглядит автоматическая векторизация данных и внутреннее векторное хранилище внутри экосистемы OpenAI.

Переходим на платформу platform.openai.com.

Этот инструмент для разработчиков помогает тестировать и использовать модели OpenAI для создания ассистентов и анализа данных, а также генерировать API-ключи при интеграции с внешними системами.

Если у вас еще нет аккаунта к OpenAI, обязательно зарегистрируйтесь.

Я на этом останавливаться не буду, это делается очень просто.

Итак, переходим на платформу, далее нажимаем Dashboard, далее выбираем Assistance.

Создаем нового ассистента, нажав на кнопку Create.

Даем ему имя.

Пусть у меня это будет консультант на сайт.

Далее очень кратко прописываем инструкцию.

Подробно на этом останавливаться не буду, поскольку у нас с вами другая сегодня задача.

Так, роль консультант на сайт.

Задача отвечать на вопросы пользователей, используя базу данных.

Далее здесь идет модель.

Можно будет выбрать модель.

Я оставлю GPT-4O.

Давайте посмотрим, какие есть настройки.

Здесь есть настройка температуры.

Это степень креативности, с которой будет отвечать ваш ассистент.

Если предполагается использовать только базу знаний, то не рекомендуется ставить этот показатель выше 0.3.

Устанавливаем 0.3.

TopPi – это показатель, который отвечает за предсказуемость ответов.

Если он равен единице…

Значит, ответы будут максимально предсказуемыми.

Как раз мне это и подходит.

Далее делаем активным File Search.

Давайте посмотрим, какие еще настройки есть.

Maximum NumResults – это показатель, который определяет количество ближайших векторов, которые будут участвовать в формировании ответа.

Настройка этого параметра помогает балансировать между скоростью и точностью ответа.

Чем выше этот показатель, тем выше будет точность ответа и, соответственно, ниже скорость.

И наоборот.

Прежде чем загрузить наш файл, давайте посмотрим, как он выглядит.

Я подготовила его с учетом тех рекомендаций, которые дала выше.

Как видите, все разбито на логические блоки.

Есть заголовки, есть подзаголовки, есть списки.

Информация о возврате денег, возврат товаров, доставка, какие способы.

Так, например, в регион у нас доставка осуществляется от 5 до 10 рабочих дней.

Оплата, гарантии.

В общем, примерно так это выглядит.

Закрываем и теперь подгружаем наш файл.

Как видите, здесь есть его размер и дата создания.

Также вы можете добавлять и другие файлы.

Также здесь есть возможность выбрать векторное хранилище и есть дополнительные настройки.

Здесь есть chunk size, который измеряется в токенах, и chunk overlap, который тоже измеряется в токенах.

Chang Size это количество текста, которое будет обрабатываться моделью искусственного интеллекта за один раз.

Chang Overlap это перекрытие блока.

Это количество текста, которое будет браться из конца предыдущего блока и дублироваться в начале нового.

Делается это для того, чтобы не потерять контекст при делении текста на чанки.

Далее нажимаем Touch и происходит магия.

Наш текстовый файл преобразовался в векторный формат.

То есть внутри экосистемы OpenAI происходит автоматическая векторизация текстовых данных.

Но есть минус.

Посмотреть, как выглядит вектор наглядно, мы, к сожалению, не сможем.

Так же, как не сможем скачать их или использовать в каких-то других проектах вовне OpenAI.

Этого нам система не позволяет сделать.

То есть векторизация, она как бы внутренняя, находится под капотом.

И мы можем пользоваться только результатами этой векторизации.

Для глобальных проектов, там где данные постоянно меняются, есть необходимость их масштабирования, есть необходимость дообучения, в таких ситуациях используют внешние векторные хранилища.

Но для работы с небольшими базами данных и с простыми ИИ-ассистентами OpenAI будет прекрасным решением.

Наш текстовый файл превратился автоматически в векторный формат.

Давайте его откроем.

Здесь есть ID нашего векторного файла.

Также есть информация о том, что наш файл никогда не будет удален без нашего ведома, только если мы сами это сделаем, нажав вот на эту кнопку.

А также здесь есть возможность загружать новые файлы.

Все, теперь мы можем протестировать, как работает наша база данных.

Для этого нажимаем на Playground.

Открывается такое окно и можем вводить запросы.

Ну пусть это будет про доставку, например, в Иркутск.

Как видите, мы получаем абсолютно точный ответ на заданный вопрос.

Да, доставка в Иркутск возможна.

Доставка в регионы занимает от 5 до 10 рабочих дней в зависимости от удаленности и рассчитывается при оформлении заказов.

В итоге мы получаем ответ ровно на тот вопрос, который мы задали.

Давайте попробуем еще.

Давайте спросим про криптовалюту.

По идее, он должен написать, что нет, и предложить нам другие варианты оплаты.

Криптовалютой можно рассчитаться?

Вот видите, он отвечает максимально точно и по делу, потому что правильная и корректно настроенная база данных.

То есть если бы у нас был сплошной текст, то в ответе мы бы получили кучу ненужной информации.

Ну давайте еще зададим вопрос, которого точно нет, который вообще не по теме.

Давайте спросим про погоду в Питере.

Какая погода в Питере?

Документ, который вы загрузили, не содержит информации о текущей погоде.

Для получения актуальной информации, пожалуйста, воспользуйтесь специализированными погодными сервисами или сайтами.

Вот так вот все работает.

Мое видео на этом подходит к концу.

Если оно было полезным, обязательно подписывайтесь на мой YouTube и Telegram каналы.

Обязательно ставьте сердежки, пишите комментарии, донатьте донаты здесь и звездочки в Telegram.

И помните, что здесь вы всегда можете прокачать свой интеллект вместе с искусственным.

Пока!