Неиспользуемый потенциал ChatGPT: сотрудничество с ИИ

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

Сегодня поговорим именно о неиспользуемом потенциале ИИ и о том, почему промпт-инжиниринг здесь ни при чем. Меня зовут Александра Антонова, я автор курса «Работа с ChatGPT API: от запросов до создания ассистентов». А еще эксперт программ повышения квалификации в области ИИ, экс-сотрудница «Яндекса» и Nvidia, выпускница МФТИ и МГУ.

Неиспользуемый потенциал ChatGPT: сотрудничество с ИИ

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

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

  • удачная архитектура нейросети;
  • обучение на больших объемах неразмеченных данных (модели ставят задачу предсказывать следующее слово в тексте);
  • дообучение на инструкциях (которое и спровоцировало массовую популярность модели).

Можно очень упрощенно представить нейросеть как цепочку умножений с обучаемыми матрицами весов. Сейчас речь идет про десятки и сотни миллиардов весов в больших моделях. Вся информация внутри нейросети размазана по этим миллиардам весов. Никаких баз данных внутри языковой модели нет.

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

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

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

Создание и использование моделей

Сложно обучить модель наподобие ChatGPT самостоятельно. Если мы говорим про создание с нуля, то подразумеваем два этапа: предобучение и дообучение.

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

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

Существуют открытые и закрытые модели. В первом случае вы можете скачать веса уже обученной модели и запустить ее на своем железе в режиме применения или для дообучения. А закрытые модели, к которым относится ChatGPT, GPT-4, Claude, YandexGPT и GigaChat, доступны только через веб-интерфейс или через API.

Подробнее об этом можно узнать на разных специальных курсах. Мы в Физтех-школе биологической и медицинской физики МФТИ (ФБМФ) даем теоретический материал и небольшое демо по запуску дообучения ChatGPT через личный кабинет. Разработку курса по теме инициировал директор школы Денис Кузьмин. Его личное убеждение состоит в том, что ИИ очень скоро заберет на себя задачи медицины — от сбора данных до их интерпретации — и минимизирует систематические ошибки. Впереди нас ждет удаленное управление лекарственной терапией, мониторинг здоровья, видеоконсультации, интернет вещей и прочее, поэтому студентам биомедицинских школ изучение возможностей ChatGPT полагается в первую очередь.

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

Промпт-инжиниринг

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

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

Сейчас, когда научились дообучать модель на выполнение обычных текстовых инструкций, слово «промпт» стало синонимом слова «инструкция», а промпт-инжиниринг — это просто набор приемов для составления инструкций.

Например, можно подставлять внутрь данные из других переменных, если мы работаем из питона. В промпт можно добавлять несколько примеров вопросов и ответов (так называемый few-shot), а можно — условия и ветвления. Все эти примеры мы также подробно изучаем на курсе по ChatGPT и применяем на практике. В итоге инструкция становится некоторым аналогом программы на естественном языке.

Неиспользуемый потенциал ChatGPT: сотрудничество с ИИ

Продвинутое применение (что можно делать помимо промпт-инжиниринга)

В отличие от промпт-инжиниринга отдельных запросов работа с языковой моделью через API — это более продвинутый уровень, который позволяет запрограммировать свою логику до и после обращений к модели. Если понимать «внутреннюю кухню» языковых моделей, то можно научиться использовать нейросети для любых целей. Например, можно подключить автоматическую модерацию запросов и ответов языковой модели, доставать и сохранять информацию в свои базы данных.

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

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

Неиспользуемый потенциал ChatGPT: сотрудничество с ИИ

🙂Расскажите в комментариях, как часто пишете запросы для ИИ? Для развлечения или для работы? Приходилось ли вам вызывать языковые модели из питона или только через готовый интерфейс в виде чата?

44
1 комментарий

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