Шаг 3 — разработали решение
ChatGPT на тот момент еще не существовало, и роботы тогда еще очень плохо умели решать творческие задачи. Мы начали экспериментировать с GPT-2 еще до того, как это стало мейнстримом
Использовать обученную модель GPT для генерации ответов. Так как версии GPT-3 с открытым исходным кодом не было, мы взяли GPT-2, которая была заметно усилена в Сбере множеством дополнительных параметров. Подход не оправдался: возникла проблема галлюцинаций, в которых бот рассказывал о впечатлениях Черчилля от битвы при Ватерлоо, которая случилась за век до его рождения
Мы взяли нейросеть на архитектуре BERT и обучили ее на всех доступных текстовых материалах за авторством Черчилля. Бот с помощью векторного поиска подбирал подходящие цитаты и ранжировал их в правильном порядке. За счет такого подхода наш алгоритм больше не выдумывал факты, а подбирал предельно релевантные из реальных мыслей сэра Уинстона. По сути мы сделали то, что в будущем станет известно как RAG в большинстве ИИ-ассистентов
После тестирования множества гипотез, рабочих осталось две:
Затем мы подключили команду разметчиков, которые тренировали бота, оценивая его ответы и дополняя массив данных. Когда мы добились подходящей релевантности, то перешли к обучению отдельной модели: она отвечала за то, чтобы превратить набор цитат в связный и живой текст. Так бот превратился из поисковика по изречениям в систему, способную поддержать диалог
Приняли решение двигаться по agile-методологии с недельными спринтами: еженедельно демонстрировали заказчику текущую версию прототипа, он оценивал релевантность ответов, давал фидбэк и мы двигались дальше. Прототипами были персонажи или отдельные их компоненты
Сложности были с форматом подачи материалов в нейросеть: мы пробовали оставлять и убирать комментарии автора к речам Черчилля, добавлять собственную разметку, дробить тексты на мелкие фрагменты и много всего такого