JavaScript Firebase 関数を使用して Google Cloud Platform でモデルを実行する
Feb 02 2023
アプリに関連付けられた Firebase プロジェクトがあり、Google Cloud Platform (GCP) の同じプロジェクトの下に機械学習モデルを作成したとします。ここで、アプリの Firebase 認証を通じて、GCP のモデルを使用して推論を実行する方法を疑問に思っているかもしれません。
アプリに関連付けられた Firebase プロジェクトがあり、 Google Cloud Platform (GCP) の同じプロジェクトの下に機械学習モデルを作成したとします。ここで、アプリの Firebase 認証を通じて、GCP のモデルを使用して推論を実行する方法を疑問に思っているかもしれません。JavaScript Firebase 関数を使用してこれを実行できます。
(これは、Ubuntu 18.04 および Node.js 14 でテストされました)
0. 前提条件
- アプリに関連付けられた Firebase プロジェクト (例 — プロジェクト ID = {PROJECT_ID})
- GCP 上の同じプロジェクト{PROJECT_ID}内の機械学習モデル
- Node.js 14 および npm ( nvm を使用してインストールできます)
ターミナルを開いて以下を実行します。
npm install -g firebase-tools
ローカル プロジェクト ディレクトリがデスクトップの {LOCAL_DIR} であるとします。それを作成し、そこに移動します。
mkdir -p ~/Desktop/{LOCAL_DIR}
cd ~/Desktop/{LOCAL_DIR}
次のコマンドを 1 つずつ慎重に実行します。その際、コマンドによって生成されるプロンプトをナビゲートする方法については、その下のメモをガイドとして参照してください。
firebase login
firebase init firestore
firebase init functions
- ブラウザ経由でログインして認証するように求められます。
- プロンプトが表示されたら、正しい Firebase プロジェクト ( {PROJECT_ID} ) を選択します。
- 言語としてJavaScript (js)を選択します。
- これには「elsint」は必要ありません。
- 依存関係をインストールするには「はい」を選択します。
googleapisパッケージが必要になります。
cd ~/Desktop/{LOCAL_DIR}/functions
npm i googleapis
好みの IDE (VS Code など) で「{LOCAL_DIR}/functions/package.json」を開き、「 engines」セクションを次のように編集します。
"engines": {
"node": "14"
},
好みの IDE で「{LOCAL_DIR}/functions/index.js」を開きます。
次の用語を定義しましょう。これらを自分の詳細情報に置き換える必要があります。
- モデル名 = {MODEL_NAME}
- モデル領域 = {MODEL_REGION} — (特にパフォーマンスを向上させるため、モデル領域が関数領域と同じであることを確認してください。デフォルト = us-central1 )
- Firebase 関数名 = {ML_FUNCTION}
- 関数への入力 = モデルへの入力 = {“key_str”: “val_str”, “key_int”: 2, “key_arr”: [1.25, 0.76, 3.84]} のような辞書
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
const googleapis_pack = require("googleapis");
const ml = googleapis_pack.google.ml({version:"v1", rootUrl:"https://{MODEL_REGION}-ml.googleapis.com"});
exports.{ML_FUNCTION} = functions.https.onCall(async(data, context)=>
{
const key_str = data.key_str;
const key_int = data.key_int;
const key_arr = data.key_arr;
const instance = {"key_str":key_str, "key_int":key_int, "key_arr":key_arr};
const model = "{MODEL_NAME}";
const { credential } = await googleapis_pack.google.auth.getApplicationDefault();
const modelName = "projects/{PROJECT_ID}/models/" + model;
const results = await ml.projects.predict({
auth: credential,
name: modelName,
requestBody: instance
});
return results.data;
}
);
ターミナルに移動し、以下を実行します。
cd ~/Desktop/{LOCAL_DIR}
firebase deploy --only functions
追伸 —
アプリ (iOS、Android など) から Firebase 関数を呼び出す方法については、Google のこの公式ドキュメントを参照してください。
参考文献
- https://firebase.google.com/docs/functions/get-started
- https://github.com/nvm-sh/nvm/blob/master/README.md
- https://firebase.google.com/docs/functions/callable

![とにかく、リンクリストとは何ですか?[パート1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































