すべてのプロダクト
Search
ドキュメントセンター

Function Compute:Function Compute で低コストの Google Gemma モデルサービスを構築する

最終更新日:Nov 09, 2025

Google は 2024 年 2 月 21 日に、初のオープンソースモデルファミリーである Gemma をリリースしました。モデルの重みは、Gemma 2B と Gemma 7B の 2 つのサイズで利用できます。Function Compute の GPU インスタンスとアイドルモードを使用して、Gemma モデルサービスを低コストで迅速にデプロイできます。

前提条件

手順

サービスのデプロイに使用するリソース (GPU リソース、vCPU リソース、メモリリソース、ディスクリソース、アウトバウンドインターネットトラフィック、関数呼び出しなど) に対して課金されます。詳細については、「課金の概要」をご参照ください。

アプリケーションの作成

  1. 次の手順に従って、ACR リポジトリのドメイン名とアドレスを取得します。

    1. Container Registry コンソールにログインし、関数が存在するリージョンを選択し、ターゲットのエンタープライズインスタンスカードで [管理] をクリックします。

    2. 左側のナビゲーションウィンドウで、[アクセス制御] をクリックし、[インターネット] タブを選択します。インターネットアクセスが無効になっている場合は、有効にします。インターネット上の任意のマシンがリポジトリにログインできるようにするには、すべてのインターネットホワイトリストを削除します。それ以外の場合は、インターネットホワイトリストを設定します。設定が完了したら、ACR インスタンスの [ドメイン名] をコピーします。

      image

    3. 左側のナビゲーションウィンドウで、[イメージリポジトリ] をクリックします。次に、ターゲットリポジトリの [リポジトリ名] をクリックして、その詳細ページを開きます。

    4. リポジトリの [インターネットアドレス] を保存できます。

      image

  2. Gemma モデルをダウンロードします。モデルは Hugging Face または ModelScope からダウンロードできます。このトピックでは、ModelScope からダウンロードした Gemma-2b-it モデルを例として使用します。詳細については、「Gemma-2b-it」をご参照ください。

    重要

    Git を使用してモデルをダウンロードする場合、Git LFS 拡張機能をインストールし、git lfs install コマンドを実行して Git LFS を初期化してから、git clone コマンドを実行してモデルをダウンロードする必要があります。そうしないと、モデルのサイズが大きいため、ダウンロードしたモデルが不完全になり、Gemma サービスが機能しなくなる可能性があります。

  3. Dockerfile と app.py という名前のモデルサービスコードファイルを作成します。

    • Dockerfile

      FROM registry.cn-shanghai.aliyuncs.com/modelscope-repo/modelscope:fc-deploy-common-v17
      
      WORKDIR /usr/src/app
      
      COPY . .
      
      RUN pip install -U transformers
      RUN pip install -U accelerate
      
      CMD [ "python3", "-u", "/usr/src/app/app.py" ]
      
      EXPOSE 9000
    • app.py

      from flask import Flask, request
      from transformers import AutoTokenizer, AutoModelForCausalLM
      
      model_dir = '/usr/src/app/gemma-2b-it'
      
      app = Flask(__name__)
      
      tokenizer = AutoTokenizer.from_pretrained(model_dir)
      model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto")
      
      @app.route('/invoke', methods=['POST'])
      def invoke():
          request_id = request.headers.get("x-fc-request-id", "")
          print("FC Invoke Start RequestId: " + request_id)
      
          text = request.get_data().decode("utf-8")
          print(text)
          input_ids = tokenizer(text, return_tensors="pt").to("cuda")
          outputs = model.generate(**input_ids, max_new_tokens=1000)
          response = tokenizer.decode(outputs[0])
          print("FC Invoke End RequestId: " + request_id)
          return str(response) + "\n"
      
      if __name__ == '__main__':
          app.run(debug=False, host='0.0.0.0', port=9000)

      Function Compute がサポートするすべての HTTP ヘッダーの詳細については、「Function Compute の共通リクエストヘッダー」をご参照ください。

    これらの手順を完了すると、コードディレクトリは次の構造になります。

    .
    |-- app.py
    |-- Dockerfile
    `-- gemma-2b-it
        |-- config.json
        |-- generation_config.json
        |-- model-00001-of-00002.safetensors
        |-- model-00002-of-00002.safetensors
        |-- model.safetensors.index.json
        |-- README.md
        |-- special_tokens_map.json
        |-- tokenizer_config.json
        |-- tokenizer.json
        `-- tokenizer.model
    
    1 directory, 12 files
    
  4. 次のコマンドを順番に実行して、イメージをビルドしてプッシュします。コマンドの {REPO_ENDPOINT} はステップ 1 の宛先イメージリポジトリのインターネットアドレスで、{REGISTRY} は ACR インスタンスのドメイン名です。

    IMAGE_NAME={REPO_ENDPOINT}:gemma-2b-it
    docker login --username=mu****@test.aliyunid.com  {REGISTRY}
    docker build -f Dockerfile -t $IMAGE_NAME . && docker push $IMAGE_NAME

    上記のコマンドの {NAMESPACE} と {REPO} を、作成した名前空間とイメージリポジトリの名前に置き換えてください。

  5. 関数を作成します。

    1. Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、[関数管理] > [関数] を選択します。

    2. 上部のナビゲーションバーで、リージョンを選択します。[関数] ページで、[関数の作成] をクリックします。

    3. [関数の作成] ページで、[GPU 関数] タイプを選択し、次のパラメーターを設定してから [作成] をクリックします。

      次の表に、主要なパラメーターを示します。その他のパラメーターにはデフォルト値を使用できます。

      パラメーター

      説明

      GPU タイプ

      [Tesla シリーズ] を選択します。

      仕様

      • [GPU メモリ] を 16 GB に設定します。

      • [VCPU] を 2 vCPU に設定します。

      • [メモリ] を 16 GB に設定します。

      イメージ設定

      コンテナイメージ

      [ACR イメージの選択] をクリックします。[コンテナイメージの選択] パネルで、ステップ 4 で ACR イメージリポジトリにプッシュしたイメージを選択します。

      リスナーポート

      このパラメーターを 9000 に設定します。

  6. 関数のステータスが [有効] に変わったら、インスタンスの最小数を 0 より大きい値に設定して、コールドスタートを緩和できます。

    1. 関数の詳細ページで、[弾力性設定] タブを選択します。[弾力性ポリシー] セクションで、ターゲットポリシーの [設定] をクリックします。

    2. [弾力性ポリシーの設定] パネルで、[最小インスタンス数] を 1 以上に設定し、[OK] をクリックします。

Google Gemma サービスの使用

  1. 関数の詳細ページで、[トリガー] タブをクリックします。ターゲット HTTP トリガーの [設定情報] 列で、その URL を取得します。

  2. 次のコマンドを実行して関数を呼び出します。

    curl -X POST -d "who are you" https://func-i****-****.cn-shanghai.fcapp.run/invoke

    次の例は、期待される出力を示しています。

    <bos>who are you?
    
    I am a large language model, trained by Google. I am a conversational AI that can understand and generate human language, and I am able to communicate and provide information in a comprehensive and informative way.
    
    What can I do for you today?<eos>
  3. 関数の詳細ページで、[モニタリング] > [インスタンスメトリクス] タブを選択してメトリックを表示します。

    関数の呼び出しが発生しない場合、インスタンスの GPU メモリ使用量がゼロに低下することがわかります。新しい関数の呼び出しリクエストが到着すると、Function Compute は必要な GPU メモリリソースを迅速に復元して割り当てます。これにより、コストを削減できます。

    説明

    インスタンスメトリックを表示するには、まずロギング機能を有効にする必要があります。詳細については、「ロギング機能の設定」をご参照ください。

リソースの削除

この関数を使用する必要がなくなった場合は、そのリソースを削除して、それ以上の料金が発生しないようにすることができます。このアプリケーションを長期間使用する場合は、このステップをスキップできます。

  1. Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、[関数管理] > [関数] を選択します。

  2. 関数リストでターゲット関数を見つけ、[アクション] 列の [削除] をクリックします。表示されるダイアログボックスで、削除するリソースが正しいことを確認し、削除を確定します。

参考

Google がリリースしたオープンモデルファミリーである Gemma の詳細については、「gemma-open-models」をご参照ください。