All Products
Search
Document Center

MaxCompute:Fungsi AI MaxFrame

Last Updated:Aug 25, 2026

Dokumen ini menjelaskan cara menggunakan fungsi AI MaxFrame di Alibaba Cloud MaxCompute dan menyediakan kasus penggunaan untuk memulai aplikasi inferensi offline model bahasa besar.

Ikhtisar

Fungsi AI MaxFrame merupakan solusi end-to-end untuk inferensi offline model bahasa besar (LLM) pada platform Alibaba Cloud MaxCompute. Fungsi ini mengintegrasikan pemrosesan data dengan kemampuan AI secara mulus, sehingga menyederhanakan adopsi model bahasa besar tingkat enterprise.

  • Filosofi desain: "Data masuk, hasil keluar." Pendekatan ini memungkinkan Anda menggunakan framework Python MaxFrame 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.

  • Kasus penggunaan: Fungsi ini ideal untuk memproses volume besar data terstruktur, seperti analisis log dan log perilaku pengguna, serta data tidak terstruktur untuk tugas seperti terjemahan teks, ringkasan dokumen, dan vektorisasi. Fungsi ini mampu memproses data berskala petabyte dalam satu pekerjaan dan mencapai latensi rendah serta skalabilitas linear melalui arsitektur komputasi terdistribusinya. Anda dapat menggunakannya untuk mengekstraksi informasi terstruktur dari teks, mengatur dan meringkas konten, menghasilkan abstrak, menerjemahkan bahasa, menilai kualitas teks, serta mengklasifikasikan sentimen. Hal ini sangat menyederhanakan pemrosesan data untuk model bahasa besar dan meningkatkan kualitas hasilnya.

  • Arsitektur

    Fungsi AI MaxFrame menyediakan antarmuka generate yang fleksibel dan umum, serta antarmuka task yang ringkas dan spesifik untuk skenario seperti terjemahan teks, ekstraksi data terstruktur, dan vektorisasi. Anda memilih model dan memberikan tabel MaxCompute serta prompt sebagai input.

    Saat Anda memanggil antarmuka tersebut, MaxFrame pertama-tama melakukan sharding data pada tabel input. Anda dapat mengatur tingkat konkurensi yang sesuai berdasarkan volume data dan meluncurkan sekelompok worker untuk menjalankan pekerjaan komputasi. Setiap worker menggunakan templat prompt yang disediakan untuk merender dan menyusun input model dari baris data, menjalankan pekerjaan inferensi, lalu menulis hasil serta status keberhasilan kembali ke MaxCompute.

    Gambar berikut menunjukkan arsitektur dan alur kerjanya.

    image.png

  • Keunggulan utama:

    • Kemudahan penggunaan: API Python yang familiar, pustaka model siap pakai, dan biaya penerapan nol.

    • Skalabilitas: Memanfaatkan kuota CU MaxCompute, kuota GU, dan sumber daya Inference Quota untuk mendukung pemrosesan paralel skala besar dan meningkatkan throughput token secara keseluruhan.

    • Integrasi data dan AI: Selesaikan 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 kasus penggunaan umum, termasuk terjemahan, ekstraksi data terstruktur, dan vektorisasi.

Persyaratan

  • 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: 3.11.

  • Versi SDK yang didukung: Pastikan versi SDK MaxFrame Anda 2.7.1 atau lebih baru. Anda dapat memeriksa versi dengan menjalankan salah satu perintah berikut:

    // Untuk Windows
    pip list | findstr maxframe
    
    // Untuk Linux
    pip list | grep maxframe

    Jika versi Anda sudah usang, jalankan pip install --upgrade maxframe untuk meningkatkan ke versi terbaru.

  • Instal klien MaxFrame terbaru.

Model yang didukung

MaxFrame menyediakan dukungan siap pakai untuk serangkaian model bahasa besar bawaan, termasuk Qwen 3, DeepSeek-R1-Distill-Qwen, dan Qwen3-embedding. Fungsi ini juga memungkinkan Anda memanggil model flagship komersial dari Model Studio, seperti model multimodal qwen3.7-max, qwen3.6-plus, qwen3.6-flash, deepseek-v4-pro, deepseek-v4-flash, dan qwen3-vl-embedding, serta model teks text-embedding-v4. Semua model di-hosting secara offline dalam platform MaxCompute. Hal ini menghilangkan kebutuhan untuk mengelola unduhan model, distribusi, atau batas konkurensi API. Anda dapat menggunakan model tersebut dengan panggilan API sederhana, yang memungkinkan Anda memanfaatkan sumber daya komputasi besar-besaran MaxCompute untuk menyelesaikan tugas inferensi offline dengan throughput token dan konkurensi tinggi secara keseluruhan.

Model yang didukung

Jenis model

Nama model

Kuota

Model komersial Model Studio

  • qwen3.8-max

  • qwen3.7-max

  • qwen3.7-plus

  • qwen3.7-flash

  • qwen3.7-text-embedding

  • qwen3-vl-embedding

  • text-embedding-v4

  • qwen3.6-plus

  • qwen3.6-flash

  • deepseek-v4-pro

  • deepseek-v4-flash

  • qwen3.5-397b-a17b

  • qwen3.5-omni-plus

  • qwen3-asr-flash

  • tongyi-embedding-vision-plus

  • Layanan Inferensi AI Pay-as-you-go (Token)

Model open-source seri Qwen 3

  • Qwen3-0.6B

  • Qwen3-1.7B

  • Qwen3-4B

  • Qwen3-8B

  • Qwen3-14B

  • CU Standar Pay-as-you-go (Compute Unit)

  • CU Standar Langganan (Compute Unit)

  • GU Standar Langganan (GPU Unit)

Model open-source Qwen Embedding

  • Qwen3-Embedding-8B

  • GU Standar Langganan (GPU Unit)

Model open-source seri Deepseek-R1-Distill-Qwen

  • DeepSeek-R1-Distill-Qwen-1.5B

  • DeepSeek-R1-Distill-Qwen-7B

  • DeepSeek-R1-Distill-Qwen-14B

  • CU Standar Pay-as-you-go (Compute Unit)

  • CU Standar Langganan (Compute Unit)

Model open-source Deepseek-R1-0528-Qwen3

  • DeepSeek-R1-0528-Qwen3-8B

  • CU Standar Pay-as-you-go (Compute Unit)

  • CU Standar Langganan (Compute Unit)

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

Compute Unit (CU) adalah sumber daya komputasi CPU tujuan umum (1 vCPU dan 4 GB memori) yang cocok untuk model kecil dan tugas inferensi skala kecil.

Konfigurasi:

# Gunakan sumber daya komputasi kuota CU.
options.session.quota_name = "mf_cpu_quota"

Sumber daya kuota GU

GPU Unit (GU) adalah sumber daya komputasi GPU yang dioptimalkan untuk inferensi LLM. Sumber daya ini 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 Inference Quota (penagihan berbasis token)

Opsi ini memungkinkan Anda memanggil model bahasa besar komersial dari Model Studio, seperti qwen3-max dan text-embedding-v4. Penagihan didasarkan pada konsumsi token aktual. Pendekatan ini menghilangkan kebutuhan untuk menyediakan sumber daya CU atau GU dan mengelola infrastruktur dasar, sehingga menawarkan solusi yang fleksibel, nyaman, dan hemat biaya.

Referensi API

Fungsi AI MaxFrame menyediakan dua antarmuka untuk menyeimbangkan fleksibilitas dengan kemudahan penggunaan: antarmuka umum generate dan antarmuka spesifik tugas task.

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, dikemas dalam DataFrame.

prompt_template

Ya

Daftar pesan yang kompatibel dengan format pesan chat OpenAI. Anda dapat menggunakan sintaksf-string dalam konten untuk mereferensikan kolom DataFrame.

Spesifik tugas: task

Antarmuka spesifik skenario: Task

Antarmuka tugas standar yang telah ditentukan menyederhanakan pengembangan untuk kasus penggunaan umum. Antarmuka task yang saat ini didukung meliputi translate, extract, dan embed.

  • Parameter utama

    Parameter

    Wajib

    Deskripsi

    model_name

    Ya

    Nama model yang akan digunakan.

    df

    Ya

    Teks atau data yang akan dianalisis, dikemas dalam DataFrame.

    task interface

    Ya

    • translate: melakukan terjemahan bahasa.

    • extract: melakukan ekstraksi data terstruktur.

    • embed: melakukan vektorisasi.

  • Contoh penggunaan

    from maxframe.learn.contrib.llm.models.managed import ManagedTextLLM
    
    llm = ManagedTextLLM(name="<model_name>")
    
    # Terjemahkan teks.
    translated_df = llm.translate(
        df["english_column"],
        source_language="english",
        target_language="Chinese",
        examples=[("Hello", "你好"), ("Goodbye", "再见")],
    )
    
    translated_df.execute()

Kasus penggunaan

Kuota GU

Skenario kuota GU

Terjemahan bahasa

Skenario: Perusahaan multinasional perlu menerjemahkan 100.000 kontrak berbahasa Inggris ke dalam bahasa Tiongkok 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. Tentukan templat prompt.
messages = [
    {
        "role": "system",
        "content": "Anda adalah ahli terjemahan dokumen yang dapat menerjemahkan teks bahasa Inggris ke bahasa Tiongkok dengan lancar.",
    },
    {
        "role": "user",
        "content": "Terjemahkan teks bahasa Inggris berikut ke dalam bahasa Tiongkok. 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`, tentukan 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 menimbulkan 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 input. Untuk praktik pengembangan 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()

Kuota Inferensi

Skenario kuota inferensi

Vektorisasi teks: text-embedding-v4

Skenario: Gunakan model komersial Model Studio 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 model bahasa besar komersial dari Model Studio.

Contoh

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. Buat instance model text-embedding-v4 (menggunakan Inference Quota).
# Muat model text-embedding-v4 dari kumpulan model publik.
from maxframe.learn.utils import read_odps_model

llm = read_odps_model("text-embedding-v4", project="bigdata_public_modelset")

# 2. Baca data.
df = md.read_odps_table("user_feedback_table")

# 3. Lakukan vektorisasi.
result_df = llm.embed(
    df["query"],
    running_options={"max_tokens": 1024, "verbose": True},
    simple=True,
).execute()

# 4. Tulis hasil ke tabel MaxCompute.
result_df.to_odps_table("feedback_analysis_result")

Pemahaman gambar: qwen3.6-plus

Skenario: Skenario ini cocok untuk inferensi berkualitas tinggi dan analisis teks kompleks atau tugas pemrosesan data multimodal yang memerlukan model besar atau model bahasa besar komersial dari Model Studio. Sumber daya dikonsumsi sesuai permintaan, membantu Anda mengendalikan biaya.

Contoh

import os

import pandas as pd
import maxframe.dataframe as md
from maxframe import new_session
from maxframe.config import options
from maxframe.learn.contrib.llm import ImageContentType
from maxframe.learn.utils import read_odps_model
from odps import ODPS

# Konfigurasikan mesin eksekusi: DPE terlebih dahulu.
options.dag.settings = {
    "engine_order": ["DPE", "MCSQL"],
}

# 1. Buat koneksi ODPS.
o = ODPS(
    os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
    os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
    project="<your-project-name>",
    endpoint="<your-endpoint>",  # Contoh: https://service.cn-shanghai.maxcompute.aliyun.com/api
)

# 2. Konfigurasikan mesin dan buat sesi.
# Inferensi model VL Model Studio berjalan pada mesin DPE dan ditagih berdasarkan konsumsi token.
# Tidak diperlukan penyediaan sumber daya CU/GU.

# Buat sesi MaxFrame.
session = new_session(o)
print(f"ID Sesi: {session.session_id}")
print(f"Logview: {session.get_logview_address()}")

## 3. Muat model VL Model Studio.
# Muat model pemahaman multimodal yang telah terdaftar sebelumnya dari kumpulan model publik MaxCompute.
image_llm = read_odps_model(
    "qwen3.6-plus", project="bigdata_public_modelset", odps_entry=o
)

## 4. Siapkan data gambar OSS.
# Gunakan format `oss:////` dan berikan kredensial akses OSS melalui `storage_options`.
# Konfigurasi OSS.
OSS_ENDPOINT = "oss-cn-shanghai-internal.aliyuncs.com"  # Ganti dengan Endpoint OSS Anda.
OSS_BUCKET = "your-bucket"                              # Ganti dengan nama Bucket Anda.
OSS_PREFIX = "images"                                   # Ganti dengan awalan path gambar.

storage_options = {
    "access_key_id": os.getenv("OSS_ACCESS_KEY_ID"),
    "access_key_secret": os.getenv("OSS_ACCESS_KEY_SECRET"),
}

# Susun daftar URL gambar.
image_urls = [
    f"oss://{OSS_ENDPOINT}/{OSS_BUCKET}/{OSS_PREFIX}/image{i}.jpg"
    for i in range(1, 9)
]

df = md.DataFrame({"image_url": image_urls})
df.execute()

## 5. Panggil model VL untuk pemahaman gambar.
# Gunakan antarmuka `generate()` untuk mengirimkan prompt teks dan gambar OSS ke model.

cp = image_llm.content_part

result_df = image_llm.generate(
    df,
    messages=[
        {
            "role": "user",
            "content": [
                cp.text("Jelaskan gambar ini dalam satu kalimat."),
                cp.image(
                    data=df.image_url,
                    type=ImageContentType.IMAGE_URL,
                    storage_options=storage_options,
                ),
            ],
        }
    ],
    simple_output=True,
    params={"max_tokens": 128},
)

## 6. Jalankan inferensi dan lihat hasilnya.
# MaxFrame menggunakan eksekusi lazy. Panggil `.execute()` untuk memicu komputasi aktual.
result = result_df.execute()
print(result)

## 7. Bersihkan sumber daya.
session.destroy()
print("Sesi dihapus.")

Optimasi kinerja

Inferensi paralel

MaxFrame menggunakan komputasi paralel untuk menjalankan inferensi offline dalam skala besar:

  1. Sharding data: Antarmuka rebalance mendistribusikan tabel data input secara merata di beberapa node pekerja berdasarkan jumlah partisi yang ditentukan (num_partitions).

  2. Pemuatan model paralel: Setiap pekerja memuat dan melakukan pre-warm model secara independen. Hal ini menghindari latensi cold start akibat pemuatan model.

  3. Agregasi hasil: Hasil output ditulis ke tabel MaxCompute berdasarkan partisi, yang mendukung analisis data selanjutnya.

Rekomendasi penyetelan

  1. Beralih ke sumber daya komputasi heterogen

    Untuk model besar (8B parameter atau lebih), inferensi CPU tidak efisien. Kami menyarankan beralih ke sumber daya kuota GU atau Inference Quota untuk inferensi.

  2. Memproses partisi data secara paralel

    Untuk pekerjaan inferensi skala besar, gunakan antarmuka rebalance untuk melakukan sharding data guna pemrosesan paralel berdasarkan distribusi data Anda.