Menyajikan model terbuka menggunakan container premium Hex-LLM di Cloud TPU

Hex-LLM, model bahasa besar (LLM) efisiensi tinggi yang melayani XLA, adalah Framework penayangan LLM Vertex AI yang dirancang dan dioptimalkan untuk di hardware Cloud TPU. Hex-LLM menggabungkan teknologi layanan LLM seperti batching berkelanjutan dan PagedAttention dengan Pengoptimalan Vertex AI yang disesuaikan untuk XLA dan Cloud TPU. Ini adalah konfigurasi efisiensi tinggi dan inferensi LLM berbiaya rendah di Cloud TPU untuk model open source.

Hex-LLM tersedia di Model Garden melalui model playground, deployment sekali klik, dan notebook.

Fitur

Hex-LLM didasarkan pada project open source dengan pengoptimalan Google untuk XLA dan Cloud TPU. Hex-LLM mencapai throughput yang tinggi dan latensi yang rendah saat melayani LLM yang sering digunakan.

Hex-LLM mencakup pengoptimalan berikut:

  • Algoritma pengelompokan berkelanjutan berbasis token untuk membantu memastikan model sepenuhnya menggunakan perangkat keras dengan jumlah besar permintaan bersamaan.
  • Penulisan ulang lengkap kernel atensi yang dioptimalkan untuk XLA.
  • Strategi paralelisme data dan tensor yang fleksibel dengan metode sharding bobot yang sangat dioptimalkan untuk menjalankan LLM secara efisien pada beberapa chip Cloud TPU.

Hex-LLM mendukung berbagai LLM padat dan jarang:

  • Gemma 2B dan 7B
  • Gemma 2 9B dan 27B
  • Llama 2 7B, 13B dan 70B
  • Llama 3 8B dan 70B
  • Mistral 7B dan Mixtral 8x7B

Hex-LLM juga menyediakan berbagai fitur, seperti berikut:

  • Hex-LLM disertakan dalam satu container. Hex-LLM mengemas server API, inferensi, dan model yang didukung ke dalam satu image Docker agar yang di-deploy.
  • Kompatibel dengan model Memeluk Wajah format font. Hex-LLM dapat memuat model {i>Hgging Face<i} dari disk lokal, yakni model Hugging Face Hub, dan bucket Cloud Storage.
  • Kuantisasi menggunakan bitsandbytes dan AWQ.
  • Pemuatan LoRA dinamis. Hex-LLM mampu memuat bobot LoRA dengan membaca argumen permintaan selama penayangan.

Memulai di Model Garden

Container penyaluran Cloud TPU Hex-LLM diintegrasikan ke dalam Model Garden. Anda dapat mengakses teknologi penayangan ini melalui playground, deployment sekali klik, dan notebook Colab Enterprise untuk berbagai model.

Gunakan playground

Playground Model Garden adalah Vertex AI yang telah di-deploy endpoint yang dapat dijangkau dengan mengirimkan permintaan dalam kartu model.

  1. Masukkan perintah dan, jika perlu, sertakan argumen untuk permintaan Anda.

  2. Klik SUBMIT untuk mendapatkan respons model dengan cepat.

Coba dengan Gemma!

Gunakan deployment sekali klik

Anda dapat men-deploy endpoint Vertex AI kustom dengan Hex-LLM menggunakan kartu model.

  1. Buka halaman kartu model lalu klik Deploy.

  2. Untuk variasi model yang ingin Anda gunakan, pilih model Cloud TPU Jenis mesin v5e untuk deployment.

  3. Klik Deploy di bagian bawah untuk memulai proses deployment. Anda menerima dua pemberitahuan email; satu saat model diupload dan satu lagi saat endpoint sudah siap.

Menggunakan notebook Colab Enterprise

Untuk fleksibilitas dan penyesuaian, Anda dapat menggunakan Colab Enterprise contoh notebook untuk men-deploy endpoint Vertex AI dengan Hex-LLM dengan menggunakan Vertex AI SDK untuk Python.

  1. Buka halaman kartu model, lalu klik Buka notebook.

  2. Pilih notebook Serving Vertex. Notebook ini akan dibuka di Colab Enterprise.

  3. Jalankan notebook untuk men-deploy model menggunakan Hex-LLM, lalu kirim permintaan prediksi ke endpoint. Cuplikan kode untuk deployment tersebut adalah sebagai berikut:

hexllm_args = [
    f"--model=google/gemma-2-9b-it",
    f"--tensor_parallel_size=4",
    f"--hbm_utilization_factor=0.8",
    f"--max_running_seqs=512",
]
hexllm_envs = {
    "PJRT_DEVICE": "TPU",
    "MODEL_ID": "google/gemma-2-9b-it",
    "DEPLOY_SOURCE": "notebook",
}
model = aiplatform.Model.upload(
    display_name="gemma-2-9b-it",
    serving_container_image_uri=HEXLLM_DOCKER_URI,
    serving_container_command=[
        "python", "-m", "hex_llm.server.api_server"
    ],
    serving_container_args=hexllm_args,
    serving_container_ports=[7080],
    serving_container_predict_route="/generate",
    serving_container_health_route="/ping",
    serving_container_environment_variables=hexllm_envs,
    serving_container_shared_memory_size_mb=(16 * 1024),
    serving_container_deployment_timeout=7200,
)

endpoint = aiplatform.Endpoint.create(display_name="gemma-2-9b-it-endpoint")
model.deploy(
    endpoint=endpoint,
    machine_type="ct5lp-hightpu-4t",
    deploy_request_timeout=1800,
    service_account="<your-service-account>",
    min_replica_count=1,
    max_replica_count=1,
)

Anda dapat mengubah argumen peluncuran server Hex-LLM berikut untuk penayangan kustom:

  • --model: Model yang akan dimuat. Anda bisa menentukan ID model Wajah Memeluk, jalur absolut lokal, atau jalur bucket Cloud Storage.
  • --tokenizer: Tokenizer yang akan dimuat. Bisa berupa ID model Wajah Memeluk, jalur absolut lokal, atau jalur bucket Cloud Storage. Nilai defaultnya adalah sama seperti yang ada di --model.
  • --enable_jit: Apakah akan mengaktifkan mode JIT. Nilai defaultnya adalah True.
  • --enable_lora: Menentukan apakah akan mengaktifkan mode pemuatan LoRA. Nilai defaultnya adalah False.
  • --max_lora_rank: Peringkat LoRA maksimum yang didukung untuk adaptor LoRA, yang ditentukan dalam permintaan. Nilai defaultnya adalah 16.
  • --data_parallel_size: Jumlah replika paralel data. Nilai defaultnya adalah 1.
  • --tensor_parallel_size: Jumlah replika paralel tensor. Nilai defaultnya adalah 1.
  • --max_running_seqs: Jumlah maksimum permintaan yang dapat diproses oleh server secara serentak. Semakin besar argumen ini, semakin tinggi throughput server dapat dicapai, tetapi dengan potensi efek buruk pada latensi. Nilai defaultnya adalah 256.
  • --hbm_utilization_factor: Persentase Cloud TPU gratis HBM yang dapat dialokasikan untuk cache KV setelah bobot model dimuat. Menyetel argumen ini ke nilai yang lebih rendah dapat secara efektif mencegah HBM Cloud TPU kehabisan memori. Nilai defaultnya adalah 0.9.
  • --seed: Seed untuk menginisialisasi semua generator angka acak. Mengubah argumen ini dapat memengaruhi output yang dihasilkan untuk perintah yang sama. Nilai defaultnya adalah 0.

Meminta kuota Cloud TPU

Di Model Garden, kuota default Anda adalah empat Cloud TPU v5e chip di region us-west1. Kuota ini berlaku untuk deployment sekali klik, Deployment notebook Colab Enterprise. Untuk meminta kuota tambahan, lihat Meminta biaya yang lebih tinggi kuota.