Dokumen ini menjelaskan cara menggunakan Fungsi AI MaxFrame di Alibaba Cloud MaxCompute dan menyediakan kasus penggunaan khas untuk membantu Anda memulai aplikasi inferensi offline model bahasa besar (LLM).
Ikhtisar
Fungsi AI MaxFrame adalah solusi end-to-end untuk inferensi offline model bahasa besar (LLM) pada platform Alibaba Cloud MaxCompute. Solusi ini mengintegrasikan pemrosesan data dengan kemampuan AI secara mulus untuk menurunkan hambatan adopsi LLM tingkat perusahaan.
Filosofi desain: "Data masuk, hasil keluar." Pendekatan ini memungkinkan Anda menggunakan framework MaxFrame Python dan API bergaya pandas untuk menyelesaikan seluruh alur kerja—mulai dari persiapan dan pemrosesan data hingga inferensi model dan penyimpanan hasil—semuanya dalam ekosistem MaxCompute.
Skenario yang berlaku: Fungsi AI MaxFrame ideal untuk memproses volume besar data terstruktur (seperti analisis log dan log perilaku pengguna), data tidak terstruktur (seperti terjemahan teks dan ringkasan dokumen), serta vektorisasi. Solusi ini mendukung pemrosesan data skala petabyte dalam satu pekerjaan dan mencapai latensi rendah serta skalabilitas linear melalui arsitektur komputasi terdistribusinya. Anda dapat menggunakannya untuk mengekstraksi informasi terstruktur dari teks, meringkas konten, menghasilkan abstrak, menerjemahkan bahasa, serta melakukan tugas seperti penilaian kualitas teks dan klasifikasi sentimen. Hal ini secara signifikan menyederhanakan pemrosesan data LLM dan meningkatkan kualitas hasil.
Arsitektur
Fungsi AI MaxFrame menyediakan antarmuka
generateyang fleksibel dan tujuan umum serta antarmukataskyang ringkas dan berbasis skenario (untuk terjemahan, ekstraksi data terstruktur, penyematan, dll.). Anda memilih model dan memberikan tabel MaxCompute serta prompt sebagai input.Ketika antarmuka dieksekusi, MaxFrame pertama-tama membagi data tabel. Anda dapat mengatur tingkat konkurensi yang sesuai berdasarkan ukuran data dan memulai sekelompok worker untuk melakukan komputasi. Setiap worker menggunakan templat prompt yang disediakan untuk merender prompt dari baris data masukan, menjalankan inferensi, dan menulis hasilnya—termasuk status keberhasilan—kembali ke MaxCompute.
Arsitektur dan alur kerja keseluruhan ditunjukkan pada gambar berikut:

Keunggulan utama:
Kemudahan penggunaan: API Python yang familiar, pustaka model siap pakai, dan biaya penerapan nol.
Skalabilitas: Memanfaatkan sumber daya MaxCompute CU (Compute Unit), GU (GPU Unit), dan Kuota Inferensi (berbasis token) untuk mendukung pemrosesan paralel skala besar dan meningkatkan throughput token secara keseluruhan.
Integrasi Data + AI: Menyelesaikan seluruh alur kerja—mulai dari pembacaan dan pemrosesan data hingga inferensi AI dan penyimpanan hasil—pada satu platform. Hal ini mengurangi biaya migrasi data dan meningkatkan efisiensi pengembangan.
Cakupan skenario luas: Mencakup lebih dari 10 skenario umum, termasuk terjemahan, ekstraksi data terstruktur, dan vektorisasi.
Prasyarat
Wilayah yang didukung:
Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Ulanqab), Tiongkok (Shenzhen), Tiongkok (Chengdu), Tiongkok (Hong Kong), Cloud Keuangan Tiongkok (Hangzhou), dan Cloud Keuangan Tiongkok (Shanghai).
Versi Python yang didukung: Python 3.11.
Versi SDK yang didukung: Pastikan versi MaxFrame SDK Anda adalah 2.6.0 atau lebih baru. Anda dapat memeriksa versi dengan menjalankan perintah berikut:
// Untuk Windows pip list | findstr maxframe // Untuk Linux pip list | grep maxframeJika versi Anda sudah usang, jalankan
pip install --upgrade maxframeuntuk meningkatkan ke versi terbaru.Instal klien MaxFrame terbaru.
Model yang didukung
Saat ini, MaxFrame menyediakan dukungan siap pakai untuk serangkaian model bahasa besar (LLM) bawaan, seperti Qwen 3, Deepseek-R1-Distill-Qwen, dan Qwen3-embedding. Solusi ini juga mendukung pemanggilan LLM komersial dari Model Studio (Bailian), seperti Qwen3-Max dan text-embedding-v4. Semua model di-hosting secara offline dalam platform MaxCompute. Artinya, Anda tidak perlu khawatir tentang unduhan model, distribusi, atau batas konkurensi panggilan API. Anda dapat menggunakan model tersebut hanya dengan panggilan API sederhana, sehingga memungkinkan Anda memanfaatkan sepenuhnya sumber daya komputasi besar MaxCompute untuk menyelesaikan tugas inferensi offline LLM dengan throughput token dan konkurensi tinggi secara keseluruhan.
Katalog model
Seri model | Nama model | Kuota yang berlaku |
Model seri Qwen 3 |
|
|
Model Qwen3 Embedding |
|
|
|
| |
Model seri DeepSeek-R1-Distill-Qwen |
|
|
DeepSeek-R1-0528-Qwen3-8B |
|
|
Model komersial Model Studio (Bailian) |
|
Jenis sumber daya kuota
MaxFrame mendukung tiga jenis sumber daya, memungkinkan Anda memilih yang paling sesuai dengan ukuran model dan kebutuhan bisnis Anda.
Sumber daya kuota CU
CU (1 CU = 1 vCPU + 4 GB memori) menyediakan sumber daya komputasi CPU tujuan umum dan cocok untuk model kecil serta tugas inferensi dengan volume data kecil.
Konfigurasi:
# Gunakan sumber daya komputasi Kuota CU
options.session.quota_name = "mf_cpu_quota"Sumber daya kuota GU
GU menyediakan sumber daya komputasi GPU yang dioptimalkan untuk inferensi LLM. GU mendukung model yang lebih besar dan cocok untuk tugas inferensi dengan model berparameter 8B atau lebih.
Konfigurasi:
# Gunakan sumber daya komputasi Kuota GU
options.session.gu_quota_name = "mf_gpu_quota"Sumber daya kuota inferensi (penagihan berbasis token)
Opsi ini memungkinkan Anda memanggil LLM komersial langsung dari Model Studio (Bailian), seperti qwen3-max dan text-embedding-v4. Penagihan didasarkan pada konsumsi token aktual. Pendekatan ini menghilangkan kebutuhan untuk menyediakan sumber daya CU/GU atau mengelola infrastruktur dasar, sehingga menawarkan solusi yang fleksibel, nyaman, dan hemat biaya.
Konfigurasi:
# Gunakan sumber daya komputasi Kuota Inferensi
options.session.inference_quota_name = "mf_token_quota"Referensi API
Fungsi AI MaxFrame menyediakan dua jenis antarmuka untuk menyeimbangkan fleksibilitas dan kemudahan penggunaan: antarmuka generate tujuan umum dan antarmuka Task berbasis skenario.
Tujuan umum: generate
Antarmuka generate
Parameter utama
Parameter | Wajib | Deskripsi |
model_name | Ya | Nama model yang akan digunakan. |
df | Ya | Teks atau data yang akan dianalisis, dibungkus dalam DataFrame. |
prompt_template | Ya | Daftar pesan yang kompatibel dengan format pesan chat OpenAI. Anda dapat menggunakan sintaks |
Berdasarkan tugas: Task
Antarmuka berbasis skenario: Task
Antarmuka tugas standar yang telah ditentukan menyederhanakan pengembangan untuk skenario umum. Antarmuka task yang saat ini didukung meliputi translate, extract, dan embedding.
Parameter utama
Parameter | Wajib | Deskripsi |
model_name | Ya | Nama model yang akan digunakan. |
df | Ya | Teks atau data yang akan dianalisis, dibungkus dalam DataFrame. |
Metode spesifik tugas | Ya |
|
Kasus penggunaan khas
Kuota GU
Skenario kuota GU
Terjemahan bahasa
Skenario: Perusahaan multinasional perlu menerjemahkan 100.000 kontrak berbahasa Inggris ke bahasa Tionghoa dan menganotasi klausa-klausa penting.
import os
import maxframe.dataframe as md
from maxframe import new_session
from maxframe.config import options
from maxframe.udf import with_running_options
from odps import ODPS
options.dag.settings = {
"engine_order": ["DPE", "MCSQL"]
}
o = ODPS(
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
project='your-default-project',
endpoint='your-end-point',
)
# Inisialisasi sesi MaxFrame
session = new_session(o)
# Cetak URL Logview untuk pekerjaan
print(session.get_logview_address())
# 1. Gunakan sumber daya komputasi Kuota GU
options.session.gu_quota_name = "mf_gu_quota"
# 2. Gunakan model Qwen3-1.7B
from maxframe.learn.contrib.llm.models.managed import ManagedTextLLM
llm = ManagedTextLLM(name="Qwen3-1.7B")
# 3. Siapkan data. Anda dapat melewati langkah ini jika sudah memiliki data.
# o.execute_sql("""
# CREATE TABLE IF NOT EXISTS raw_contracts (
# en STRING
# );
# """)
#
# o.execute_sql("""
# INSERT INTO raw_contracts VALUES
# ('This agreement is governed by the laws of the State of California.'),
# ('The tenant shall pay rent on the first day of each month.'),
# ('Either party may terminate this contract with 30 days written notice.'),
# ('All intellectual property rights shall remain with the original owner.'),
# ('The warranty period for this product is twelve months from the date of purchase.');
# """)
df = md.read_odps_table("raw_contracts")
# 4. Definisikan templat prompt
messages = [
{
"role": "system",
"content": "Anda adalah ahli terjemahan dokumen yang dapat menerjemahkan teks bahasa Inggris pengguna ke bahasa Tionghoa dengan lancar.",
},
{
"role": "user",
"content": "Harap terjemahkan teks bahasa Inggris berikut ke bahasa Tionghoa. Keluarkan hanya teks terjemahan, tanpa konten lain.\n\n Contoh:\nInput: Hi\nOutput: 你好。\n\n Teks yang akan diterjemahkan:\n\n{en}",
},
]
# 5. Panggil antarmuka `generate`, definisikan prompt, dan referensikan kolom data yang sesuai.
result_df = llm.generate(
df,
prompt_template=messages,
params={
"temperature": 0.7,
"top_p": 0.8,
},
).execute()
# 6. Tulis hasil ke tabel MaxCompute
result_df.to_odps_table("raw_contracts_result")Ekstraksi kata kunci
Skenario: Kasus penggunaan ini menunjukkan bagaimana Fungsi AI MaxFrame memproses data tidak terstruktur. Sebagian besar data tidak terstruktur terdiri dari teks dan gambar, yang menjadi tantangan signifikan bagi analitik data besar. Contoh berikut menunjukkan cara menggunakan Fungsi AI untuk menyederhanakan proses ini.
Kode berikut menunjukkan cara menggunakan Fungsi AI untuk mengekstraksi pengalaman kerja kandidat dari resume. Contoh ini menggunakan teks resume yang dihasilkan secara acak sebagai data input. Untuk praktik terbaik dan demo terperinci, lihat Praktik Pengembangan Fungsi AI pada GU.
import maxframe.dataframe as md
from maxframe import new_session
from maxframe.config import options
from maxframe.udf import with_running_options
from odps import ODPS
options.dag.settings = {
"engine_order": ["DPE", "MCSQL"]
}
o = ODPS(
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
project='your-default-project',
endpoint='your-end-point',
)
# Inisialisasi sesi MaxFrame
session = new_session(o)
# Cetak URL Logview untuk pekerjaan
print(session.get_logview_address())
# 1. Gunakan sumber daya komputasi Kuota GU
options.session.gu_quota_name = "mf_gu_quota"
# 2. Gunakan model Qwen3 4B
from maxframe.learn.contrib.llm.models.managed import ManagedTextLLM
llm = ManagedTextLLM(name="Qwen3-4B-Instruct-2507-FP8")
df = md.read_odps_table("traditional_chinese_medicine", index_col="index")
# Tentukan empat partisi konkuren
parallel_partitions = 4
df = df.mf.rebalance(num_partitions=parallel_partitions)
# 3. Gunakan antarmuka tugas `extract` yang telah ditentukan
result_df = llm.extract(
df["text"],
description="Harap ekstrak data terstruktur dari catatan medis berikut secara berurutan. Kembalikan output akhir dalam format JSON ketat sesuai skema.",
schema=MedicalRecord,
examples=[(example_input, example_output)],
)
result_df.execute()
Skenario sumber daya Kuota Inferensi (Penagihan berbasis token)
Skenario sumber daya Kuota Inferensi
Vektorisasi teks: text-embedding-v4
Deskripsi skenario: Gunakan model komersial Model Studio (Bailian) text-embedding-v4 untuk melakukan tugas vektorisasi. Penagihan didasarkan pada konsumsi token, sehingga menghilangkan kebutuhan untuk mengelola sumber daya komputasi dasar. Skenario ini cocok untuk analisis teks kompleks dan tugas inferensi berkualitas tinggi yang memerlukan model besar atau LLM komersial dari Model Studio (Bailian).
Kode contoh sebagai berikut:
import os
import maxframe.dataframe as md
from maxframe import new_session
from maxframe.config import options
from maxframe.udf import with_running_options
from odps import ODPS
options.dag.settings = {
"engine_order": ["DPE", "MCSQL"]
}
o = ODPS(
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
project='your-default-project',
endpoint='your-end-point',
)
# Inisialisasi sesi MaxFrame
session = new_session(o)
# Cetak URL Logview pekerjaan
print(session.get_logview_address())
# 1. Gunakan sumber daya komputasi Kuota Token
options.session.inference_quota_name = "mf_token_quota"
# 2. Buat instance model text-embedding-v4 (menggunakan Kuota Token)
# Muat model text-embedding-v4 dari kumpulan model publik Model Studio (Bailian)
from maxframe.learn.utils import read_odps_model
llm = read_odps_model("text-embedding-v4", project="bigdata_public_modelset")
# 3. Baca data
df = md.read_odps_table("user_feedback_table")
# 4. Lakukan vektorisasi
result_df = llm.embed(
df["query"],
running_options={"max_tokens": 1024, "verbose": True},
simple=True,
).execute()
# 6. Tulis hasil ke tabel MaxCompute
result_df.to_odps_table("feedback_analysis_result")
Optimalisasi kinerja
Inferensi paralel
MaxFrame menggunakan komputasi paralel untuk inferensi offline skala besar:
Sharding data: API
rebalancemendistribusikan tabel data input secara merata ke beberapa node pekerja berdasarkan jumlah partisi yang ditentukan (num_partitions).Pemuatan model paralel: Setiap worker memuat dan melakukan pre-warm model secara independen. Hal ini menghindari latensi cold start akibat pemuatan model.
Agregasi hasil: Hasil output ditulis ke tabel MaxCompute berdasarkan partisi. Hal ini mendukung analisis data selanjutnya.
Saran penyetelan kinerja umum
Alihkan sumber daya komputasi heterogen
Inferensi CPU tidak efisien untuk model besar, seperti model 8B dan lebih besar. Alihkan ke sumber daya komputasi Kuota GU atau Kuota Token untuk inferensi.
Pemrosesan paralel partisi data
Untuk pekerjaan inferensi offline skala besar, gunakan API
rebalanceuntuk melakukan sharding data guna pemrosesan paralel.