【Make】Google Vertex Al (Gemini)モジュール全5つ～日本語に訳してみました～

# Google Vertex Al (Gemini)について
Vertex AIは、Googleが提供する「機械学習（ML）」のための便利なプラットフォームで、**AI（人工知能）を活用したアプリやモデルを作るのを手伝ってくれるツール**です。

https://cloud.google.com/vertex-ai/docs/start/introduction-unified-platform?hl=ja

1. **AIモデルの作成とカスタマイズが簡単にできる**<br>普通、大規模なAIモデルを作るのはとても難しいですが、Vertex AIを使えば、自分のデータを使ってモデルを簡単にカスタマイズできます。
1. **いろいろな作業をひとつにまとめてサポート**<br>データの準備からモデル作り、そしてそのモデルを動かす（デプロイ）まで、必要な作業をすべてサポートしてくれるので、初心者でも始めやすいです。
1. **チームでの作業がしやすい**<br>同じツールを使って、データを扱う人（データエンジニア）やAIモデルを作る人（データサイエンティスト）、実際にモデルを動かす人（MLエンジニア）が一緒に作業できる仕組みが整っています。
1. **Googleの強みを活用してスケールアップ可能**<br>作ったアプリやモデルを、Google Cloudの力を借りて大規模に運用できるので、たくさんの人が使う場面でも安心です。

:::note info
つまり、Vertex AIは、初心者からプロまで幅広く使える、AI開発の強力なサポートツールです。
:::

<details><summary><font color = "blue">AIモデルって具体的にどんなもの？</font></summary>

AIモデルとは、人工知能が学習した内容を元に、新たなデータに対して予測や分類などを行うための「型」のようなものです。

### 例えばこんなことができます
データを使って「学習」し、その学びを活かして問題を解決したり予測したりする。

* スマホの顔認証
* 音声アシスタント（SiriやAlexaなど）
* 翻訳アプリ
* レコメンド機能（YouTubeやNetflixで「これがオススメです」と出てくるもの）

など。

### どうやって動くの？
たくさんのデータを使って学習し「パターン」を覚える。
例：
1. 猫の画像を何千枚も見せて「これが猫だよ」と教える
1. 実行する：新しいデータが来たときに、「これは猫だ！」と判断する

### 種類がいろいろある
AIモデルにはいろいろな種類があり、タスクによって使い分けられます。
* **画像認識**：画像の中に何があるかを判断する
* **音声認識**：音声を聞き取ってテキストに変換する
* **自然言語処理**：文章を理解したり、文章を作ったりする

### どうやって作るの？
プログラミングを使って作られることが多いですが、最近はコードを書かなくても使えるツールが増えているので、初心者でも扱いやすくなっています。
学習に必要なデータや環境（コンピュータやクラウド）が揃っていれば、誰でも簡単に試せるようになっています。
</details>

## 4つの基盤モデル API
Vertex AI には、次の基盤モデル API があります。

1.　**Gemini API**（マルチモーダル テキスト、画像、音声、動画、PDF、コード、チャット）
1.　**PaLM API**（テキスト、チャット、エンベディング）
1.　**Codey API**（コード生成、コードチャット、コード補完）
1.　**Imagen API**（画像生成、画像編集、画像キャプション、Visual Question Answering、マルチモーダル エンベディング）

### 基盤モデルAPIとは
大規模なAIモデル（基盤モデル）の機能を、外部の開発者が自身のアプリケーションに組み込むことができるように提供されるインターフェースです。
このAPIを利用することで開発者は、基盤モデルが学習した膨大な知識やパターン認識能力を自らのサービスに組み込むことができます。

---------------------------------------
## 全5モジュール日本語訳
ノーコードツール **「Make」で使えるGoogle Vertex Al (Gemini)のモジュールは全部で5つ** あります。これらを日本語に訳した上で、それぞれどのような特徴があって、どのように使えるのかを調べてみました。

![ここを日本語に 訳してみました.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/077e0143-ae50-ff30-73ba-334c84607da3.png)

### アクション
1.　**Analyze Image/Video (gemini-pro-vision)：画像/動画の分析 (gemini-pro-vision)**<br>プロンプトで指定された指示に基づいて、入力パラメータから画像や動画を分析します。
1.　**Create a Chat Prompt (chat-bison)：チャット プロンプトの作成 (chat-bison)**<br>指定されたプロンプトに基づいて、「chat-bison」または「chat-bison-32k」PaLM モデルに応答を問い合わせます。
1.　**Create a Chat Prompt (gemini-pro)：チャット プロンプトの作成 (gemini-pro)**<br>入力パラメータに基づいて、gemini-pro モデルへのチャット プロンプトを作成します。
1.　**Create a Text Prompt (text-bison, text-unicorn)：テキスト プロンプトの作成 (text-bison、text-unicorn)**<br>指定されたプロンプトに基づいて、「text-bison」、「text-bison-32k」または「text-unicorn」PaLM モデルに応答を問い合わせます。
1.　**Make an API Call：API 呼び出しの実行**<br>任意の承認済み API 呼び出しを実行します。

## 用語の解説
|用語||
|:-:|:-|
|**プロンプト**|自然言語で記述した命令|
|**入力パラメータ**|プログラムが動くために必要な「条件」や「データ」|
|**[chat-bison](https://cloud.google.com/vertex-ai/generative-ai/docs/legacy/legacy-models?hl=ja#palm-models "chat-bison")**|2024年10月9日廃止。会話の流れを覚えていて、自然に話を続けられるようにトレーニングされていて、何度でもやりとりしながら、途中で話題が変わっても問題なく対応できます。<br>最大入力トークン: 8,192。最大出力トークン: 2,048。トレーニング データ: 2023 年 2 月まで。最大ターン数 : 2,500|
|**[chat-bison-32k](https://cloud.google.com/vertex-ai/generative-ai/docs/legacy/legacy-models?hl=ja#palm-models "chat-bison-32k")**|2024年10月9日廃止。役割はchat-bisonと同じ。<br>最大トークン（入力 + 出力）: 32,768。最大出力トークン: 8,192。トレーニング データ: 2023 年 8 月まで。最大ターン数 : 2,500|
|**[PaLM モデル](https://cloud.google.com/vertex-ai/generative-ai/docs/language-model-overview?hl=ja#palm-api "PaLM モデル")**|「Pathways Language Model」の略<br>Googleが作った新しい人工知能（AI）のモデル「**PaLM 2（非推奨）**」のこと。|
|**[gemini-pro](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models?hl=ja "gemini-pro")**| Gemini API で使用可能なモデル<br>Gemini 1.5 Pro（プレビュー）（gemini-1.5-pro） |
|**[text-bison](https://cloud.google.com/vertex-ai/generative-ai/docs/legacy/legacy-models?hl=ja#palm-models "text-bison")**|2024年10月9日廃止。Vertex AI PaLM APIのエンドポイントの1つ。自然言語の指示に従うように微調整されており、分類、要約、抽出などのさまざまな言語タスクに適しています。<br>最大入力トークン: 8,192。最大出力トークン: 1,024。トレーニング データ: 2023年2月まで|
|**[text-bison-32k](https://cloud.google.com/vertex-ai/generative-ai/docs/legacy/legacy-models?hl=ja#palm-models "text-bison-32k")**|2024年10月9日廃止。Vertex AI PaLM APIのエンドポイントの1つ。自然言語による指示に対応できるようファインチューニングされています。さまざまな言語タスクに適しています。<br>最大トークン（入力 + 出力）: 32,768。最大出力トークン: 8,192。トレーニング データ: 2023年8月まで|
|**[text-unicorn](https://cloud.google.com/vertex-ai/generative-ai/docs/legacy/legacy-models?hl=ja#palm-models "text-unicorn")**|2024年11月30日以降廃止。Vertex AI PaLM APIのエンドポイントの1つ。複雑な自然言語タスクに使用する PaLM モデル ファミリーの中で最も高度なテキストモデル。<br>最大入力トークン: 8,192。最大出力トークン: 1,024。トレーニング データ: 2023年2月まで|

## チャット プロンプトの作成 ～ `chat-bison` と `gemini-pro` の違い
「Make」で使えるGoogle Vertex Al (Gemini)のモジュールの中で、『チャット プロンプトの作成 』は2つあります。
* Create a Chat Prompt (chat-bison)
* Create a Chat Prompt (gemini-pro)

どちらを選べばいいか迷いますが、チャット用 **PaLM 2（chat-bison）基盤モデルは非推奨**です。
**『Create a Chat Prompt (gemini-pro)』を選択**しましょう。

https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text-chat?hl=ja

### Create a Chat Prompt (chat-bison)
4つの基盤モデルのうちの PaLM API を呼び出して、PaLM 2 の機能を利用。
テキスト要約や生成など、テキスト中心のアプリケーションに特化しており、高いパフォーマンスを発揮します。

<details><summary>chat-bison</summary>

![Create a Chat Prompt1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/9e3cc32e-39eb-8356-c433-b467d945ed25.png)

#### Model：モデルの選択
* **[chat-bison](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models?hl=ja "chat-bison")**<br>チャット用 PaLM 2。何度もやりとりするような会話（マルチターンの会話）に特化して調整されたAIモデルです
* **[chat-bison-32k](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models?hl=ja "chat-bison-32k")**<br>チャット用 PaLM 2 32k。「chat-bison」の約4倍の最大トークンと最大出力トークン

:::note info
迷ったら **chat-bison-32k** を選択
:::
</details>

### Create a Chat Prompt (gemini-pro)
4つの基盤モデルのうちの Gemini API を呼び出して、Gemini の機能を利用。
テキストや画像を扱えるマルチモーダルなAIで、外部APIの関数呼び出しにも対応しています。複雑なアプリケーションに向いています。

![Create a Chat Prompt2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/504c34d2-1e9e-8963-3650-e652868c2f9d.png)

#### Model：モデルの選択
* **[Gemini 1.0 Pro](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models?hl=ja "Gemini 1.0 Pro（gemini-1.0-pro）")**<br>文章やコードだけの作業が得意なAIモデルです
* **[Gemini 1.5 Pro](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models?hl=ja "Gemini 1.5 Pro")**<br>テキストだけでなく、画像、音声、動画、PDFファイルといったいろいろな種類の情報を扱うことができます。そして、非常にたくさんの情報（最大100万単語分）を一度に理解することができるAIモデルです。長い文章や複雑な資料もまとめて扱える能力があります
* **Gemini 1.5 Flash**<br>軽量で高性能・低コスト化を実現したAIモデルです。100万トークンの大量データを処理でき、テキストだけでなく画像や音声などのマルチモーダル対応が可能。知識蒸留技術で効率化され、高速応答が特徴です

:::note info
迷ったら 「Gemini 1.5 Pro」 の **約10分の1の料金で利用可能な 「Gemini 1.5 Flash」** を選択。
:::

## モジュールはこれを選択しましょう
**PaLM** は非推奨になっていることから、5つのモジュールのうち、2と4は選択しない。
選ぶなら以下の3択。
* **Analyze Image/Video (gemini-pro-vision)**：画像/動画の分析 (gemini-pro-vision)
* **Create a Chat Prompt (gemini-pro)**：チャット プロンプトの作成 (gemini-pro)
* **Make an API Call**：API 呼び出しの実行

## Vertex AI の料金（Gemini）
画像/動画の分析やチャット プロンプトを作成するモジュールにはGeminiが使われます。
これには [Google Cloud](https://cloud.google.com/?hl=ja "Google Cloud") の契約が必要となります。


* **テキスト**：入力（プロンプト）と出力（レスポンス）それぞれ1,000 文字（約250トークン）ごとに課金
* **メディア入力**：画像ごとまたは秒ごと（動画）に課金

:::note info
「Gemini 1.5 Flash」と「Gemini 1.5 Pro」の料金を比較すると、圧倒的に **「Gemini 1.5 Flash」の方が安い**
:::

### 注意点
* 文字数： UTF-8 コードポイントでカウント｟日本語の文字（漢字、ひらがな、カタカナ）も「1文字＝1コードポイント」としてカウント｠
* 約4文字を1トークンとして計算されます（日本語の文章が1,000文字の場合：約250トークンと換算されます）
* 空白文字（全角・半角）はカウントから除外
* 小数点以下は切り上げ

https://cloud.google.com/vertex-ai/generative-ai/pricing?hl=ja

## まとめ
「Make」におけるGoogle Vertex Al (Gemini)のモジュールは以下の３つから選びましょう。
* **Analyze Image/Video (gemini-pro-vision)**：画像/動画の分析 (gemini-pro-vision)
* **Create a Chat Prompt (gemini-pro)**：チャット プロンプトの作成 (gemini-pro)<br>モデル選択は「**Gemini 1.5 Flash**」
* **Make an API Call**：API 呼び出しの実行