Введение
Привет, Хабр! Меня зовут Николай Хадзакос, я студент Факультета компьютерных наук Высшей школы экономики. В этой статье я поделюсь своим опытом и наблюдениями в области использования генеративных моделей в процессе обучения. Вдохновила меня на создание этой статьи публикация Гордея Завьялова в его Telegram-канале, где он рассказал, как написал курсовую работу с помощью ChatGPT на максимальную оценку, а также выход новой ChatGPT-4o, которая впечатлила меня своими возможностями.
Именно тогда я задумался о том, как я сам использую ИИ в обучении и в практике. Оказалось, что к генеративным моделям, в частности, к большим языковым моделям (LLM), я обращаюсь чаще, чем к Google. Это натолкнуло меня на мысль о создании материала, аналогичного статьям из серии "Как гуглить?". Ведь, несмотря на то, что поисковиком умеют пользоваться все, не все умеют находить нужную информацию. С этой проблемой я столкнулся сам в этом году и буквально учился "гуглить". Дополнительно хочется сказать, что новая модель ChatGPT-4o от OpenAI действительно впечатляет своими возможностями и позволяет решать достаточно нетривиальные задачи, например, задачи связанные с анализом данных.
Теперь перейдем к основной части статьи. Вы узнаете о существующих на данный момент генеративных моделях, о полезности сбора информации с совместным использованием различных языковых моделей и поисковиков, о базовых принципах prompt engineering, о том, почему запрос типа "от этого зависит моя жизнь" действительно работает и, конечно, же как повысить эффективность обучения. Надеюсь, мой опыт и советы помогут вам максимально эффективно использовать возможности генеративных моделей в вашей работе и учебе.
Дисклеймер
Важное замечание, я не эксперт в области data-science, ибо только начал свой путь в этой области. В этой статье я пишу про приложения генеративных моделей в IT и смежных областях, ориентирую я свою статью на заинтересованных в этой теме людей, в некоторых местах я прибегаю к неправильным с точки зрения предмета терминам, чтобы сделать статью более доступной. Важно понимать, что использование таких моделей подразумевает хотя бы минимальную экспертизу вопросе или минимальное представление результата, а также умение проверять сгенерированные факты и находить правильные источники. Check important info.
Содержание
Введение
Известные генеративные модели
Применение генеративных моделей в обучении
Базовые приципы prompt engineering
Известные генеративные модели
ChatGPT — швейцарский нож в мире генеративных моделей. Говоря простыми словами - это диалоговая языковая модель, которая обучена на огромном массиве данных. Он может выполнить практически любую задачу, связанную с генерацией текста и его анализом. Однако ChatGPT настолько крут, что он умеет работать не только с текстом. :)
YandexGPT — языковая модель от Яндекса, которая обладает огромным функционалом по работе с текстом. Недавно Яндекс анонсировал Яндекс Нейро, который совмещает в себе возможности поиска и генерации.
Microsoft Copilot — тот же GPT, который встроен в поисковик Bing, которой к прикладывает к своей генерации ссылки по вашему запросу.
GitHub Copilot — расширение для сред разработки(IDE), которое помогает на разных стадиях кодинга: от написания кода до объяснения и исправления кусков кода.
Blackbox: AI — нейросеть, которая также помогает в процессе написания кода. На мой взгляд, она лучше подходит, если ее использовать как поисковик, ибо он также прикладывает ссылки.
Grammarly — модель для проверки правописания, а также для улучшения качества написанного текста.
Gаmma — нейросеть, которая станет вашим основным помощником в создании презентации.
Замечание: Выделяю Microsoft Copilot и GitHub Copiliot, ибо использую их для разных задач. GitHub Copilot является “разновидностью” Copilot, он обучался на открытых репозиториях GitHub, чтобы выполнять задачи, связанные с программированием.
Применение генеративных моделей
Главный вопрос, на который я буду отвечать в данном разделе: Как можно использовать ИИ? В этой главе я приведу описания частых задач, с которыми сталкивается студент, а также приложу список других задач, которые также можно решать с помощью ИИ. Важно понимать, что генеративные модели - это помощники, если вы будете бездумно перекладывать на них задачу, то рискуете столкнуться с действительно некачественными и, тем более, неправильными результатами. Перейдем к делу.
Примечание: Большая часть статьи посвящена использованию ChatGPT, ибо он покрывает большую часть из существующих задач. При упоминании я говорю о версиях ChatGPT-4 и ChatGPT-4o.
ИИ-Преподаватель
Часто, осваивая новый навык или изучая новую тему, необходимы дополнительные пояснения или примеры. Будем рассматривать на примере подсчета производной. Мы со школы знаем определение производной, однако, вполне, могли забыть какие-то аспекты связанные с этой темой. Просим ChatGPT сгенерировать основные формулы подсчета производной и привести нам разные примеры(часто он делает это самостоятельно). Не забываем проверять информацию, если вы в чем-то сомневаетесь. Также часто той информации, которую сгенерировала нам GPT не хватает, поэтому мы пользуемся продолжаем формулировать ему более точные запросы по нашему вопросу, в данном случае мы можем попросить посчитать нам производную от функции, которую дали на семинаре, попросив подробно описать каждый шаг. Как и говорилось ранее, требуется хотя бы минимальное понимание темы, чтобы правильно формулировать вопросы и получать качественные ответы. Также к этому пункту я отнесу составление саммари по лекциям или семинарам на основе ваших конспектов, но для этого, желательно, их отцифровать.
ИИ-Редактор
Представим, что вам нужно написать курсовую. Вы определились с темой, просим любую языковую модель составить содержание. Если предложенные варианты не подходят, генерируем новые, пока не получим удовлетворительный результат. Отлично! Теперь включаем нашу креативность и пишем минимальное описание каждой главы, описывая стилистику и темы, которые необходимо затронуть. В итоге получаем несколько абзацев текста, которые можем редактировать и дополнять сами или с помощью ИИ. Важно понимать, что, вероятно, с первого раза вы не получите суперских формулировок и гениальных мыслей, но постепенно взаимодействуя с моделью, вы сможете достаточно быстро прийти к необходимому результату. Также стоит перепроверять текст на “перефраз”, ибо это частая проблема ответов GPT. К тому же, GPT часто сходу пишет ответ, разбивая его на пункты, это необходимо учитывать при создании промпта, описав необходимый формат.
Если вы нашли хороший источник, но не готовы читать его полностью, можно попросить любую языковую модель, которая умеет работать с ссылками(например YandexGPT) сделать саммари по тексту из ссылки. Вы, вероятно, получите достаточно общие данные из приложенной ссылки. Вы все также можете попросить найти ответ на какой-то конкретный вопрос, однако рекомендую перепроверять информацию самостоятельно. Для работы с источниками я часто использую встроенное в браузер Arc расширение. Если нужно собрать разные источники, просим Copilot или YandexGPT найти их. На мой взгляд, они лучше всех справляются с этой задачей.
ИИ-Программист
Наиболее интересный раздел для многих читателей, особенно для начинающих программистов, это работа с инструментами для написания кода, составления документации и технического задания(ТЗ). Давайте рассмотрим это на примере создания таск-менеджера на C++.
Начнем с технического задания. Просим ChatGPT составить нам ТЗ. Отлично! Теперь у нас есть основа для написания кода. Определяем описания классов и размечаем необходимые поля. Здесь в бой вступает GitHub Copilot, который помогает не только с написанием кода, но и с объяснением значения кусков кода. Часто, для задачи объяснения я прибегаю к Blackbox, ибо он также прикладывает ссылки к генерации по вашему вопросу, или к Google - наш незаменимый помощник.
Переходим к написанию кода для каждого метода. Смотрим, что предлагает нам Copilot, дополняем или изменяем код под нашу задачу. Не забываем ревьюить написанный код, чтобы не застрять на исправлении ошибок. Кстати, об ошибках. Если при компиляции кода вы получили какие-то ошибки, Copilot подскажет, как их исправить, и предложит варианты вставляемого кода.
Теперь нам осталось собрать наш проект. Используем все наши инструменты, чтобы узнать, как это сделать и что для этого необходимо. Когда проект написан, может понадобиться документация для преподавателя или других читателей вашего репозитория. Просто описываем ChatGPT устройство нашего кода, прикладываем ТЗ и просим его написать документацию в соответствующем стиле. Получаем готовую документацию, которую можно редактировать и дополнять.
Супер, вы сделали таск-менеджер и узнали много нового! Теперь можно пойти к друзьям и попытаться продать им курс по программированию на C++.
ИИ-Иноязычный собеседник
За время изучения языков я перепробовал разные способы разговорной и письменной практики. Конечно, нет ничего лучше общения в реальных условиях или практики с носителем языка. Однако, когда это недоступно, есть отличная альтернатива.
Вы можете практиковать языки, используя ChatGPT. Этот инструмент позволяет вам вести диалоги на любом языке, который вы изучаете. В рамках одного чата вы можете просить модель отмечать ваши языковые ошибки и помогать в построении предложений и их вариаций. Кроме того, ChatGPT может предложить синонимы и помочь улучшить ваш словарный запас. К тому же, есть так называемый редактор от Яндекс Переводчика(со встроенным YandexGPT). Через него вы также можете улучшать текст и исправлять ошибки. Более того, если вы готовитесь к экзамену по какому-то языку, то вы можете просить GPT составлять для вас квиз с вопросами грамматики, придумывать тему для сочинения по стандарту IELTS или TOEFL и, к тому же, проверять эти сочинения на соблюдение правил, приложив ему чек-лист для проверки.
Такой подход помогает организовать изучение языка более эффективно и интерактивно.
Что еще?
Выше были предложены подробные описания частых ситуаций использования ИИ в процессе обучения. На самом деле областей применения ИИ неисчислимо много. Ниже список разных задач, в которых вы также можете задействовать ИИ:
Генерация промпотов
Генерация скрипта
Анализ данных
Подготовка к собеседованию
Написание резюме
Создание презентации и подготовка текста для презентации
Написание мотивационного письма
Создание роадмапы и списка задач и т.д.
Как вы видите, задач, которые вы можете оптимизировать, уйма!
Базовые приципы prompt engineering
Перейдем к инженирингу промптов. Важно понимать, что нет какого-то “ключевого слова”, которое сделает ответ на ваш запрос всеобъемлющим и невероятно качественным. В шутку могу сказать, что запрос типа “от этого зависит моя жизнь” действительно генерирует некую выжимку о предмете, его свойствах и так далее. Однако тут пойдет речь о получении максимально эффективных респонзов, необязательно с первого раза. По этой ссылке находятся примеры хороших промптов на русском языке для выполнения повседневных задач.
В «общении» с любыми ИИ нужно улучшать свои запросы, анализируя полученный результат. Если же ИИ умеет понимать контекст, как это делает практически любая популярная языковая модель, то мы выступаем в роли некоего штурмана, который после каждой новой генерации корректирует «маршрут». Именно поэтому я продвигаю идею с пониманием конечного результата. Чем вы детальнее представляете и, главное, описываете, что вы хотите получить, тем будут лучше сформированы ваши запросы и тем будут лучше сгенерированы ответы. Можете также держать в голове, что вы общаетесь с гениальным ребенком, которому лишь нужно расписать некий алгоритм действий, по которому ему нужно выстраивать свой ответ.
Есть еще несколько «лайфхаков». Например, если вас не устраивает полученный ответ, вы можете еще раз отправить тот же запрос, возможно, слегка его отредактировав. Вероятно, вы получите совсем иной ответ, но также вероятно, что новый ответ будет переформулировкой прошлого.
Начинайте «общение» с ИИ с чистого листа, если вам кажется, что каждый новый ответ не приближает к ожидаемому результату.
Корректируйте ИИ на основе своих знаний. Модели могут галлюцинировать, поэтому их ответы необходимо корректировать.
Используйте разные модели, чтобы решить необходимую вам задачу. Сейчас существует бесконечное множество ИИшек, которые выполняют одну и ту же задачу. Тут важно умение загуглить, но, уверен, эта задача вам по силам!
Ну и, конечно, самое главное - это экспериментировать самостоятельно. Возможно ваши эксперименты приведут вас к новым открытиям.
Краткая справка этой главы
Детальное представление конечного результата
Подробные описания
Пошаговое взаимодействие и погружение в контекст
Улучшение и переформулировка запросов
Корректировка запросов на основе своих знаний
Использование разных модели для решения необходимой задачи
Начинайте с “чистого листа”, если генерируемые ответы не приводят к необходимому результату
Экспериментируйте
Заключение
Хочется еще раз отметить, что статья несет ознакомительный характер, а цель каждой главы - рассказать о существующей возможности. На самом деле, множество приложений ИИ в нашей повседневной жизни стремиться к бесконечности. Но, к сожалению, до сих не многие используют генеративные модели, приводя разные аргументы против них. Не нужно избегать технологий или бояться их. Необходимо использовать их в свою пользу, тем самым развивая свои собственные компетенции. Прилагаю основные пойнты, которые я хотел отразить в статье:
ИИ - это ваш помощник. Не использовать ChatGPT и другие ИИ в современной жизни — это просто лишать себя возможности и быть более конкурентноспособным.
Использование ИИ позволяет эффективнее работать с информацией
Чем выше ваша экспертиза в вопросе, тем более качественные и точные ответы вы будете получать
Необходимо проверять всю важную информацию
Используйте разные модели и разные подходы для решения одной задачи
Принципы хорошего prompt engineering заключаются в step-by-step взаимодействии с ИИ и представлении конечного результата.
А как вы используете ИИ в своей деятельности? Мне интересно узнать ваш опыт! Смело делитесь этим в комментариях к публикации. И, кстати, эту статью мне помогли написать ChatGPT, YandexGPT и Copilot.
В конце концов, приглашаю вас подписаться на мой блог, в котором я рассказываю о своем пути в IT. Если же вы хотите поделиться опытом, задать вопрос или просто пообщаться, то приглашаю вас написать мне лично. Спасибо за прочтение, удачи!