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
Function Compute telah diaktifkan. Untuk informasi lebih lanjut, lihat Membuat Fungsi dengan Cepat.
Namespace dan repository image telah dibuat. Untuk informasi selengkapnya, lihat Membuat namespace dan Membuat repository image.
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
Ikuti langkah-langkah berikut untuk mendapatkan nama domain dan alamat repositori ACR.
Login ke Konsol Container Registry, pilih wilayah tempat fungsi Anda berada, lalu klik Manage pada kartu Instans Perusahaan target.
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.

Pada panel navigasi kiri, klik Image Repositories. Lalu, klik Repository Name dari repositori target untuk membuka halaman detailnya.
Anda dapat menyimpan Internet Address dari repositori tersebut.

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.
PentingJika Anda menggunakan Git untuk mengunduh model, Anda harus menginstal ekstensi Git LFS, menjalankan perintah
git lfs installuntuk menginisialisasi Git LFS, lalu menjalankan perintahgit cloneuntuk mengunduh model. Jika tidak, model yang diunduh mungkin tidak lengkap karena ukurannya yang besar, sehingga layanan Gemma mungkin gagal berjalan.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 9000app.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 filesJalankan 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_NAMEGanti {NAMESPACE} dan {REPO} dalam perintah di atas dengan nama namespace dan repository image yang telah Anda buat.
Buat fungsi.
Login ke Konsol Function Compute. Pada panel navigasi kiri, pilih .
Pada bilah navigasi atas, pilih wilayah. Di halaman Functions, klik Create Function.
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.
Saat status fungsi Anda berubah menjadi Activated, Anda dapat mengatur jumlah minimum instans menjadi nilai lebih besar dari 0 untuk mengurangi cold start.
Pada halaman detail fungsi, pilih tab Elasticity Configuration. Pada bagian Elasticity Policy, klik Configure untuk kebijakan target.
Pada panel Configure Elasticity Policy, atur Minimum Instances menjadi 1 atau lebih, lalu klik OK.
Menggunakan layanan Google Gemma
Pada halaman detail fungsi, klik tab Triggers. Pada kolom Configuration Information untuk pemicu HTTP target, dapatkan URL-nya.
Jalankan perintah berikut untuk memanggil fungsi.
curl -X POST -d "who are you" https://func-i****-****.cn-shanghai.fcapp.run/invokeContoh 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>Pada halaman detail fungsi, pilih tab 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.
CatatanUntuk 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.
Login ke Konsol Function Compute. Pada panel navigasi kiri, pilih .
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.