「Advanced Data Analysis」は、ChatGPTのチャットを介したデータ分析機能です。Excelなどの外部データを読み込み、日本語で指示をするだけで、データ解析、グラフ作成、ファイル編集、計算など行えます。今回はこのAdvanced Data Analysisについて解説します。
→連載「ChatGPT入門 - 初めてのAIチャット活用」の過去回はこちらを参照。
Advanced Data Analysisの概要とメリット
2023年7月6日にリリースされた当初、Advanced Data Analysisは「Code Interpreter」という名称でした。その後、8月28日に発表されたChatGPT Enterpriseのリリースの中でAdvanced Data Analysisと呼ばれるようになりました。本稿執筆時点(2023年11月23日)では、ChatGPTの基本機能に統合されています。なお、利用できるのは有償の「ChatGPT Plus」や「ChatGPT Enterprise」のユーザーです。
Advanced Data Analysisを利用することのメリットについては、ChatGPT Enterpriseのリリースの中で、以下のように言及されています(筆者による意訳)。
市場データを分析する金融リサーチャー、調査結果を分析するマーケティング担当者、ETLスクリプトをデバッグするデータサイエンティストなど、技術的なチームもそうでないチームも、数秒で情報を分析できるようになる
つまり、これまで専門的な知識を持つデータサイエンティストなどにしかできなかったデータ分析が、身近なものとして専門的な知識なしで簡単にできるようになるのです。
なお、OSSとして公開されている「Open Interpreter」という別ツールもあります。Advanced Data AnalysisがChatGPT経由で利用するのに対し、Open InterpreterはローカルPCにインストールして利用します。コアとなるモデルはAPI経由でOpenAIのGPT-4やAnthropicのClaudeなどを用いたり、ローカルでCode-Llamaを使ったりすることもできます。気になる方は、ぜひそちらも調べてみてください。
主な3つの特徴
Advanced Data Analysisの主な特徴としては、以下の3点を押さえておくと良いでしょう。
- 自身で用意したデータを用いてデータ分析が可能
- 自然言語を用いた指示が可能
- 実行環境を準備する必要がない
自身で用意したデータを用いてデータ分析が可能
Advanced Data Analysisでは、自分自身でファイルをChatGPTにアップロードすることができます。アップロード可能なファイル形式には、Excelファイル(.xlsxおよび.xls)、CSV、JSON、およびHDF5などが含まれます。
これにより、データ解析やコードの実行、書き込み、テストが可能になります。さらに、ファイルのダウンロードも可能です。
自然言語を用いた指示が可能
ユーザーは自然言語による指示でデータ分析を行えます。以下の1~4の流れで処理は行われますが、ユーザーは1と4を意識するだけでよく、2や3を意識する必要がありません。
- ユーザーは自然言語で指示を与える
- データ分析に必要なPythonコードが生成される <- 意識しない
- Pythonコードが実行される <- 意識しない
- データ分析結果が返される
もちろん、コーディングが得意な方は、自身で作成したコードを与えたり、デバッグしたりすることもできます。
実行環境を準備する必要がない
前項と一部重複しますが、Advanced Data Analysisでは、データ分析に必要なPythonコードが生成され、サーバー上のPython実行環境でコードを処理できます。つまり、Python環境の構築が不要になります。
Pythonによる開発経験がある方ならば、Python環境の構築の面倒さや、バージョン間の依存性の管理の煩わしさは感じたことがあるかもしれません。Advanced Data Analysisでは、そういった環境の管理から解放されるのです。
Advanced Data Analysisを使ってみる
Advanced Data Analysisの特徴を理解したところで、実際に使ってみましょう。利用手順は以下の通りです※。
- Advanced Data Analysisの新規チャット画面を起動
- データのアップロード
- 自然言語を用いた指示
とても簡単に試すことができますので、ぜひお手元の環境で動かしてみてください。
※ 以前は必要とされていた、設定画面におけるAdvanced Data Analysisの有効化は2023年11月13日時点で不要となっています。
1. Advanced Data Analysisの新規チャット画面を起動
左ペインから[explore]をクリックします。
Data Analysisを選択します。
Advanced Data Analysisの新規チャット画面が表示されます。
2. データのアップロード
Kaggleの題材として有名なタイタニック号の生存者データ(train.csv)を使って分析してみましょう。
テキストエリア左端の添付ファイル(クリップ)のマークをクリックしてデータファイル(train.csv)をアップロードします。
3. 自然言語を用いた指示
では、自然言語を用いた指示で、データ分析をしてみましょう。
プロンプトに以下を入力し、送信ボタンをクリックします。
このファイルはタイタニックの生存者分布を示すデータです。
データの特徴を分析してください。
以下のように分析結果が返ってきます。裏ではPythonのコードが生成・実行されているのですが、全く意識することなくデータ分析ができることが分かります。
なお、生成されたPythonコードとコードの実行結果を見たい場合は、青字の[>..]部分をクリックすると確認できます。
具体的には以下の内容が確認可能です。コードの中身に興味のある方のみ閲覧すると良いでしょう。繰り返しになりますが、このようにPythonのコードの生成・実行結果を全く意識することなく、データを分析できるのです。
さまざまなユースケース
前述までの説明で、Advanced Data Analysisでは簡単にデータ分析できることがご理解いただけたと思います。続いては、Advanced Data Analysisで具体的にどんなことができるのか、次の3つのユースケースを基にご紹介しましょう。
- グラフおよび表の作成
- 文章の要約
- 資料作成
グラフおよび表の作成
分析したい内容を自然言語で指示することで、グラフや表を作成し、データを視覚化することができます。例えば、前述のtrain.csvでいえば、以下のような指示が可能です。
生存者と非生存者の比較、チケットクラス別の生存率、性別や年齢別の生存率を分析してグラフにしてください。
以下は、生存者と非生存者の比較を行ったグラフです。
以下のように指示し、欠損値を表にすることができます。
train.csvの特徴量を表形式で表現してください。
文章の要約
長文の要約やデータ分析にも活用できます。文章のPDFファイルをアップロードして要約を依頼する、といった具合です。例えば、Editing Large Language Models: Problems, Methods, and Opportunitiesを要約してみましょう。
上記PDFファイルを添付した上で、以下の指示を出します。
添付ファイルを要約してください。
以下の結果が返ってきました。 長い論文の要点を短時間で掴むことができます。
この添付ファイルは、タイトル「Editing Large Language Models: Problems, Methods, and Opportunities」という論文で、Yunzhi Yaoらによって書かれたものです。以下にその要約を示します。
### 概要
- この論文は、大規模な言語モデル(LLM)を編集するための問題点、手法、および機会について深く探求します。
- モデル編集の目的は、特定のドメイン内でLLMの振る舞いを効率的に変更し、他の入力に対するパフォーマンスに悪影響を与えないことです。
- 編集のタスク定義、課題、現在利用可能な最先端の方法についての包括的な概要を提供し、新しいベンチマークデータセットを構築しています。
- さまざまな編集技術の効果と実現可能性についての洞察を提供し、特定のタスクやコンテキストに最も適した方法の選択を支援します。
### 主要なポイント
1. 問題の定義:
- モデル編集は、特定の編集記述子に対してモデルの振る舞いを効率的に調整し、他のサンプルに影響を与えないことを目指します。
- 編集の範囲、信頼性、一般化、特異性など、複数の側面を考慮します。
2. 現行の手法:
- モデルのパラメータを変更する方法と、パラメータを保持する方法の2つの主要なパラダイムが存在します。
- メモリベースのモデル、追加パラメータ、メタラーニングなどが含まれます。
3. 初期実験:
- さまざまな編集手法の性能を比較し、それぞれの長所と短所を強調します。
- 一部の手法は特定のタスクやモデルサイズで優れたパフォーマンスを示すが、他の条件では劣ることがあります。
4. 総合的な研究:
- モデル編集の能力をより包括的に評価するための新しい指標として「移植性」「特異性」「効率性」が提案されています。
- 現在の編集技術は、これらの新しい指標に基づいていくつかの課題に直面しています。
### 結論
- モデル編集技術は進歩していますが、移植性、特異性、効率性の面で改善の余地があります。
- 改善されたLLMの編集は、ユーザーの変化するニーズと価値観に合わせてそれらをより適切に調整するのに役立つでしょう。
### その他の考慮事項
- これらの編集技術は、LLMの使用におけるセキュリティとプライバシーの問題を解決するのに役立つ可能性があります。
- エシカルな編集の実践を保証することが重要です。
この論文は、LLMの編集に関する現在の研究と技術の状況に関する包括的な概観を提供しています。
資料の作成
プレゼンテーション資料、論文、記事、試験問題などの資料を作成することが可能です。先ほどのtrain.csvを活用して以下のように指示を出してみましょう。
train.csvを使用して、様々な分析を行ったレポートを作成し、パワーポイントを生成してください
以下の結果が返却されました。分析を実施し、ダウンロード可能なPowerPointファイルが作成されています。
タイタニック号の乗客データ(train.csv)を使用して、様々な分析を行ったレポートを作成し、それをパワーポイント形式で提供することが可能です。分析には次のような内容を含めることができます:
1. 乗客のデモグラフィック分析:
- 年齢、性別、乗船クラスによる分布。
- 各カテゴリの乗客数と生存率。
2. 運賃の分析:
- 運賃の範囲別の乗客数と生存率。
- 運賃と乗船クラスの関連性。
3. 乗船地点の分析:
- 乗船地点別の乗客数と生存率。
これらの分析結果をまとめ、グラフや表を含むパワーポイント形式のプレゼンテーションを作成します。まずは、必要な分析を行い、その結果をグラフ化します。その後、これらのグラフをパワーポイントにまとめていきます。
タイタニック号の乗客データを分析した結果を含むパワーポイントプレゼンテーションを作成しました。このプレゼンテーションには、性別による乗客のデモグラフィック分析、乗船クラスによる運賃分析、および乗船地点別の分析が含まれています。
以下のリンクからパワーポイントファイルをダウンロードできます:
[タイタニック号の乗客データ分析プレゼンテーション](sandbox:/mnt/data/titanic_analysis_presentation.pptx)
何か他にご要望があれば、お知らせください。
作成されたPowerPointファイルを開いてみると、以下のようにタイトルとグラフが貼り付けられています。
必要に応じて、さらに指示を入力して資料の内容や外観をカスタマイズすることも可能です。例えば、先ほど得られたPowerPointファイルはグラフが貼り付けられているだけだったので、以下の指示を追加してみます。
図だけ貼り付けるのではなく、全体の説明や得られた知見などもパワーポイントに記載してください。
以下の結果が返って、パワーポイントが再生成されたことがわかります。
了解しました。プレゼンテーションに各分析の全体的な説明と得られた知見も含めるようにします。まずは、各分析の結果とその解釈をまとめます。その後、これらの情報をパワーポイントに含めて再度作成します。
1. 性別によるデモグラフィック分析:
- 男性乗客が女性乗客よりも多かった。
- 女性の生存率が男性よりもはるかに高い。
2. 乗船クラスによる運賃分析:
- 第1クラスの乗客が最も高い生存率を持っていた。
- 第3クラスの乗客は最も多かったが、生存率は最も低かった。
3. 乗船地点別の分析:
- サウサンプトンからの乗客が最も多かったが、生存率は最も低かった。
- シェルブールからの乗客は少なかったが、生存率は最も高かった。
これらの情報を基に、説明文を加えたパワーポイントプレゼンテーションを作成します。
プレゼンテーションに各分析の詳細な説明と得られた知見を追加しました。この更新されたパワーポイントには、性別によるデモグラフィック分析、乗船クラスによる運賃分析、および乗船地点別の分析に関する解説が含まれています。
以下のリンクから更新されたパワーポイントファイルをダウンロードできます:
[タイタニック号の乗客データ分析(更新版)プレゼンテーション](sandbox:/mnt/data/titanic_analysis_presentation_updated.pptx)
他にも追加や変更が必要な場合は、お知らせください。
再生成されたPowerPointファイルを開いてみると、グラフに対して得られた考察を文章で追加してくれていることがわかります。
* * *
Advanced Data Analysisを使うと、データ分析が一気に身近なものになります。これまで専門的な知識を持つデータサイエンティストなどにしかできなかったことが、専門知識なしで簡単にできるようになるのです。
さらに、一度分析して終わりというわけではなく、チャット形式でどんどん指示を追加できるのも便利なポイントでしょう。
本日紹介したのは、Advanced Data Analysisのごく一部の機能に過ぎません。他にもQRコードの生成や画像の編集など、さまざまな機能が用意されています。ぜひ一度、お手元の環境で動かしてみてください。