ゲームや対話エージェントからクリエイティブなブレインストーミングやコーディング ツールまで、人々のテクノロジーとの関わり方を変えるジェネレーティブ AI アプリケーションの新しい波が来ています。Google では、ジェネレーティブ AI を使った次世代のアプリケーションを簡単に作れる API やツールをすべてのデベロッパーに提供し、AI を身近なものにしたいと願っています。2023 年 3 月 14 日 (日本時間) 、私たちは、Google の大規模言語モデル(LLM)を簡単かつ安全に試すことができる新しいデベロッパー向けサービスである PaLM API を発表しました。この API と同時に、デベロッパーがすばやく簡単にプロトタイピングを開始できるツール、MakerSuite をリリースします。これらのツールは、プライベート プレビューを通じて一部のデベロッパーに提供される予定で、また近日中にウェイトリストも公開する予定です。


PaLM API を使って Google の大規模言語モデル(LLM)にアクセスする

PaLM API は、Google の大規模言語モデルを簡単に利用できる API です。コンテンツ生成やチャットに最適化された対話型モデルや、要約や分類などに最適化された汎用モデルにアクセスできます。まずはサイズや機能面で効率的なモデルを 2023 年 3 月 14 日より提供し、近日中に他のモデルやサイズも追加する予定です。



すばやく構築できる

私たちはここ数年、Google 検索への MUM の導入や、AI テストキッチン (英語) での LaMDA 導入のトライアルなど、大規模な言語モデルの構築と展開を推し進めてきました。その過程でジェネレーティブ AI の開発ワークフローについて多くを学び、それがすぐに断片化してしまう課題を知りました。プロンプトを組み立てては直すことの繰り返しや、合成データによるデータセットの拡張、カスタムモデルのチューニングなどのために、ばらばらのツールを組み合わせる必要があります。そこで私たちは、このワークフローを簡素化するツール、MakerSuite をリリースすることにしました。MakerSuite を使えば、イテレーティブなプロンプト作成や、合成データによるデータセットの拡張、カスタムモデルのチューニングを簡単に行えます。プロンプトをコードに移す準備ができたら、MakerSuite で Python や Node.js など、お気に入りの言語やフレームワークのコードとして書き出すことができます。



モデルをチューニングする

ジェネレーティブ AI モデルは、デベロッパーがすぐに使える強力な機能を備えています。さらに、個々の用途に応じてモデルのチューニングすることで、より良い性能が得られます。Maker Suite を使えば、デベロッパーがパラメータを効率的に調整する技術 (英語) を活用して、用途に合わせてチューニングされたモデルを作成できます。チューニングしたモデルをブラウザ上ですばやくテストし、繰り返し使用できます。



合成データでデータセットを拡張する

AI を使った開発には高品質なデータが欠かせませんが、すぐに利用できるデータだけでは学習に限界があるケースも少なくありません。MakerSuite では、少数のデータをサンプルとしてデータ拡張用のデータを合成し、新たに作成したデータセットの管理や操作が可能です。この合成データは、モデルのチューニングや評価など、さまざまなシーンで活用できます。



最先端の embedding(埋め込み)を生成する

LLM から得られる embedding は、セマンティック検索からレコメンデーション、分類まで、幅広い応用の可能性が見いだされており、いま大きな期待が寄せられています。PaLM API で生成された embedding を使えば、既存のデータや外部のデータソースを活用したジェネレーティブ AI アプリケーションの構築が可能になります。また、TensorFlow、Keras、JAX、その他のオープンソース ライブラリで構築されたアプリケーションで embedding を使用することも可能です。



責任と安全性を担保した構築

私たちは、Google の AI の基本方針 に従ってモデルを構築し、Responsible AI (責任ある AI)の基礎を提供します。デベロッパーが個々のアプリケーションにおいて責任と安全性の基準を定め遵守するには、それらをコントロールできることが重要です。Google のツールは、デベロッパーがそれぞれのアプリケーションやユースケースに応じて安全性の検証や調整するための簡単な手段を提供します。



ジェネレーティブ AI アプリケーションをスケールさせる

これらのデベロッパー ツールによって、ジェネレーティブ AI アプリケーションのプロトタイピングや構築を簡単に始められるのと同時に、サービスのスケーラビリティが必要になった場合の対応も容易です。PaLM API と MakerSuite は Google のクラウド基盤で提供されており、ホスティングやサービングのスケーラビリティについて心配する必要はありません。自分のアイデアをより大きな規模で展開したり、エンタープライズグレードのサポートや、セキュリティとコンプライアンス、サービスレベル合意(SLA)などが必要なケースでは、Google Cloud Vertex AI を活用し、エンタープライズ向け検索サービスや対話型 AI などの高度な機能の数々との組み合わせで、ジェネレーティブ AI モデルの機能を活用できます。


いまとてもエキサイティングな AI の潮流の中で、Google は、デベロッパーの皆さんの開発作業をより快適にするためのツールを作り続けたいと考えています。新しいデベロッパーを受け入れ、新機能を展開し、この技術をさらに広いデベロッパー コミュニティに提供していく予定です。また同時に、フィードバックに耳を傾け、学習し、デベロッパーが今いる環境でこれらのツールを最大限活用するために改善を続けていきます。


今後の進捗状況については Google Developers のニュースレターでお知らせするので、ぜひ購読をおすすめします。


Reviewed by Kaz Sato, Staff Developer Advocate, Google Cloud & Tamao Imura, Developer Marketing Manager, Google



多くのデベロッパーはコンテンツ管理システム、プラグイン、他のソフトウェア ソリューションを使用してウェブサイトやアプリを作成します。今までは、こうしたウェブサイト エクスペリエンスへのマッピング機能の追加は分断されたプロセスであったため、多くのユーザーがプロジェクトにマップを追加する前に諦めてしまう原因となっていました。Google はこの度、Quick Start Widget を発表いたします。これによりデベロッパーは、ユーザーが Google Maps Platform を簡単に使い始められるようにし、API キーの生成やウェブサイトやアプリへのマップの埋め込みができるよう支援します。

デベロッパーのエクスペリエンス

Quick Start Widget を使用すると、ユーザーは API キーを取得し、面倒なユーザーフローを経由することなく、サイトやアプリでマップを使用できます。ユーザーが最小限の負担で開始できるようにすることが、ユーザーの導入を促すうえで重要になります。新しいウィジェットでは、ユーザーは Google から API キーを確保するためにデベロッパーの提供する環境を離れる必要がなくなります。ユーザーにはアカウントやプロジェクトを設定する簡単かつ一連の手順が提供されます。なお、キーは自動的に作成され、保護されます。


Reviewed by Thanet Knack Praneenararat - Ads Developer Relations Team

この動画シリーズのパート 2(近日公開)では、アップデートを行う API 呼び出しでフィールド マスクを使う事例について紹介する予定です。また、いくつかの活用法や、読み取りとアップデートの両方の呼び出しにおけるフィールド マスクの使い方を説明する予定です。さらに、1 回の API 呼び出しで両方を使えることも紹介します。ご期待ください。

フィールド マスクを使って API ペイロードの部分的な応答を取得する方法の詳細については、Client Libraries のドキュメントのこちらのセクションをご覧ください。両方(読み取りおよびアップデート)のユースケースに関する総合的な記事については、Google Slides API ドキュメントのガイドをご覧ください。


Posted by Eiji Kitamura - Developer Relations Team



キーの作成時に、プラットフォームやさまざまなその他の制限を選択する必要はなくなります。ただし、ベスト プラクティスとしてスコープ管理を行うことは依然として推奨しています。


効率的な開始フロー

多くのデベロッパーは、直接キーを作成したいと考えており、必ずしもコンソールに入りたいとは思っていません。そこで、デベロッパー ドキュメントの中に直接埋め込まれているフローを用いてクレデンシャルを設定できる手順を導入しました。


「Get a Key」ボタンをクリックし、プロジェクトを選択するか作成します。その後の API の有効化やキーの作成はお任せください。



現在、この機能を Google Maps API 向けにロールアウトしており、今後数か月間で残りのドキュメントにも反映する予定です。

API ダッシュボード

使い始めだけでなく、継続利用も簡単になっています。1 つまたは複数の API を頻繁に使うデベロッパーのために、使用状況や割り当て状況を簡単に参照できる新しい API ダッシュボードを作りました。

何らかの API を有効化している場合、ダッシュボードが API コンソールのフロントかつ中心となり、使用しているすべての API の使用状況、エラー、レイテンシとともに参照できます。



API をクリックすると詳細レポートにジャンプし、メソッド、クレデンシャル、バージョン、レスポンス コード(選択した API で利用できるもの)ごとにトラフィックを参照できます。




今回紹介した新機能によって、API の利用が簡単になることを願っています。皆様が次に作り出すものを見るのが待ちきれません。



Posted by Eiji Kitamura - Developer Relations Team

Share on Twitter Share on Facebook

Timothy Jordan による、Android Wear 向けウォッチフェイスの紹介ビデオ

デザインと開発

はじめにウォッチフェイスのデザインについて参照し、次にウォッチフェイス作成のトレーニングクラスをご覧ください。また、オンライン上にあるウォッチフェイスのサンプルや、Android Studio のサンプルマネージャーでも参考になる実例を入手することができるので、すぐにウォッチフェイス開発に取りかかることができるでしょう。また、上記にある Android Wear 向けウォッチフェイスの紹介ビデオで概要をご覧いただけます。

ウォッチフェイスは Android Wear アプリで動作するサービスの 1 種なので、インストールした 1 つのアプリに対し複数のウォッチフェイスを提供することが可能です。ユーザーが 12 時間・24 時間表記を選択できるようにしたり、ウォッチフェイスの背景を変更できるようにしたり、スマートフォンや腕時計などの端末で設定変更を可能にすることもできます。また、OpenGL を利用してスムーズなグラフィックを描写したり、バックグラウンド サービスを利用して天気やカレンダーイベントなどの役立つ情報を入手したりすることも可能です。ウォッチフェイスではアナログ式やデジタル式で時間を表示しても良いですし、まだ誰も見たことがない革新的な方法で時間を表示させることも可能です。すべてはあなた次第です。

既存デバイスへのアップデート

Android 5.0 をベースとして API レベル 21 を提供する最新の Android Wear プラットフォームがユーザーへ提供されます。すべての Android Wear デバイスは OTA(Over-The-Air)方式で Android 5.0 へとアップデートされます。本アップデートによってユーザーは、スマートフォンの Android Wear アプリでウォッチフェイスを管理・設定したり、Google Play からウォッチフェイスをインストールしたりできるようになります。Android 4.3 以上がインストールされた端末は引き続き、すべての Android Wear デバイスに対応します。

ウォッチフェイスをアップグレード

私たちが開発用ドキュメントを公開する前に、すでにウォッチフェイスを作成していた開発者がいたことには大変関心させられましたが、非公式のやり方で Android Wear 向けのウォッチフェイスを作成していた場合には、公式 API へ移行してください。公式 API は統一されたユーザー体験をもたらすと同時に、Android Wear デバイスがアンビエントモードに入ったかどうかがわかったり、システム UI 要素の位置を調節したりといった機能をもたらします。また、Google Play のウォッチフェイス コレクションにフィーチャー掲載されるためには、新しい API の使用が必須となります。

ウォッチフェイスの配信

Android Wear 5.0 API 21 の OTA 方式でのロールアウトが完了したら、すぐに Google Play で配信中の対応アプリをアップデートすることを推奨します。ロールアウトの完了は、Google+ の Android Wear 開発者コミュニティで発表します。API 20 のデバイスでは API 21 を必要とするウォッチフェイスを表示できないため、ロールアウトの完了を待ってアップデートする必要があります。新しい API をインストールすると、ウォッチフェイスが表示されるようになりますが、ロールアウトが完了する前に wearable アプリをアップデートする場合には、OTA 配信を受ける前のユーザーがインストールに失敗しないように minSdkVersion を 20 に設定してください。ロールアウト完了後は、すみやかにウォッチフェイスを新しい API に移行してください。2015 年 1 月 31 日に、公式 API を用いていないウォッチフェイスのサポートを終了する予定です。

Google Play での Android Wear アプリ

Android Wear への配信に関するガイドラインに従っていただければ、アプリを Google Play 内の「Android Wear 向け」として申請できるようになりました。Wear アプリの品質チェックリストに準拠し、Google Play 内の Wear アプリとして承認されると、Android Wear デバイスのユーザーがアプリを見つけやすくなります。Android Wear レビューにオプトインするためには、Google Play デベロッパー コンソールの価格と配信のセクションをご覧ください。

Android Wear をローンチしてたった数ヶ月で、開発者のみなさまは、カスタム通知、ボイスアクション、他のネイティブな Android 機能を活用した数千ものアプリをリリースしました。みなさまのおかげで、ユーザーは 6 つのデバイス、種類豊富な時計バンド、そして数千のアプリを組み合わせた自分だけのAndroid Wear デバイスを作ることができます。カスタム ウォッチフェイスの提供により、ユーザーは今後さらに細かくカスタマイズすることが可能になります。豊富な選択肢こそが、リッチな Android Wear のエコシステムの根幹です。今後もプラットフォームのコアとなる機能を開発者のみなさまに提供し続けてまいりますが、そこからなにが生まれるのか、楽しみでしかたがありません。

Posted by Yuichi Araki - Developer Relations Team
Share on Twitter Share on Facebook


また、サポートしている API も追加しました。 現在、Explorer は 28 種類の API をサポートしており、増え続けています。さらに、認証が必要なメソッドを識別するためのインジケーターを追加しました。

以下は、API Explorer で試すことができるサンプルリクエストの 例です。

API Explorer を使えば、Google API を簡単に使い始めることができます。API Explorer に関する詳細はこの資料をご覧ください。皆さまからのフィードバックは、こちらのフォーラムにお願いします。
Share on Twitter Share on Facebook

あるレコードに対するユニーク ID であり、ドメイン名と、それにスラッシュとローカル ID が続く。ドメイン名はこのレコードに対して権限を持つホームレポジトリを示す。ローカル ID のフォーマットはホームレポジトリに任せられる。person_record_id が、そのアプリケーション自身と異なるドメインから始まっている場合、その record は他の source から得られたクローンであることを意味する。

entry_date (string in the form "yyyy-mm-ddThh:mm:ssZ"):
この record のコピーが保存された UTC 時刻。PFIF レポジトリは、record が追加時のこの値が単調増加することを保証しなければならない。それにより、クライアントは最後に受け取った entry_date 以降の entry_date をもつ record を要求することによってレポジトリのコピーを更新することができる。
author_name (string):
情報提供者のフルネーム。
author_email (string):
情報提供者のメールアドレス。
author_phone (string):
情報提供者の電話番号。
source_name (string):
この record のホームレポジトリの名前(情報元のサイト名)。
source_date (string in the form "yyyy-mm-ddThh:mm:ssZ"):
この record がホームレポジトリ内で作成された UTC 時刻 (情報元の投稿日)。
source_url (string):
この record のホームレポジトリにおける URL(情報元の URL )。

■識別情報

これらのフィールドは人の識別情報用の変化しないデータです。これらは検索に使われます。

first_name (string):
探している人、見つかった人のファーストネーム。スペースに続けてミドルネームも追加できる。
last_name (string):
探している人、見つかった人のラストネーム。
home_city (string, city name):
探している人、見つかった人の市。
home_state (string):
探している人、見つかった人の都道府県。
国の行政区域を大文字 ISO 3166-2 形式で表現します。
訳注: http://ja.wikipedia.org/wiki/ISO_3166-2:JP を参照
home_neighborhood (string):
探している人、見つかった人の近隣の場所。
home_street (string):
探している人、見つかった人の町名。
home_postal_code (integer):
探している人、見つかった人の郵便番号。
photo_url (string):
探している人、見つかった人を識別する写真への URL。
other (large string):
自由形式のテキストデータで、他の source から持ち込まれた静的なデータに使われます(他の source からインポートされた動的なデータは NOTE record に保存されるべきです)。短いフィールドは一行で、フィールド名、コロン、値で表現されます。長いフィールドは、フィールド名とコロンの行に続いてインデントされた文字列で表現されます。機械的な処理で他の形式から PFIF 形式に record が変換された場合は、"automated-pfif-author"フィールドが存在すべきです。このフィールドは PFIF を作成したプログラム名を表します。PFIF レポジトリから record がエクスポートされた場合には"automated-piff-author"フィールドは付加されません。人に対する自由形式テキストの説明も"description"のフィールド名でここに表されます。たとえば、自由形式文字列フィールドを持つ PFIF 以外のフォーマットから record を取得するプログラムは other フィールドを含み、それは次のようになるでしょう:

description:
    Dark hair, in her late thirties.
    Also goes by the names "Kate" or "Katie".
automated-pfif-author: ScrapeMatic 0.5

他のアプリケーションからインポートされたフィールドに対する名前はドメイン名とスラッシュを始めに付加されるべきです。例えば、ICRC record から生年月日がインポートされた場合は次のようになります:
(訳注:この例は PFIF 1.1 当時のもの。実際には PFIF 1.2には生年月日専用のフィールドが用意されています)

icrc.org/birthdate: 1976-02-26
sex (string):
探している人、見つかった人の身体的性別。femalemaleother の 3 つのうち 1 つで指定されます。性別不明の場合はこのフィールドを省略してください。
date_of_birth (string):
探している人、見つかった人の正確な生年月日(YYYY-MM-DD)またはだいたいの生年月日(YYYY, YYYY-MM)。
age (string):
探している人、見つかった人のだいたいの年齢。source_date 時点での、生年月日からの年数。このフィールドの値はひとつの 10 進数整数か、2 つの 10 進整数をハイフンでわけた包含範囲を取る。source_date が指定されていない場合、このフィールドは定義されません。(訳注: 27 歳→ "27", 25 から 30 歳→"25-30")
home_country (string):
探している人、見つかった人の母国。大文字 2 文字の ISO 3166-1 country code で指定されます。

NOTE records

NOTE record はちょうどひとつの PERSON record に属します。ある PERSON record には任意の数の NOTE record が関連付けられます。すべての note はタイムスタンプと note の著者情報を持ちます。アプリケーションはタイムスタンプを、フィールドの最新情報を決定するのに使えます。ユーザーは著者情報をフィールドの信頼性を確かめるために使うことができます。

これらのフィールドは時間とともに変化する情報を保存します。これらのフィールドが NOTE record に現れたときは、この record はこれらのフィールドに対する新しい値を定めます。source_date フィールドは新しい値が効力を持つ日付を示します。例えば、最新の場所情報を表示したいアプリケーションは、last_known_location フィールドを持っていてるもののうち最新の source_data を持つ NOTE を参照すればいいことになります。

note_record_id (string):
この record のユニーク ID であり、ドメイン名にスラッシュ、ローカル ID が続きます。ドメイン名はこの record の権限を持つホームレポジトリの識別子です。ローカル ID のフォーマットはホームレポジトリに任されています。note_record_id がアプリケーションのドメインと異なったドメインから始まっている場合、この record は他の source からのクローンであることを意味します。
entry_date (string in the form "yyyy-mm-ddThh:mm:ssZ"):
この record のコピーが保存された UTC 時刻。PFIF レポジトリは、record が追加時のこの値が単調増加することを保証しなければなりません。それにより、クライアントは最後に受け取った entry_date 以降のentry_date をもつ record を要求することによってレポジトリのコピーを更新することができます。
author_name (string):
情報提供者のフルネーム。
author_email (string):
情報提供者の e-mail address。
author_phone (string):
情報提供者の電話番号。
source_date (string in the form "yyyy-mm-ddThh:mm:ssZ"):
この record がホームレポジトリ内で作成された時刻(情報元の投稿日)。ほとんどのケースで、note はこのフィールドでソートして表示されるべきでしょう。
found (boolean string, "true" or "false"):
行方不明者に連絡が取れた場合、会えた場合は"true", さもなくば"false"の値をとります。この note の text フィールドで、いつどこで連絡が取れたか、会えたかを説明するべきです。
email_of_found_person (string):
見つかった人の連絡先 e-mail です。このフィールドは人物が見つかった場合のみ存在します。この note の text フィールドでどのように連絡先情報が決定されたか説明するべきです。
phone_of_found_person (string):
見つかった人の連絡先電話番号です。このフィールドは人物が見つかった場合のみ存在します。この note の text フィールドでどのように連絡先情報が決定されたか説明するべきです。
last_known_location (string):
捜索されている人を最後に見かけた場所を述べた自由形式説明であり、市や都道府県など、できるだけ詳細に述べた情報です。この note の text フィールドはどのように所在地が決定されたか述べるべきです。
text (large string):
自由形式の文字列であり、人物の状態や状況、最後に目撃された所在地の詳細の説明です。他の情報の訂正であることもあるでしょう。
status (string):
探している人、見つかった人の状態で次の 5 つの文字列のうちの 1 つを取ります。
information_sought
情報提供者は対象の person の情報を探しています。
is_note_author
情報提供者は対象の person 自身です。
believed_alive
情報提供者は対象の person が生きているという情報を入手しました。
believed_missing
情報提供者には対象の person が行方不明と判断した理由があります。
believed_dead
情報提供者は対象の person が亡くなっているという情報を入手しました。

person_record_id (string):
この NOTE record が関連づいている PERSON record の person_record_id です。
linked_person_record_id (string):
この NOTE record が、同一人物に対する重複 record であると主張している他の PERSON record のperson_record_id です。
ユーザーがある 2 つの PERSON record を重複だと示すときには、NOTE record をそれら両方の PERSON record に付加し、それぞれに linked_person_record_id フィールドを持たせ、相互に指し示します。これらの NOTE record はこれらを重複だと示した関係者を示す author_name フィールドを持ち、text フィールドに重複だと判断するにいたった理由を付加します。

Notes

String fields は non-ASCII character を含められます。

PFIF 1.2 では person 要素の外にトップレベルの note 要素を許します。正しい PFIF ドキュメントはひとつの pfif 要素からなり、それはひとつ以上の person か note 要素を持ちます。

note 要素が person 要素の外に現れる場合、note は person_record_id をもつ必要があります。それ以外の場合には person_record_id フィールドは任意ですが、存在する場合には note を含んでいる person の person_record_id と一致する必要があります。

person 要素の中では、 必須の person_record_id がはじめにくる必要があり、note 要素は最後に来る必要があります。note 要素の中では、note_record_id が最初に来る必要があり、もし存在するときには person_record_id がそれに続くべきです。残りのフィールドは任意の順番であらわれることができます。
Share on Twitter Share on Facebook