最近の投稿

アーカイブ

カテゴリー

最近のコメント

  1. にんじん
  2. アバター
  3. アバター
  4. タロウ
  5. アバター

テクノロジー

ChatGPTのAdvanced Data Analysisでデータ分析を自動化しよう!

松原 太一

今回は、ChatGPTに搭載されているデータ分析機能Advanced Data Analysis(旧Code Interpreter)でできることや、具体的な使い方を紹介します。特に、データ分析をしている方や、興味があってこれからデータ分析に触れてみたいという方には、必見の内容です。

ChatGPTでAdvanced Data Analysisを使う準備

ChatGPTでAdvanced Data Analysisを使うには、月額課金プランであるChatGPT Plusを契約する必要があります(USD $20/月)。ChatGPT Plusを有効にし、モデルは「GPT4」を選択しましょう。設定のベータ機能で「高度なデータ分析」をオンにしてください。これで準備完了です。

ChatGPTの設定>ベータ機能で「高度なデータ分析」をオンに
ChatGPTの設定>ベータ機能で「高度なデータ分析」をオンに

Advanced Data Analysisで何ができる?

Advanced Data Analysisで何ができるかは、本人(ChatGPT)に聞いてみましょう。以下が私とChatGPTとの問答の記録です。


Q(筆者):Code Interpreterを使うことで、何ができますか?
A(ChatGPT):Code Interpreterを使用すると、以下のような多くのタスクが可能です:

  1. コードの実行: あらゆるプログラミング言語(言語によっては限定される場合もありますが)で書かれたコードを実行できます。
  2. デバッグ: コードにバグがある場合、その場所と原因を特定するのに役立ちます。
  3. コードの解析: コードが何をしているのか、どのように動作するのかを理解するために使用できます。
  4. パフォーマンスの計測: コードの実行時間やリソース使用量を測定できます。
  5. テストの実行: 単体テストや統合テストを実行して、コードの品質を確認できます。
  6. プロファイリング: コードのどの部分が最も時間を要しているかなど、パフォーマンスに関する詳細なデータを収集できます。
  7. リアルタイムのフィードバック: コードを書きながらすぐにその挙動を確認できます。これにより、開発プロセスが効率化されます。
  8. ライブラリやフレームワークの探索: 未知のライブラリやフレームワークの関数やクラスを試すことができます。
  9. 教育と学習: 新しいプログラミング言語やコンセプトを学ぶ際に、手軽に実験できます。
  10. データの可視化: データをプロットするコードを実行し、結果を即座に確認できます。

これらは一例であり、Code Interpreterの用途は非常に多岐にわたります。


なるほど、これは凄いですね!開発者や研究者がこれまで、スクラッチで行っていたようなプログラミング作業の多くを実行できるそうです。何ができるか分かったので、実際にAdvanced Data Analysisを使って、データ分析をする際に使えるデータの種類を確認してみましょう。これもChatGPTに聞いてみます。


Q(筆者):Code Interpreterを用いて処理できるテキストベースのファイルとコードファイルを教えてください。
A(ChatGPT):Code Interpreterを用いたデータ分析の基本的なワークフローは以下のようになります。

 テキストベースのファイル:

  1. .txt: プレーンテキストファイル
  2. .csv: カンマ区切りの値(CSV)ファイル
  3. .json: JSONデータフォーマットのファイル
  4. .xml: XMLファイル
  5. .yml or .yaml: YAMLファイル
  6. .md: マークダウンファイル
  7. .ini: イニシャライゼーションファイル
  8. .log: ログファイル
  9. .conf: 設定ファイル

コードファイル:

  1. .py: Pythonスクリプト
  2. .js: JavaScriptファイル
  3. .java: Javaソースコード
  4. .c: C言語ソースコード
  5. .cpp: C++ソースコード
  6. .rb: Rubyスクリプト
  7. .go: Go言語ソースコード
  8. .php: PHPスクリプト
  9. .html: HTMLファイル
  10. .css: CSSスタイルシート
  11. .sql: SQLクエリやスクリプト
  12. .r: Rスクリプト
  13. .m: MATLABスクリプト
  14. .sh: シェルスクリプト


こちらも凄いですね。本当かどうか確認したところ、実際にどの形式も使用可能のようです。企業の業務でよく使用されるcsvやhtml、python等にも対応できるのが素晴らしいですね。早速、Advanced Data Analysis機能を使って、データの可視化とコードの解析をしてみます。

実際にデータ分析してみる1.データの可視化

データの準備

厚生労働省が公開しているオープンデータである、新型コロナウイルス感染症の日別推移のデータを使ってみましょう。下記URLをクリックし、図の黄色のところをクリックするとnewly_confirmed_cases_dailyという名前のcsvファイルをダウンロードできます。このファイルには、各都道府県の新規陽性者数の推移が記録されています。

厚生労働省がオープンデータとして公開している、新型コロナウイルス感染症の新規陽性者数の推移(日別)
新型コロナウイルス感染症の新規陽性者数の推移(日別)- オープンデータ|厚生労働省
https://www.mhlw.go.jp/stf/covid-19/open-data.html

とりあえず、csvファイルをAdvanced Data Analysis上にアップロードし、何をしてほしいかをプロンプトで指示します。今回は、特に目的を設定せず、いくつかの大都市の推移のグラフを見たいという設定で、適当にプロンプトを作成しました。

csvファイルをアップロードし、グラフとして表示することをプロンプトで指示
csvファイルをアップロードし、グラフとして表示することをプロンプトで指示

プロンプトを与えると、下記のように与えたファイルの中身を見て自律的に解析作業を始めます。

解析した結果から、3大都市の記録をグラフで表示
解析した結果から、3大都市の記録をグラフで表示
さらに、統計結果を解析して考察まで

さらに、統計結果を解析して考察まで

激やばですね。ざっくりとした命令に対して、どの都道府県を扱うか決め、グラフ絵画機能(matplotlib)を用いて爆速で描画し、基本的な統計情報と考察までしてくれました。

現状の図でグラフのタイトル部分がおかしくなっている理由は、グラフのタイトルに日本語フォントが適用できず、文字が表示されないからです。そこで、英語で表記するように指示したところ、最終的に以下の完成形の図を提示してくれました。

グラフのタイトルを英語にし、グラフを完全描画
グラフのタイトルを英語にし、グラフを完全描画

実際には個人の用途に応じて、より詳細にプロンプトを設計して目的に沿った解析結果を得られます。研究の用途においては、実験によって取得したデータの可視化・統計情報の解釈などに利用できます。

実際にデータ分析してみる2.コードの解析

筆者は研究開発をしているため、下記のようなケースによくぶち当たります。エンジニアや他の業務においても、同様な事象は見られるかと思います。

  • はじめて見るコードが何をしているのか分からない
  • 分からな過ぎて、何が分からないのか分からない
  • アルゴリズムの目的・処理内容について、まずはざっくり理解したい

こんな時に役立つのがAdvanced Data Analysisです。

状況設定:深層学習のモデルの中身を知りたい

深層学習モデルに関する新しい論文とそのGitHub実装が公開されたとして、そのアルゴリズムをざっくりと理解したいとします。論文はAlexNetの論文とし、その実装は下記のGitHubのものを解析したいとします。

▼Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. “Imagenet classification with deep convolutional neural networks.” *Advances in neural information processing systems* 25 (2012).
https://proceedings.neurips.cc/paper/2012/hash/c399862d3b9d6b76c8436e924a68c45b-Abstract.html

▼GitHub – dansuh17/alexnet-pytorch: Pytorch Implementation of AlexNet
https://github.com/dansuh17/alexnet-pytorch

まずは実装データをZIP形式で落とし込む

GitHubのページで緑のCodeボタンの矢印をクリックすると、黄色のようにZIPのダウンロードボタンがあるので、クリックするとダウンロードできます。

GitHubから実装データをZipファイルとしてダウンロード
GitHubから実装データをZipファイルとしてダウンロード

プロンプトを作成

下記のようにプロンプトを作成し、ZIPファイルを添付してChatGPTに送信します。するとChatGPTがZIPファイルを解凍し、中身のディレクトリ構造を解析して、各種pythonファイル等を解析し始めます。

プロンプトを作成し、ZIPファイルを添付してChatGPTに送信
プロンプトを作成し、ZIPファイルを添付してChatGPTに送信

実行

プロンプトを送信すると、ZIPの中身を解析し、以下のように質問に答えるための特に重要そうなファイル(model.py)にアタリをつけ、重点的に解析を始めたのが分かります。

ChatGPTがZIPファイルの中味を解析
ChatGPTがZIPファイルの中味を解析

解析が長引いてくると、レスポンスが止まったり、次の作業に移っていいかなどを確認してくることがあるので、その時は「続けてください」と返すと解析を続行します。

ChatGPTに続行を指示
ChatGPTに続行を指示

一連のやり取りを経て、結果的にChatGPTが下記の図のように出力してくれました。当初の命令通り、モデルの目的などを解説してくれています。ただし、一部出力に粗があるので参考程度に使いましょう。

これにより、『なるほど、このような意図のアルゴリズムなのか~』ということが、爆速で把握できます。時間のかかっていたコード解析が大幅に効率化します。

ChatGPTによる最終的なコード解析の結果
ChatGPTによる最終的なコード解析の結果

いろいろな可能性を広げるAdvanced Data Analysis

ChatGPTのAdvanced Data Analysisを使うことで、開発者に与えられる恩恵は多岐にわたります。例えば、効率的かつ効果的にコードを書くのを助け、問題解決、デバッグ、最適化のプロセスを高速化します。面白い使い方が他にあったら、ぜひコメントなどで教えてください。

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
松原 太一
松原 太一
研究員(専門分野:バイオインフォマティクス・深層学習・量子コンピューティング)
2021年から株式会社BlueMemeで量子コンピューティングやゲノム情報解析の研究開発を担当。専門分野は、量子AIの生命医科学への応用。BlueMemeに在籍する傍ら、2023年度より社会人学生として、九州大学大学院システム生命科学府へ進学し博士号取得を目指す。
松原 太一の記事一覧

記事URLをコピーしました