PaLM AI | Googleの自家製生成AI
PaLM AI | Google's in-house generative AI
イントロダクション
OpenAIによるGPT(Generative Pre-trained Transformers)モデル、特にChatGPTなどのような生成型AIモデルの登場以来、Googleは常にそれと同様のAIモデルを作成し、ローンチすることに取り組んできました。GoogleはBERTモデルを通じてTransformerについて最初に世界に紹介しましたが、Attention is All You Need論文を通じて、OpenAIが開発したものと同じくらい強力で効率的な大規模言語モデルを作成することはできませんでした。Googleが最初に紹介したBard AIはあまり注目されませんでした。最近、GoogleはBard AIの背後にあるPaLM(Pathways Language Model)へのAPIアクセスをリリースしました。このガイドでは、PaLM APIの使い方について説明します。
学習目標
- Pathways Language Modelの使い方を学ぶ
- PaLMが提供する主な機能を理解する
- PaLM 2を使用してアプリケーションを作成する
- 大規模言語モデルのクイックプロトタイピングのためのMakerSuiteを活用する
- PaLM APIの使い方を理解する
この記事はData Science Blogathonの一部として公開されました。
PaLMとは何ですか?
PaLM(Pathways Language Model)は、Googleの自社開発の大規模言語モデルの1つです。これは2022年4月に初めて紹介されました。数ヶ月前、Googleはこれの次のバージョンであるPaLM 2を発表しました。Googleは、PaLMは多言語能力において優れており、以前のバージョンと比較してパワー効率が高いと主張しています。
PaLM 2は英語ではトレーニングされておらず、むしろ100以上の言語の混合物であり、プログラミング言語や数学も含まれています。これにより、英語の理解性能を損なうことなく可能となりました。全体的に、GoogleのPaLM 2 / 現在のバージョンのPaLMは、コードの生成、さまざまな言語の理解、推論能力など、多くのタスクで優れたパフォーマンスを発揮します。
- 「TxGNN(テキストジーノーディープラーニング)にお会いしましょう:ジオメトリックディープラーニングとヒューマンセンタードAIを活用して、17,080の疾患の広範な範囲にわたる治療利用のゼロショット予測を行う新しいモデル」
- 「P+にお会いしましょう:テキストから画像生成における拡張テキスト反転のための豊かな埋め込み空間」
- 「日常的な言葉で説明された最も一般的な機械学習用語10選」
OpenAIのGPTモデルにはDavinci、Adaなどのさまざまなタイプがありますが、PaLM 2にはGecko、Otter、Bison、Unicornの4つの異なるサイズがあります(最小から最大へ)。特にPaLM 2のGeckoサイズは、モバイルデバイスでも実行できる能力を持っており、モバイルアプリケーションでこの大規模言語モデルを使用することを考慮するモバイルアプリ開発者にとって可能性を開いています。
BardとPaLMの違いは何ですか?
BardはGoogleによる実験的な対話型AIであり、LaMDA(Language Model for Dialogue Applications)によって駆動されています。LaMDAモデルはTransformersの上に構築された対話型AIモデルであり、対話型アプリケーションの作成に使用されます。LaMDAモデルは1,370億のパラメータから構成されています。Bardは、魅力的な対話を作成するために、さまざまなタイプのテキストデータとコードデータを含む膨大なデータセットを使用しています。
PaLM(Pathways Language Model)は後にBardを駆動するようになりました。現在、新しく作成されたPaLM 2がBardを駆動しています。PaLM 2は、多言語およびさまざまな言語タイプで広範にトレーニングされており、既存のBardをさらに強化する素晴らしいブースターとなっています。これにより、Bardは対話の会話からプログラミング領域での実行可能なコードの生成まで、20以上の異なるプログラミング言語に関する知識を拡張することさえ可能になっています。
PaLM 2はBardを駆動し、Gmail、Googleドキュメント、GoogleシートなどのGoogleサービスと統合しており、Bardがこれらのサービスに直接情報を送信できるようにしています。最近の発表では、近い将来、Adobe Fire Fly Image GeneratorやAdobe Expressなどの他の多くのサードパーティーアプリケーションとも統合される予定です。
MakerSuite – PaLM APIへのアクセス
Googleの自社開発のPaLM 2にアクセスまたはテストするには、PaLM APIにアクセスする必要があります。PaLM APIを使用すると、OpenAI APIがGPTモデルとやり取りするのと同様に、異なるPaLM 2モデルとやり取りすることができます。GoogleのPaLM APIにアクセスする方法は2つあります。1つはVertex AIを介した方法です。PaLM APIは、Google CloudのVertex AIで利用できます。ただし、すべての人がこのAPIにアクセスするためのGCPアカウントを持っているわけではありません。そのため、2番目のルートであるMakerSuiteを利用する方法を取ります。
GoogleのMakerSuiteは、PaLM APIとの対話を行うためのビジュアルベースの方法を提供しています。これは、生成型AIモデルをテストおよびプロトタイプ化するためのブラウザベースのIDEです。単純に言えば、生成型AIのアイデアを試す最も迅速な方法です。MakerSuiteでは、簡単なUIを介して直接生成型モデルで作業することもできますし、必要な場合はAPIトークンを生成してコード内でPaLM 2のパワーを活用することもできます。このガイドでは、両方の方法を探索します:MakerSuiteのウェブベースのUI内での開始と、Pythonコードを介したPaLM APIでの作業。
MarkerSuiteでの旅を始めるためにログインしてください
始めるには、ここをクリックしてMakerSuiteにリダイレクトするか、Googleで検索してください。その後、Gmailアカウントでサインアップしてください。その後、画面上に次のようなものが表示されます。
すべてを入力し、最後に「Googleアカウントで参加する」をクリックして、PaLM APIとMakerSuite IDEにアクセスするための待ちリストに参加してください。その後、MakerSuite IDEとPaLM APIへのアクセスが受け取られたことを示す7日以内にメールが届きます。MakerSuiteにアクセスした後、登録されたメールアドレスでウェブサイトを開いてください。MakerSuiteのホームページは次のようになります。
ホームページでは、3種類のプロンプトを表示することができます。MakerSuiteでは、テキストプロンプト、データプロンプト、チャットプロンプトの3種類のプロンプトを選択することができます。それぞれが独自の重要性を持ち、PaLM 2 APIと視覚的に対話することができます。コードベースの対話では、下に「APIキーを作成する」ボタンがあり、コード内でPaLM 2モデルにアクセスするためのアプリケーションを作成することができます。テキストプロンプトとデータプロンプトの種類のプロンプトの扱い方や、コード内でPaLM APIを活用する方法について説明します。
MakerSuiteを使用した高速プロトタイピング
MakerSuiteで作業するためには、3種類の異なるタイプのプロンプトがありますが、まずはテキストプロンプトから始めましょう。MakerSuiteのダッシュボードで、テキストプロンプトを選択します。
プロンプトを書く
「プロンプトを書く」の下の空白の領域に、プロンプトを書く場所です。これにより、PaLM 2モデルによって解釈されます。段落を要約する、生成AIに詩を作成するように依頼する、論理的な推論の質問を解くなど、任意のプロンプトを書くことができます。ここでは、与えられた長さ「n」のフィボナッチ数列を計算するためのPythonコードを生成するようモデルに依頼し、実行をクリックしましょう。
与えられたクエリのPythonコード
生成AIは、与えられたクエリのためのPythonコードを提供しています。画像のハイライトされたテキストで確認できます。モデルは、質問に対して動作するコードを提供しました。以下では、「テキストバイソン」と「テキストプレビュー」が表示されます。「テキストプレビュー」では、モデルに提供したプロンプトを確認することができます。クリックして確認してみましょう。
また、送信できる最大トークン数は8196であることも確認しています。これはGPTモデルと比較可能です。では、「テキストバイソン」とは何でしょうか?はっきりと覚えているかもしれませんが、少し前に述べたように、PaLM 2は異なるサイズ(Gecko、Otter、Bison、Unicon)で提供されています。ここで使用されているモデルは、テキストバイソンモデルです。クリックして表示してみましょう。
使用されているモデルに関する情報が含まれています。現在、MakerSuiteではテキストバイソンモデルのみが提供されています。温度はモデル内の変動性/創造性を増加させますが、高温値はモデルが幻覚を起こし、ランダムなものを作り出すことがあるため、注意が必要です。最大出力は現在1に設定されており、したがって質問に対して1つの回答を得ることができます。ただし、これを増やすことで、モデルが1つのクエリに対して複数の回答を生成することができます。セーフティ設定により、有害なコンテンツ(毒性、侮辱、暴力的なコンテンツなど)の一部またはほとんどをブロックするようにモデルを調整することができます。
テスト入力の挿入
高度な設定では、トークンの出力長、Top K、およびTop Pのパラメータを設定することができます。MakerSuiteのテキストプロンプトでは、任意の基本的なプロンプトを書くことができます。もう一つ「テスト入力の挿入」というものもあります。それを試してみましょう。
ここでは、プロンプトセクションにモデルの文脈を設定しています。Generative AIに与えるすべての質問について、その出力は大規模言語モデルが5歳の子供に説明しているかのように生成される必要があることを考慮していると言っています。書いたプロンプトは「以下の質問を5歳の子供に説明するかのように説明してください」というものです。それから「テスト入力の挿入」をクリックします。すると、白いスペースに「input」という名前の緑のボックスが表示されます。同時に、「テストのプロンプト」の上に「テストのプロンプト」という名前の緑のボックスが表示されます。それを展開してみましょう。
「テストのプロンプト」を展開すると、INPUTとOUTPUTの2つの列があるテーブルが表示されます。INPUTのデフォルトはinputですが、ここではqueryに変更しました。したがって、INPUT列の下に入力したクエリは、プロンプトセクションの白いスペースの「query」の代わりに表示されます。2番目の画像では、クエリとして「Machine Learning」と入力し、プロンプトスペースの「query」の代わりに置換されました。クエリを入力して実行ボタンを押すと、出力がOUTPUTセクションに生成され、下に表示されます。生成された出力は、Machine Learningを簡単に説明しようとしたので、5歳の子供でも理解できるように見えます。
データプロンプトの紹介 – MakerSuite
このセクションでは、MakerSuiteが提供するデータプロンプトに取り組みます。これには、MakerSuiteのホームページに移動し、データプロンプトをクリックする必要があります。そうすると、次のような画面が表示されます。
入力列
名前の通り、データプロンプトでは、モデルに例となるデータを提供する必要があります。それらから学習して、モデルは新しい質問に対する回答を生成することができるようになります。各例には、INPUT列に入力(ユーザーのクエリ)があり、OUTPUT列にはユーザーのクエリへの期待される出力があります。このように、いくつかの例をモデルに提供することができます。モデルはそれらの例から学習し、新しいクエリに対して新しい出力を生成することができるようになります。これを試してみましょう。
ここでは、INPUT列には2人の有名なクリケット選手、Virat KohliとDavid Warnerの名前を入力しました。OUTPUT列には、彼らがプレイする国が記載されています。今度は、テキストバイソンモデルをテストするために、INPUTとして「Root」という名前の、イングランドでプレイする有名なクリケット選手を入力しました。したがって、OUTPUTはイングランドになることを期待しています。これを実行してテストしてみましょう。
予想通り、LLMはテストクエリに対して正しい応答を生成しました。モデルは与えられたデータがクリケット選手の名前であり、生成する出力がそれらがプレイする国であることを理解しました。必要に応じて、例の前に文脈を提供することもできます。ここで行ったことは、Few Shot Learningと呼ばれる基本的なことで、プロンプトセクションに大規模言語モデルに対するいくつかの例を与え、新しいクエリが与えられたときに類似の出力を生成することを期待しています。これがMakerSuiteでのデータプロンプトの動作です。それはChatGPTとは異なる特徴です。
PaLM APIを使用してPaLM 2との対話
コードを通じてPaLM 2と対話するためには、PaLM APIキーを取得する必要があります。これはMakerSuite自体で生成することができます。そのためには、MakerSuiteのホームページに移動する必要があります。ホームページでは、3つの種類のプロンプトの下に、APIキーを取得するオプションが表示されます。それをクリックして新しいAPIキーを生成します
必要なライブラリのインストール
新しいAPIキーを生成するために「新しいプロジェクトでAPIキーを作成」をクリックします。生成されたら、キーが下に表示されます。APIキーをクリックして新しく生成されたAPIキーをコピーします。それでは、必要なライブラリのインストールから始めましょう。このデモでは、Google Colabを使用します。
$ !pip install google-generativeai
これにより、PaLM 2と対話するために使用するGoogleのGenerative AIライブラリがダウンロードされます。まず、APIキーを環境変数に割り当てることから始めましょう。以下のように行います
import google.generativeai as palm
import os
os.environ['API_KEY']= 'あなたのAPIキー'
palm.configure(api_key=os.environ['API_KEY'])
最初にAPIキーをos.environ[‘API_KEY’]に提供し、その後、このAPIキーをpalm.configure()オブジェクトに渡します。これまでに、コードが正常に実行されていれば、PaLM 2との作業を開始する準備が整っています。PaLM AIのテキスト生成部分を試してみましょう。これはテキスト-Bisonモデルを使用してクエリに回答するために使用されます。
コード
コードは以下の通りです:
response = palm.generate_text(prompt="ジョークを教えて")
print(response.result)
PaLM 2のテキスト-Bisonモデルは確かに完璧に動作しています。さらに、このモデルにいくつかのパラメータを追加してモデルに追加することができるものを理解するために、これを少し拡張してみましょう。
prompt = """
あなたは翻訳のエキスパートです。どの言語でもどの言語にでも翻訳できます。
次の文章を英語からヒンディー語に翻訳してください:
調子はどうですか?.
"""
completion = palm.generate_text(
model='models/text-bison-001',
prompt=prompt,
temperature=0,
max_output_tokens=800,
)
print(completion.result)
ここでは、モデルへのプロンプトを提供しました。プロンプトでは、モデルがどんな言語でもどんな言語にでも翻訳できるエキスパート翻訳者であることを伝える文脈を設定しました。そして、プロンプト自体内で、英語からヒンディー語への文の翻訳を行うためのクエリを提供しました。次に、作業するモデルを指定し、ここではテキスト生成を行うためのText Bisonモデルになります。その後、温度は変動性をゼロに設定し、最大出力トークン数を800に設定しました。出力を見ると、モデルが英語からヒンディー語への文の正確な翻訳に成功していることがわかります。
これはPaLM AIのテキスト生成部分の例です。ドキュメントを参照して、チャットタイプのプロンプトも確認できます。ここで見たものと非常に似ています。チャットプロンプトでは、ユーザーとAIの間のチャット履歴の例を提供する必要があります。これにより、AIがユーザーとの会話方法を学び、この知識を使用してユーザーとシームレスにチャットできるようになります。
応用とユースケース
モバイルアプリケーション
PaLM 2は4つの異なるサイズで利用可能です。最も小さいサイズのPaLM 2であるGeckoは、モバイルアプリケーションに統合するために設計されました。これには、拡張現実や仮想現実のアプリケーションが含まれます。このGenerative AIを使用して、リアルな風景を作成することができます。さらに、サポートチャットボットからパーソナルチャットボットまで、さまざまなタイプのチャットボット/アシスタントに適用することができます。
Duet AI for Google Cloud
Duet AIは、GoogleがGoogle Cloud Platform向けに開発したPaLM 2によって強力な協力型の生成AIです。Google Cloud上でのアプリケーションの構築、保護、スケーリングには時間がかかっていました。しかし、Duetを使用することで、クラウド開発者のプロセスが非常にスムーズになります。Duetはクラウドでの作業内容を分析し、それに基づいてあなたをサポートし、開発プロセスを加速させます。Duet AIは、初心者からクラウドの達人まで、どんなスキルレベルにも適応します。
医療画像の分析/医療質問応答
PaLMに基づく大規模言語モデルであるMed-PaLMは、複雑な医療画像の分析や医療に関する高品質な回答の提供が可能です。Med-PaLMは米国の医師免許試験でテストされた結果、人間の平均パーセンテージが60%である中、67%の正答率を達成しました。そのため、Med-PaLMは微調整され、X線から乳がんまでの医療画像の分析に活用することができます。生成AIは、患者が病気を患っているかどうかだけでなく、それが引き起こされた原因、将来の予測、およびケア方法まで伝えることができます。Med-PaLMは臨床的な質問にも回答するために活用できます。
iCADは、Googleと提携して、主に乳がんの分析を行うためにMed-PaLMをさらに開発しました。Googleはまた、健康領域でのAIの機能を向上させるために、Northwestern Medicineと提携しており、高リスクの状態を検出し、同時にスクリーニング/診断時間を短縮することを目指しています。
GoogleアプリケーションでのPaLMの役割
Googleは、PaLM 2をGmailと統合し、要約やメールの形式を変更するなどのタスクを処理する予定です。さらに、Google Docsでは、PaLM 2をブレインストーミング、校正、および再構成の目的に利用します。Googleは、Google Slidesにも組み込むことを試みており、自動生成された画像、テキスト、ビデオをスライドに取り込むことができます。Sheetsでは、データの自動分析、数式の生成、その他の高度な機能の提供にAIを使用します。これらのAIパワーを持つ機能は、1年間をかけて段階的にリリースされる予定です。BARDは、Googleが開発した実験的なAIであり、既にPaLM 2のパワーで稼働しています。
結論
このガイドでは、Google独自の生成AIであるPaLM(Pathways Language Model)について学びました。BARDとの違いや、PaLM 2が以前のバージョンよりも優れている点についても理解しました。次に、PaLM 2が提供するモデルのサイズについて説明しました。最後に、実際の操作に移り、PaLM 2の使い方を学びました。MakerSuiteに登録し、それを探索し、MakerSuiteが提供するさまざまなタイプのプロンプトで遊び、最終的にはコードを介してPaLM 2と対話するためのAPIを作成しました。
重要なポイント
このガイドの重要なポイントには、以下が含まれます:
- PaLM 2は、Googleが作成・維持する生成AIの大規模言語モデルです
- Google CloudのVertex AIを介してPaLM 2を使用して独自のアプリケーションを作成できます
- PaLM 2はさまざまな言語を理解し、20以上の異なる言語でコードを生成することができ、優れた推論能力を持っています
- MakerSuiteは、大規模言語モデルを使用した迅速なプロトタイピングを可能にするGoogleが開発したビジュアルツールです
- MakerSuiteのさまざまなプロンプトタイプは、異なるアプリケーションのテストに適しています
よくある質問
この記事に表示されているメディアは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