All Products
Search
Document Center

MaxCompute:Kembangkan Fungsi AI pada resource GU

Last Updated:Jan 14, 2026

MaxFrame AI Function adalah solusi end-to-end dari Alibaba Cloud MaxCompute untuk skenario inferensi offline dengan Large Language Models (LLMs). Solusi ini mengintegrasikan pemrosesan data dengan kemampuan AI guna menurunkan hambatan penerapan aplikasi LLM tingkat enterprise. Topik ini menjelaskan cara menggunakan MaxFrame AI Function untuk memanggil LLM dengan resource GU.

Applicability

  • Persiapan lingkungan

    • Kit pengembangan perangkat lunak (SDK) MaxFrame versi 2.3.0 atau yang lebih baru.

    • Python versi 3.11.

    • Kuota resource GPU (GU) telah diaktifkan untuk proyek MaxCompute.

  • Konfigurasi izin

Konfigurasikan lingkungan

gu_quota_name diperlukan untuk menggunakan GPU.

import os
import maxframe.dataframe as md
import numpy as np
from maxframe import new_session
from maxframe.config import options
from maxframe.udf import with_running_options
from odps import ODPS
import logging

options.dag.settings = {
    "engine_order": ["DPE", "MCSQL"],
    "unavailable_engines": ["SPE"],
}

logging.basicConfig(level=logging.INFO)

# -------------------------------
# Inisialisasi Sesi MaxFrame
# -------------------------------
o = ODPS(
    # Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID diatur ke ID AccessKey Anda,
    # dan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET diatur ke Rahasia AccessKey Anda.
    # Jangan gunakan string ID AccessKey dan Rahasia AccessKey secara langsung.
    os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
    os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
    project='<your project>',
    endpoint='https://service.cn-<your region>.maxcompute.aliyun.com/api',
)

session = new_session(o)

options.session.gu_quota_name = "xxxxx" # Ganti dengan Nama Kuota GU Anda.

print("LogView address:", session.get_logview_address())

Panggil LLM terkelola (LLM.generate)

Langkah 1: Siapkan data masukan

import pandas as pd
from IPython.display import HTML

# Atur opsi tampilan untuk debugging.
pd.set_option("display.max_colwidth", None)
pd.set_option("display.max_columns", None)
HTML("<style>div.output_area pre {white-space: pre-wrap;}</style>")

# Buat daftar kueri.
query_list = [
    "What is the average distance between the Earth and the Sun?",
    "In what year did the American Revolutionary War begin?",
    "What is the boiling point of water?",
    "How can I quickly relieve a headache?",
    "Who is the main character in the Harry Potter series?",
]

# Konversi ke DataFrame MaxFrame.
df = md.DataFrame({"query": query_list})
df.execute() 

Langkah 2: Inisialisasi instans LLM

from maxframe.learn.contrib.llm.models.managed import ManagedTextGenLLM

llm = ManagedTextGenLLM(
    name="Qwen3-4B-Instruct-2507-FP8"  # Nama model harus sesuai persis.
)

Untuk informasi selengkapnya mengenai model yang didukung, lihat Model yang didukung untuk MaxFrame AI Function (terus diperbarui).

Langkah 3: Definisikan templat prompt

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Please answer the following question: {query}"},
]

Sintaksis templat:

  • Gunakan placeholder {column_name} untuk secara otomatis menggantinya dengan nilai dari bidang yang sesuai dalam DataFrame.

  • Dukungan percakapan multi-turn (daftar messages).

  • Prompt sistem (system) digunakan untuk mendefinisikan perilaku role.

Langkah 4: Jalankan tugas generasi

result_df = llm.generate(
    df,# Data masukan
    prompt_template=messages,
    running_options={"max_tokens": 4096, # Panjang output maksimum
                     "verbose": True # Aktifkan mode output log verbose
                    },
    params={"temperature": 0.7},
)

# Eksekusi dan dapatkan hasilnya.
result_df.execute()

Deskripsi output

result_df adalah DataFrame MaxFrame yang berisi bidang-bidang berikut:

Bidang

Tipe

Deskripsi

query

string

Data masukan asli

generated_text

string

Respons yang dihasilkan oleh model

finish_reason

string

Alasan, seperti stop atau length

usage.prompt_tokens

int

Jumlah token masukan

usage.completion_tokens

int

Jumlah token output

usage.total_tokens

int

Total jumlah token

Kiat debugging dan penyetelan performa

Optimisasi performa dan biaya

Optimisasi

Rekomendasi

Ukuran batch

Batasi setiap batch hingga < 100 item untuk menghindari OOM

Alokasi GU

gu=2 cocok untuk model 4B. Model yang lebih besar memerlukan GU lebih banyak.

Tingkat paralelisme

MaxFrame secara otomatis menjadwalkan pekerjaan konkuren. Kendalikan hal ini dengan num_workers.

Cache hasil antara

Gunakan to_odps_table() untuk menyimpan tabel antara dan menghindari komputasi ulang.

Pengaturan timeout

Tambahkan timeout=3600 untuk mencegah pekerjaan macet.

Kiat debugging

  • Lihat log eksekusi

    print(session.get_logview_address())  # Klik tautan untuk melihat log pekerjaan MaxFrame secara real-time.
  • Uji skala kecil

    df_sample = df.head(2)  # Ambil dua entri data untuk pengujian.
    result_sample = llm.generate(df_sample, prompt_template=messages, running_options={"gu": 2})
    result_sample.execute()
  • Periksa penggunaan sumber daya

    Anda dapat melihat status eksekusi pekerjaan secara detail di MaxFrame Logview.