2.7K Views
November 23, 24
スライド概要
BASE株式会社 Fullstack AI Dev & Raycast summit のスポンサーLTです! #FullstackAIDev2024
ChromeでオフラインでもAI使える未来、テンション上がりますね!!!(すべてのブラウザに搭載されるといいなぁ…!)
BASE BANKのチーム紹介資料もぜひ見てください!
https://speakerdeck.com/base/basebank
がっちゃんです。BASE(BASE BANK)でエンジニアをやっています。Webフロントエンドが好きです。Webはもーっと好きです!
#FullstackAIDev2024 オフラインでも TypeScriptから使える AI ~ Chromeに搭載される Gemini Nanoとは ~ スポンサートーク @BASE株式会社 BASE BANKチーム所属 gatchan0807 2024.11.23 | BASE, Inc. © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」
#FullstackAIDev2024 Speaker Profile がっちゃん 古賀 友輝 New Dept. > BASE BANK Div. > PAY.JP Dev Grp AIに対してのスタンス ● 個人ではGeminiをよく使ってます ● 仕事ではGitHub Copilot / Notion AIに助けられている人間 ● AIにデータはガンガン渡すよ…!派 X / GitHub : @gatchan0807 最近の悩み ● Gemini Advancedの謎なタイミングで出力制限に引っかかる問題 ● Geminiがトークン数増えすぎると、突然 「あががばば<hhead><hhead>…」みたいな感じでぶっ壊れる問題 © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 2
🏢 会場スポンサー、飲食スポンサーやります! 🥤🍣 © 2012-2024 BASE, Inc. #FullstackAIDev2024 「オフラインでも TypeScriptから使える AI」 3
#FullstackAIDev2024 今日、お話しすること ● BASEの生成AI / MLの利活用ポイントの紹介 ● ブラウザ上の TypeScriptから直接使える 組み込み AIについて紹介 ● 組み込み AIのユースケースのアイデア © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 4
#FullstackAIDev2024 今日、お話ししないこと ● BASEのAIって具体的にどんな実装になってるの? ● 生成AIで業務効率化できるの? ● AIエージェントや RAGの開発・運用に関して © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 5
#FullstackAIDev2024 会社の紹介 © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 6
#FullstackAIDev2024 主な提供サービス 開設数220万ショップ突破 ネットショップ作成サービス スタートアップ等の加盟店向け オンライン決済サービス 累計登録者数が1,400万人を突破 購入者向けショッピングサービス ユーザーの成長を サポートする 金融サービス © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 7
#FullstackAIDev2024 主な提供サービス 開設数220万ショップ突破 ネットショップ作成サービス スタートアップ等の加盟店向け オンライン決済サービス 累計登録者数が1,400万人を突破 購入者向けショッピングサービス ユーザーの成長を サポートする 金融サービス © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 8
#FullstackAIDev2024 BASE、生成AIつかってルンです 社内のChatGPTハッカソン で生まれた機能を 2023年にリリース 生成AIを使ってショップオーナーさんのサポートをし、ショップ運営に集中できるようにする機能を複数提供しています © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 9
#FullstackAIDev2024 BASE BANK、機械学習 つかってルンです 2018年より売上予測 から資金調達できるサービスを提供中 売上予測 + 将来債権ファクタリングという仕組みで、将来の売上予測は機械学習( ML)を使っています © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 10
#FullstackAIDev2024 詳しくはチーム紹介資料をぜひ見てください! https://speakerdeck.com/base/basebank © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 11
#FullstackAIDev2024 では、発表本編に © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 12
#FullstackAIDev2024 GPT-3.5 / ChatGPT という LLMによるブレイクスルーが 起こってから 2年ぐらい経った 2022.11 © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 13
#FullstackAIDev2024 SLMの時代の幕開け ついにデバイス上で動かす(オフラインでも動く)言語モデル が実用化されはじめてきた Gemini Nano on Android Apple Intelligence https://ai.google.dev/gemini-api/docs/get-started/an https://developer.apple.com/jp/apple-intelligence/ droid_aicore © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 14
#FullstackAIDev2024 おさらい - LLMとSLMの違い LLM : Large Language Model (大規模言語モデル) ● 生成AIの基礎技術になっている、機械学習モデルの一つ ● 大量のテキストデータを元に学習しているので 作る時にも、使う時にもコンピュータリソースがめっちゃ必要 ○ ● © 2012-2024 BASE, Inc. なので、基本的にサーバーにモデルを設置して、APIを立てて リクエストする形になる(= オンラインでないと使えない) その分、利用者目線ではリッチな体験が得られたり、 かんたんに使い始めることができる 「オフラインでも TypeScriptから使える AI」 15
#FullstackAIDev2024 おさらい - LLMとSLMの違い SLM : Small Language Model (小規模言語モデル) ● “ Small Language Model ” の略称がメインストリーム * ● 「LLMに比べて小規模」という意味 なので、以下のような特徴がある ○ 応答速度が速い(アクセスするデータ範囲が狭く、応答が速くなりやすい) ○ 開発者目線:特定のタスクに対しての精度が高くしやすい ○ モデルを使う時に必要なコンピュータリソースが少ない ○ なので、デバイス上におくことができる。 * 諸説あり。 Specialized Language Model(特化型言語モデル)という説も © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 16
#FullstackAIDev2024 SLMのメリットとは? ≒ 小規模言語モデルをデバイス上に置くメリット オフラインでも動き 高速である © 2012-2024 BASE, Inc. 利用上限がない セキュアである 多くの場合サーバー リソースの利用がない為 サーバーにデータを渡す 必要がない為 「オフラインでも TypeScriptから使える AI」 17
#FullstackAIDev2024 実は… Chromeにも デバイス上 SLMが 入る見込み © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 18
#FullstackAIDev2024 Chromeにもデバイス上の SLMが入る見込み Google I/O 2024のDeveloper Keynoteで発表されました © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 19
#FullstackAIDev2024 というか すでに皆さんの お手元の Chrome(ver.131) でも使える状態 にはなっています © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 20
#FullstackAIDev2024 が、 Chromeフラグ (実験的機能を使うかの設定) をONにしないと 使えない ので 知られていない … © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 21
#FullstackAIDev2024 構想されているアーキテクチャ Webアプリから “タスクに特化した API” or “探索用API” を経由してAIを使う © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 22
#FullstackAIDev2024 構想されているアーキテクチャ Webアプリから “タスクに特化した API” or “探索用API” を経由してAIを使う © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 23
#FullstackAIDev2024 構想されているアーキテクチャ Webアプリから “タスクに特化した API” or “探索用API” を経由してAIを使う © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 24
#FullstackAIDev2024 これ、Chromeの中だけで 行われてることなんです © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 25
#FullstackAIDev2024 API Keyを用意しなくても TypeScript / JavaScript から 気軽にAIが使えます! (ここ重要) © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 26
#FullstackAIDev2024 それ、もうちょっと詳しく教えて 現状、Chrome上で組み込みで使えるAIはこんな感じ Translator API Language Detector API Summarizer API ラウザでテキストをリアルタイム 特定のテキストで使用されている 箇条書きリストなど)でさまざまな で翻訳 言語を特定 要約を生成 ローカル AI モデルを使用し、ブ © 2012-2024 BASE, Inc. さまざまな長さと形式 (文/段落/ 「オフラインでも TypeScriptから使える AI」 27
#FullstackAIDev2024 構想されているアーキテクチャ Webアプリから “タスクに特化した API” or “探索用API” を経由してAIを使う © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 28
#FullstackAIDev2024 Chrome DevToolsで見ると window.ai オブジェクト配下に色々入っています ※前述の通り、 ChromeフラグがONになってないとこれらは出てこないので注意 © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 29
#FullstackAIDev2024 Gemini Nano in Chromeの使い方 個人で試した簡易アプリケーション とソースコード Googleのエンジニアが (ここは探索APIのPrompt APIでGemini Nanoを直 用意したデモ環境 もあり 接使う形で実装) ● https://gatchan0807.github.io/sandbox-by-remi x-spa/gemini-nano/english-word-history ます https://chrome.dev/web-ai-demo s/prompt-api-playground/ ● https://github.com/gatchan0807/sandbox-by-re mix-spa/tree/main/app/features/gemini-nano © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 30
#FullstackAIDev2024 Gemini Nano in Chromeのステータス 今はどこでも 誰でも使える わけではない © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 31
#FullstackAIDev2024 Gemini Nano in Chromeのステータス オリジントライアル 今はどこでもGoogle(Chrome)に登録した特定 誰でも使えるドメインのサービスではユーザーが何 わけではないもしなくても使えるよ! 近い将来使えそう © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 32
#FullstackAIDev2024 Gemini Nano in Chromeのステータス オリジントライアル 今はどこでもGoogle(Chrome)に登録した特定 誰でも使えるドメインのサービスではユーザーが何 わけではないもしなくても使えるよ! EPP (Early Preview Program) 近い将来使えそう Googleに問い合わせてね! サポートエンジニアと一緒にこの機能 を作っていこう! まだまだ気軽に 使えなそう © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 33
#FullstackAIDev2024 Gemini Nano in Chromeの使い所 既存のフロントエンド処理のように、サーバーサイドの処理を補完する用途 ● Server-side AI: クラウド上にあるAI(HTTPリクエストをして利用するもの) ● Client-side AI: Chrome組み込みのAI(ブラウザAPIを呼び出して利用するもの) がメイン 元々、Google I/Oでの発表時は「オンデバイスAI」という表記だったのですが、 「Client-side AI」に表記を変わったのでこの概念が説明しやすくなりました © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 34
#FullstackAIDev2024 機能の事例・アイデア ● Google I/Oでは「Adobe」「CyberAgent」のデモ画面 が公開 ○ Adobeの方はブラウザ上のPhotoShopで画像の背景生成 ○ ● CyberAgentの方はアメーバブログの編集画面で記事タイトルの生成 AI機能をClient-side AIで作り、お試し・無料版として提供する 形 ○ 有料のAI機能を買う前に試せるフリーミアム体験を作るというビジネス価値が ありそうな利用アイデア ● Google主催の組み込みAIを使い方を考えるハッカソンがあるので、 アイデア募集中…! © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 35
#FullstackAIDev2024 機能の事例・アイデア Translator API Language Detector API Summarizer API ラウザでテキストをリアルタイム 特定のテキストで使用されている 箇条書きリストなど)でさまざまな で翻訳 言語を特定 要約を生成 オフラインでも、チャット欄の表示や送信内 翻訳が必要かの判定を柔軟かつ 簡易的な要約を無料で提供して、 容が母国語になるような翻訳機能 精度高く実現させる機能 記事の内容への興味をより高める機能 ローカル AI モデルを使用し、ブ © 2012-2024 BASE, Inc. さまざまな長さと形式 (文/段落/ 「オフラインでも TypeScriptから使える AI」 36
#FullstackAIDev2024 Gemini Nano in Chromeの注意点 ⚠ ● ストレージ要件が結構大きい物を要求するので、 ダウンロード中の体験を作り込むのと、 PCスペックの但し書きは大事 そう ● ○ 最低でもPCに22GBの空き領域がないとダウンロードできない ○ ダウンロード済みでも、空き容量が 10GBを切ったタイミングで自動的に削除される 2024年11月現在、Prompt APIからの出力が英語しか許されておらず 英語以外を出そうとするとエラー になる ○ 英語以外が出そうになったタイミングで throwしてくるので、エラーハンドリングが必要 ○ ただ、現在それ以外の言語のテストや生成結果の品質担保を準備しているところなので、 いずれ問題なく日本語も出せるようになる見込み ○ © 2012-2024 BASE, Inc. たまにすり抜けてヒンディー語の単語とか出ることはある(?) 「オフラインでも TypeScriptから使える AI」 37
#FullstackAIDev2024 まとめ © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 38
#FullstackAIDev2024 まとめ① ● iOS / Androidにデバイス上で動く小規模の AIが来るように、 Chromeにも小規模 AIが来る! ○ これは JavaScript / TypeScript から使えるので、気軽に試しやすい! ● ただ、モデルサイズは一定大きく、制約も多い ので銀の弾丸にはならない ● 小規模モデルは 非構造な自然言語を扱うのが上手なので (それ以外のチューニングは今後に期待) 翻訳 / 言語判定 / 要約の機能などが早期にプロダクトに組み込みやすそう ○ © 2012-2024 BASE, Inc. 自分たちでプロンプトをいじる形の実装は、今のところ満足にはできなさそう 「オフラインでも TypeScriptから使える AI」 39
#FullstackAIDev2024 まとめ② ● AIモデルをデバイスにあらかじめアプリのように落としておく未来 も そう遠くはなさそう ○ ● プロダクト(ビジネス)の意思決定時にこういうのも選択肢に入ると良い👍 RaycastからGemini Nano in ChromeをChrome拡張経由で 使えない かな?ってちょびっと調べてみたけどダメだった 😢 ○ RaycastからはServer-side AIを使うのが一般的になりそう ○ ローカルでLlamaとかを立てて、そこにリクエストする形ならできる ので、 macOSアプリでLlamaをボタンひとつで起動できるものとかがあると嬉しいな… © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 40
#FullstackAIDev2024 We’re Hiring! BASE BANKでは技術を駆使してプロダクト開発にガンガン関わっていく エンジニアを大募集 しています!カジュアル面談からぜひ! © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 41
#FullstackAIDev2024 Recruitment Information BASE BANKで一緒に働くメンバーを大募集中! Our Mission 個人やスモールチームの金融をかんたんにし、 挑戦がめぐる世の中に BASE BANKチーム紹介資料はこちら フルサイクルエンジニア、 OKRと野望制度、 Go / Python / Next.js / Vue.js、YELL BANK以外にも金融関連の複数事業を提供し、 新規サービスも開発中!面白いよ! ぜひNetworkingの時間などにお気軽にお声がけください! © 2012-2024 BASE, Inc. 「オフラインでも TypeScriptから使える AI」 42
#FullstackAIDev2024 appendix スライド内の各図の参照元 / 引用元 : ● Gemini Nano in Chromeの最新 API仕様 ○ ● Google I/O 2024 Developer Keynote ○ ● https://developer.chrome.com/docs/ai?hl=ja 「Client-Side AI」についての解説 ○ ● https://www.youtube.com/live/ddcZnW1HKUY?si=O7Hm-ytDJLSA76mC Gemini Nano in Chromeの情報が集まったポータルページ ○ ● https://docs.google.com/document/d/1VG8HIyz361zGduWgNG7R_R8Xkv0OOJ8b5C9QKeCjU0c/edit?tab=t.0 https://developer.chrome.com/docs/ai/client-side?hl=ja 各種APIのステータスがまとまった表 ○ © 2012-2024 BASE, Inc. https://developer.chrome.com/docs/ai/built-in-apis?hl=ja 「オフラインでも TypeScriptから使える AI」 43