Неделю назад участвовали в хакатоне, хочу поделиться некоторыми инсайтами от задачи.
Задача заключалась в создании сервиса, который получает статью, преобразует ее в диалог между отцом и дочерью, где отец объясняет какую-то тему, а затем этот диалог озвучивается.
Разработали следующую архитектуру: парсер для ссылок отправлял текст в настроенную модель GPT, которая создавала диалог из статьи, после чего модель синтеза речи озвучивала его. Все это было завернуто в Docker-контейнер и запущено на виртуальной машине.
Однако столкнулись с проблемой: SSML-разметка не работала, озвучка была монотонной, без правильных ударений, а также размер токенов часто превышал допустимое значение.
Для решения проблем решили попробовать подход prompt engineering. Мы создали километровый промпт, в котором подробно прописывали интонации, возможные ошибки и способы их устранения.По сути, все наши проблемы модель GPT сама устраняла, что было достаточно удобно.
В итоге заняли шестое место. В условиях бекендерской задачи для ML-инженеров использование prompt engineering оказалось наилучшим решением. А тот факт, что весь код держался на одном длинном промпте, уже не баг,а фича, как говорится 🤔
Так вот, теперь инсайт:
Не стоит недооценивать promt engineering, но и про промт инъекции забывать нельзя