SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2024 セッションレポート(AD)

生成AIで実現する未来のアプリ開発~Google Cloudの生成AIサービスとコーディング支援機能

【15-A-5】Google Cloudで始める生成AIアプリ開発入門

  • このエントリーをはてなブックマークに追加

大規模言語モデル「PaLM 2」を使ってチャットの返答文を自動生成

 中井氏はここでGoogle Cloudにおける生成AI関連サービスについて説明した。サービス群は大きく2種類に分類される。1つが、生成AIやMLの専門知識が不要で、一般ユーザーが容易に利用できるアプリケーションレイヤーのサービス。もう一つが、個々の機能をAPIとして提供し、これらを組み合わせて新たなアプリケーションを開発できるようにするもの。今回のデモアプリでは画像処理やテキスト処理を使ったが、ほかにも多様なデータタイプに対応したAPIが提供されている。なかでも最近注目されているのが、大規模言語モデルのPaLM APIだ。

Google Cloudにおける生成AI関連サービスのおおまかな分類
Google Cloudにおける生成AI関連サービスのおおまかな分類

 Visual CaptioningとVisual Q&Aによって抽出した情報から、チャットにポジティブなメッセージを返すには、PaLM APIを使う。言語モデル「PaLM 2」は多言語に対応しており、たとえば、日本語のダジャレの面白さを英語で説明することも可能だ。

 LLMの応答は入力するプロンプトによって変化する。適切なプロンプトを発見するためにはプロトタイピングが必要だ。中井氏は、Vertex AI Workbenchのノートブック環境を使って対話的にプロトタイピングするやり方を説明した。この環境では、Google Cloudのプロジェクト上にJupyterLabのUI環境を立ち上げてノートブックを動かすことができる。

 この環境ではGoogle CloudのAPIを呼び出すためのSDKが組み込まれているため、追加のインストールは不要。必要なモジュールをインポートし、すぐにAPIを呼び出すことが可能である。また、APIを呼び出す際の認証設定が表面上必要ない点も便利である。プロジェクト外部からAPIを呼び出す場合、認証処理は複雑で手間がかかるが、このノートブックは既にプロジェクト上で動作しているため、自動で必要な認証処理が行われる。

 この環境に、Visual CaptioningとVisual Q&Aの処理を盛り込む。Visual Q&Aに対する質問のプロンプト部分は「question='details of the fashion items in the picture.'」となっている。「この写真のファッションアイテムの詳細情報を教えて」という意味だ。中井氏は、この質問文は試行錯誤の末にできたものだと説明した。

 「最初『details』というキーワードなしに質問すると適切な情報が返らなったのですが、試行錯誤した結果『details』を入れるとうまく情報が取り出せることがわかりました。このようなプロンプトの内容をいろいろ試行錯誤できるのがノートブックのいいところです」(中井氏)

 PaLM APIによるコメント生成の部分については「ファッションアドバイザーの立場で、以下のように記述される人物を褒め称える文章を作ってください。ファッションアイテムに言及しながら、その人物に語りかけるように、数行の文章を作ってください。個人を特定する名前は使用しないでください。」というプロンプトで指示している。これも試行錯誤の末発見したものだ。

 なお、このプロンプトの「記述」と「ファッションアイテム」に、Visual CaptioningとVisual Q&Aで抽出した情報が入るようになっている。抽出した情報は英語だが、コメント生成を依頼する文章が日本語となっているため、特に言語の指示を出さなくても生成されるコメントは日本語となる。

 バックエンドの処理は以上で、続いて中井氏は、Google Cloud上にデプロイする方法を説明した。Google Cloud上では、PythonのコードをDockerイメージにしてCloud Runでデプロイし、アクセス数に応じてオートスケールする環境を構築できる。

 フロントエンドでは、APIに対して画像データをBase64エンコードで送信し、Cloud Runで動作するバックエンドからJSON形式で応答を受け取る処理を行う。中井氏はこのプロセスをJavaScriptで構築し、Firebase Hostingを使用してデプロイした。さらに、中井氏はフロントエンド開発における画像処理の注意点として、データの圧縮を挙げた。エンドユーザーが大容量の画像ファイルをアップロードする可能性があり、それがバックエンドの処理に影響を与える可能性があるため、圧縮の処理を盛り込んだ。

 中井氏はGitHubで、このアプリのノートブックとソースコードを公開していることを伝え、「ぜひ皆さんも、このアプリをデプロイして楽しんでください。さらに、Google CloudのさまざまなAPIを組み合わせることで、もっと面白いことができるはずです。皆さんのアイディアで、新しいアプリを作って楽しんでいただければと思います」と呼びかけた。

次のページ
コーディング作業を支援するサービスDuet AI for Developers

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers Summit 2024 セッションレポート連載記事一覧

もっと読む

この記事の著者

森 英信(モリ ヒデノブ)

就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

丸毛 透(マルモ トオル)

インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:グーグル・クラウド・ジャパン合同会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19146 2024/03/19 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング