ホーム » JOB » ツール » 【AIのコード生成能力を検証】株価データ取得、グラフ化するプログラムをPythonで作成

【AIのコード生成能力を検証】株価データ取得、グラフ化するプログラムをPythonで作成

JOB

ChatGPTなどのAIツールは、コード生成能力が高いと言われています。Prompt Engineering Guideではプロンプトの例として「コード生成(Code Generation)」が挙げられており、LLM(大規模言語処理モデル)の得意分野であることがわかります。

GitHub Copilotのように、すでに商用化されているサービスもあるようです。

ここでは、ChatGPT、Bing、Bard、Perplexityにコード生成のプロンプトを与え、実際にプログラムを走らせてその能力を確かめました。

コード生成とは?

コード生成とは、コンピュータプログラムを自動的に生成するプロセスです。通常、コード生成はテンプレートや規則に基づいて行われます。これにより、プログラムを手動で記述する代わりに、コンピュータが必要なコードを生成することができます。

Prompt Engineering GuideでもLLM(大規模言語処理モデル)のコード生成はかなり有効であると説明されています(詳しくは、以下の記事を参照ください)。

【プロンプトエンジニアリングに学ぶ】上手なAIとの対話や質問の仕方
言語モデルを効率的に使用するためのプロンプト開発および最適化する研究分野がプロンプトエンジニアリングと呼ばれ、その内容が「Prompt Engineering Guide」に纏められています。AIへの質問の仕方、回答のさせ方のコツを纏めます。

有料で利用できるサービスもありますが、無料で利用が可能なAIツール、ChatGPT、Bing、Bard、Perplexityでも有効かどうか、以下の方法で検証します。

コード生成能力の検証方法

以下の方法で行ないます。

  • ChatGPT、Bing、Bard、Perplexityそれぞれにコード生成のプロンプトを与えて回答させる
  • プロンプトは以下の通り
    「Pythonで日経平均株価のデータを取得して、終値の1年間のトレンドグラフを作成するプログラムを作成してください。」
  • 生成したコードをPythonに入力し、指示通り実行されるか確認する

ChatGPTの結果

(1)回答結果: 以下のようなプログラムを数秒で生成しました。

一部、使用できないデータ(黄色枠内)を指定したため、ここだけは修正を行ない、Pythonへ入力します。

「Copy code」でコピーできるようにしているのは、ポイント高いね。

プログラムの説明もしてくれて分かりやすいよ。

修正点:yahooファイナンスのデータ情報から日経平均株価データ(^N225)を取得するコードですが、現在、yahooファイナンスはWebスクレイピング(Webサイトからのデータ取り込み)を禁止しているため、このままだと、エラーになります。そのため利用できるサイト(Stooqという海外のサイト)とコード名に変更を行ないます。

chatgpt

(2)Pythonへ入力して実行する

Pythonへ以下のように入力し実行します。

python-chatgpt

実行した結果、以下のトレンドグラフが生成されました。

trend-chatgpt

Bingの結果

(1)回答結果: 以下のようなプログラムを数秒で生成しました。

ChatGPTと同様Yahooからデータを採取するプログラムのため、修正を行ない、Pythonへ入力します。

Bingは情報ソースを書いてくれる点が特徴だね。

bing

(2)Pythonへ入力して実行する

Pythonへ以下のように入力し実行します。

python-bing

実行した結果、以下のトレンドグラフが生成されました。

trend-bing

Bardの結果

(1)回答結果: 以下のようなプログラムを数秒で生成しました。

やはり、Yahooからデータを採取するプログラムのため、修正を行ない、Pythonへ入力します。

Bardは日本語が通じないから、英語でプロンプトを入力する必要があるね。

DeepLを使ってやりとりしたよ。

bard

(2)Pythonへ入力して実行する

Pythonへ以下のように入力し実行します。

python-bard

実行した結果、以下のトレンドグラフが生成されました。

trend-bard

Perplexityの結果

最後にPerplexityです。

(1)回答結果: 以下のようなプログラムを数秒で生成しました。

情報ソースを記載する点はBingと同じだね。

それから、Yahooを使うのはみな同じだったね。

perplexity

(2)Pythonへ入力して実行する

Pythonへ以下のように入力し実行します。参照するWebサイトは修正しました。

python-perplexity

実行した結果、以下のトレンドグラフが生成されました。

trend-perplexity

検証結果

  • 参照するWebサイトを変更する必要がありましたが、それ以外のプログラムは完璧で、いずれのAIツールともトレンドグラフが作成されました。
  • どのAIツールもYahooファイナンスを参照するプログラムを生成しました。AIが参照した情報(Webサイト、ブログ)がいずれもYahooファイナンスからのデータ収集であったと思われます。
  • これは、実際に生成したプログラムが実行されることまでは確認していないということになりますが、コードの規則については、十分に情報を持っており、文法的には申し分ないコード生成が行える能力があると思われます。
  • 今回のプロンプトは比較的簡単なものだったので、より複雑な処理についてどこまで生成できるか、別に検証する必要があると考えられます。

おわりに

ChatGPT、Bing、Bard、Perplexityに、株価データを取得し、グラフ化するPython用のプログラムを生成するプロンプトを与え、実際にプログラムを走らせてその能力を確かめました。

いずれのAIツールが作成したプログラムでもトレンドグラフが作成され、コード生成能力がかなり高いものであることが確認されました。

今後も様々なプログラムで確認する必要はありますが、有効なツールとして利用可能と思います。

コメント

タイトルとURLをコピーしました