Warning: Undefined array key "options" in /home/c1397404/public_html/ict-worker.com/wp-content/plugins/elementor-pro/modules/theme-builder/widgets/site-logo.php on line 192

【Excelやっといて】ChatGPT の Code Interpreter が便利すぎて職がなくなりそう

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

職場の方が大炎上していてなかなか LLM を触れない楽介です。が、これだけは触れないわけにはいかないでしょう。

ChatGPT の期待の新機能、 Code Interpreter です。

Code Interpreter とは?

調べるのが面倒くさかったので、本人に直接聞いてみました(とかいうことができるのがツールとして本当に強い)。

もちろんです。ここでは、Pythonコードを入力し、その実行結果を得ることができます。具体的な使い方は以下の通りです:

  1. 基本的なコードの実行: たとえば、あなたが2つの数の合計を計算したいと思った場合、次のように入力できます:
css

python code

5 + 3

その後、私がそのコードを実行し、その結果を表示します。

  1. 変数の利用: あなたが作成した変数はこのセッション全体で利用可能です。たとえば、次のようにすることができます:
makefile
python code
x = 10
y = 20
x + y

このコードはxyという2つの変数を作成し、それらの合計を計算します。

  1. 関数の定義と利用: あなたは独自の関数を定義し、それをこのセッションで何度でも使用することができます。例えば:
css
python code

def add_numbers(a, b):
return a + b

これで、このセッションでadd_numbers関数が利用可能になります。以下のように使うことができます:

scss

python code

add_numbers(10, 20)

  1. エラーハンドリング: 何か間違ったことをした場合(例えば、未定義の変数を使用したり、存在しない関数を呼び出したりするなど)、エラーメッセージが表示されます。
  2. データの永続性: このセッションで作成したデータは一時的であり、セッションが終了すると消去されます。

なお、このコードインタプリタはインターネットアクセスを持っておらず、外部APIやウェブリクエストを行うことはできません。また、外部からデータをインポートすることはできますが、そのデータはユーザーによって提供されるか、または以前にセッションで作成されたものでなければなりません。

それぞれのプログラミング言語やライブラリには特有の使い方や機能があるため、具体的な質問や要求がある場合はお知らせください。

ということで、Python のコードを実行できるツールというのが Code Interpreter の核です。ですが、この説明だと Python プログラミングができないと使えない機能のように思ってしまいます。しかしその理解は間違っていて、実際には ChatGPT に Python の実行環境を与えているというのが正しいです。

また、ファイルのアップロード / ダウンロード も可能です。

つまり、

  1. ChatGPT に Python の実行環境というツールを与える(特別なプラグイン)
  2. ChatGPT とユーザーのやりとりに、ファイルのアップロード・ダウンロードという新しいコミュニケーション手段を設ける(もちろん画像も)
  3. (おそらくは)ChatGPT の裏の GPT-4 に、Python で課題解決するためのプロンプトが仕込まれている

と言えます。

通常のユーザー視点で言えば、ChatGPT では行えなかった数値計算の他、ExcelやBI, データベースを用いた繰り返し演算やグラフの作成が容易にできるようになりました。今まで Python を書いたり BI ツールを長い時間いじって苦労して出していたレポート群をまとめて出力することができます。

API を叩く側からすると、ファイルとPython Interpreterを上手いこと実行するエージェント系の実装です。

ChatGPT Code Interpreterを使ってみる

ChatGPT にサンプルデータセットを生成させて実験してみる

ChatGPT Code Interpreter ではデータサイエンスなどで広く使われるサンプルデータセットを使うことができます。いちいちダウンロードするのが面倒な場合、また、自分で分析したい欲求はなく試してみたい場合などに使うと便利です。

使用可能なデータセットは、

  1. Iris Dataset: アヤメの植物としての特徴を含む
  2. Boston Housing Dataset: ボストン市郊外の住宅価格とその他の特徴データを含む
  3. Wine Dataset: ワインの化学分析結果
  4. Diabetes dataset: 糖尿病患者の疾患進行度の予想するための情報を含む

この中で個人的に使いやすいのは、ボストンの住宅価格なのでこれを使ってみたいと思います(特別、科学的な知識は不要ですし、機械学習による予想というよりシンプルな分析のためです)。

ChatGPT に Boston Housing Dataset を用いて基本的な分析をさせてみる

Input
Boston Housing datasetを用いて、住宅価格の分布をグラフにしてください。
Output

以下のヒストグラムは、ボストンの住宅価格(単位は $1,000)の分布を示しています。価格は主に $20,000 から $25,000 の範囲に集中していますが、それ以上またはそれ以下の価格の家も存在しています。

この分布から、ボストンの住宅市場には中心(中央)値周辺にデータが集中していると言えます。しかし、高価格帯に向かうにつれて家の数は減少し、一部の非常に高価な家が存在することがわかります。これは、住宅価格が正規分布に従わず、右に歪んだ分布を示していることを示しています。

この情報は、ボストンの住宅市場についての一般的な理解を深めるのに役立ちます。たとえば、中心値周辺の家が市場の大部分を占めているため、これらの家の特性(例えば、部屋の数、立地、犯罪率など)を理解することは、市場全体を理解する上で非常に有用です。同様に、高価格帯の家が少ないことは、これらの家が特異な特性を持っている可能性があることを示しています。

生成されたコード

from sklearn.datasets import load_boston
import pandas as pd
import matplotlib.pyplot as plt

# Load Boston housing dataset
boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)

# Add target variable (price) to the dataframe
df['PRICE'] = boston.target

# Plot histogram of the housing prices
plt.figure(figsize=(10, 6))
plt.hist(df['PRICE'], bins=30, color='blue', edgecolor='black')
plt.title('Distribution of Housing Prices')
plt.xlabel('Price (in $1000s)')
plt.ylabel('Frequency')
plt.grid(True)
plt.show()

以下と言いつつ、画像が上に出