PAI-EAS menyediakan solusi satu atap untuk menerapkan model bahasa besar (LLM) populer seperti DeepSeek dan Qwen hanya dengan satu klik, menyederhanakan tugas-tugas kompleks seperti konfigurasi lingkungan, penyetelan performa, dan manajemen biaya.
Mulai cepat: Terapkan model open source
Contoh ini menunjukkan cara menerapkan model open source Qwen3-8B. Proses yang sama berlaku untuk model lain yang didukung.
Langkah 1: Buat layanan
-
Masuk ke Konsol PAI. Pilih Wilayah di bagian atas halaman. Kemudian, pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).
Klik Deploy Service. Di area Scenario-based Model Deployment, klik LLM Deployment.
Konfigurasikan parameter kunci berikut:
Parameter
Nilai
Model Settings
Pilih Public Model, lalu cari dan pilih Qwen3-8B.
Inference Engine
Pilih vLLM (Direkomendasikan, kompatibel dengan API OpenAI).
Deployment Template
Pilih Single Machine. Sistem secara otomatis mengisi parameter yang direkomendasikan, seperti Tipe instans dan image, berdasarkan templat.
Klik Deploy. Penerapan layanan memerlukan waktu sekitar 5 menit. Ketika status layanan berubah menjadi Running, penerapan berhasil.
CatatanJika penerapan layanan gagal, lihat Masalah penerapan dan status layanan untuk troubleshooting.
Langkah 2: Verifikasi layanan
Setelah diterapkan, gunakan debugging online untuk memverifikasi bahwa layanan berjalan dengan benar.
Klik nama layanan untuk membuka halaman detailnya, lalu beralih ke tab Online Debugging.
Konfigurasikan parameter permintaan berikut:
Parameter
Nilai
Request method
POST
URL path
Masukkan path URL lengkap dalam format
/api/predict/{service_name}/v1/chat/completions, di mana{service_name}adalah nama layanan yang telah Anda terapkan. Contoh:/api/predict/llm_qwen3_8b_test/v1/chat/completions.Body
{ "model": "Qwen3-8B", "messages": [ {"role": "user", "content": "Hello!"} ], "max_tokens": 1024 }Headers
Pastikan permintaan mencakup
Content-Type: application/json.Klik Send Request. Anda seharusnya menerima respons yang berisi balasan dari model.
Jika permintaan mengembalikan kode status 200 dan respons JSON bertipe chat.completion, layanan telah diterapkan dan berjalan dengan benar. Badan respons berisi balasan model di bidang content.
Panggil API
Sebelum memanggil layanan, buka tab View Endpoint Information di halaman detail layanan untuk mendapatkan Titik akhir dan token.
Contoh berikut menunjukkan cara memanggil API layanan:
cURL
curl -X POST <EAS_ENDPOINT>/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: <EAS_TOKEN>" \
-d '{
"model": "<model_name>",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "hello"
}
],
"max_tokens":1024,
"temperature": 0.7,
"top_p": 0.8,
"stream":true
}'Pada kode di atas, ganti parameter berikut:
Ganti
<EAS_ENDPOINT>dan<EAS_TOKEN>dengan Titik akhir dan token layanan yang telah Anda terapkan.Ganti
<model_name>dengan nama model. Untuk vLLM atau SGLang, Anda dapat memperoleh nama model dari API daftar model di<EAS_ENDPOINT>/v1/models.curl -X GET <EAS_ENDPOINT>/v1/models -H "Authorization: <EAS_TOKEN>"
OpenAI SDK
Kami merekomendasikan penggunaan SDK Python resmi untuk berinteraksi dengan layanan. Pastikan Anda telah menginstal OpenAI SDK: pip install openai.
from openai import OpenAI
# 1. Konfigurasikan klien.
# Ganti <EAS_TOKEN> dengan token layanan yang telah Anda terapkan.
openai_api_key = "<EAS_TOKEN>"
# Ganti <EAS_ENDPOINT> dengan Titik akhir layanan yang telah Anda terapkan.
openai_api_base = "<EAS_ENDPOINT>/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
# 2. Dapatkan nama model.
# Untuk BladeLLM, setel model = "". BladeLLM tidak memerlukan parameter model
# dan tidak mendukung pengambilan nama model menggunakan client.models.list().
# Setel ke string kosong untuk memenuhi persyaratan parameter wajib SDK OpenAI.
models = client.models.list()
model = models.data[0].id
print(model)
# 3. Kirim permintaan chat.
# Output streaming (stream=True) dan non-streaming (stream=False) didukung.
stream = True
chat_completion = client.chat.completions.create(
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "hello"},
],
model=model,
top_p=0.8,
temperature=0.7,
max_tokens=1024,
stream=stream,
)
if stream:
for chunk in chat_completion:
print(chunk.choices[0].delta.content, end="")
else:
result = chat_completion.choices[0].message.content
print(result)Python requests
Jika Anda tidak ingin menambahkan dependensi pada OpenAI SDK, Anda dapat menggunakan pustaka requests.
import json
import requests
# Ganti <EAS_ENDPOINT> dengan Titik akhir layanan yang telah Anda terapkan.
EAS_ENDPOINT = "<EAS_ENDPOINT>"
# Ganti <EAS_TOKEN> dengan token layanan yang telah Anda terapkan.
EAS_TOKEN = "<EAS_TOKEN>"
# Ganti <model_name> dengan nama model. Anda dapat memperolehnya dari API <EAS_ENDPOINT>/v1/models.
# Untuk BladeLLM, API ini tidak didukung. Anda dapat menghilangkan bidang "model" atau mengaturnya ke "".
model = "<model_name>"
url = f"{EAS_ENDPOINT}/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": EAS_TOKEN,
}
stream = True
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "hello"},
]
req = {
"messages": messages,
"stream": stream,
"temperature": 0.7,
"top_p": 0.8,
"max_tokens": 1024,
"model": model,
}
response = requests.post(
url,
json=req,
headers=headers,
stream=stream,
)
if stream:
for chunk in response.iter_lines(chunk_size=8192, decode_unicode=False):
msg = chunk.decode("utf-8")
# Kode berikut memproses respons streaming berformat Server-Sent Events (SSE).
if msg.startswith("data:"):
info = msg[6:]
if info == "[DONE]":
break
else:
resp = json.loads(info)
if resp["choices"][0]["delta"].get("content") is not None:
print(resp["choices"][0]["delta"]["content"], end="", flush=True)
else:
resp = json.loads(response.text)
print(resp["choices"][0]["message"]["content"])Buat UI web lokal
Gradio adalah pustaka UI Python yang membantu Anda membangun antarmuka interaktif untuk model dengan cepat. Ikuti langkah-langkah berikut untuk menjalankan UI web Gradio secara lokal.
Unduh kode
Siapkan lingkungan
Diperlukan Python 3.10 atau versi lebih baru, dan Anda harus menginstal dependensi dengan menjalankan
pip install openai gradio.Jalankan aplikasi web
Di terminal, jalankan perintah berikut. Ganti
<EAS_ENDPOINT>dan<EAS_TOKEN>dengan Titik akhir dan token layanan yang telah diterapkan.python webui_client.py --eas_endpoint "<EAS_ENDPOINT>" --eas_token "<EAS_TOKEN>"Setelah startup berhasil, URL lokal akan ditampilkan (biasanya
http://127.0.0.1:7860). Buka URL ini di browser untuk mengaksesnya.
Integrasikan dengan aplikasi pihak ketiga
Anda dapat mengintegrasikan layanan PAI-EAS dengan berbagai klien dan alat pengembangan yang mendukung API OpenAI. Pengaturan konfigurasi utamanya adalah Titik akhir layanan, token, dan nama model.
Dify
Instal penyedia model yang kompatibel dengan OpenAI-API
Klik avatar Anda di pojok kanan atas dan pilih Settings. Di panel kiri, pilih Model Providers. Jika OpenAI-API-compatible tidak ada di Model List, temukan di daftar di bawah dan klik Install.
Tambahkan model
Klik Add Model di pojok kanan bawah kartu OpenAI-API-compatible dan konfigurasikan parameter berikut:
Model type: Pilih LLM.
Model name: Untuk penerapan vLLM, kirim permintaan GET ke Titik akhir
/v1/modelsuntuk mendapatkan namanya. Untuk contoh ini, masukkan Qwen3-8B.API key: Masukkan token layanan PAI-EAS Anda.
API endpoint URL: Masukkan Titik akhir publik layanan PAI-EAS Anda dan tambahkan /v1 di akhir.
Uji integrasi
Di halaman utama Dify, klik Create Blank App, pilih tipe Chatflow, masukkan nama aplikasi dan informasi lainnya, lalu klik Create.
Klik node LLM, pilih model yang telah Anda tambahkan, dan atur konteks serta prompt. Pilih Qwen3-8B CHAT dari kategori OpenAI-API-compatible. Di prompt SYSTEM, masukkan deskripsi peran dan referensikan variabel konteks sys.query. Di area USER, tambahkan variabel sys.query dan sys.files. Anda dapat menyesuaikan parameter model seperti Max Tokens (default 512), Presence Penalty, dan Thinking Mode sesuai kebutuhan.
Klik Preview di pojok kanan atas dan masukkan pertanyaan.
Bot memproses pertanyaan melalui workflow dan mengembalikan balasan. Di bagian atas area percakapan ditampilkan status Deep thinking dan waktu yang berlalu.
Chatbox
Buka Chatbox untuk mengunduh dan menginstal klien untuk perangkat Anda, atau klik Launch Web App untuk versi web. Contoh ini menggunakan macOS M3.
Tambahkan penyedia model. Klik Settings, tambahkan penyedia model, masukkan nama seperti
pai, dan pilih OpenAI API Compatible sebagai mode API.Pilih penyedia PAI dan konfigurasikan parameter berikut:
API key: Masukkan token layanan PAI-EAS Anda.
API host: Masukkan Titik akhir publik layanan PAI-EAS Anda dan tambahkan /v1 di akhir.
API path: Biarkan bidang ini kosong.
Model: Klik Get untuk menambahkan model. Mesin inferensi BladeLLM tidak mendukung pengambilan model berbasis API. Jika Anda menggunakan BladeLLM, tambahkan model secara manual dengan mengklik New.
Uji chat. Klik New Chat dan pilih layanan model di pojok kanan bawah kotak input teks.
Bagian atas antarmuka chat menampilkan prompt sistem, seperti
You are a helpful assistant.. Masukkan pertanyaan seperti "Who are you?" di kotak teks dan kirim. Area balasan asisten menampilkan bagian Deep thinking yang diciutkan dengan waktu berpikir, diikuti oleh respons model.
Cherry Studio
Instal klien
Kunjungi Cherry Studio untuk mengunduh dan menginstal klien.
Anda juga dapat mengunduhnya dari
https://github.com/CherryHQ/cherry-studio/releases.Konfigurasikan layanan model
Klik ikon pengaturan di pojok kiri bawah. Di bagian Model Service, klik Add. Di Provider name, masukkan nama kustom, seperti PAI, dan atur tipe penyedia ke OpenAI. Klik OK.
Di bidang API key, masukkan token layanan PAI-EAS Anda. Di bidang API address, masukkan Titik akhir publik layanan PAI-EAS Anda.
Klik Add dan masukkan nama model di bidang Model ID. Untuk penerapan vLLM, Anda dapat memperoleh nama dengan mengirim permintaan GET ke API
/v1/models. Misalnya, masukkanQwen3-8B. Nama bersifat case-sensitive. Untuk API Address, masukkan URL tetapi hilangkan nomor versi v1 di akhir. Jika URL diakhiri dengan karakter#, sistem akan memaksa penggunaan path/v1/chat/completions. Setelah konfigurasi selesai, bagian Model secara otomatis mengidentifikasi dan mencantumkan model yang tersedia, seperti Qwen3-8B.Klik Test di samping bidang input API key untuk memverifikasi konektivitas.
Uji model dengan cepat
Kembali ke antarmuka chat, pilih model di bagian atas, dan mulai percakapan.
Misalnya, jika Anda memasukkan Who are you? dan model Qwen3-8B merespons dengan perkenalan diri, hal ini menunjukkan bahwa model telah diterapkan dan berfungsi dengan benar.
Penagihan
Biaya mencakup, namun tidak terbatas pada, hal-hal berikut. Untuk informasi lebih lanjut, lihat Penagihan PAI-EAS.
Biaya komputasi: Ini adalah biaya utama. Saat membuat layanan PAI-EAS, pilih sumber daya pay-as-you-go atau subscription sesuai kebutuhan Anda.
Biaya penyimpanan: Jika Anda menggunakan model kustom, file model disimpan di Object Storage Service (OSS), yang mengenakan biaya penyimpanan.
Penggunaan produksi
Pilih model yang tepat
Tentukan skenario aplikasi Anda:
Percakapan umum: Selalu pilih model yang telah dituning instruksi, bukan model dasar, agar model memahami dan mengikuti instruksi Anda.
Generasi Kode: Pilih model khusus kode, seperti seri
Qwen3-Coder, karena biasanya jauh lebih unggul dibanding model tujuan umum dalam tugas terkait kode.Tugas spesifik domain: Jika tugas Anda sangat spesifik, seperti di bidang keuangan atau hukum, pertimbangkan untuk mencari model yang telah difine-tuning untuk domain tersebut, atau fine-tuning model tujuan umum sendiri.
Seimbangkan performa dan biaya: Model yang lebih besar umumnya lebih mumpuni tetapi memerlukan lebih banyak sumber daya komputasi dan memiliki biaya inferensi yang lebih tinggi. Mulailah dengan model yang lebih kecil, seperti model 7B, untuk validasi. Jika performanya tidak memenuhi kebutuhan Anda, coba model yang lebih besar.
Rujuk benchmark otoritatif: Anda dapat berkonsultasi dengan leaderboard seperti OpenCompass dan LMSys Chatbot Arena. Leaderboard ini mengevaluasi model dalam berbagai dimensi, termasuk penalaran, pemrograman, dan matematika, serta dapat memberikan panduan berharga untuk pemilihan model.
Pilih mesin inferensi yang tepat
vLLM/SGLang: Sebagai pilihan utama di komunitas open-source, keduanya menawarkan dukungan model yang luas serta dokumentasi dan contoh komunitas yang ekstensif, sehingga mudah diintegrasikan dan di-troubleshoot.
BladeLLM: Mesin inferensi yang dikembangkan oleh tim PAI Alibaba Cloud. Dioptimalkan secara mendalam untuk model tertentu, terutama seri Qwen, dan dapat mencapai performa lebih tinggi serta penggunaan memori GPU lebih rendah.
Optimasi inferensi
Terapkan LLM dengan routing cerdas: Mendistribusikan permintaan secara dinamis berdasarkan metrik real-time seperti throughput token dan penggunaan memori GPU. Pendekatan ini menyeimbangkan alokasi daya komputasi dan memori di seluruh instans inferensi, cocok untuk penerapan dengan beberapa instans inferensi dan beban permintaan yang tidak merata. Hal ini meningkatkan pemanfaatan sumber daya kluster dan stabilitas sistem.
Terapkan model Mixture of Experts (MoE) menggunakan expert parallelism dan pemisahan PD: Untuk model Mixture of Experts (MoE), pendekatan ini menggunakan teknik seperti expert parallelism (EP) dan pemisahan Prefill-Decode (PD) untuk meningkatkan throughput inferensi dan mengurangi biaya penerapan.
FAQ
Q: Layanan macet di status Pending
Ikuti langkah-langkah berikut untuk troubleshooting masalah ini:
Periksa status instans: Di halaman daftar layanan, klik nama layanan untuk membuka halaman detail. Di bagian Service Instance, periksa status instans. Jika menampilkan
insufficient resources, kelompok sumber daya publik saat ini tidak memiliki kapasitas yang cukup.Solusi (berdasarkan prioritas):
Opsi 1: Ubah tipe instans. Kembali ke halaman penerapan dan pilih model GPU yang berbeda.
Solusi 2: Gunakan sumber daya khusus. Untuk Resource Type, pilih kelompok sumber daya EAS untuk menggunakan sumber daya khusus (kelompok sumber daya harus dibuat terlebih dahulu).
Langkah pencegahan:
Buat kelompok sumber daya khusus untuk menghindari keterbatasan sumber daya publik.
Saat jam sibuk, uji di beberapa Wilayah.
Q: Error pemanggilan
Pemanggilan API mengembalikan error berikut:
Unsupported Media Type: Only 'application/json' is allowedPastikan header permintaan berisi
Content-Type: application/json.Pemanggilan API mengembalikan error berikut:
The model '<model_name>' does not exist.Mesin inferensi vLLM mengharuskan bidang model ditentukan dengan benar. Anda dapat memperoleh nama model dengan memanggil Titik akhir
/v1/modelsmenggunakan permintaan GET.
Untuk pertanyaan lainnya, lihat FAQ EAS.