全部产品
Search
文档中心

Function Compute:Membangun layanan model Google Gemma berbiaya rendah di Function Compute

更新时间:Nov 11, 2025

Google merilis Gemma, family model open-source pertamanya, pada 21 Februari 2024. Bobot model tersedia dalam dua ukuran: Gemma 2B dan Gemma 7B. Anda dapat menggunakan instans yang dipercepat GPU dan mode menganggur Function Compute untuk men-deploy layanan model Gemma secara cepat dengan biaya rendah.

Prasyarat

Prosedur

Anda akan dikenai biaya atas sumber daya yang digunakan untuk men-deploy layanan ini, seperti sumber daya GPU, vCPU, memori, disk, lalu lintas Internet keluar, dan pemanggilan fungsi. Untuk informasi selengkapnya, lihat Ikhtisar penagihan.

Buat aplikasi

  1. Ikuti langkah-langkah berikut untuk mendapatkan nama domain dan alamat repositori ACR.

    1. Login ke Konsol Container Registry, pilih wilayah tempat fungsi Anda berada, lalu klik Manage pada kartu Instans Perusahaan target.

    2. Pada panel navigasi kiri, klik Access Control dan pilih tab Internet. Jika akses Internet dinonaktifkan, aktifkan. Untuk mengizinkan mesin apa pun di Internet login ke repositori Anda, hapus semua daftar putih Internet. Jika tidak, konfigurasikan daftar putih Internet. Setelah konfigurasi selesai, salin Domain Name dari instans ACR.

      image

    3. Pada panel navigasi kiri, klik Image Repositories. Lalu, klik Repository Name dari repositori target untuk membuka halaman detailnya.

    4. Anda dapat menyimpan Internet Address dari repositori tersebut.

      image

  2. Unduh model Gemma. Anda dapat mengunduh model dari Hugging Face atau ModelScope. Topik ini menggunakan contoh model Gemma-2b-it yang diunduh dari ModelScope. Untuk informasi selengkapnya, lihat Gemma-2b-it.

    Penting

    Jika Anda menggunakan Git untuk mengunduh model, Anda harus menginstal ekstensi Git LFS, menjalankan perintah git lfs install untuk menginisialisasi Git LFS, lalu menjalankan perintah git clone untuk mengunduh model. Jika tidak, model yang diunduh mungkin tidak lengkap karena ukurannya yang besar, sehingga layanan Gemma mungkin gagal berjalan.

  3. Buat Dockerfile dan file kode layanan model bernama 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)

      Untuk informasi selengkapnya tentang semua Header HTTP yang didukung oleh Function Compute, lihat Header permintaan umum di Function Compute.

    Setelah menyelesaikan langkah-langkah ini, struktur direktori kode menjadi sebagai berikut:

    .
    |-- 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. Jalankan perintah berikut secara berurutan untuk membangun dan mendorong citra. Dalam perintah tersebut, {REPO_ENDPOINT} adalah alamat Internet repositori citra tujuan dari Langkah 1, dan {REGISTRY} adalah nama domain instans 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

    Ganti {NAMESPACE} dan {REPO} dalam perintah di atas dengan nama namespace dan repository image yang telah Anda buat.

  5. Buat fungsi.

    1. Login ke Konsol Function Compute. Pada panel navigasi kiri, pilih Function Management > Functions.

    2. Pada bilah navigasi atas, pilih wilayah. Di halaman Functions, klik Create Function.

    3. Pada halaman Create Function, pilih tipe GPU Function, atur parameter berikut, lalu klik Create.

      Tabel berikut menjelaskan parameter utama. Anda dapat menggunakan nilai default untuk parameter lainnya.

      Parameter

      Deskripsi

      GPU Type

      Pilih Tesla Series.

      Specifications

      • Atur GPU Memory menjadi 16 GB.

      • Atur VCPU menjadi 2 vCPU.

      • Atur Memory menjadi 16 GB.

      Image Configuration

      Container Image

      Klik Select ACR Image. Pada panel Select Container Image, pilih citra yang telah Anda dorong ke repositori citra ACR Anda di Langkah 4.

      Listener Port

      Atur parameter ini menjadi 9000.

  6. Saat status fungsi Anda berubah menjadi Activated, Anda dapat mengatur jumlah minimum instans menjadi nilai lebih besar dari 0 untuk mengurangi cold start.

    1. Pada halaman detail fungsi, pilih tab Elasticity Configuration. Pada bagian Elasticity Policy, klik Configure untuk kebijakan target.

    2. Pada panel Configure Elasticity Policy, atur Minimum Instances menjadi 1 atau lebih, lalu klik OK.

Menggunakan layanan Google Gemma

  1. Pada halaman detail fungsi, klik tab Triggers. Pada kolom Configuration Information untuk pemicu HTTP target, dapatkan URL-nya.

  2. Jalankan perintah berikut untuk memanggil fungsi.

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

    Contoh berikut menunjukkan output yang diharapkan:

    <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. Pada halaman detail fungsi, pilih tab Monitoring > Instance Metrics untuk melihat metrik.

    Anda dapat melihat bahwa penggunaan memori GPU instans turun menjadi nol saat tidak ada pemanggilan fungsi. Ketika permintaan pemanggilan fungsi baru tiba, Function Compute segera memulihkan dan mengalokasikan sumber daya memori GPU yang diperlukan. Hal ini membantu mengurangi biaya.

    Catatan

    Untuk melihat metrik instans, Anda harus terlebih dahulu mengaktifkan fitur logging. Untuk informasi selengkapnya, lihat Mengonfigurasi fitur logging.

Hapus sumber daya

Jika Anda tidak lagi memerlukan fungsi ini, Anda dapat menghapus sumber dayanya untuk menghindari biaya tambahan. Jika Anda ingin menggunakan aplikasi ini dalam jangka panjang, Anda dapat melewati langkah ini.

  1. Login ke Konsol Function Compute. Pada panel navigasi kiri, pilih Function Management > Functions.

  2. Pada daftar fungsi, temukan fungsi target dan klik Delete pada kolom Actions. Pada kotak dialog yang muncul, verifikasi bahwa sumber daya yang akan dihapus sudah benar, lalu konfirmasi penghapusan.

Referensi

Untuk informasi selengkapnya tentang Gemma, family model open yang dirilis oleh Google, lihat gemma-open-models.