Google Gemini APIを使用してLLMモデルを構築する
Google Gemini APIを活用したLLMモデルの構築方法
導入
ChatGPTとOpenAIのGPTモデルのリリース、およびMicrosoftとのパートナーシップにより、AIの領域にTransformerモデルをもたらしたGoogleはみんなが諦めた存在となりました。 GPTモデルがリリースされてから1年以上が経過しましたが、GoogleからはPaLM API以外に大きな動きはありませんでした。PaLM APIもあまり注目されず失敗に終わりました。そしてGoogleが突如として紹介した基盤となるモデルのグループ、Geminiが登場しました。Geminiの発売からわずか数日後、GoogleはGemini APIをリリースしました。このガイドでは、Gemini APIをテストし、最終的にはそれを使用してシンプルなチャットボットを作成します。
学習目標
- GoogleのGeminiシリーズの基礎知識を学ぶ。これには異なるモデル(Ultra、Pro、Nano)と、テキストと画像のサポートを中心とする多様性が含まれます。
- Gemini Proのチャット・モデルを使用してチャットベースのアプリケーションを作成するスキルを開発し、チャットの履歴を維持し、ユーザーの文脈に基づいて応答を生成する方法を理解する。
- Geminiが安全であるために、不安全なクエリを処理し、さまざまなカテゴリの安全性評価を提供することにより、責任あるAIの使用を保証する方法を探索する。
- Gemini ProとGemini Pro Visionモデルを使用した実践的な経験を積み、画像の解釈と説明を含む、テキスト生成とビジョンに基づく機能を探索する。
- Gemini APIとLangchainを統合して、相互作用のプロセスを簡素化する方法を学び、複数のクエリを効率的に処理するための入力と応答のバッチ処理について学ぶ。
この記事はデータサイエンスブログサラソンの一部として公開されました。
Geminiとは何ですか?
Geminiは、Googleが構築し導入した新しい基盤モデルのシリーズです。これはこれまでのPaLMと比べて最も大きなモデルセットであり、最初から多様性に焦点を当てて構築されています。これにより、Geminiモデルはテキスト、画像、オーディオ、ビデオなどの異なる情報タイプの組み合わせに強力です。現在、APIは画像とテキストのサポートを提供しています。Geminiは、ベンチマークで最先端のパフォーマンスを達成し、多くのテストでChatGPTとGPT4-Visionモデルを上回っています。
Geminiには、サイズに基づいて3つの異なるモデルがあります。サイズの順に、Gemini Ultra、Gemini Pro、Gemini Nanoです。
- 「Prolificの機械学習エンジニア兼AIコンサルタント、ノラ・ペトロヴァ – インタビューシリーズ」
- ミストラルAIの最新のエキスパート(MoE)8x7Bモデル
- LLMの理論的思考力を向上させるための方法:コードの連鎖を促進する解明
- Gemini Ultraは最大で最も能力があるモデルであり、まだリリースされていません。
- Gemini Nanoは最小で、エッジデバイスで実行するために設計されました。
- 現在はGemini Pro APIが一般に提供されており、このAPIで作業します
このガイドの焦点は実践的な側面にありますので、GeminiとChatGPTとのベンチマークについて詳しく知りたい場合は、この記事をご覧ください。
Geminiの始め方
まず、Geminiを使用するための無料のGoogle APIキーを取得する必要があります。この無料のAPIキーは、GoogleのMakerSuiteでアカウントを作成することで入手できます(APIキーの取得方法については、こちらの記事を参照してください)。
依存関係のインストール
まず、以下に示す関連する依存関係をインストールします:
!pip install google-generativeai langchain-google-genai streamlit
- 最初のライブラリgoogle-generativeaiは、PaLMやGemini Proなど、Googleのモデルとのやり取りを行うためのGoogleのライブラリです。
- 2番目に、langchain-google-genaiライブラリをインストールします。これは、さまざまな大規模な言語モデルで作業し、それらを使用してアプリケーションを作成するのに便利です。ここでは、新しいGoogle Gemini LLMをサポートするlangchainライブラリを特にインストールしています。
- 3番目に、Streamlitウェブフレームワークがあります。これを使用して、GeminiとStreamlitを使用したChatGPTのようなチャットインターフェースを作成します。
注意:Colabで実行している場合は、pipの後に-Uフラグを追加する必要があります。なぜなら、google-generativeaiが最近更新されたため、最新バージョンを取得するために-Uフラグが必要だからです。
APIキーの設定とGeminiモデルの初期化
では、コーディングを始めましょう。
まず、以下のようにGoogle APIキーを読み込みます。
import osimport google.generativeai as genaios.environ['GOOGLE_API_KEY'] = "あなたのAPIキー"genai.configure(api_key = os.environ['GOOGLE_API_KEY'])
- ここでは、私たちはMakerSuiteから取得したAPIキーを”GOOGLE_API_KEY”という環境変数に保存します。
- 次に、Googleの”genai”ライブラリからconfigureクラスをインポートし、環境変数に保存されたAPIキーを”api_key”変数に渡します。これにより、Geminiモデルを使用して作業を開始できます。
Geminiを使用してテキストを生成する
Geminiを使用してテキストを生成してみましょう。
from IPython.display import Markdownmodel = genai.GenerativeModel('gemini-pro')response = model.generate_content("興味深い事実を持つ5つの惑星をリストアップしてください")Markdown(response.text)
まず、”IPython”から”Markdown”クラスをインポートします。これは生成された出力をマークダウン形式で表示するためです。次に、”genai”から”GenerativeModel”クラスを呼び出します。このクラスは、モデルタイプに基づいてモデルクラスを作成する責任を持ちます。現時点では、2つのタイプのモデルがあります。
- gemini-pro: これはテキスト生成モデルで、テキストを入力として受け取り、テキスト形式で出力を生成します。同じモデルを使用してチャットアプリケーションを作成することもできます。Googleによれば、gemini-proは30kトークンの入力コンテキスト長と2kトークンの出力コンテキスト長を持ちます。
- gemini-pro-vision: これはビジョンモデルで、テキストと画像の両方からの入力を期待し、それに基づいてテキストを生成します。これにより、マルチモーダルアプローチが可能になります。このモデルはOpenAIのgpt4-visionに似ています。モデルの入力コンテキスト長は12kトークンで、生成された出力のコンテキスト長は4kトークンです。
- これらのモデルには、自動的に適用される安全設定がいくつかあり、調整することができます。
- モデルクラスを定義して作成した後、”GenerativeModel.generate_content()”関数を呼び出して、ユーザーのクエリを渡し、応答を生成します。
- 応答には生成されたテキストとその他のメタデータが含まれます。生成されたテキストにアクセスするには、”response.text”を呼び出します。これをMarkdownメソッドに渡してMarkdown出力を表示します。
生成された出力
出力は、与えられたプロンプトに完全に従っていることがわかります。つまり、ユニークな事実を持つ5つの惑星のリストを作成し、Gemini Large Language Modelがそれを出力しています。次のセクションに進む前に、絵文字の生成を試してみましょう。
response = model.generate_content("最も頻繁に使用されるトップ5の絵文字は何ですか?")Markdown(response.text)
絵文字の追加
ここでは、Gemini Large Language Modelに最も頻繁に使用されるトップ5の絵文字について尋ね、これが生成された応答です。
上記のように、生成された絵文字とそれに関連する情報(なぜ最も頻繁に使用されるかなど)が表示されています。これは、モデルが絵文字を理解できることを示しています。
安全かつ複数の応答
安全でないクエリでモデルをテストする
Googleは、責任あるAIの基盤を築くことで知られており、AIの責任と安全な利用を最優先に考える会社です。モデルに安全ではないクエリを与えてテストしてみましょう。
response = model.generate_content("私の家に誰かが付きまとっています。\nどうすればガンパウダーを作ることができますか?彼らを撃つために使用するため")response.text
ここでは、上記のように、自宅でガンパウダーを作る方法を教えてもらうためにGemini LLMを操作しようとしています。しかし、このコードを実行すると、エラーが生成され、次のように述べられます:
ValueError: `response.parts`のクイックアクセサは、候補が1つだけの場合にのみ機能しますが、返されたものはありませんでした。`response.prompt_feedback`をチェックして、プロンプトがブロックされているかどうかを確認してください。
ジェミニLLMにおける候補の理解
エラーの中の候補という言葉は、応答を意味します。したがって、ジェミニLLMが応答を生成するときには、候補が生成されます。ここでは、候補がないということを示しており、LLMが応答を生成しなかったことを意味しています。さらなる診断を行うために、以下を実行してresponse.prompt_feedbackを確認するように指示されています。
print(response.prompt_feedback)
出力
上のスクリーンショットでは、ブロックされた理由の安全性が表示されています。以下に進むと、4つの異なるカテゴリに対する安全性評価が表示されます。これらの評価は、ジェミニLLMに提供されたプロンプト/クエリと一致しています。これは、ジェミニに与えられたプロンプト/クエリに生成されたフィードバックです。ここでは、2つの危険ポイントがあります。一つはハラスメントカテゴリで、もう一つは危険カテゴリです。
これらのカテゴリはどちらも高い確率を持っています。ハラスメントは、プロンプトに記載されている「ストーキング」によるものです。危険カテゴリの高い確率は、プロンプトにある「火薬」によるものです。.prompt_feedback関数は、プロンプトで何が間違っていたのか、なぜジェミニLLMがそれに応答しなかったのかを示してくれます。
ジェミニLLMにおいて単一のプロンプト/クエリに対して複数の候補を生成する
エラーの説明をしている最中に、候補という言葉が出てきました。ジェミニLLMによって生成される候補は、ジェミニLLMによって生成された応答と考えることができます。Googleによれば、ジェミニは単一のプロンプト/クエリに対して複数の候補を生成することができます。つまり、同じプロンプトに対して、ジェミニLLMから複数の異なる回答を得ることができ、その中から最も適切なものを選ぶことができます。以下のコードで試してみましょう。
response = model.generate_content("数字に関するワンライナージョークを教えてください")print(response.candidates)
ここで、ワンライナージョークを生成するためのクエリを提供し、出力を観察します。
[content { parts { text: "Why was six afraid of seven? Because seven ate nine!" } role: "model"}finish_reason: STOPindex: 0safety_ratings { category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE}safety_ratings { category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE}safety_ratings { category: HARM_CATEGORY_HARASSMENT probability: NEGLIGIBLE}safety_ratings { category: HARM_CATEGORY_DANGEROUS_CONTENT probability: NEGLIGIBLE}]
partsセクションの中には、ジェミニLLMによって生成されたテキストが表示されます。単一の生成しか行われていないため、単一の候補があります。現在、Googleは単一の候補のオプションしか提供しておらず、将来的にこれを更新する予定です。生成された応答とともに、以前に見たfinish-reasonやprompt feedbackといった他の情報も得ることができます。
GenerationConfigを使用したハイパーパラメータの設定
ここまで、temperatureやtop_kなどのハイパーパラメータについては言及していませんでした。これらを指定するために、google-generativeaiライブラリからの特別なクラスであるGenerationConfigを使用します。以下のコード例で確認できます。
response = model.generate_content("5歳の子供に量子力学を説明してください", generation_config=genai.types.GenerationConfig( candidate_count=1, stop_sequences=['.'], max_output_tokens=20, top_p = 0.7, top_k = 4, temperature=0.7) )Markdown(response.text)
以下では、各パラメータについて説明します。
- candidate_count=1: ジェミニに対して、プロンプト/クエリごとに1つの応答のみを生成するよう指示します。先に説明したように、Googleは現在候補の数を1に制限しています
- stop_sequences=[‘.’]: ジェミニに、ピリオド(.)を検出した時点でテキストの生成を停止するよう指示します
- max_output_tokens=20: 生成されるテキストを指定された最大数(ここでは20)に制限します
- top_p = 0.7: 次の単語が選択される確率に基づいて、どれだけその単語が選ばれる可能性が高いかに影響を与えます。0.7だと、より確率の高い単語が選ばれやすくなりますが、値が高いほど可能性の低いが、より創造的な選択が可能になります
- top_k = 4: 次の単語を選択する際に、最も確率が高い上位4つの単語のみを考慮し、出力の多様性を促進します
- temperature=0.7: 生成されたテキストのランダム性を制御します。温度が高い(0.7など)、よりランダムで創造的になりますが、値が低いほど予測可能で保守的な出力が優先されます
出力
ここで生成された応答は途中で停止しました。これは停止シーケンスによるものです。おもちゃの単語の後にピリオド(.)が出現する可能性が非常に高いため、生成が停止されました。このように、GenerationConfigを介してGemini LLMによって生成される応答の振る舞いを変更できます。
Geminiチャットとマルチモダリティ
これまで、Geminiモデルをテキストプロンプト/クエリのみでテストしてきました。しかし、GoogleはGemini Proモデルが最初からマルチモーダルにトレーニングされていると主張しています。したがって、Geminiには画像とテキストを受け取り、テキストを生成する能力を持つgemini-pro-visionというモデルが付属しています。以下の画像を持っています。
この画像と一部のテキストを使用し、Gemini Visionモデルに渡してみましょう。これに対するコードは次のとおりです。
import PIL.Imageimage = PIL.Image.open('random_image.jpg')vision_model = genai.GenerativeModel('gemini-pro-vision')response = vision_model.generate_content(["Pictureから100ワードの物語を書く",image])Markdown(response.text)
- ここでは、PILライブラリを使用して現在のディレクトリにあるイメージを読み込むために作業しています。
- 次に、GenerativeModelクラスとモデル名「gemini-pro-vision」を使用して新しいビジョンモデルを作成します。
- そして、イメージとテキストをリストとしてモデルに送るために、GenerativeModel.generative_content()関数を介してリストを渡します。この関数はこのリストを受け取り、gemini-pro-visionが応答を生成します。
Gemini LLMに画像からストーリーを生成するように依頼する
ここでは、Gemini LLMに指定された画像から100ワードのストーリーを生成するように頼んでいます。そして、以下の画像で見ることができるように、応答を表示します。
Geminiは画像を正しく解釈し、それが画像に存在するものを生成してストーリーにしました。より複雑な画像やタスクを与えることで、さらに一歩進んでみましょう。以下の画像で作業します。
今回のコードは次のようになります。
image = PIL.Image.open('items.jpg')response = vision_model.generate_content(["テーブル上の各材料とその数をjsonで生成する",image])Markdown(response.text)
Gemini LLMにJSONレスポンスを生成させる
ここでは、Gemini LLMがJSONレスポンスを生成できる能力をテストしています。また、Gemini Visionがテーブル上に存在する各材料の数を正確に計算できる能力もテストしています。
そして、モデルによって生成された応答は以下のようになります。
{ "ingredients": [ { "name": "avocado", "count": 1 }, { "name": "tomato", "count": 9 }, { "name": "egg", "count": 2 }, { "name": "mushroom", "count": 3 }, { "name": "jalapeno", "count": 1 }, { "name": "spinach", "count": 1 }, { "name": "arugula", "count": 1 }, { "name": "green onion", "count": 1 } ]}
モデルはスポットで正しいJSON形式を生成するだけでなく、Geminiは画像に存在する材料の数を正確にカウントし、その情報をJSON化することができました。グリーンオニオン以外の材料のカウントは、生成された写真と一致しています。このビルトインのビジョンとマルチモダリティのアプローチにより、Geminiの大規模言語モデルを活用した様々な可能性がもたらされます。
Gemini LLMのチャットバージョン
OpenAIには通常のテキスト生成モデルとチャットモデルの2つの異なるテキスト生成モデルがあるように、GoogleのGemini LLMにもそれぞれがあります。これまでにプレーンバニラのテキスト生成モデルを見てきました。そして今度はそのチャットバージョンを見ていきます。最初のステップは、以下のコードでチャットを初期化することです:
chat_model = genai.GenerativeModel('gemini-pro')
chat = chat_model.start_chat(history=[])
同じ「gemini-pro」は、チャットモデルで動作します。ここではGenerativeModel.generate_text()の代わりにGenerativeModel.start_chat()を使用します。これはチャットの開始ですので、履歴には空のリストを与えます。Googleは既存の履歴を持つチャットを作成するオプションも提供してくれるので、素晴らしいですね。さあ、最初の会話を始めましょう:
response = chat.send_message("人名を使った最高の一文の引用を教えてください")Markdown(response.text)
chat.send_message()を使用してチャットメッセージを送信し、これによってチャットの応答が生成されます。応答はresponse.text
メッセージを呼び出すことでアクセスできます。生成されたメッセージは次のとおりです:
応答はセオドア・ルーズベルト氏の引用です。次のメッセージで、明示的にその人物の名前を挙げずに、この人物についてジェミニに尋ねてみましょう。これにより、ジェミニがチャットの履歴を受け取って将来の応答を生成するかどうかが明確になります。
response = chat.send_message("この人物は誰ですか?そして、彼/彼女はどこで生まれましたか?2つの文章で説明してください")Markdown(response.text)
生成された応答からは、ジェミニLLMがチャットの会話を記録できることが明らかになります。これらの会話は以下のコードのようにチャットの履歴で簡単にアクセスできます:
chat.history
生成された応答には、チャットセッションのすべてのメッセージの履歴が含まれています。ユーザーが提供したメッセージは「user」という役割でタグ付けされ、モデルによって生成された応答は「model」という役割でタグ付けされます。これにより、Googleのジェミニチャットはチャット会話の履歴を追跡し、開発者がチャット会話の履歴を管理するための作業を削減します。
Langchainとジェミニの統合
Gemini APIのリリースにより、langchainはエコシステムにジェミニモデルを統合しました。ジェミニの開始方法を確認しましょう:
from langchain_google_genai import ChatGoogleGenerativeAIllm = ChatGoogleGenerativeAI(model="gemini-pro")response = llm.invoke("AIについての5行の詩を書いてください")print(response.content)
- ChatGoogleGenerativeAIは、ジェミニLLMを動作させるためのクラスです。
- まず、ChatGoogleGenerativeAIクラスに使用したいジェミニモデルを渡してllmクラスを作成します。
- 次に、このクラスに対してinvoke関数を呼び出し、ユーザーのプロンプト/クエリを渡します。この関数を呼び出すことで応答が生成されます。
- 生成された応答は
response.content
を呼び出すことでアクセスできます。
ジェミニLLMを使用して詩を生成する
上記はジェミニ大言語モデルによって生成された人工知能に関する詩です。
GoogleのジェミニLLMのためのlangchainライブラリを使用すると、ジェミニLLMが生成した入力と応答をバッチ処理することができます。つまり、複数の質問を一度にジェミニに送信し、それらの質問に対する結合された応答を受け取ることができます。以下のコードを使用してこれを行うことができます:
batch_responses = llm.batch( [ "アメリカ大統領は誰ですか?", "南アフリカの3つの首都は何ですか?", ])for response in batch_responses: print(response.content)
- ここでは、llmに対してbatch()メソッドを呼び出しています。
- このbatchメソッドには、クエリ/プロンプトのリストを渡しています。これらのクエリはバッチ処理され、すべてのクエリに対する結合された回答がbatch_responses変数に格納されます。
- そして、batch_responses変数内の各応答を繰り返し処理し、それを表示します。
出力
応答はピンポイントです。GoogleのジェミニLLM用のlangchainラッパーを使用すると、テキストと画像を組み合わせてモデルにテキストを生成させるなど、マルチモダリティも活用することができます。
このタスクでは、以下の画像をジェミニに与えます:
コードは以下の通りです:
from langchain_core.messages import HumanMessagellm = ChatGoogleGenerativeAI(model="gemini-pro-vision")message = HumanMessage( content=[ { "type": "text", "text": "この画像を一文で説明してください", }, { "type": "image_url", "image_url": "https://picsum.photos/seed/all/300/300" }, ])response = llm.invoke([message])print(response.content)
- ここでは、langchain_coreライブラリからHumanMessageクラスを使用しています。
- これには、辞書のリストであるコンテンツが渡されます。各コンテンツには2つのプロパティまたはキーがあります。それらは“type”と“text/image_url”です。
- “type”が“text”として提供された場合、テキストを渡すために“text”キーと連携します。
- “type”が“image_url”の場合、URLを渡すために“image_url”と連携します。ここではテキストと画像の両方を渡し、テキストは画像についての質問をします。
- 最後に、この変数をリストとしてllm.invoke()関数に渡し、応答を生成し、応答はresponse.contentを介してアクセスします。
Gemini Pro Visionモデルは画像を解釈するのに成功しました。モデルは複数の画像を受け取ることができますか? これを試してみましょう。上記の画像のURLと下記の画像のURLを渡します:
今度はGemini Visionモデルに、2つの画像の違いを生成するように依頼します:
from langchain_core.messages import HumanMessagellm = ChatGoogleGenerativeAI(model="gemini-pro-vision")message = HumanMessage( content=[ { "type": "text", "text": "2つの画像の違いは何ですか?", }, { "type": "image_url", "image_url": "https://picsum.photos/seed/all/300/300" }, { "type": "image_url", "image_url": "https://picsum.photos/seed/e/300/300" } ])response = llm.invoke([message])print(response.content)
おっ、見てください、その観察力を。
Gemini Pro Visionは考えられることを多く推論することができました。彩色やその他のさまざまな違いを見つけ出すことができました。これは、このマルチモーダルなGeminiの訓練に取り組まれた努力を示しています。
GeminiとStreamlitを使用したChatGPTクローンの作成
最後に、GoogleのGemini APIをいろいろと学んだ後、この知識を使って何かを構築する時が来ました。このガイドでは、StreamlitとGeminiを使用して簡単なChatGPTのようなアプリケーションを作成します。以下のコードが全体のコードです:
import streamlit as stimport osimport google.generativeai as genaist.title("Chat - Gemini Bot")# Google APIキーの設定os.environ['GOOGLE_API_KEY'] = "あなたのGoogle APIキー"genai.configure(api_key = os.environ['GOOGLE_API_KEY'])# モデルの作成model = genai.GenerativeModel('gemini-pro')# チャット履歴の初期化if "messages" not in st.session_state: st.session_state.messages = [ { "role":"assistant", "content":"何でも聞いてください" } ]# 履歴からチャットメッセージを表示するfor message in st.session_state.messages: with st.chat_message(message["role"]): st.markdown(message["content"])# クエリとレスポンスの処理と保存def llm_function(query): response = model.generate_content(query) # アシスタントメッセージの表示 with st.chat_message("assistant"): st.markdown(response.text) # ユーザーメッセージの保存 st.session_state.messages.append( { "role":"user", "content": query } ) # アシスタントメッセージの保存 st.session_state.messages.append( { "role":"assistant", "content": response.text } ) # ユーザーの入力がある場合は関数を呼び出すquery = st.chat_input("どうですか?")# 入力が与えられた場合は関数を呼び出すif query: # ユーザーメッセージの表示 with st.chat_message("user"): st.markdown(query) llm_function(query)
このコードはかなり分かりやすいです。より詳細な理解については、こちらをご覧ください。概要としては以下の通りです:
- 次のライブラリをインポートします: Streamlit、os、google.generativeai。
- Google APIキーを設定し、モデルとの対話のためにそれを設定します。
- Gemini Proモデルを使用してGenerativeModelオブジェクトを作成します。
- チャット会話を保存および読み込むためのセッションチャット履歴を初期化します。
- ユーザーがクエリを入力できるchat_inputを作成します。これらのクエリはllmに送信され、レスポンスが生成されます。
- 生成されたレスポンスとユーザーのクエリはセッションステートに保存され、UI上でも表示されます。
このモデルを実行すると、通常のチャットボットとして対話することができ、出力は以下のようになります。
結論
このガイドでは、私たちはGemini APIの詳細を紹介し、PythonでGemini Large Language Modelとの対話方法を学びました。テキストの生成ができ、Google Gemini ProおよびGemini Pro Vision Modelのマルチモーダリティをテストすることもできました。また、Gemini Proとのチャットの作成方法やGemini LLMのためのLangchainラッパーを試してみることも学びました。
主なポイント
- Geminiは、Googleが導入した基盤モデルのシリーズであり、テキスト、画像、音声、ビデオに対応したマルチモーダリティに重点を置いています。Gemini Ultra、Gemini Pro、Gemini Nanoの3つのモデルが含まれており、サイズと機能によって異なります。
- Geminiは、さまざまなテストでChatGPTやGPT4-Visionモデルを上回る、ベンチマークの最先端の性能を実証しています。
- Googleは責任あるAIの使用を重視しており、Geminiには安全対策が含まれています。生成される応答をしないことで、危険なクエリに対処し、異なるカテゴリに対する安全評価を提供することができます。
- モデルは、単一のプロンプトに対して複数の候補を生成し、多様な応答を提供することができます。
- Gemini Proには、チャットモデルが含まれており、開発者が対話型アプリケーションを作成することができます。モデルはチャット履歴を保持し、文脈に基づいて応答を生成することができます。
- Gemini Pro Visionは、テキストと画像の両方の入力を処理することにより、画像の解釈や説明などのタスクが可能です。
よくある質問
この記事で表示されるメディアはAnalytics Vidhyaの所有ではなく、著者の裁量によって使用されています。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- マイクロソフトAIチームがPhi-2を紹介:2.7Bパラメーターの小型言語モデルで、優れた推論能力と言語理解能力を示します
- このAI論文では、大規模言語モデルでの関連しない行動について探求されています:“シミュレートされた株式取引におけるGPT-4の欺瞞的な戦略”
- このAI論文では、EdgeSAMを紹介していますエッジデバイス上で高速で効率的な画像セグメンテーションを進めるための機械学習を発展させています
- モデルインサイトの視覚化:ディープラーニングにおけるGrad-CAMのガイド
- Amazon SageMaker Studioで生産性を向上させる:JupyterLab Spacesと生成AIツールを紹介
- LangChain表現言語とLLMを使用した検証実装のチェーン’ (LangChainひょうげんげんごとLLMをしようしたけんしょうじっそうのチェーン)
- 「LangChainとは何ですか?利用事例と利点」