今週のざっくばらん
Code Interpreter, Noteable
先週、ChatGPTのCode InterpreterがChatGPT+加入者向けに公開されたので、早速試してみました。期待していた以上に優秀で、正直、驚いています。GPT3を最初に試した時には、「人工知能もここまで進歩したのか」と感動しましたが、Code Interpreterには、さらに感心してしまいました。私が「GPT3やGPT4には、まだ無理だろう」と思っていた「人工知能に書かせたコードに仕事をさせる」ことを、見事にやり遂げてしまったからです。
Code Interpreterとは、一言で言えば、ユーザーのリクエストに応じて、必要なプログラムを書き、実行し、結果を届けてくれる人工知能です。
一般の人にはあまり縁のない話ですが、私たちエンジニアは、「特定の目的を達成するために一度だけ走らせるプログラムを書く」ことがあります。「iPhoneアプリ」や「ウェブサービス」のように、大勢の人たちに使ってもらうことを前提にしたプログラムとは違い、自分だけが、(多くの場合)1回だけ走らせるプログラムです。
先週も、そんなプログラムを一つ書きました。とあるところから入手したJSONという形式のファイルを読もうとしたのですが、スペースや改行が全くなかったため、そのままでは読むことが不可能でした。そこで、Pythonで数行のプログラムを書いて、そのファイルを読みやすい形に変形しました。
エンジニアの中でも、この手の「使い捨てのプログラム」を頻繁に書くことで知られているのは、「データ・サイエンティスト」と呼ばれるデータ解析を専門にする人たちです。彼らの多くは、Pythonプログラマーで、Jupyter Notebook と呼ばれるインタラクティブな環境で、データを読み込み、それを解析するのに必要なプログラムを書き、実行し、分かりやすい表やグラフを作る、という作業をしています(Microsoft Excelでも、ある程度のことは出来ますが、本格的なデータ解析をする場合には、Jupyter Notebookがデファクト・スタンダードです)。
この「必要に応じてプログラムを書いて実行する環境」は、これまでソフトウェア・エンジニアにだけ与えられた特権でしたが、そのメリットを誰でも受けられるようにしたのが、Code Interpreterなのです。リクエストに応じて、Jupyter Notebookを使いこなして、データ解析をしてくれる、自分専用の「データ・サイエンティスト」のような役割を果たしてくれる、とも言えます。
使い方は至って簡単です(ChatGPT+に加入されている方は、是非とも試してみてください)。設定画面 (Settings)のベータ機能(Beta features)で、Code Interpreterをオンにします。新たなチャット(New Chat)をスタートし、GPT4を選んだ上で、Code Interpreterを選びます。データ解析して欲しいファイルをアップロードし、対話型でデータ解析をしてもらいます。
試しに、DATA.GOVから、「Electric Vehicle Population Data」というファイルをダウンロードし、それをアップロードしてみました(日本からだとダウンロード出来ないという話も聞いたので、こちらにコピーを用意しました)。アップロードする際には「これはワシントン州で登録された全ての電気自動車のデータです。」とだけ書きました(あえて日本語で入力しました)。
すると、GPT4は「あなたがアップロードしたCSVファイルを確認しましょう。ファイルの最初の数行を表示して、データの概要を把握します。これにより、どのような情報が含まれているか、どのような形式で格納されているかを理解することができます。」と答えた上で、各コラムのタイトルだけを抜き出すプログラムを書き、それを実行した上で、「このデータセットには、ワシントン州で登録された電気自動車の詳細な情報が含まれています。具体的には以下の列が含まれています:
VIN (1-10): 車両識別番号の最初の10文字
County: 車両が登録されている郡
City: 車両が登録されている市
State: 車両が登録されている州
Postal Code: 郵便番号
Model Year: 車両のモデル年
Make: メーカー
Model: モデル
Electric Vehicle Type: 電気自動車のタイプ
...
このデータをどのように分析しますか? あるいは、特定の情報を探していますか?
と答えてきます。この時に書いたプログラムは以下の通りです。import pandas as pd
# Load the data
data = pd.read_csv('/mnt/data/Electric_Vehicle_Population_Data.csv')
# Display the first few rows of the data
data.head()
そこで、「電気自動車のタイプには何がありますか?」と尋ねると、
「データセットの 'Electric Vehicle Type' 列には、電気自動車の具体的なタイプが含まれています。どのような種類があるかを確認するために、この列の一意な値を表示しましょう」と言って、下のプログラムを生成し、実行します。# Display the unique values in the 'Electric Vehicle Type' column
data['Electric Vehicle Type'].unique()
そして「このデータセットには、以下の2つの電気自動車のタイプが含まれています:
バッテリー電気自動車(BEV: Battery Electric Vehicle)
プラグインハイブリッド電気自動車(PHEV: Plug-in Hybrid Electric Vehicle)」
と答えてくれます。
この記事は約
NaN 分で読めます(
NaN 文字 / 画像
NaN
枚)