🕌

AI Agent Hackathon with Google Cloudに参加するための事前調査:3日目

2024/12/24に公開

前回から現在まで

前回は主に読み物を確認して生成AIに関する用語や仕組みの概要を学びました。

今までのざっくりな理解の大半は勘違いをしていたのもわかりましたし、理解したことを踏まえて個人開発・運用をしている自作のAIツールのコストダウンにも貢献できました。

大変満足です。

前回の記事はこちら
https://zenn.dev/articles/30d2f09704f104

Vertex AI Studioを触る

本日は実際に手を動かすことをしていきます。

まず、参考にするチュートリアルはこちら
https://cloud.google.com/vertex-ai/generative-ai/docs/start/quickstarts/quickstart?hl=ja

内容を読み始めて気になっていたのですが・・・

モデルごとのプロンプト出力を比較する

これ、おそらく現在開発・運用している個人ツールに適用できそうな予感がしています。

それに加えて

モデルの出力を Vertex AI Search または Google Search でグラウンディングする

こちらはハッカソン用の企画に適用できそうな予感がします。

期待感がすごいです。

あと、サラッと読んでいる中でも昨日の学習前まではしらなかった用語がすんなり理解できるのも自分の成長具合を実感できます。

それでは実際に触っていきます。

まずはVertex AIのセクションからプロンプトギャラリーを選択せよとのことなので実施

プロンプトギャラリーの画面

タスクのプルダウンから要約を選択してくださいとのことなのですが、プルダウンの中身までは言語設定が及んでないらしく英語のまま。。。ちょっと残念。

タスクの選択肢

「Transcript summary」というカードを開きますとありますが、そのカードがない😢

う〜む。。。

次からの操作を見る限り、カードを選択するとモデル・パラメーター・テスト例などが事前に入力されていて、テスト実施するとそれなりの出力が得られると書いてあるので、どんなものかさえわかればいいのかな?と思いました。

現時点で選択できるテキスト系のカード「Title generation」を選択して画面を確認することにしました。

Title generationの画面

そうすると画面中央と画面右とでざっくりできることが分かれいて、プロンプトに関しては画面中央の下側にある入力、出力のところで操作できるようです。ぱっと見すごい簡単。

画面右側でgeminiのモデル選択や利用トークンの制限、グラウンディングの設定ができるようで、できる限り安く使いたい僕としてはトークンの制限や利用するgeminiのモデルを選ぶ部分で安くする方法を今後考えていけばいいのかなと思いました。

ここまでの確認で気になった機能を列挙します。

気になった機能1:tempreture

tempretureといものがよくわからないので説明を読んでみましたがさらにわからず。。。

geminiに解説してもらいなんとなく理解しました。以下がそれになります、すごいわかりやすい。。ありがたや。。。(gemini解説内容を付録として記事最下部用意しています)

気になった機能2:プロンプト トークナイザー

次に来なったのは画面のテストセクションにある「530個のトークン」というリンクの部分。

リンクがついているので何かしらの設定があるのかな?と思いクリックすると形態素解析したような画面が出てきました。こちらはプロンプトトークナイザーという機能のようです。

僕視点で気になったのはトークンが増えるとコストも増えるということ。

個人開発しているとプロンプトが自分の希望を詰め込んだ人間的ではない謎の指示書になりがちになっていて、出力結果からみるとそれほどきっちり指示しなくても期待値を実現できたりしますし、長期運用をしているとプロンプトで消化するトークンの小さな差でも月間コストに影響が大きく出てくるので簡潔に要点を摘んでプロンプト化するというテーマを持っています。

トークン数が画面上で確認できることはコストを気にすることができるのですごく助かる機能だと感じました。

気になった機能3:安全フィルター

画面右側では安全フィルターの設定もできました。

安全フィルター

選択肢は全ての項目が同様で4つから選べるようです。

不特定多数のユーザーを想定するサービス開発時には選択肢から適宜選択すればOKそうです。

実際に使う場面ができた時に深掘りしようかと思います。

すでに開発・運用してるAI機能にGemini APIが使えそう

Title generationのカードから確認できた画面で色々調べていく中で、すでに開発・運用している機能がgeminiで置き換えられることがわかったため、ハッカソンで提出するプロジェクトができないことにはなら無さそうということで安心しました。

僕からみた感じだと、以前にMyGPTを作成した時に設定したような指示内容をVertexAIのコンソールで実施し、それをすでにあるコードからAPI越しに呼び出せばOKという結構簡単な置き換えで出来そうです。

また、これとは別に企画しているものではグラウンディングさせるためのデータ作成がかなり時間がかかりそうな気がしてきています。学習補助AIを作るということになるので対応する内容を絞ればいけそうな気がするのですが、まだ見通しが悪く今後の学習や、もしかすると有識者への問い合わせが必要となりそうな予感がしています。

一番安いモデルはどれ???

本日の学習で一番気になっているのはモデルの選択です。

とにかく一番安いのを頼む、という気持ちです。

こちらが求めているものはテキストに対応しているモデルなので値段はさほどかからないだろうと思ってはいるのですが、モデルの選択をミスると予想以上の料金を取られるわりに出力内容に満足いかないことが多いことをOpenAI APIで経験済みです。

余談になるのですが、高度なタスクを消化できるモデルを選べばいいというわけではなく、シンプルさを求める場合はチープなモデルの方が表現がさっぱりしてて使いやすいことがありました。

開発・運用しているツールは gpt-4o-mini を使っていますが、当初は gpt-3.5-turbo を使っていました。gpt-4o-miniに変えることでコストが減り内容も簡潔になって満足しています。

そこで、まずはgeminiの中で最安のモデルを見つけ、それとgpt-4o-miniとの料金比較をしてみようかと思います。

結論からいうと、geminiの最安値と思わしきものは gemini-2.0-flash-exp のようです。というのもこちらのモデルの料金表がどのページにもありません。。。ただし、gemini-1.5-flashが公表している料金としては最安で、gemini-2.0-flashはこれをバージョンアップして値段が同等程度とのことです。

詳しくは料金ページやリリースノートを確認しないといけないようなのですが、筆者はこちらのブログを参考にしています。

https://techblog.nhn-techorus.com/archives/38200

gpt-4o-miniとの料金比較は公表されているgemini-1.5-flashを対象として、以下がその表です。

モデル名 テキスト出力料金 単位 備考
Gemini 1.5 Flash $0.000075 1,000文字 マルチモーダルモデル
GPT-4o-mini $0.600 1M出力トークン 単一モーダルモデル

googleとopenAIとで単位が文字orトークンの差があるのですが、どうやら料金的にはGemini 1.5 Flashの方が安いようです。

なのでOpenAIに課金しているクレジットが切れた時点でgeminiに乗り換えようかと思います。つまり、ハッカソンに提出するコードが生まれるということになりそう。よかった。

ここまでにgeminiに問い合わせた内容も付録しました。

本日の感想

ついに具体的に手を動かして今後の展望が見え始めてきました。

簡単なものでしたらVertex AIを利用せずいきなりGemini APIを使えばよいということも分かりましたが、僕の気持ち的にが学習させ、自身が希望する専門性のあるAIサービスを作りたいので、どうしても学習という手順を踏んでみたいです。

それを踏まえて学習するチュートリアルも単純に順を追ってやるのではなくそのようなものを選んでいくというステージまで来たのかなと思います。

また、一応明日以降確認はしてみる予定ですが、Vertex API Notebookを使うことあるのかな?と思ってきました。おそらくなのですが、Vertex系のプロダクトはノンコード開発ユーザー向けの立ち位置でコードをいじくれる僕のような開発者はGemini APIさえ使えれば十分ではないか?と思ってきています。

とはいえ、ノンコードなツールは使えた方がいいとは思うので必要が出てきたら学習対象としていこうかと思います。

付録)gemini 問い合わせ内容

Temperature(温度)とは? 生成AIにおけるその役割

Temperatureを料理に例えて考えてみよう

生成AIが文章を生成する過程を、料理を作る過程に例えてみましょう。

  • レシピ(プロンプト):料理のレシピが、生成AIに与える指示(プロンプト)に相当します。
  • 材料(データ):レシピにある材料が、生成AIが学習した大量のテキストデータに相当します。
  • 料理人(生成AI):料理人がレシピと材料を元に料理を作るように、生成AIはプロンプトと学習データに基づいて文章を生成します。

この時、Temperature は、料理人がレシピをどれだけ厳密に守るか、あるいは自由にアレンジするかを決定するようなものです。

  • 低いTemperature: レシピを忠実に守り、ほぼ同じ料理が完成します。生成される文章も、プロンプトに沿った、より確実なものが期待できます。
  • 高いTemperature: レシピを参考にしながらも、自由にアレンジを加えて、全く新しい料理が生まれる可能性があります。生成される文章も、より独創的で多様なものになります。

Temperatureの具体的な効果

  • 低いTemperature:
    • メリット:
      • プロンプトに沿った正確な文章が生成される
      • 同じプロンプトに対して、ほぼ同じ回答が得られる
    • デメリット:
      • 創造性や多様性に欠ける
      • 新しいアイデアや意外な回答は得られにくい
  • 高いTemperature:
    • メリット:
      • 創造的で多様な文章が生成される
      • 新しいアイデアや意外な回答が得られる
      • より人間らしい自然な文章が生成される
    • デメリット:
      • プロンプトから外れた内容が含まれる可能性がある
      • 同じプロンプトに対して、毎回異なる回答が得られる

Gemini-2.0-flash-expにおけるTemperature

Gemini-2.0-flash-expでは、Temperatureの範囲が0~2と設定されています。

  • 0: レシピを厳密に守り、ほぼ同じ料理を作るような状態。
  • 2: レシピを参考にしながら、自由にアレンジを加えて全く新しい料理を作るような状態。
  • 1 (デフォルト): レシピを参考にしながら、ある程度の自由度を持って料理を作るような状態。

まとめ

Temperatureは、生成AIが文章を生成する際の「創造性」と「正確性」のバランスを調整するパラメータです。

  • 創造性を重視したい場合: Temperatureを高く設定する
  • 正確性を重視したい場合: Temperatureを低く設定する

具体的な活用例

  • 翻訳: 正確な翻訳を求める場合は低いTemperature、より自然な翻訳を求める場合は高いTemperature
  • 文章生成: 既存の文章のスタイルを模倣したい場合は低いTemperature、新しいスタイルの文章を生成したい場合は高いTemperature
  • アイデア出し: 多様なアイデアを出したい場合は高いTemperature

注意: Temperatureの設定は、使用するモデルやタスクによって最適な値が異なります。gpt-4o-miniとの料金比較は公表されているgemini-1.5-flash

Vertex AIのGeminiモデルにおけるテキスト入力の料金比較

Vertex AIのGeminiモデルでテキスト入力を行う場合、最も安いのはGemini 1.5 Flashです。

各モデルのテキスト入力料金比較

モデル名 テキスト入力 (1,000文字あたり)
Gemini 1.5 Flash $0.00001875
Gemini 1.5 Pro $0.0003125
Gemini 1.0 Pro $0.000125

上記の数値から、Gemini 1.5 Flashが他のモデルと比較して、テキスト入力あたりの料金が最も安いことがわかります。

なぜGemini 1.5 Flashが安いのか?

Gemini 1.5 Flashは、Geminiシリーズの中でも比較的新しいモデルであり、コストパフォーマンスに優れています。高性能なGemini 1.5 ProやGemini 1.0 Proと比較して、以下の点が挙げられます。

  • モデルサイズ: Gemini 1.5 Flashは、他のモデルよりもモデルサイズが小さく、計算コストを抑えています。
  • 機能: 高度な機能よりも、基本的な自然言語処理タスクに特化しているため、コストを抑えることが可能です。

結論

Vertex AIのGeminiモデルでテキスト入力を行う場合、最もコスト効率が良いのはGemini 1.5 Flashです。

Gemini 1.5 FlashとGPT-4o-miniのテキスト出力料金比較表

モデル名 テキスト出力料金 単位 備考
Gemini 1.5 Flash $0.000075 1,000文字 マルチモーダルモデル
GPT-4o-mini $0.600 1M出力トークン 単一モーダルモデル

表の見方と注意点

  • Gemini 1.5 Flash: テキスト出力に関しては、1,000文字あたり$0.000075という非常に低い料金設定となっています。
  • GPT-4o-mini: 出力トークン数が100万単位であるため、直接比較は難しいですが、一般的にトークン数は文字数よりも少ない傾向にあります。そのため、文字数あたりの単価はGemini 1.5 Flashよりも高くなる可能性が高いです。
  • トークンと文字数の関係: トークン数は、モデルが単語や句読点をどのように分割するかによって決まるため、文字数との間に単純な比例関係はありません。
  • モデルの特性: Gemini 1.5 Flashはマルチモーダルモデルであり、画像や音声など、様々な形式のデータを処理することができます。一方、GPT-4o-miniはテキストに特化したモデルです。この違いも、料金体系に影響を与えている可能性があります。

比較結果のまとめ

上記の表から、テキスト出力に関しては、Gemini 1.5 Flashの方がGPT-4o-miniよりも安価である可能性が高いということがわかります。しかし、これはあくまでも概算であり、実際の利用状況やモデルの更新などによって料金は変動する可能性があることに注意が必要です。

より詳細な比較を行うために

より正確な比較を行うためには、以下の情報が必要となります。

  • GPT-4o-miniの1トークンあたりの平均文字数: トークン数と文字数の関係を把握することで、より正確な比較が可能になります。
  • 利用するモデルのバージョン: モデルのバージョンによって、料金体系が異なる場合があります。
  • 利用するプロンプトの複雑さ: 複雑なプロンプトほど、生成されるテキスト量が多くなり、料金も高くなる傾向があります。

結論

Gemini 1.5 FlashとGPT-4o-miniのテキスト出力料金を比較した場合、Gemini 1.5 Flashの方がコストパフォーマンスが高い可能性が高いという結果になりました。しかし、実際の利用シーンや要求される性能によって最適なモデルは異なります。

Discussion