Как мы внедрили GPT-4 в несколько сфер нашей компании и научили его отвечать на специфичные вопросы

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

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

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

Переводы с контекстом

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

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

А потом появился chatGPT, поразивший меня своими возможностями. Он сходу умеет переводить тексты лучше существовавших до него специализированных нейросетей - переводчиков, и, в отличие от них, способен еще и учитывать контекст.
Я сразу купил API и сделал телеграм бота для предварительного тестирования (API OpenAI в России пока работает без VPN). Результаты превзошли все ожидания. Мы использовали бота не только для переводов, но и для придумывания новых текстов вроде имен пациентов и их ответов на некоторые вопросы.

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

Конечно, задача переводов текстов для медицинских симуляторов очень ответственная. Мы не хотим, чтобы запись в виртуальную карту пациента из "неоформленный стул" превратилась в "undecorated chair", поэтому для каждого типа данных мы указываем контекст. Для диалогов, например, в начало каждого запроса добавляется текст:

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

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

Оператор техподдержки

В целом, с переводами все просто. Гораздо более интересно применение нейронки в качестве оператора техподдержки, способного работать 24/7 на любых языках, отвечать мгновенно и знать все тонкости наших проектов и способы разрешения технических проблем.

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

  1. Prompt-engineering.

Заключается, как и в задаче с переводами, в добавлении в начало каждого запроса все необходимые текстовые данные. Очевидно, при таком способе мы сразу упремся в максимальную длину контекста (обычно это 4096 токенов) или в 0 на банковском счету.

Что такое токен

  1. Fine-tuning.

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

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

  • Предназначен не столько для накопления базы знаний, сколько для приобретения навыков общения.

  • Тоже стоит денег.

  1. Использование LlamaIndex.

Это нечто среднее между первыми двумя вариантами. LlamaIndex - это система, которая может прочитать один раз кучу ваших документов и с помощью OpeanAI API создать индекс файл, содержащий ваши данные в виде векторов. Этот файл создается один раз и позволяет по запросу на естественном языке вытащить необходимый кусок текста, который далее можно скормить GPT в качестве начальной информации. Т.е. вместо того, чтобы в начало каждого сообщения от клиента добавлять все гигабайты ваших документов, вы можете добавить только маленький нужный кусок данных, связанный с вопросом клиента. Ну и плюс еще предыдущие сообщения для удерживания контекста.

Пример использования LlamaIndex:

pip install llama-index

Создание Index файла из файлов:

import os
os.environ["OPENAI_API_KEY"] = 'YOUR_OPENAI_API_KEY'
from llama_index import GPTSimpleVectorIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader('data').load_data()
index = GPTSimpleVectorIndex.from_documents(documents)

Сохраниение файла и использование для запроса данных:

# save to disk
index.save_to_disk('index.json')
# load from disk
index = GPTSimpleVectorIndex.load_from_disk('index.json')
index.query("<question_text>?")  

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

  1. "Ты специалист техподдержки в компании ***. Компания занимается разработкой медицинских VR симуляторов. Вежливо отвечай на вопрос клиента на том же языке, на котором он говорит. Отвечай точно, не придумывай лишнего. В случае затруднения отвечай что позовешь специалиста.
    Ниже представлена информация о наших продуктах:"

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

  3. Сумма последних нескольких сообщений в чате

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

Общие мысли о GPT

Пока философы тысячелетиями мусолят терминологию и мистифицируют человеческое сознание, разработчики OpenAI взяли и обучили маленькую сетку на куче данных.
Маленькую по сравнению с человеческим мозгом - всего пара сотен миллиардов параметров против многих сотен триллионов синапсов в мозге (а по некоторым гипотезам, один биологический нейрон выполняет функции нескольких математических).

Многие скажут, что chatGPT - всего лишь языковая модель, обученная продолжать текст, поэтому ее нельзя рассматривать как настоящий интеллект, сопоставимый с человеческим. Может быть и так, но для успешного продолжения текста нужно иметь в голове глубокое понимание взаимосвязей между сущностями. Да, у нейронки пока нет визуальных, аудиальных, тактильных и других дополнительных ассоциаций со словами, но это не мешает ей уже сейчас уметь прикидываться человком с ограниченным объемом знаний и индивидуальными чертами характера.

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

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

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

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Как вы относитесь к перспективам повсеместного внедрения подобных технологий?
50% Это начало конца. ИИ обесценит человеческое творчество и оставит нам только физический труд. 2
0% Это начало конца. ИИ избавит людей от любой работы и создаст нам условия беспечной жизни и потребления. 0
50% Нейронки не станут умнее человека и займут ограниченный ниши виртуальных помощников. Работу ни у кого не отберет, а лишь немного преобразит. 2
0% Это начало конца. ИИ захватит власть и уничтожит человечество. 0
0% Другой вариант в комментах. 0
Проголосовали 4 пользователя. Воздержался 1 пользователь.
Источник: https://habr.com/ru/articles/727780/


Интересные статьи

Интересные статьи

Мало кто знает, что первое облако Selectel было самописным решением на Haskell… с IPv6-адресацией, тарификацией по использованному процессорному времени, современной веб-консолью и быстрыми графикам...
Нет никого, кто не слышал бы о спорах вокруг электронного голосования. Претензии от оппозиции, выглядят верными, а сопротивление со стороны держателей БД, которое противоречит заявленным принципам, ко...
Многие из нас говорят с сами с собой, только не вслух, конечно, а мысленно. Психологи говорят, что это вполне нормально и даже полезно. Причем не только для человека, но и для роботов. ...
Компании растут и меняются. Если для небольшого бизнеса легко прогнозировать последствия любых изменений, то у крупного для такого предвидения — необходимо изучение деталей.
Что нужно для успеха IT-компании в 2019 году? Лекторы на конфах и митапах говорят много громких и не всегда понятных нормальным людям слов. Борьба за время деплоя, микросервисы, отказ от моно...