Впервые я написал версию этого поста в апреле 2023 года. С тех пор многое изменилось как в инструментах, так и в том, как я их использую.
Как и тогда, если вы хотите почувствовать себя на переднем крае, другие, такие как Итан Моллик, придадут вам больше вкуса. Но если вам нужны какие-то практические примеры, вы можете счесть это полезным.
Я использую несколько инструментов, переключаясь между ними в зависимости от задачи и сравнивая ответы. Я хочу получить представление о передовых технологиях.
Как ученый, я получаю бесплатный доступ к Github Copilot. (Студенты также могут получить бесплатный доступ) CoPilot предоставляет рекомендации по использованию кода в среде программирования. Но, несмотря на это, CoPilot также предоставляет текстовые подсказки в более широком смысле. Чтобы получить доступ к CoPilot, я пишу документы markdown в Visual Studio Code или RStudio. (Для тех, кому нужны более конкретные указания о том, как это настроить, я добавил их в конце этого поста. ) Если вы используете CoPilot в Visual Studio Code, вы также получаете доступ к чату Copilot.
Я также работаю с ChatGPT Plus и Claude Pro, открытыми в браузере. Я подписываюсь на обе версии Pro/Plus: они того стоят благодаря превосходным инструментам. Как вы увидите из приведенного ниже, я использую их постоянно, хотя в последнее время склоняюсь к Claude.
Я запускаю некоторые другие большие языковые модели локально на своем компьютере, используя Ollama. Я делаю это скорее для того, чтобы получить представление о них, чем для текущей полезности. Большая часть моих недавних экспериментов была связана с Llama 3. Я использую эти модели через командную строку или плагин CoPilot в Obsidian.
Я также подписался на ElevenLabs за ее возможности генерации голоса. Подробнее об этом ниже. Я экспериментировал с другими инструментами, но они пока не стали существенной частью моего рабочего процесса. Я редко использую Bing, за исключением изображений, если ChatGPT не дает мне того, что я хочу. Мне нравится, что в каждой подсказке отображается по четыре изображения. Я экспериментировал с Google Gemini, но не нашел причин, по которым это могло бы заменить комбинацию Claude и ChatGPT. Я пересматриваю его каждый месяц или два, чтобы понять, стоит ли мне добавлять его в список.
я>
Аналогичным образом, после прочтения статьи и формирования собственного мнения о ее содержании, сильных и слабых сторонах, я спрошу Клода или ChatGPT об их мнении. Я нахожу, что это может быть сложно, но это того стоит. Иногда описание попадает в точку, а критика затрагивает те моменты, о которых я не подумал.
Наконец, если у меня возникнут технические вопросы, я задам их, прежде чем искать в Google. Это быстрее и, я бы сказал, точнее, чем самые популярные поисковики Google.
Несмотря на то, что я провожу много времени в R, я никудышный программист. В результате, мой обычный подход заключается в том, чтобы написать комментарий и позволить второму пилоту выполнить первую обработку кода. Затем я буду дорабатывать код до тех пор, пока он не обретет форму. Эта доработка также не является ручной. Если возникает ошибка или проблема, которую я не могу решить, я использую чат второго пилота, чтобы найти решение. В чате обычно предоставляется код для решения проблемы.
CoPilot также отлично помогает мне разобраться в чужом коде. Я выделю разделы и попрошу CoPilot Chat объяснить, что он делает. Часто я вставляю плохо документированный код в Claude или ChatGPT и прошу его написать комментарии. Кроме того, если код выглядит слишком сложным, просьба упростить его часто дает хорошие результаты. (Недавно я попросил ChatGPT пересмотреть кое-что из моего старого кода. Я немного смущен тем, насколько эффективнее я мог бы его написать. )
Перевод на разные языки принес мне одно большое преимущество. В прошлом году я хотел воспроизвести результаты из книги Беркли Дитворста «Отвращение к алгоритмам: люди ошибочно избегают алгоритмов, увидев, что они ошибочны». Данные и код для анализа были доступны на ResearchBox. Проблема заключалась в том, что код был в Stata, а у меня нет желания изучать Stata.
Я вставил код Stata в ChatGPT и попросил преобразовать его в R. То, что я получил, было на 90% похоже на то, что было там. Изначально была ошибка, но, вставив ее в ChatGPT, я сразу же нашел решение. Затем я подправил пару манипуляций с переменными и указал, что некоторые из t-тестов являются парными t-тестами. На этом все. Менее чем за 10 минут у меня был код, который в точности воспроизводил результаты исследования 1. Я уже десятки раз делал этот перевод, изучая и воспроизводя исследования других авторов.
Я все чаще прошу ChatGPT и Claude предоставить мне рабочие программы. Например, я создаю веб-сайт с базовой базой данных и моделью для прогнозирования игр AFL. (Я хотел поэкспериментировать с тем, как далеко я могу зайти с помощью этих инструментов. ) Я получил веб-интерфейс и базовый код от Claude для доступа к базе данных. Я использовал ChatGPT для первой версии прогнозирующей модели. Сейчас я разбираюсь в деталях, но суть уже есть. Я бы даже не стал пытаться это сделать без этих инструментов.
Каждый раз, когда я собираюсь работать с новыми данными Если позволит конфиденциальность, я передам данные в ChatGPT и спрошу об этом. Я начну в общих чертах: “Расскажите мне об этом файле”. Затем я перейду к деталям и попрошу предоставить базовые визуализации и анализ. Наконец, я экспортирую код на Python (или попрошу предоставить R-версию кода).
После мошенничества с данными автострахования Дэна Ариэли, которое очевидно из простого сюжета, у меня вошло в привычку просматривать данные, прежде чем приступать к анализу (что я делал не так часто, как следовало бы в прошлом). Удивительно, как часто я обнаруживаю, что что-то идет не совсем так, как ожидалось. Наличие ChatGPT под рукой делает этот первый шаг быстрым и легким.
это>
Когда я впервые начал использовать GitHub CoPilot, он был включен всякий раз, когда я писал. Я получал бы предложения по мере того, как печатал. Сегодня я обычно отключаю это при написании первого черновика. Фильтрация предложений обходилась слишком дорого, и я боялся, что меня потащат в произвольном направлении.
Тем не менее, я часто использую Claude и ChatGPT, чтобы улучшить свой почерк. Когда у меня возникают проблемы с правильным написанием предложения или абзаца, я часто передаю его и прошу переписать 10 возможных вариантов. Точно так же я попрошу прислать более простой, короткий или разговорный текст. Я редко берусь переписывать текст, как это предусмотрено, но это часто дает мне слово или оборот речи, которые выполняют свою работу.
Для более механического в конспектах лекций есть некоторые явные преимущества. Конспекты по моему предмету «поведенческая экономика» для бакалавриата (с которыми вы можете ознакомиться здесь) были подготовлены с помощью второго пилота.
Вот несколько примеров, когда второй пилот был полезен. Часто в примечаниях содержится изложение концепции, за которым следует пошаговый пример или иллюстрация. Преимущество заключается в том, что вы записываете эти шаги. Например, в разделе о принятии решений в условиях риска я мог бы написать: Билл — не склонный к риску агент с функцией полезности и состоянием в 100 долларов. Ему предлагается ставка 50:50, чтобы выиграть 100 долларов и проиграть 50 долларов.
Примет ли Билл ставку?
Если я напишу первые пару слов ответа “Сначала мы рассчитываем…”, второй пилот будет отсутствовать.
Сначала мы рассчитываем ожидаемую полезность каждого варианта. Ожидаемая полезность ставки составляет:
«{=tex} begin{выровнено} EU(text{ставка}) &= 0,5 умножить на u(100) + 0,5 умножить на u(-50) \ & = 0,5 умножить на текст{ln}(100) + 0,5 умножить текст{ln}(50) \ &= 4,259 закончить{выровнено} «
Ожидаемая польза от отказа от ставки:
« _BOS_=tex} начать{выровнено} EU(text{без ставки}) &= U(100) \ &= text{ln}(100) \ &= 4,605 end{выровнено} «
Поскольку ожидаемая полезность ставки меньше, чем ожидаемая ожидаемая польза от отказа от ставки, Билл не примет ставку.
Неплохо для нескольких секунд работы. Для тех, кто не знаком с математическими обозначениями, это, которое преобразуется в красивые уравнения, подобные этому.
Я мог бы дополнить это более подробным объяснением или задать вопрос непосредственно в ChatGPT, где я, как правило, получаю более подробные ответы. CoPilot отлично справился с математикой — логи верны!
CoPilot также отлично подходит, когда я выполняю повторяющиеся задачи, такие как описание элементов уравнения или диаграммы. Начните описывать первый элемент, и он, возможно, подскажет вам остальное. А если вы напишете точку зрениядалее следует “И наоборот, …”, CoPilot часто играет на деньги.
Я также использую CoPilot с ggplot для создания графиков для заметок. Когда я захотел сгенерировать диаграмму, показывающую функцию взвешивания вероятности из теории перспектив, я создал блок кода R и ввел комментарий:
#График функции взвешивания вероятности с использованием ggplot2
Вот результат, полученный ChatGPT при визуализации диаграммы ниже:
#График функции взвешивания вероятности с использованием библиотеки ggplot2(ggplot2) #Определяем функцию взвешивания вероятности prob_weight <- функция(p, альфа){ exp(-(-log(p))^альфа)} #Создаем фрейм данных с вероятностями и весами prob <- seq(0, 1, 0,001) prob_df <- data. frame. (вероятность = prob, вес = prob_weight(вероятность, 0,6)) #Построить график ggplot(prob_df, aes(x = вероятность, y = вес)) + geom_line() + #Добавить метки labs(x = "Вероятность", y = "Вес")
Именно то, что я хотел. Когда я реализовывал это в примечаниях, я всего лишь изменил стиль и добавил линию под углом 45 градусов.
В предложении CoPilot используется функция взвешивания вероятности Prelec (1998). Почерпнул ли он это из более раннего текста в моих заметках или просто предоставил наиболее распространенную функцию для взвешивания вероятности, я не знаю, но это то, что я бы использовал, если бы делал это вручную. Однако при написании этого поста я не смог повторить то, что делал при написании конспектов лекций. Я добился лучших результатов в самих конспектах лекций. Несколько абзацев о взвешивании вероятностей, прежде чем я попрошу предоставить код, дали лучшие результаты, чем если бы я просто попросил таблицу.
CoPilot не сразу предложил этот полный фрагмент кода. Предлагался каждый комментарий, затем фрагмент кода после него, один за другим. Но единственной работой, которую я выполнил, было написание первого комментария и нажатие клавиши tab несколько раз по мере того, как предлагался каждый последующий комментарий или фрагмент кода. (CoPilot, безусловно, увеличил количество комментариев и в моем коде. )
Работая в любой современной организации приличного размера, вы придется написать какую-то ерунду, чтобы удовлетворить начальство, клиентов, требования правительства и тому подобное. Я безнадежен в этих заданиях. Мне приходится вкладывать значительные средства, чтобы «пух» звучал достойно.
Мой подход к этим упражнениям зависит от степени их бессмысленности.
Если задача связана с процессом, который не окажет никакого влияния на то, что кто-либо будет делать, я просто передаю задачу в ChatGPT, пусть она сначала выполнит сокращение, а затем подправит по мере необходимости. Одно-два предложения с рекомендациями часто помогают в 80% случаев достичь поставленной цели.
Если я считаю, что выполнение задачи принесет пользу или будет полезно для общества, я буду действовать более активно. Я напишу черновой вариант, не особо заботясь о том, как он будет написан, но следя за тем, чтобы в нем присутствовали концепции, которые я хочу включить. Возможно, это будут многоточия. Затем я попрошу ChatGPT предоставить версию, которая была бы “понятнее”, “проще”, “лучше написана” или “для десятилетнего ребенка”.
Недавно мне понадобилось описать, насколько программа соответствует набору критериев качества. Я загрузил несколько документов с описанием программы и pdf-файл, содержащий критерии (в виде таблицы). Затем я попросил Клода предоставить мне короткие абзацы с описанием того, как программа соответствовала критериям. Немного доработав, я был готов.
Один из лучших способов обучения это должно быть проверено. В результате я предлагаю студентам, изучающим мой предмет для бакалавриата, серию практических тестов, с которыми они могут поработать.
Это тяжелая работа — генерировать большое количество вопросов, и я изо всех сил стараюсь давать правдоподобные, но неправильные ответы на вопросы с несколькими вариантами ответов. Теперь я прошу ChatGPT сгенерировать их. Я загружаю свои заметки по теме и прошу использовать их в качестве основы для вопросов. В приглашениях я варьирую специфику вопросов. “Дайте мне 20 вопросов с множественным выбором, которые проверяют концепцию неприятия потерь”. “Задайте мне 20 вопросов с несколькими вариантами ответов, проверяющих теорию потенциальных клиентов”. Из каждой группы только несколько будут подходящими. Но если я изменю свою инструкцию, скажем, описав уровень подготовки студентов (бакалавриат) или более четко определив концепцию, то мне не потребуется много времени, чтобы получить около 10 хороших вопросов.
Я также использовал ChatGPT для генерации идей вопросов для контрольных работ и экзаменов. Этот экзамен является закрытым ИИ-тестом, поэтому он менее уязвим для того, чтобы кто-то просто отправил вопросы обратно в ChatGPT. Одним из полезных подходов было загрузить несколько предыдущих экзаменов, а также мои конспекты по предмету и задать новые экзаменационные вопросы того же уровня сложности или по тем же концепциям.
В прошлом году я решил основать свой предмет «поведенческая экономика» на коротких предварительно записанных видеороликах, интерактивных онлайн-семинарах и учебных пособиях. Для создания видеороликов я написал сценарии, которые также составляют тематические заметки. Я читаю заметки, сопровождаемые слайдами.
В этом упражнении есть три проблемных момента. Во-первых, я говорю слишком быстро (даже когда мне кажется, что я говорю медленно) и плохо выговариваю многие слова. Во-вторых, запись занимает много времени. Я редко получаю видео продолжительностью от двух до пяти минут за один дубль, которым я доволен. В-третьих, если я хочу что-то подправить в записи, мне нужно либо перезаписать целые фрагменты текста, либо поработать с видеомонтажем.
Итак, почему бы не использовать искусственный голос для озвучивания? Когда я писал свой последний пост, лекции, озвученные искусственным интеллектом, были будущим. Теперь это основная часть моего преподавания предмета.
Я экспериментировал с Murf. ai, Speechify, play. ht и ElevenLabs. Изначально я использовал Murf. ai для создания нескольких видеороликов, так как это позволяло мне легко совмещать слайды и текст. Я также смог интегрироваться с Google Slides. Однако голоса звучат немного роботизированно, поэтому в настоящее время я использую ElevenLabs, хотя все, что я получаю, — это аудиофайл. У ElevenLabs фантастические голоса. Даже намек на использование искусственного интеллекта вызывает негативную реакцию студентов, поэтому качество голоса должно быть моим главным критерием. Если бы Murf. ai голоса улучшаются, а Eleven не развивает интеграцию с видео, я могу вернуться назад.
Процесс производства прост. Я вставляю текст в главу проекта ElevenLabs и визуализирую озвучку. Как правило, темп будет не совсем правильным, поэтому я добавлю несколько запятых и тире, чтобы создать паузы. Затем я экспортирую голосовой файл и объединяю его с изображениями в Final Cut Pro. Обычно я могу создать 5-10-минутное видео из текста и слайдов менее чем за час. Самое замечательное в том, что если я хочу обновить раздел или изменить предложение, я обновляю скрипт в ElevenLabs, повторно отрисовываю соответствующие предложения, загружаю новый голосовой файл в проект Final Cut Pro и настраиваю тайминги слайдов (если требуется редактирование голоса это). Это быстро, просто и позволяет получать видео неизменно высокого качества.
ElevenLabs может “клонировать” ваш голос. Я попробовал быстрое клонирование на play. ht, но у меня получился американский акцент. На ElevenLabs вы можете получить профессиональный клон голоса, загрузив три или более часов аудиозаписи. Я сделал это, и голос звучит в точности как мой, даже с австралийским акцентом. К сожалению, это связано с моими недостатками, в частности, с тем, что я говорю слишком быстро. В ElevenLabs нет возможности замедлить речь, кроме как вставлять в текст множество тире. Это также отражает качество моей домашней записи и звучит немного гулко. Итак, на данный момент я использую один из их готовых австралийских голосов.
Вот два примера приведенного выше абзаца: обычный австралийский голос и мой “клонированный” голос.
Я также начал рассматривать варианты создания аватара с искусственным интеллектом на основе моих видео или фотографий для некоторых частей видео. На данный момент я оставляю этот вариант, но могу вернуться к нему в следующем году.
Ниже приведены основные шаги для доступа к GitHub CoPilot.
Если вы ученый, вы можете вы можете зарегистрироваться для получения (бесплатного) академического доступа к программе CoPilot по этой ссылке. Если вы не являетесь преподавателем или студентом, подпишитесь на бесплатную пробную версию, как описано здесь. Для этого вам понадобится учетная запись на Github. Это стоит 10 долларов в месяц.
Код Visual Studio доступен здесь. (Я использую версию для Mac. ) Скачайте и установите.
Установите расширение Github CoPilot в Visual Studio Code. Инструкции по установке расширения приведены здесь. После установки вам будет предложено авторизоваться на GitHub, чтобы получить доступ к авторизации CoPilot.
Как только вы это сделаете, использовать CoPilot будет просто. Вы просто вводите текст. По мере ввода вам будут выдаваться рекомендации.
Настройка в RStudio стала еще проще. Скачайте RStudio отсюда. В разделе «Сервис»/»Глобальные параметры» есть пункт меню «Второй пилот». Включите там «Второй пилот». Вам будет предложено ввести данные для входа на GitHub, чтобы запустить его.
Я пишу на markdown (на данный момент это разновидность markdown, называемая Quarto). Это позволяет мне включать математические и R-вычисления в любой документ (как и в этом посте). Если вы ученый, застрявший в экосистеме, вы также можете полностью использовать Visual Studio Code. Вы также можете просто использовать CoPilot в Word. Я с нетерпением жду, когда мой университет выйдет за рамки экспериментальной стадии и предоставит нам доступ. (Я воспользовался месячной бесплатной пробной версией Microsoft CoPilot на домашнем компьютере, но не нашел времени, чтобы как следует ее опробовать. )
Прелек, Д. (1998). Функция взвешивания вероятности. Econometrica, 66 (3), 497-527. https://doi. org/10. 2307/2998573