What AI can do with a toolbox... Getting started with Code Interpreter [Now called Advanced Data Analytics]
Итан Моллик рассказывает о Code Interpreter (переименованном в Advanced Data Analytics) в ChatGPT — режиме на базе GPT-4, который позволяет загружать файлы до 100MB, писать и исполнять код на Python в постоянной рабочей среде. Этот инструмент снижает галлюцинации, помогает LLM лучше работать с математикой и текстом, а также делает ИИ универсальным помощником для решения самых разных задач без необходимости самому кодить. Автор демонстрирует возможности на примере датасета суперспособностей с Kaggle: ИИ автоматически чистит и объединяет данные, строит классификатор Random Forest, проводит сетевой анализ и создаёт интерактивные дашборды. Моллик подчёркивает важность экспертного человеческого контроля — например, он бы не согласился с заполнением пропусков средними значениями. Среди его экспериментов — визуализация песни лета, интерактивные карты, интерпретация «Илиады», причинный анализ и анимированные GIF. Автор видит в Code Interpreter позитивный сценарий будущего: ИИ освобождает специалистов от рутины ради более содержательной работы, а не заменяет их.
What AI can do with a toolbox... Getting started with Code Interpreter [Now called Advanced Data Analytics]
Что ИИ может сделать с набором инструментов... Знакомство с Code Interpreter [теперь называется Advanced Data Analytics]
Democratizing data analysis with AI
Демократизация анализа данных с помощью ИИ
Everyone1 is about to get access to the single most useful, interesting mode of AI I have used - ChatGPT with Code Interpreter Advanced Data Analytics (the name has been updated, I am not going to change the post beyond this first instance of the old name). I have had the alpha version of this for a couple months (I was given access as a researcher off the waitlist), and I wanted to give you a little bit of guidance as to why I think this is a really big deal, as well as how to start using it.
Каждый1 вот-вот получит доступ к самому полезному и интересному режиму ИИ из всех, что я использовал, — ChatGPT с Code Interpreter Advanced Data Analytics (название обновили, и я не буду менять пост, кроме этого первого упоминания старого названия). У меня была альфа-версия этого инструмента пару месяцев (доступ дали как исследователю из листа ожидания), и я хочу немного рассказать, почему считаю это действительно важным событием, а также как начать им пользоваться.
Code Interpreter continues OpenAI’s long tradition of giving terrible names to things, because it might be most useful for those who do not code at all. It essentially allows the most advanced AI available, GPT-4, to upload and download information, and to write and execute programs for you in a persistent workspace. That allows the AI to do all sorts of things it couldn’t do before, and be useful in ways that were impossible with ChatGPT.
Code Interpreter продолжает давнюю традицию OpenAI давать вещам ужасные названия, потому что он, возможно, будет наиболее полезен тем, кто вообще не умеет программировать. По сути, он позволяет самому продвинутому доступному ИИ, GPT-4, загружать и скачивать информацию, а также писать и исполнять программы для вас в постоянной рабочей среде. Это даёт ИИ возможность делать множество вещей, которые он не мог раньше, и быть полезным способами, недоступными для обычного ChatGPT.
Specifically, it gives the AI a general-purpose toolbox to solve problems (by writing code in Python), a large memory to work with (you can upload files up to 100MB, and those can be in compressed form) and integrates that toolbox into the AI in ways that play to the strengths of Large Language Models. This helps address a number of problems that previous versions of ChatGPT had:
Конкретно, он даёт ИИ универсальный набор инструментов для решения задач (через написание кода на Python), большую память для работы (можно загружать файлы до 100MB, причём в сжатом виде) и интегрирует этот набор инструментов в ИИ способами, играющими на сильных сторонах LLM. Это помогает решить ряд проблем, которые были у предыдущих версий ChatGPT:
It allows the AI to do math (very complex math) and do more accurate work with words (like actually counting words in a paragraph), since it can write Python code to address the natural weaknesses of Large Language Models in math and language. And it is really good at using this tool appropriately, as you can see below.
Он позволяет ИИ заниматься математикой (очень сложной математикой) и точнее работать со словами (например, реально посчитать слова в абзаце), так как он может писать код на Python, чтобы компенсировать естественные слабости LLM в математике и языке. И он действительно хорошо умеет использовать этот инструмент уместно, как видно ниже.
It lowers hallucination and confabulation rates. When the AI directly works with Python code, the code helps keep it “honest” sinces Python generates errors if the code is not correct. And as the code manipulates the data, rather than the LLM itself, there are no errors inserted into the data by the AI. This isn’t perfect, the AI still hallucinates (it often seems to think it can see the graphs it can generate, which this mode of ChatGPT cannot), but these errors are less common, and less likely to impact the code or data itself.
It makes the AI much more versatile. A remarkable number of problems can be solved with code, and GPT-4 is very good at figuring out when to use Code Interpreter in novel and interesting ways. For example, I asked it to prove to a doubter that the Earth is round with code, and it provided multiple arguments, integrating the text with code and images.
You don’t have to code, because it does all the work for you. All the major LLMs write code, but you have to run and debug it yourself, even though the AI helps. For people who never really used Python before (like myself) this was annoying, and involved going back and forth with the AI to correct errors. Now, the AI corrects it own errors and gives you the output.
It gives you more of those AI Moments. Anyone who has worked with GPT-4 has probably encountered at least a few Moments where it felt like there was, indeed, a ghost in the machine. I know it is an illusion, and that LLMs are in no way sentient or thinking, but those Moments are a thrilling, and sometimes unnerving, glimpses of possible futures with smarter AIs. Code Interpreter provides the most “that’s weird” Moments per use of any AI systems I have played with. I have been collecting a number of examples, such as when I asked the AI to invoke various emotion states with code or “show me something impossible to do with code and demonstrate it."Below, you can see what happened when I asked the AI “Using the tools available to you to draw, create an entirely new meme by creating an image. Make it relevant to your experience as an AI working with humans.”
Он снижает частоту галлюцинаций и конфабуляций. Когда ИИ работает напрямую с кодом на Python, код помогает поддерживать его «честность», поскольку Python выдаёт ошибки, если код некорректен. И так как код манипулирует данными, а не сам LLM, ИИ не вносит ошибок в данные. Это не идеально — ИИ всё ещё галлюцинирует (он, например, часто думает, что видит графики, которые сам генерирует, хотя этот режим ChatGPT их не видит), но такие ошибки случаются реже и реже влияют на сам код или данные. Это делает ИИ намного более универсальным. Удивительное количество задач можно решить с помощью кода, и GPT-4 очень хорошо понимает, когда стоит использовать Code Interpreter новыми и интересными способами. Например, я попросил его доказать сомневающемуся, что Земля круглая, с помощью кода, и он привёл несколько аргументов, интегрируя текст с кодом и изображениями.Вам не нужно программировать, потому что он делает всю работу за вас. Все крупные LLM пишут код, но запускать и отлаживать его приходилось вам, даже если ИИ помогает. Для людей, которые раньше никогда толком не пользовались Python (как я), это раздражало и требовало хождения туда-сюда с ИИ для исправления ошибок. Теперь ИИ сам исправляет свои ошибки и выдаёт результат. Он дарит вам больше тех самых ИИ-моментов. Любой, кто работал с GPT-4, наверняка сталкивался хотя бы с несколькими моментами, когда казалось, что в машине действительно есть призрак. Я знаю, что это иллюзия и что LLM никоим образом не разумны и не мыслят, но эти моменты — захватывающие, а иногда тревожные проблески возможного будущего с более умными ИИ. Code Interpreter даёт больше «вот это странно»-моментов на одно использование, чем любая другая ИИ-система, с которой я работал. Я собираю их примеры — например, когда я попросил ИИ вызывать разные эмоциональные состояния с помощью кода или «покажи мне нечто невозможное, что можно сделать с помощью кода, и продемонстрируй это». Ниже вы можете увидеть, что произошло, когда я попросил ИИ: «Используя доступные тебе инструменты рисования, создай совершенно новый мем, сгенерировав изображение. Сделай его релевантным твоему опыту работы с людьми как ИИ».
So, take that as an invitation to play with this new tool. As one entry point, here is a getting started guide to using Code Interpreter with data.
Так что считайте это приглашением поиграть с новым инструментом. В качестве отправной точки — вот руководство по началу работы с Code Interpreter для анализа данных.
How to use Code Interpreter with Data
Как использовать Code Interpreter для работы с данными
Code Interpreter is an impressive data scientist. I have been using it extensively over the past months, and it is operating at a very advanced level, automating a lot of the complexity of quantitative analysis, and capable of very sophisticated approaches to data. As one way of of illustrating this, I started with a fun dataset, a public domain list of superheroes and their powers. You can download it if you want to try these steps with me.
Code Interpreter — впечатляющий data scientist. Я активно использовал его последние несколько месяцев, и он работает на очень продвинутом уровне, автоматизируя большую часть сложности количественного анализа и способен на весьма изощрённые подходы к данным. Чтобы это проиллюстрировать, я начал с забавного датасета — общедоступного списка супергероев и их способностей. Вы можете его скачать, если хотите повторить эти шаги со мной.
It is easy to upload data, even compressed data like a ZIP file, by hitting the plus button. You should include an initial prompt with the data, but it can be pretty minimal, I literally used Here is some data on superhero powers, look through it and tell me what you find and got good results. If you have a data dictionary, you can just paste that in, too. The AI is good at figuring out the meaning and structure of the data from context alone.
Загружать данные легко, даже сжатые, например ZIP-файл, — просто нажмите кнопку «плюс». Стоит сопроводить данные начальным промптом, но он может быть совсем минимальным: я буквально написал Here is some data on superhero powers, look through it and tell me what you find и получил хорошие результаты. Если у вас есть словарь данных, можно просто вставить его. ИИ хорошо определяет смысл и структуру данных только из контекста.
You will note that Code Interpreter is much less about prompt crafting than about having a conversation with the AI. Treat it like an analyst, and talk with it. In fact, there are only two real exceptions where prompt-crafting seems to matter. First, the AI sometimes forgets it can do things (like make GIFs or 3D plots) and you may need to encourage it (“you are able to make a GIF, please try”). Second, you will want the AI to improve on its own work. Just asking it to “run further tests on that result” or “make this graph even nicer” will often work.
Вы заметите, что Code Interpreter — это куда больше про разговор с ИИ, чем про продуманные промпты. Относитесь к нему как к аналитику и общайтесь с ним. По сути, есть только два реальных исключения, где промптинг важен. Во-первых, ИИ иногда забывает, что умеет что-то делать (например, создавать GIF или 3D-графики), и его нужно подталкивать («ты умеешь делать GIF, пожалуйста, попробуй»). Во-вторых, вы захотите, чтобы ИИ улучшал собственную работу. Просто попросить его «провести дополнительные тесты по этому результату» или «сделай этот график ещё лучше» часто работает.
Now that we have the data loaded, we can have GPT do the worst part of any data analysis job: data merging and cleaning. It will handle this all automatically in a quite sophisticated way, but I find it usually helps to ask directly, as if I was directing a human data analyst. You will also note something really important about the way the system works - it is relentless, usually correcting its own errors when it spots them. It notices, for example, that columns are misnamed and fixes that issue. Impressive as this is, I would still recommend double-checking the results and process, rather than blindly trusting the AI.
Теперь, когда данные загружены, мы можем поручить GPT самую неприятную часть любой задачи по анализу данных: объединение и очистку данных. Он справится со всем автоматически и довольно изощрённо, но я считаю, что обычно полезно попросить напрямую, как если бы я давал указания живому аналитику. Вы также заметите кое-что действительно важное в том, как работает система, — она настойчива и обычно сама исправляет ошибки, когда их замечает. Например, она обнаруживает, что колонки названы неправильно, и исправляет это. Как бы впечатляюще это ни было, я всё же рекомендую перепроверять результаты и сам процесс, а не слепо доверять ИИ.
Now, on to an analysis. The AI seems knowledgeable about analytical approaches - it is worth reading the exchange below to see what I mean. I prompted I am interested in doing some predictive modelling, where we can predict what powers a hero might have based on other factors. how should we approach this? and it built a Random Forest classifier - cool! But you can also see why it is important to have expert human oversight, since I would diagree with its decision to impute missing data by using the means for numerical data. I would have dropped the data instead, but I could ask the AI to change its approach, or discuss alternate options.
Теперь к анализу. ИИ, похоже, разбирается в аналитических подходах — стоит прочитать диалог ниже, чтобы понять, что я имею в виду. Я ввёл промпт I am interested in doing some predictive modelling, where we can predict what powers a hero might have based on other factors. how should we approach this?, и он построил классификатор Random Forest — круто! Но также видно, почему важен экспертный человеческий контроль: я бы не согласился с его решением заполнять пропуски средними значениями для численных данных. Я бы вместо этого удалил такие данные, но я мог попросить ИИ изменить подход или обсудить альтернативные варианты.
The AI is capable of many other analyses (it is “just” writing Python code, after all) but I was often impressed by its ability to select analytical approaches that made sense. For example, here is a network analysis of superpowers, that came from me just prompting Could you conduct another really sophisticated and interesting analysis:
ИИ способен на множество других видов анализа (он ведь «всего лишь» пишет код на Python), но меня часто впечатляла его способность выбирать осмысленные аналитические подходы. Например, вот сетевой анализ суперспособностей, полученный после простого промпта Could you conduct another really sophisticated and interesting analysis:
But some of what makes Code Interpreter most impressive is that it “reasons” about data in ways that seem very human. When asked about the results of the network analysis, it came to interesting conclusions: the set of powers that heroes commonly had were visual in nature (because they were from comic books), fit certain archetypes, and were best suited to building continuing adventures. A neat way to integrate data and story together!
Но больше всего в Code Interpreter впечатляет то, что он «рассуждает» о данных способами, которые кажутся очень человеческими. Когда его спросили о результатах сетевого анализа, он пришёл к интересным выводам: набор способностей, которыми обычно обладают герои, имеет визуальную природу (потому что они из комиксов), вписывается в определённые архетипы и лучше всего подходит для построения длительных приключений. Изящный способ объединить данные и историю!
The level of interactivity continues for visualizations, you can go back and forth with the AI asking for improvements and changes. For example, I prompted Create an interactive dashboard with at least 6 insightful charts, including one in 3D. Make the dashboard beautiful. It produced a dashboard, but not exactly what I wanted. So I was able to just ask for changes in English: make this better. include more names, etc. You will also notice that it gave me a downloadable file for the interactive dashboard (you can try it at the link), which I just put in a web browser and it worked - downloadable outputs are another neat trick of Code Interpreter.
Уровень интерактивности сохраняется и для визуализаций — вы можете вести диалог с ИИ, прося улучшений и изменений. Например, я ввёл промпт Create an interactive dashboard with at least 6 insightful charts, including one in 3D. Make the dashboard beautiful. Он создал дашборд, но не совсем такой, какой я хотел. Поэтому я смог просто попросить изменения на английском: make this better. include more names и т. д. Вы также заметите, что он выдал мне скачиваемый файл для интерактивного дашборда (его можно попробовать по ссылке), который я просто открыл в браузере — и он заработал. Скачиваемые результаты — ещё одна изящная фишка Code Interpreter.
And a few more experiments I have done over the past months: visualizing the song of the summer with a 3D interactive plot, building interactive maps, interpreting the Iliad, causal analysis, making animated GIFs from data, analyzing Magic the Gathering, racing bar charts, and a lot more besides.
И ещё несколько экспериментов, которые я провёл за последние месяцы: визуализация песни лета с помощью интерактивного 3D-графика, построение интерактивных карт, интерпретация «Илиады», причинный анализ, создание анимированных GIF из данных, анализ Magic the Gathering, гоночные столбчатые диаграммы и много всего помимо этого.
A sign of things to come
Знамение грядущего
This is just scratching the surface of Code Interpreter, which I think is the strongest case yet for a future where AI is a valuable companion for sophisticated knowledge work. Things that took me weeks to master in my PhD were completed in seconds by the AI, and there were generally fewer errors than I would expect from a human analyst. Human supervision is still vital, but I would not do a data project without Code Interpreter at this point.
Это лишь поверхностное знакомство с Code Interpreter, который, как мне кажется, является самым убедительным на сегодня доводом в пользу будущего, где ИИ становится ценным напарником в сложной интеллектуальной работе. То, что мне потребовалось недели освоить во время PhD, ИИ выполнил за секунды, причём ошибок обычно было меньше, чем я ожидал бы от живого аналитика. Человеческий контроль по-прежнему жизненно важен, но я бы не стал браться за data-проект без Code Interpreter сейчас.
But it is just as clear to me that humans are not going to be replaced by Code Interpreter. Instead, the AI does what we always hope automation will do - free us from the most annoying, repetitive parts of our job so we can focus on the good stuff. By simplifying the process of analysis, I can do more and deeper and more satisfying work. My time becomes more valuable, not less, as I can concentrate on what is important, rather than the rote. Code Interpreter represents the clearest positive vision so far of what AIs can mean for work: disruption, yes, but disruption that leads to better, more meaningful work. I think it is important for all of us to think about how we can take this same approach to other jobs that will be impacted by AI.
Но мне столь же очевидно, что Code Interpreter не заменит людей. Напротив, ИИ делает то, на что мы всегда надеемся от автоматизации, — освобождает нас от самых раздражающих и рутинных частей работы, чтобы мы могли сосредоточиться на хорошем. Упрощая процесс анализа, я могу делать больше, глубже и осмысленнее. Моё время становится более ценным, а не менее, поскольку я могу концентрироваться на важном, а не на рутине. Code Interpreter представляет собой самое ясное на сегодня позитивное видение того, что ИИ может означать для работы: да, это потрясение, но потрясение, ведущее к лучшей, более осмысленной работе. Думаю, всем нам важно задуматься, как применить этот же подход к другим профессиям, на которые повлияет ИИ.
If you subscribe to ChatGPT Plus, it should be available to you in the next week.
Если вы подписаны на ChatGPT Plus, инструмент должен стать вам доступен в течение следующей недели.

