シンギュラリティ実験ノート

購入した1000ドルPCで何がどこまでできるのか実験した記録です。

AIにチャットで指示してPythonのコーディングをさせてみた

デスクトップで簡単に生成AIを動かせるソフトJanの紹介の続きである。もともとJanを導入したのは、生成AIとチャットでやり取りしながらコーディングなどの成果物が作れないかと思ったことがきっかけだった。一問一答ではなく、それまでの文脈を理解したやり取りをしたかったのだ。今回はコード生成能力の訓練を受けた生成AIの「ELYZA-japanese-CodeLlama-7b」を使い、コーディングおよびそのテストと修正がチャットを介してどれくらいできるかを試してみた。

ELYZA-japanese-CodeLlama-7b

 

準備

以前に紹介したJanへのモデル追加方法に従い、導入済みのELYZA-japanese-Llama-7Bのフォルダをコピーし、model.jsonファイルの内容を修正した。ELYZA-japanese-CodeLlama-7Bのモデルは、Rスクリプトのコーディングを頼んだ時WindowsのWSL2環境でダウンロードしていたので、そのモデルをjan配下のフォルダにコピーした。

これでELYZA-japanese-CodeLlama-7Bをjanで動作させる準備は整った。

作成依頼1 ~100以下の素数

まずは簡単なスクリプトを発注してみた。

100以下の素数を求めるスクリプトの作成

自分で実行してテストできるか聞いてみた。

スクリプトのテスト

会話としては成立している。ただし作成したスクリプトの実行はできないようだ。テストは人間側でやるしかない。しかしOpen Interpreterのように自分で実行ができるようにすると、実行環境に必要なモジュールを勝手にインストールされたりしてそれはそれでこわい。この方が安全でいいのかもしれない。ちなみに上記スクリプトは正常に動作することをJupyterLabで確認できた。

作成依頼2 ~株価の成長率~

続いて例によって株価の成長率を求めるスクリプトを頼んでみた。

株価成長率を求めるスクリプトの作成依頼

ELYZAは数分考えて以下のように回答してきた。

中略

ELYZAの回答

折角なので関数をテストするプログラムを依頼してみた。

ここも文脈を把握して回答をしてくれた。ちゃんと動くかは別として、会話が成立することはすばらしい!

 

次は作成したコードの一部修正を頼んでみた。

文脈は理解してくれている気がするが、修正能力は今ひとつのようだ。上記部分の修正はまあまあだが、他の部分の修正はうまくできなかった。

動作確認

以下はELYZAが作成してくれたスクリプトをベースに私が修正し、JupyterLabでテストした結果だ。ちなみにELYZAが作成してくれたテストプログラムは正しく動かないのでGoogleのAI、Geminiの力を借りてcheck_ticker_existsという関数を追加作成している。

感想

Janを利用することで生成AIとチャット形式でやり取りできることが確認できた。また、テストはチャットの中ではできないことを確認した。ELYZAのコーディング能力もなかなか優秀だと思う。修正をチャットで依頼するのは現段階では難しいというのが私の感想だ。

ELYZAは70Bのモデルを先日発表したようなので、生成AI自体の能力が向上していけば、この状況もまた変わっていくのだろう。