All Products
Search
Document Center

MaxCompute:Fungsi AI MaxFrame

Last Updated:Apr 03, 2026

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 generate yang fleksibel dan tujuan umum serta antarmuka task yang 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:

    image.png

  • 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 maxframe

    Jika versi Anda sudah usang, jalankan pip install --upgrade maxframe untuk 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

  • 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 Qwen3 Embedding

  • Qwen3-Embedding-8B

  • GU Standar Langganan (GPU Unit)

  • Qwen3-Embedding-0.6

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

  • CU Standar Langganan (Compute Unit)

  • GU Standar Langganan (GPU Unit)

Model 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)

DeepSeek-R1-0528-Qwen3-8B

  • DeepSeek-R1-0528-Qwen3-8B

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

  • CU Standar Langganan (Compute Unit)

Model komersial Model Studio (Bailian)

  • qwen3-max

  • text-embedding-v4

    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 f-string dalam konten untuk mereferensikan kolom DataFrame.

    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

    • translate: terjemahan teks

    • extract: ekstraksi data terstruktur

    • embed: vektorisasi

    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:

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

    2. Pemuatan model paralel: Setiap worker 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. Hal ini mendukung analisis data selanjutnya.

    Saran penyetelan kinerja umum

    1. 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.

    2. Pemrosesan paralel partisi data

      Untuk pekerjaan inferensi offline skala besar, gunakan API rebalance untuk melakukan sharding data guna pemrosesan paralel.