Welcome to Mashykom WebSite



ChatGPT, Claude 2, LLaMA 2 and AI Assistants

 チャットボット(ChatBot)という言葉がありました。「チャット」(Chat)と RobotのBot「ボット」という言葉が組み合わさった造語です。「チャットする」は、数人で雑談(chater)をすることです。この「ボット」は機械学習を利用して、言語と音声の自然言語処理を自動的に実行する人工知能のことです。チャットボットはテキストおよび音声を通じてユーザーとの言語会話を自動的に行うロボットのことです。OpenAI が提供している ChatGPT(Generative Pretrained Transfomer)はこのチャットボットを Transfomer というAIを用いて改良したソフトです。ChatGPTの基本構造はTransformerを組み込んだチャットボットになります。チャットボットで活用される基本的な自然言語処理については、チャットボットのページを参照ください。

 OpenAIが提供する最新のChatGPTはGPT-4 になっています(2023年7月現在)。GPT(Generative Pretrained Transformer)の構造はGoogleによる言語モデルである「Transformer」を基本としています。GPT-3はOpenAIが開発している1750億個のパラメータを使用した生成的文章言語(大規模言語)モデルですが、GPT-4はそれ以上の10兆個のパラメータを使用するとも言われており(?)、GPTの4番目のバージョンで、これまでGPT → GPT-2 → GPT-3 → GPT-4とバージョンアップしています。

 GPT3 の段階で、文章の自動生成のみならず、画像や音楽の自動生成や、レポートの自動生成、チャットの自動応答など様々な事が出来るようになっていました。GPT-3を組み込んだ chatGPT によって、小説、小論文や業務報告書などを生成する高度なチャットボットが登場しました。GPT-3.5 までは、テキスト入力だけが可能でしたが、GPT-4 はOpenAI が開発した最も強力な大規模言語モデルで、以下のように説明されています。

「我々は、画像とテキストの入力を受け入れ、テキスト出力を生成できる大規模なマルチモーダル・モデルである GPT-4 の開発について報告します。 GPT-4 は、現実世界の多くのシナリオでは人間よりも能力が劣りますが、さまざまな専門的および学術的なベンチマークで人間レベルのパフォーマンスを示し、受験者の上位 10% 程度のスコアで模擬司法試験に合格するなど、人間レベルのパフォーマンスを示します。 GPT-4 は、ドキュメント内の次のトークンを予測するために事前トレーニングされた Transformer ベースのモデルです。 トレーニング後の調整プロセスにより、事実と望ましい動作の遵守の尺度におけるパフォーマンスが向上します。 このプロジェクトの中核となるコンポーネントは、幅広い規模で予測どおりに動作するインフラストラクチャと最適化手法を開発することでした。 これにより、GPT-4 の 1/1,000 未満の計算でトレーニングされたモデルに基づいて、GPT-4 のパフォーマンスのいくつかの側面を正確に予測することができました。」詳しくは、OpenAIの公式Website を参照してください。

 OpenAI は元々は非営利組織で、Open というAIの設立ポリシーのもとで、2018年のGPT-1、2019年2月のGPT-2までは、GPTはオープンソースとして公開されてきました。しかし、マイクロソフトなどからの出資を受けて、2019年3月に営利組織のOpenAI LP が設立されてから、ポリシーが変わり、2020年9月22日にマイクロソフトはGPT-3の「独占的な利用」を発表しました。GPT-3からはソースが非公開になっており、ChatGPTではパラメータ数なども秘密になっています。CloseAI だという人達もいます。

 OpenAIでChatGPTの開発に従事していたメンバーによって設立されたAnthropic社が開発した Claude 2 という会話型生成AIも ChatGPT のライバルです。2023年7月11日にリリースされ、ChatGPTをしのぐ性能の良さと話題になっています。2023年10月現在、日本の携帯電話番号からも Claude 2が利用可能になりました。Claude 2 の最大の利点は無料で利用できることと、ファイルの読み込みが可能なことです。Claude 2 もGPT-3などと同様、Transformerアーキテクチャに基づいた大規模な言語モデルを採用しています。 Claude 2 の公式サイトにアクセスして、携帯電話番号を入力すれば無料で利用できます。

 Meta は、2023 年 7 月 18 日に大規模言語モデル (LLM) の最新バージョンである LLaMA 2 (Large Langauge Model Meta AI)を発表しました。Meta and Microsoft Introduce the Next Generation of Llamaを参照ください。LLaMA 2 は、オープンソースの自由な研究と商用利用を可能にする大規模言語モデル (LLM)の最新版です。このLlaMA 2 を利用したローカル LLM の新たな波が起こることが予想されます。LlaMA 2 のソースコードは META AI の公式サイトからダウンロード可能です。モデルのパラメータ・サイズは、70億(7B)、130億(13B)、700億(70B)個の3種類です。事前学習バージョンと会話型ファインチューニング・バージョンのモデルが含まれます。Llama 2-Chatと呼ぶファインチューニングされたLLMは、対話の利用に最適化され、オープンソースのチャットモデルの多くを上回ると言われ、OpenAIのGPT-3.5に匹敵する性能を持つとされます。Llama 2は、Windows上でのローカル動作への最適化も予定されており、AWSやHugging Faceなどで利用可能となっています。

 パリを拠点とするスタートアップ企業 Mistral AI 社は、2023年9月27日、初のオープンソース大規模言語モデル(LLM)「Mistral 7B」をリリースした。73億のパラメータを持つこのモデルは、Meta 社の「Llama 2 13B」(Metaの新型モデルの中では小型の部類に入る)などを凌駕しており、このサイズとしては最も強力な言語モデルだと言われています。Google 傘下の DeepMind と Meta社で開発に従事していたエンジニアたちによって設立された Mistral AI 社は、一般に公開されているデータと顧客から提供されたデータのみを利用することで、企業のために AIを有用なものにすることを使命としています。この新しいMistral 7B は Apache 2.0 ライセンスの下でオープンソース化されており、誰でも(ローカルからクラウドまで)制限なく、商業ベースを含め、どこでも微調整して使用することができます。モデルの重み係数はHugging Faceのサイトからダウンロードします。GPUを持たないPCではインストールできませんが、24GBのGPU使用可能なホストを持っている場合は、Dockerを使用してMistral 7Bを実行できます。Mistral 7B の使用については、Mistral AI の公式ページを参照ください。

 Googleは、OpenAI の ChatGTP に対抗するチャットボットとして BARD を提供しています。BARD は試験運用中のAIサービスですが、Googleのアカウントがあれば、誰でも利用できます。Bardは、2023年2月6日に発表、同年3月21日に提供を開始したチャットボットです。Googleが2021年に発表したLaMDAを活用して開発されたが、2023年4月10日、計算能力の強化や、ChatGPTへの対抗を目的としてより性能の高い大規模言語モデルPaLMに切り替えられた。2023年5月10日にはPaLMをさらにアップデートしたPaLM2に切り替えらた。日本語や韓国語に対応したほか、多言語翻訳やロジックがより高度になったと言われています。

 BARD は Transformer を利用していないので、GPT、 Claude、 LLaMA、Mistral 7B などとは基盤技術が異なります。ここでは、詳しく触れません。試験運用中のBARDは、Google BARDのサイトにアクセスすると利用可能です。

 2023年12月6日に、Googleは、テキスト、画像、オーディオを越えて機能する新しい大規模なマルチモーダルモデル(LMM)であるGeminiを発表しました。Geminiのテキスト機能は、同じ日にBARDに導入され、BARDからGeminiを利用することができるようになりました。ChatGPTとGoogle Geminiとの大きな相違はGeminiではプロンプトに画像を用いて学習できる点です。Geminiを利用する方法について簡単に触れます。

Last updated: 2023.12.20


Transformer の仕組みの原型


 従来、 自然言語処理 における Deep Learning アルゴリズムと言えば、 LSTM や GRU といった RNN (Recurrent Neural Network) でした。ところが、2017年6月、 "Attention Is All You Need" という強いタイトルの論文が Google から発表され、機械翻訳のスコアを既存の RNN モデル等から大きく引き上げます。論文”Transformer: A Novel Neural Network Architecture for Language Understanding”において、RNN や CNN を使わず Attention のみ使用したニューラル機械翻訳 Transformer が提案された。

 BERT(Bidirectional Encoder Representations from Transformers) と GPT は、どちらもTransformerを利用して話題になった自然言語処理モデルです。BERTは、Transformerのアルゴリズムを活用した双方向的エンコード表現による言語処理のアプリで、2018年10月にGoogle AI Languageの研究者が論文で発表したものです。この論文において質疑応答(SQuAD)と自然言語推論(MNL1)、Microsoft Research Paraphrase Corpus (MRPC)などの様々な自然言語処理の幅広いタスクにおいて最先端の結果が公表されたことにより、言語処理の機械学習研究に大きな影響を与えました。

 いうまでもなく、BERTのカギとなる技術的イノベーションは、attentionモデルを採用したことでよく知られているTransformerの双方向的な訓練を適用したことにあります。BERTは、これ以前の自然言語処理モデルが熱心に試みていた文字列を左から右に見ていく、あるいは左から右への訓練とその逆のそれを組み合わせるのとは対照的です。論文で発表された結果は、双方向的に訓練された言語モデルが、単方向的に訓練された言語モデルに比べて文脈と文の流れから見た言語の意味をより深くつかめることを示している。文章分類、質問応答、固有表現抽出等の多様なタスクで公開当時の最高性能(SOTA: State of the Art)を達成しました。文章の分類や質問に対する応答が得意です。

 一方、GPT-3は何に得意なのでしょうか。対話応答、要約等の文章生成タスクが主に得意だと言われています。ChatGPT に聞いてみました。以下がその答えです。

 『BERT(Bidirectional Encoder Representations from Transformers)とGPT-3(Generative Pre-trained Transformer 3)は、両方ともTransformerモデルを基にした自然言語処理(NLP)モデルですが、いくつかの主要な相違点があります。

モデルのタスク:
BERT: BERTは、言語モデルとして事前学習され、文の埋め込み表現(文脈を考慮した単語の表現)を生成します。これは、事前学習の後に、さまざまなタスク(テキスト分類、文の類似度判定など)にファインチューニングすることができます。
GPT-3: GPT-3は、大規模なトランスフォーマモデルであり、大量のテキストデータを使用して事前学習されています。GPT-3は、生成モデルとして使用され、与えられたテキストの文脈に基づいて次の単語や文章を予測することができます。

文脈の処理:
BERT: BERTは、文脈を左から右と右から左の両方の方向で学習することで、単語の埋め込み表現を生成します。これにより、単語の前後の文脈を考慮した表現が得られます。
GPT-3: GPT-3は、前方向の文脈のみを考慮して生成された文を予測するため、文脈の処理はBERTとは異なります。

モデルのサイズとパラメータ数:
BERT: BERTは、比較的小さなモデルであり、数億から数十億のパラメータを持つことが一般的です。
GPT-3: GPT-3は非常に大規模なモデルであり、1兆のパラメータを持つことが特徴です。

転移学習の応用範囲:
BERT: BERTは、ファインチューニングを通じてさまざまなNLPタスクに適用できます。例えば、テキスト分類、文の類似度判定、固有表現認識などです。
GPT-3: GPT-3は、テキスト生成タスクに特化しており、文や文章の生成が主な応用範囲です。
これらはBERTとGPT-3の主な相違点ですが、それぞれのモデルは異なる目的と利用シナリオに特化しています。BERTはファインチューニングによる応用範囲の広さと精度の向上において強力ですが、GPT-3は大規模なテキスト生成タスクにおいて優れたパフォーマンスを発揮します。』

 ChatGPTの答えは、上で述べた特徴とも一致しています。なお、GPTとBERTの比較をした解説、"GPT-3 vs. BERT: Comparing the Two Most Popular Language Models"では以下のように説明されています。

 GPT-3 と BERT はどちらも、質問応答、要約、翻訳などのさまざまな NLP タスクで良好に機能することが示されていますが、その精度はタスクに応じて異なります。GPT-3 はトレーニング用のデータセットのサイズが大きいため、より多くのデータにアクセスできることが有益となる要約や翻訳などの特定のタスクでは、優れたパフォーマンスを発揮する傾向があります。一方、BERT は双方向の性質により、センチメント分析や NLU などの他のタスクでは、予測を行うときに左右のコンテキストの両方を考慮できるため、パフォーマンスが向上する傾向があります。

 BERTを日本語で使用する具体例については、BERTによる日本語処理のページを参照ください。

transformer.png
Transformer の構造

 関連記事の紹介

The illustrated Transformer
30分で完全理解するTransformerの世界

ChatGPT の仕組み


 ChatGPT を利用するためには、OpenAI の公式サイトにある ChatGPT のページにアクセスします。アカウントを作成して、ログインします。Google などのアカウントでもログインできます。「+ New Chat」 をクリックして、チャットを始めます。

 例えば、「ROS 2のプログラムは書けますか?」と入力すると、以下のような返答があります。

「はい、ROS 2のプログラムを書くことは可能です。ROS 2は、Robot Operating System(ROS)の次世代バージョンであり、ロボットアプリケーション開発のためのフレームワークです。
ROS 2は、C++やPythonなどの一般的なプログラミング言語を使用して開発することができます。また、ROS 2では、ノード(Node)と呼ばれるプログラムの単位を使用して、ロボットシステム内の異なるコンポーネント間の通信やデータ共有を行います。
ROS 2のプログラムを開発するためには、ROS 2のインストールが必要です。また、ROS 2のドキュメントやチュートリアルを参照することで、基本的な概念やAPIの使い方を学ぶことができます。例えば、以下はROS 2のPythonで書かれた簡単なプログラムの例です。... 」
と続きます。

 ChatGTP に 'Write me code for getting the nth number in the Fibonacci sequence' と言うメッセージを送りました。すると、以下のような返事がありました。

Sure, here's a Python code snippet that calculates the nth number in the Fibonacci sequence using both an iterative and a recursive approach:


# Iterative approach
def fibonacci_iterative(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1

    prev, curr = 0, 1
    for _ in range(2, n + 1):
        prev, curr = curr, prev + curr

    return curr

# Recursive approach
def fibonacci_recursive(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)

# Get the nth Fibonacci number using the iterative approach
n = 10  # Change this to the desired value of n
result_iterative = fibonacci_iterative(n)
print(f"The {n}th Fibonacci number (iterative) is: {result_iterative}")

# Get the nth Fibonacci number using the recursive approach
result_recursive = fibonacci_recursive(n)
print(f"The {n}th Fibonacci number (recursive) is: {result_recursive}")

Replace the value of n with the desired position in the Fibonacci sequence for which you want to find the corresponding number. Keep in mind that the recursive approach can become slow for larger values of n due to repeated calculations.

 確かに、Python コードを書いてくれました。日本語で同じことを聞いても、同様のコードを書いてくれました。

 デフォルトの ChatGPT のバージョンは GTP 3.5 です。GTP 4 にアップグレードすることも可能ですが、サブスクリプションが必要です。2023年2月にリリースされた ChatGPT Plus では、テキストだけでなくコード入力も可能とする Code Interpreter プラグインが導入されています。より人間に近い処理能力が実現可能になっていると言える。ただし、ChatGPT Plus のサブスクリプション(20ドル/月)が必要です。Code Interpreter とは何か?Medium の記事では以下のように説明されています。  「Code Interpreter は、ChatGPTの AI がコードを実行し、データを分析し、グラフを作成し、ファイルを編集し、そして数学的演算を実行します。 ChatGPT内のデータサイエンティストをいつでも自由に利用できるようになり、複雑なデータを認識し、実用的な洞察を得ることができる。Code Interpreter は、すべての ChatGPT Plus 加入者が利用でき、アカウント設定を通じて有効にすることができます。これはPython でコードを記述し、最大 100MB のサイズのファイルを操作できる強力なツールです。
 Code Interpreter は、コードを実行するための単なるツールではありません。 それは可能性を解き放つためのツールです。さらに、ユーザーはチャート、マップ、データ視覚化、グラフィックを生成し、音楽プレイリストを分析し、インタラクティブな HTMLを作成できます。ファイル、クリーンなデータセット、さらには画像からカラーパレットを抽出します。
 たとえば、ユーザーは米国内のすべての灯台の場所の CSV ファイルをアップロードし、ChatGPT にその GIF マップを作成するように依頼できます。数秒後、ChatGPT はアップロードされたデータに基づいて、上にきらめくライトを備えた正確な地図が表示されます。」

 2023 年 9 月 25 日、OpenAI は、最新かつ最先端のモデルである GPT-4 との対話方法を拡張する 2つの新機能のロールアウトを発表しました。それは、画像について質問する機能と、クエリへの入力として音声を使用する機能です。そして、2023 年 11 月 6 日、OpenAI は Vision を使用した GPT-4 への API アクセスを発表しました。これにより、GPT-4 で、ユーザーが画像を入力としてアップロードし、その画像について質問することができます。これは、ビジュアル質問応答 (VQA) として知られるタイプです。GPT-4 は、OpenAI ChatGPT iOS アプリ、Web インターフェイス、および API で利用できるようになりましたが、 Web ツールを使用して開発するには、GPT-4 サブスクリプションが必要です。

 RoboflowのブログGPT-4 with Vision: Complete Guide & EvaluationにGPT-4 with visionを使用した評価解説があります。GPT-4に関する最近の動向については、OpenAIのDocsページを参照ください。

 ChatGPT アプリを iPhone などのスマートフォンにインストールして利用することができます。iPhone の場合は、App Store にアクセスしてダウンロードします。あとは、ChatGPT アプリを起動して、ログインすれば、利用可能となります。


LlaMA 2 の仕組み


 Facebook Research が提供しているコードは、githubのa minimal example to load Llama 2 models and run inferenceにあります。モデルの重み係数とトークナイザーをダウンロードするためには、Meta AI websiteにアクセスして、ライセンスの承認を得る必要があります。

 website に用意されている LlaMA 2 Chatbot を使用してみました。利用した website は、 LLaMA2 Chatbot by a16z-infraです。GitHubのアカウントでログインしました。「BERTとGPTの違いについて教えてください」と日本語で聞きました。以下が返答でした。
「BERTとGPTは、どちらも自然言語処理 (NLP) の分野で使用される言語モデルです。ただし、それぞれ異なる目的に設計されています。
BERT (Bidirectional Encoder Representations from Transformers) は、主に文書の意味を理解するために使用される言語モデルです。BERTは、文書全体を考慮して、単語や文節の意味を推測することができます。
GPT (Generative Pre-training Transformer) は、主に自然言語生成に使用される言語モデルです。GPTは、与えられた文章の続きを生成することができます。
つまり、BERTは文書の理解に役立ち、GPTは自然言語生成に役立ちます。」

 日本語での返答には英語に比較してかなりの時間がかかります。

Hugging Face のchatbot(LlaMA 2)に聞いてみました。 「BERTとLlama2の相違はなんですか?」日本語での質問には途中で返答が途絶えて、最終的な返答がありませんでした。デフォルトでは、日本語での会話は苦手のようです。日本語でのファインチューニングが必要のようです。英語で質問すると詳しい説明を返してくれました。

 ChatGTP と同様に、「フィボナッチ数列を出力するコードを書いてください」というメッセージを送ると、Pythonコードを書いてくれました。

「もちろん、喜んでお手伝いさせていただきます! フィボナッチ数列は一連の数値であり、各数値は 0 と 1 から始まる先行する 2 つの数値の合計です。Python を使用してフィボナッチ数列の最初の 10 個の数値を出力する方法の例を次に示します。

for i in range(10):
    print(fibonacci(i))

これにより、次の数値が出力されます:
0、1、1、2、3、5、8、13、21、34
このfibonacci()関数は Python に組み込まれていないため、自分で定義する必要があります。これを行う 1 つの方法は次のとおりです。

def fibonacci(n):
    if n <= 1: 
      return n 
    else:
      return fibonacci(n-1) + fibonacci(n-2) 

この関数は再帰的アプローチを使用して n 番目のフィボナッチ数を計算します。まず、n が 1 以下かどうかを確認します。その場合、結果は次のようになります。」

 この課題を再試行すると多少異なる返答をします。日本語処理の能力を別にして、ChatGPT(GTP 3.5) と同等の能力があることが確認できます。

 Data Economy に掲載されている解説「LlaMA2とChatGPTとの相違」が指摘する要点は以下のとおりです。
「 LlaMA と ChatGPTの基礎は両方ともトランスフォーマーにあります。トランスフォーマーは、膨大なデータ量を分析し、収集した洞察に基づいて新しいコンテンツや予測を生成するために機械学習で利用される人工ニューラルネットワークの一種です。
LlaMA と ChatGPT を分ける重要な要素の 1 つは、そのサイズです。 LlaMA は効率性と低リソース消費を重視しており、他の多くの LLM よりもコンパクトです。 パラメーターは少ないですが、効率を最適化することでこれを補います。」

 LLaMA2 のソースコードをダウンロードして実行してみます。利用できるモデルの重みは

です。

 MacなどのPC(cpuのみ)でもLlama 2を使えるようにするLlama.cppというプロジェクトがあるので、これを利用します。 Llama.cppはLlamaをC/C++に移植したもので、MacなどのPC上で4bit量子化を使ってLlama 2をローカルに実行できるようにしたものです。

 Llama.cppで動作させるためには、METAが提供するLlamaのモデルをggmlフォーマットに変換する必要があります。そして、これを4-bitに量子化します。Pythonを使用して変換します。ここではこの手順を短縮するために、ggmlファイルに変換された量子化モデルをダウンロードします。ggmlファイルへの変換については、m1 MacbookにLlama 2をインストールして使ってみるを参照してください。

 Llama 2のggmlフォーマットの量子化されたモデルはHugging Faceのサイトから取得します。上記の重みに対応した変換済みのモデルが用意されています。Hugging Face のweb サイトにあるファイル群Llama-2-7B-GGMLの中から選択して、例えば、標準的な「llama-2-7b-chat.ggmlv3.q4_K_M.bin」をダウンロードします。サイズは約3.8GBです。

「TheBloke/Llama-2-7B-Chat-GGML」の「Files and versions」タブを選択し、4bit量子化版「llama-2-7b-chat.ggmlv3.q4_K_M.bin」をダウンロードします。

 Llama.cpp で Llama 2 を使用してみます。最初に、llama.cpp を gihub のレポジトリからダウンロードします。


$ git clone https://github.com/ggerganov/llama.cpp
$ cd llama.cpp
$ make
$ mkdir models

ダウンロードしたモデル「llama-2-7b-chat.ggmlv3.q4_K_M.bin」を「llama.cpp/models」に配置します。mainというプログラムファイルを使うことで実行できます。例えば、以下のようなコマンドを入力します。


$./main -m ./models/llama-2-7b-chat.ggmlv3.q4_K_M.bin -n 256 --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt

----
== Running in interactive mode. ==
- Press Ctrl+C to interject at any time.
- Press Return to return control to LLaMa.
- To return control without starting a new line, end your input with '/'.
- If you want to submit another line, end your input with '\'.

Transcript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at
writing, and never fails to answer the User's requests immediately and with precision.

以下のような会話になります。"user:"の後ろにメッセージを入力します。


User: Hello, Bob.
Bob: Hello. How may I help you today?
User: Please tell me the largest city in Europe.
Bob: Sure. The largest city in Europe is Moscow, the capital of Russia.

# 会話はここから始める
User:Hi bob 
Bob: Hello! How may I assist you today?
User:please tell me what the height of Mount Fuji is.
Bob: Mount Fuji is approximately 12,389 feet (3,776 meters) tall.
User:thank you

ctrl+c で終了します。

examplesフォルダ に様々な実行例が書かれたコードがあるので、これを実行してみます。
$ ./main -m models/llama-2-7b-chat.ggmlv3.q4_K_M.bin -c 512 -b 1024 -n 256 --keep 48 --repeat_penalty 1.0 --color -i -r "User:" -f ./prompts/chat-with-bob.txt

----

User:hello
Bob: Hello! How may I help you today?
User:where is the largest city in japan?
Bob: The largest city in Japan is Tokyo.
User:How many people live there?
Bob: According to the most recent estimates, the population of Tokyo is over 13 million people.

 会話が始まるまで少々の時間がかかります。日本語での会話は無理ですね。

$ ./main -m models/llama-2-7b-chat.ggmlv3.q4_K_M.bin --prompt "Once upon a time"

と入力すると、'Once upon a time'から始まる小説を書いてくれます。

 関連記事の紹介

Meta開発のLLMであるLLaMA、LLaMA2、派生モデルAlpacaについて解説!

Gemini の利用


 Gemini は Google が開発した マルチモーダルの生成 AI モデルです。Gemini モデルでは、選択したモデルバリエーションに対応したプロンプトでテキストと画像を受け取り、テキストのレスポンスを出力できます。Gemini の利用を開始する最も簡単な方法は、Google AI Studio を使用することです。

 Google AI Studio は、生成モデルを使用したプロトタイピング用のブラウザベースの IDE で、ブラウザ上でプロンプトのプロトタイプを作成して実行できるようにするウェブベースのツールです。Google AI Studioでは,モデルを試してさまざまなプロンプトを簡単に試せます。結果に問題がなければ、Gemini API を利用した、お好みのプログラミング言語のコードにエクスポートできます。詳しくは、Google AI Studio クイックスタートをご覧ください。

 ここで、簡単に利用法を説明します。このGoogle AIのページにアクセスします。マルチモーダル プロンプトを作成するには、Google AI Studio で以下のようにします。

  1. 左側のパネルで、[Create new] > [Freeform prompt] を選択します。
  2. 右にあるmodelの部分をGemini Pro Vision にします。
  3. プロンプトの入力領域に自動的に画像が表示されるので、それを消去して、自身の画像を貼り付けます。自身のPCにある画像、例えば、minato_mirai.jpg(みなとみらいのコスモ・クロックの写真)を貼り付けます。
  4. プロンプトのテキスト領域に、次のテキストを入力します。
    Tell me the story about the image uploaded
  5. アプリ ウィンドウの下部にある [Run] をクリックして、このリクエストに対する返信を生成します。

minato_mirai.jpg
みなとみらいのコスモ・クロック

 結果は下記のような返答になりました。「 The image uploaded is of the Cosmo Clock 21 Ferris wheel in Yokohama, Japan. The Ferris wheel is located in the Minato Mirai 21 district of Yokohama and is one of the most popular tourist attractions in the city. The Ferris wheel is 107 meters (351 feet) tall and has a diameter of 100 meters (328 feet). It was built in 1989 and is the tallest Ferris wheel in Japan. The Ferris wheel offers stunning views of the city of Yokohama and the surrounding area. On a clear day, you can see Mount Fuji in the distance.」

 Gemini Playgroundを用いた例について説明します。この例は、web上の解説記事、 First Impressions with Google’s Gemini に紹介されています。

 江ノ島の画像(image/enoshima_3.jpg)を用いた検証を行います。「Tell me the story about the image uploaded」とプロンプトに書き込むと、以下のように、Gimini による返答がありました。
「the Enoshima Island is located in the Sagami Bay in Kanagawa Prefecture, Japan. It is a popular tourist destination,known for its beautiful scenery and mild climate. The island is home to a variety of attractions, including the Enoshima Shrine, the Enoshima Aquarium, and the Enoshima Observation Tower. The island is also a popular spot for swimming,fishing, and boating.」

image/enoshima_3.jpg
江ノ島の画像

 次に、「please show me the content of the image」という問いを入力すると。 「The image shows a beautiful sunset over the ocean. The sky is a gradient of orange, yellow, pink, and blue. The sun is setting behind a small island, and there are waves crashing on the shore. There are two surfers in the water, and a few people walking on the beach.」という返答がありました。

****** To be continued *****

このページの先頭に戻る

ご質問、コメントなどは こちらからメール送信して下さい。