全部產品
Search
文件中心

Function Compute:基於Function Compute低成本部署Google Gemma模型服務

更新時間:Oct 10, 2025

Google在2024年02月21日正式推出了首個開源模型族Gemma,並同時上架了2b和7b兩個版本。您可以使用Function Compute的GPU執行個體以及Function Compute的閑置模式低成本快速部署Gemma模型服務。

前提條件

操作步驟

部署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 Header,請參見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核。

      • 記憶體規格設定為16 GB。

      鏡像配置

      容器鏡像

      單擊下方的選擇 ACR 中的鏡像,然後在選擇容器鏡像面板,選擇步驟3推送到您的ACR鏡像倉庫中的鏡像。

      監聽連接埠

      設定為9000。

  6. 待上一步建立的函數的狀態變更為函數已啟用時,您可以配置最小執行個體數>0,解決冷啟動問題。

    1. 在函數詳情頁面選擇彈性配置頁簽,在下方彈性策略地區,單擊目標策略行的配置

    2. 配置彈性策略面板,設定最小執行個體數為≥1的值,然後單擊確定

使用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. 在函數詳情頁面,選擇監控 > 執行個體指標頁簽,查看指標情況。

    您可以看到在沒有函數調用發生時,該執行個體的顯存使用量會降至零。而當有新的函數調用請求到來時,Function Compute平台會迅速恢複並分配所需的顯存資源。從而達到降本效果。

    說明

    查看指標的執行個體,需要先啟用日誌功能,具體請參見配置日誌功能

刪除資源

如您暫時不需要使用此函數,請及時刪除對應資源。如果您需要長期使用此應用,請忽略此步驟。

  1. 登入Function Compute控制台,在左側導覽列,選擇函數管理 > 函數列表

  2. 在函數列表,找到目標函數,單擊其右側操作列的刪除,在彈出的對話方塊中,確認同時要刪除的資源無誤後再次確認刪除函數。

相關文檔

關於Google發布的開源模型族Gemma的更多詳情,請參見gemma-open-models