さて、ここからは技術的な話や、AIに関する所見です。
まず、Gemini API は非常に簡単に実装できました。
たぶんPythonでやった方が簡単なのですが、キノコードサイトがRailsで作っていることもあり、rubyからREST APIを利用する形になりました。
Gemini APIのドキュメントが分かりやすいので、これ見れば大体出来ます。
Gemini APIドキュメント一応、実装部分のコード(画像ですが)
悩んだのは、プロンプト(AIへの指示内容)と、学習データの形式です。
まず、プロンプトは最終的に以下に落ち着きました。
-------------------------------------------------------------------
user.name+'君の解答データを文末に配列の形式で渡します。
先頭の要素は、今回のテストの合格数(全部で10問)です。
2つ目から11個目の要素までは今回のテストの解答データです。
それ以降の要素は、過去の解答データです。
今回の解答データと、それ以前の解答は明確に分けて認識してください。
あなたは'+user.name+'君の解答データを分析し「良い所」と「間違いやすいポイント」と改善するための「アドバイス」を日本語でしてください。
以前の解答と、今回のテスト解答との変化点などもあれば、それも伝えてあげて。
超ハイテンションで、楽しくなるような口調で話して。
frac{}{}みたいなLatexの記法は表示しないで。
参考サイトは不要。解答データは次の辞書型のデータです。' + study_data_json
-------------------------------------------------------------------
最後のstudy_data_jsonに、生徒の解答データが入っています。
解答データは、
[{"今回のテストの解答":[{"生徒の解答":"9個に分けられた内の1個分を分数で言うと\\(\\frac{2}{3}\\)","正しい解答":"9個に分けられた内の1個分を分数で言うと\\(\\frac{1}{9}\\)","正解したか?":"間違った","解答までの時間(秒)":0.16}...},{"今回のテストの正解数": 6},{"1つ前のテストの解答": [...}]
という感じのデータ形式になっています。
最初は、もっとシンプルなデータを渡していましたが、かなり分析の精度が悪く、何問正解したかすら間違えてしまうので、かなり細かく区切って渡すようにしました。
特に、AIは時間の概念が薄いようなので「今回やったテスト」と「前回やったテスト」を切り分けることが難しく、ハッキリとデータを分けないと、見当外れの解答が多かったです。
(データの更新日時を、UTCで渡しても良かったかもです)
尚、\frac{}{}みたいな書き方はLeTaxという数式をWEB画面上に正しく表示させる形式ですが、プログラム的に分数のデータ(rubyならRational)を渡しても、AIの返答は1/10みたいな形式になってしまうので、LeTax形式で渡してみたら、LeTax形式で返してくれたので、これをサイト上で変換させて表示することにしました。
また、Gemini は画像も理解できるので画像自体を渡してみたのですが、文字だけと比べても特に精度が変わりませんでした。
むしろ、画像の重みが強いようで、画像の内容に引っ張られた解答が増えました。
データ量的にも、膨大な量になってしまうので、文字に置きかえて渡すことにしました。
以上、このデータの形式に関しては、AIを使うかどうかによって、かなり設計が変わるので、面白い部分でした。
最後に、コストの問題に触れておきたいです。
現状は無料で使えているので、コストを考慮していないですが、実際に有料になった後は、かなりコストが厳しいと思いました。
Gemini API の費用は入力と出力に分かれていて、有料後は以下になるようです。
今回の入力データは、大体1回で約7000トークン、
出力データは約1000トークンでした。
計算すると、142回ごとに約10ドルかかります。
1ドル150円で考えると、1回のアドバイスごとに10円かかることになります。
こんなん絶対ペイしません。
もっとデータ量を減らして、10分の1にしたとしても採算は取れないでしょう。
これでもGemini API の料金は 他のChat GPT や Claude などよりもかなり安いです。
如何にAIが進化したとしても、現状でシステムに組み入れるには、かなりコストパフォーマンスが悪いと思います。
WEBサイト上から、無料で使うのが一番良い使い方です。
ただし、オープンソースで無料で使えるAIモデルがちょこちょこ増えてきています。
特にMeta社の開発している「LLaMA(ラマ)」は、その最高峰の性能をしています。
これをインストールしてローカルで動かした場合の費用は無料です。
めちゃくちゃ有難いです。
今後、システムにAIを組み込むなら、これ一択になっていく気がします。
ただし、現状はChat GPT や Claudeなどの有料AIモデルに比べると性能は落ちます。
(特に日本語)
さらに、このAIを動かすためのPCは、かなりハイスペックじゃないと、返答までの時間がかかりすぎて厳しいです。
大体20万ぐらいのPCスペックだと、簡単な返答でも数分かかります。(APIだと長くても10秒程度)
RTX4090クラスか、appleが最近出したMac Studioのメモリもりもりじゃないと数秒程度での返答は難しそうです。
つまり50~100万クラスのPCが必要になってくる感じです。
ただ、これは近いうちになんとかなるレベルになると思いますので、API経由よりはかなり未来は明るい気がします。
そのうちローカルでの実装に作り替えてみます。
ということで、期間限定の「AI算数天国」をぜひやってみてくださいね!
AI算数天国はこちら