Вы когда-нибудь задумывались о том, чтобы поболтать со своей стопкой документов так, чтобы весь мир не пытался заглянуть туда? А теперь представьте, что у вас есть миниатюрный помощник, который может на скорую руку составить резюме, подробные объяснения и ответы с хорошими ссылками, взятые из ваших собственных документов. Без шуток!, эта реальность существует, и знаете что? Вы можете делать все это в автономном режиме, подключение к Интернету не требуется, и это совершенно бесплатно. Но как это работает, спросите вы? Позвольте мне рассказать вам об этом.

PrivateGPT — это проект с открытым исходным кодом, который позволяет вам анализировать ваши документы и работать с ними так же, как и с ChatGPT. Ключевое отличие состоит в том, что вместо обучения на огромных объемах данных из Интернета, книг и т. п. вы обучаете его на своих собственных документах. Теперь приступим к тренировочному процессу.

Итак, вы начинаете с анализа множества документов, P rivateGPT поддерживает различные форматы. После этого PrivateGPT углубляется в текст ваших документов и начинает преобразовывать его в более мелкие, семантически значимые фрагменты или предложения. Останься со мной; это скоро обретет смысл. Этот подход также позволяет вам позже группировать фрагменты или предложения, которые семантически связаны друг с другом. Существует несколько методов сегментации вашего текста, все они основаны на ваших предпочтениях и конкретном случае использования.

Как съесть слона? Да, вы это получили — откусывая по одному маленькому кусочку за раз. Теперь давайте применим эту мудрость к нашим предложениям, давайте разобьем их на крошечные кусочки слов, известные как токены. Токенами могут быть отдельные слова (подумайте [«Я», «люблю», «машина», «обучение»]), подслова (представьте себе [«Я», «люблю», «машина», «учиться», «* *ing"]) или даже отдельные символы (рассмотрим ["I", "l", "o", "v", "e",... "n", "g"]). Но в нашем путешествии по PrivateGPT мы придерживаемся старых добрых отдельных токенов слов.

Итак, теперь, когда у нас есть токены, какой следующий шаг? Что ж, вот в чем загвоздка: компьютеры не понимают значения слов; они все о цифрах. Вот почему каждое слово должно быть выражено в цифрах. Теперь позвольте мне познакомить вас с концепцией моделей встраивания слов или векторизации текста. Эти модели помогают преобразовать каждый токен в вектор. Пусть вас не пугает слово «вектор», это просто упорядоченная последовательность чисел, похожая на список или массив. Встраивая токен в виде вектора, он становится управляемым компьютерами, которые затем могут, например, вычислить, насколько похожи друг на друга две части токенов. Проще говоря, представьте, что у вас есть особый способ превращать слова в нечто вроде секретного кода. Этот секретный код помогает нам понять, что означают слова и как они связаны друг с другом. Теперь, когда мы создаем этот код, нам нужно решить, сколько фрагментов информации мы хотим в нем хранить. Это количество штук называется «размерностью».

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

Яблоко: [0,9, 0,5, 0,2], Банан: [0,7, 0,8, 0,1], Апельсин: [0,1, 0,3, 0,9]

Каждая цифра в коде имеет значение: первая цифра означает сладость. Второе число — о длине. Третье число говорит о том, насколько он острый (кислый). Итак, позвольте мне спросить вас, каков размер наших фруктовых векторов или сколько фрагментов информации они содержат? Какой фрукт более кислый? Помните, этот пример довольно простой. В действительности, когда мы имеем дело с большими объемами данных, слова представляются векторами гораздо большего размера.

Мы превратили наш текст в коды слов (векторы), нам нужно место для их удобного хранения для быстрого поиска. Вот тут-то и приходят на помощь векторные базы данных, такие как pinecone и chroma, используемые в PrivateGPT. Они похожи на организованное хранилище для этих кодов слов и действительно хорошо умеют быстро находить для нас похожие вещи. Они достигают этого, используя методы поиска сходства, такие как косинусное сходство, когда меньшие углы между векторами означают, что они ближе друг к другу по смыслу. Этот метод — лишь один из многих, которые могут использовать векторные базы данных.

Конечно, мы многое рассказали! Итак, что будет дальше, когда вы будете использовать подсказку, то есть встроенные слова, для запроса к базе данных векторов? Он действительно дает вам кучу декодированных (от векторов до токенов) слов, которые, вероятно, связаны между собой, но их чтение может не сразу иметь смысл. Именно здесь нам на помощь приходят мощные модели, такие как GPT-3/GPT-4 от OpenAI, обученные на огромных объемах данных. Они изучили закономерности между словами, что помогло им понять или осмыслить ваш запрос и возвращаемый контекст из векторной базы данных. Эти модели интерпретируют и осмысливают результаты, предоставляя нам значимую и актуальную информацию.

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