Özel Model Sunumu ile özel LLM'ler sunun

Important

Bu özellik Beta sürümündedir. Çalışma alanı yöneticileri Bu özelliğe erişimi Önizlemeler sayfasından denetleyebilir. Bkz. Azure Databricks önizlemelerini yönetme.

Bu sayfada, vLLM altyapısı kullanılarak Model Sunma üzerinde özel büyük dil modellerinin (LLM) nasıl dağıtılacağı gösterilmektedir. Temel Model API'lerinde (FMAPI) bulunmayan ince ayarlı modeller, PEFT varyantları, çok modlu modeller ve diğer temel modelleri sunmak için bu iş akışını kullanın. Bu sayfanın sonundaki başlangıç not defteri , aşağıdaki adımlar için tüm çalıştırılabilir kodları içerir.

Özel LLM sunumu ne zaman kullanılır?

Azure Databricks, aşağıdaki kullanım örneklerinden birine sahip olduğunuzda özel LLM'nin sunulmasını önerir:

  • Azure Databricks üzerinde eğittiğiniz özel ağırlıklara sahip tam olarak ince ayarlanmış modeller.
  • FMAPI'de mevcut olmayan Hugging Face modelleri.
  • FMAPI'nin desteklemediği özel PEFT tarifleri.
  • MedGemma gibi FMAPI kataloğu dışındaki özel modeller.
  • Qwen/Qwen2.5-VL-3B-Instruct gibi çok modlu (görüntü-dil) modeller.
  • FMAPI'de bulunmayan ekleme modelleri, örneğin nomic-ai/nomic-embed-text-v2-moe.
  • 1xH100 (80 GB GPU belleği) üzerine sığan herhangi bir model.

Requirements

  • Özel LLM hizmeti Beta sürümündedir. Çalışma alanı yöneticileri Önizlemeler sayfasından bu özelliği etkinleştirebilir veya kapatabilir. Bkz. Azure Databricks önizlemelerini yönetme.

  • Sunucusuz GPU işlem. A10 GPU, daha küçük modeller için önerilen geliştirme ortamıdır ve daha büyük modeller için H100'dür.

  • MLflow 3.12 veya üzeri ve databricks-sdk>=0.102.0. Başlangıç not defteri, mlflow==3.12.0 ve uyumlu bir SDK sürümünü sabitler. Kendi ortamınızı oluşturursanız, bu sürümleri eşleştirin. Önceki SDK sürümleri, kayıt sırasında model artefaktlarını karşıya yüklerken zaman aşımına uğrayabilir. Bkz. Kayıt sırasında artefakt yükleme zaman aşımına uğruyor.

1. Adım: Ortamınızı ayarlama

A10 GPU ile sunucusuz GPU işlemlerinde not defteri oluşturun. vLLM'yi ve bağımlılıklarını yükleyin. Başlangıç not defteri, test edilmiş bir vLLM sürümünü sabitler.

Bağımlılıkları, kullanmak yerine %pip install üzerinden de belirtebilirsiniz.

Important

Çalışma dizininizi yerel sabit sürücü olarak ayarlayın (örneğin, kullanarak tempfile.mkdtemp()). /Workspace dosya sistemi, model ağırlıkları gibi büyük dosyaları desteklemez.

2. Adım: Modelinizi indirme

Model ağırlıklarını snapshot_download ile Hugging Face'ten indirin. Başlangıç not defteri örnek olarak kullanır Qwen/Qwen3-4B , ancak aşağıdakiler de dahil olmak üzere seçtiğiniz GPU'nun bellek bütçesine uyan herhangi bir modeli değiştirebilirsiniz:

  • Görüntü işleme dili kullanım örnekleri gibi Qwen/Qwen2.5-VL-3B-Instruct çok modüllü modeller.
  • openai/gpt-oss-120b gibi 1xH100’e sığan daha büyük modeller.

Modelinizin bellek ve performans gereksinimlerine göre bir GPU seçin.

GPU (Grafik İşleme Birimi) GPU belleği workload_type
T4 16GB GPU_SMALL
A100 80GB GPU_LARGE

3. Adım: Modeli vLLM ile yerel olarak test etme

Dağıtmadan önce, yerel bir vLLM sunucusu başlatarak modeli doğrudan sunucusuz GPU not defterinizde test edin. Yerel test, bir sunum uç noktası oluşturmadan önce modeli doğrulamanıza, vLLM parametreleriyle denemeler gerçekleştirmenize ve sorunları gidermenize olanak tanır.

Bilmeniz gereken önemli şeyler:

  • Sunucusuz GPU işlem, yerel test için yalnızca 3000–3999 bağlantı noktalarına izin verir. Bu aralıkta bir bağlantı noktası seçin; başlangıç not defteri 3080 kullanır.
  • vLLM sunucusu, /invocations adresinde OpenAI ile uyumlu bir API sunar.
  • Hem normal hem de akış isteklerini test edebilirsiniz.
  • Modeliniz için --dtype, --max-model-len ve --gpu-memory-utilization gibi parametreleri ayarlayın.
  • Daha hızlı başlatma için, bir miktar çıkarım performansı pahasına --enforce-eager ekleyin.
  • Daha büyük modeller için yerel test için bir H100 sunucusuz GPU değişkeni kullanın.

Yapılandırmadan memnun olduğunuzda, devam etmeden önce yerel sunucuyu durdurun.

4. Adım: Modeli özel bir giriş noktasıyla kaydetme

Bu adım, yerel kurulumunuzu Model Sunma'ya bağlar ve aşağıdaki yapılandırma gereksinimlerine sahiptir:

  • task , "llm/v1/chat" (çok modlu olanlar dahil sohbet modelleri) veya "llm/v1/embeddings" (gömme modelleri) olmalıdır. Bkz . Desteklenen görevler.
  • Giriş noktası, Model Sunma'nın beklediği bağlantı noktası olan 8080 numaralı bağlantı noktasında açılmalıdır.
  • Giriş noktası komutu, 3. Adımda test ettiğiniz şeyi yerel bağlantı noktanız yerine 8080 numaralı bağlantı noktasıyla yansıtmalıdır.
  • Giriş noktası MLflow model yapıtları klasöründen başlatılır, bu nedenle model yolları bu klasöre göredir.

Sohbet modeli için:

metadata = {
    "task": "llm/v1/chat",
    "entrypoint": (
        "python -u -m vllm.entrypoints.openai.api_server "
        "--model qwen3 --served-model-name qwen "
        "--host 0.0.0.0 --port 8080 "
        "--dtype float16 --max-model-len 16384 "
        "--gpu-memory-utilization 0.85"
    ),
}

Bir gömme modeli için, task değerini "llm/v1/embeddings" olarak ayarlayın ve sunucunuzu gömme modunda başlatın. Burada kullanılan vLLM sürümüyle, yani --runner pooling (eski vLLM sürümleri kullanır --task embed):

metadata = {
    "task": "llm/v1/embeddings",
    "entrypoint": (
        "python -u -m vllm.entrypoints.openai.api_server "
        "--model nomic-embed --served-model-name nomic-embed "
        "--runner pooling "
        "--host 0.0.0.0 --port 8080 "
        "--gpu-memory-utilization 0.85"
    ),
}

Desteklenen görevler

task Model türü Sorgu yüzeyi
llm/v1/chat Çok modüllü (görüntü dili) dahil olmak üzere sohbet modelleri chat.completions
llm/v1/embeddings Modelleri ekleme embeddings

Tanımladığınız task, giriş noktanızın gerçekte sunduğu şeyle eşleşmelidir: giriş noktasının bu görev için 8080 numaralı bağlantı noktasında OpenAI ile uyumlu API'yi sunması gerekir. Yukarıdaki örneklerde vLLM kullanılır, ancak bu sözleşmeyi karşılayan tüm sunucular çalışır. gibi llm/v1/completionsdiğer görev türleri desteklenmez.

5. Adım: Modeli Unity Kataloğu'na kaydetme

kullanarak mlflow.register_modelmodeli Unity Kataloğu'na kaydedin. Özel LLM sunumu ekspres dağıtımları temel aldığından, kayıt işlemi env_pack="databricks_model_serving" parametresini kullanır ve mlflow>=3.12 ile databricks-sdk>=0.102.0 gerektirir.

Örneğin, not defterinize aşağıdakileri ekleyin:


model_version = mlflow.register_model(model_info.model_uri, UC_MODEL_NAME, env_pack="databricks_model_serving")

6. Adım: Sunum uç noktası oluşturma

kullanıcı arabiriminden veya Azure Databricks SDK'sı ile program aracılığıyla uç noktayı oluşturun. Önemli kararlar işlem türü, iş yükü boyutu ve sıfıra ölçek davranışıdır.

Modelinize ve bulutunuza göre bir workload_type seçin:

workload_type GPU (Grafik İşleme Birimi) Notlar
GPU_SMALL 1x T4 (16 GB) En küçük seçenek.
GPU_LARGE 1x A100 (80 GB) Büyük LLM iş yükleri için önerilir.

workload_size (Small, Mediumveya Large) uç noktanın arkasındaki sağlanan çoğaltma sayısını denetler. Geliştirme ve düşük trafikli iş yükleri için kullanın Small .

Aşağıdaki örnekte tipik bir yapılandırma gösterilmektedir:

ServedEntityInput(
    entity_name="main.<catalog>.<model_name>",
    entity_version="<version>",
    workload_type=ServingModelWorkloadType.GPU_MEDIUM,
    workload_size="Small",
    scale_to_zero_enabled=True,
)

Sıfıra ölçek ve kapasite planlaması

Beta’daki özel LLM sunumu, uç noktanızın arkasında sabit sayıda replika sağlar. Sıfırdan fazla replika arasında otomatik ölçeklendirme henüz desteklenmediğinden, workload_type ve workload_size öğelerini en yüksek trafik yükünüze göre boyutlandırmanız gerekir. Uç nokta, ayrılan replikaların kapasitesini aşan istekleri kuyruğa ekler.

Uç noktanın boşta kaldığında ölçeğinin sıfır kopyaya düşmesine izin vermek için scale_to_zero_enabled=True değerini ayarlayın. Soğuk başlangıçlar yavaştır; model ağırlıklarının yüklenmesi ve vLLM'nin başlatılması genellikle bir-birkaç dakika sürer.

Gecikmeye duyarlı veya üretim için kritik iş yükleri için, scale_to_zero_enabled=False değerini ayarlayın ve workload_size boyutunu en yoğun trafik döneminiz için önceden belirleyin.

Warning

Ölçeklendirme kapasitesi garanti edilmez. Azure Databricks'in uç noktanız için yeni bir GPU edinmesi gerektiğinde — oluşturma sırasında, workload_size artırımı sırasında veya bir uç nokta sıfırdan etkinleştiğinde — bulut sağlayıcısının bölgenizde GPU kapasitesi yoksa istek yanıtsız kalabilir. Bu, tüm GPU türleri için geçerlidir. Databricks, GPU kapasitesini kullanılabilir ve hazır tutan sıcak havuzlar ve önceden ayırma ile bunu azaltır.

7. Adım: Uç noktanızı sorgulama

Uç nokta hazır olduğunda, uç nokta sayfasından AI Playground içinde otomatik olarak görünür. Databricks SDK'sını, OpenAI SDK'sını veya curl'yi kullanarak program aracılığıyla da sorgulayabilirsiniz.

Sohbet modelleri (llm/v1/chat):

Databricks SDK

w.serving_endpoints.query(
    name="<endpoint-name>",
    messages=[ChatMessage(role=ChatMessageRole.USER, content="Hello")],
)

OpenAI SDK'sı

client = OpenAI(
    api_key=DATABRICKS_TOKEN,
    base_url=f"{DATABRICKS_HOST}/serving-endpoints",
)
client.chat.completions.create(
    model="<endpoint-name>",
    messages=[{"role": "user", "content": "Hello"}],
)

curl

curl -X POST \
  -u "token:$DATABRICKS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"messages":[{"role":"user","content":"Hello"}]}' \
  https://<workspace-url>/serving-endpoints/<endpoint-name>/invocations

Modelleri ekleme (llm/v1/embeddings):

OpenAI SDK'sı

client = OpenAI(
    api_key=DATABRICKS_TOKEN,
    base_url=f"{DATABRICKS_HOST}/serving-endpoints",
)
client.embeddings.create(
    model="<endpoint-name>",
    input=["The quick brown fox jumps over the lazy dog."],
)

curl

curl -X POST \
  -u "token:$DATABRICKS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"input":["The quick brown fox jumps over the lazy dog."]}' \
  https://<workspace-url>/serving-endpoints/<endpoint-name>/invocations

Bazı gömme modelleri, her girdinin başında göreve özel bir önek bekler (örneğin, nomic-embed-text-v2-moe, search_query: ve search_document: kullanır). Giriş kuralları için modelinizin kartını denetleyin.

Uç noktanızı izleme

Özel LLM hizmeti, uç noktaları sunan standart özel modelle aynı gözlemlenebilirlik altyapısını kullanır, ancak aşağıdaki bölümlerde açıklanan vLLM'ye özgü birkaç ek özellik içerir.

Canlı günlükler

Serving kullanıcı arayüzündeki uç nokta sayfasının Günlükler sekmesi, vLLM işleminizden gelen stdout ve stderr öğelerini gerçek zamanlı olarak gösterir. Bu çıkışı günlükler API'sini aracılığıyla da açabilirsiniz.

Kalıcı günlükler ve ölçümler

Telemetri etkinleştirildiğinde, hem günlükler hem de metrikler uzun süreli saklama, SQL ile sorgulama ve uyumluluk için Unity Catalog Delta tablolarında kalıcı olarak saklanır. Tam kurulum yönergeleri, gereksinimleri ve tablo şemaları için bkz. Unity Kataloğu'na veri sunan özel modeli kalıcı hale getirme.

Özellikle özel LLM sunumu için:

  • Loglar: vLLM sürecinden gelen stdout ve stderr otomatik olarak yakalanır. Uygulama tarafında günlükleme kodu gerekli değildir.
  • Metrics: Azure Databricks, vLLM sunucusunun Prometheus /metrics uç noktasını otomatik olarak kazır ve ölçümleri günlüklerle birlikte kalıcı hale getirmektedir. Varsayılan olarak istek başına gecikme süresi, aktarım hızı, belirteç sayısı, kuyruk derinliği ve KV önbelleği kullanımı elde edersiniz.

Telemetri verilerini sorgulama

Beta sırasında günlükleri veya ölçümleri görselleştirmek için kullanıcı arabirimi yoktur. SQL veya not defteri kullanarak kalıcı verileri doğrudan Unity Kataloğu'nda sorgulayın. Özel model sunum verilerini Unity Catalog’a kalıcı olarak kaydetme bölümünde belgelenen metrik ve günlük şemalarına bakın.

Aşağıdaki not defterinde kalıcı vLLM ölçümlerini ayrıştırma ve görselleştirme işlemleri gösterilmektedir:

Özel LLM sunumu ölçümleri not defteri

Dizüstü bilgisayar al

Örnek defter

Modeli bir sunucusuz GPU not defterinde geliştirin ve test edin, ardından aynı yapılandırmayı günlüğe kaydedin ve bir servis uç noktası olarak dağıtıma alın. Aşağıdaki not defteri, bu kılavuzdaki tam çalıştırılabilir iş akışını içerir.

Başlangıç not defteri sunan özel LLM

Dizüstü bilgisayar al

Sınırlamalar

Beta sırasında aşağıdaki sınırlamalar geçerlidir.

  • Replikalar arasında otomatik ölçeklendirme yok. Sıfıra ölçeklendirme desteklenir.
  • Yalnızca sohbet (llm/v1/chatçok modüllü dahil) ve ekleme (llm/v1/embeddings) görevleri desteklenir. Bkz . Desteklenen görevler.
  • Yol iyileştirmesi yok.
  • Günlükleri veya ölçümleri görselleştirmek için kullanıcı arabirimi yok. Telemetriyi doğrudan Unity Kataloğu'nda sorgula.

Geri bildirim veya sorular için Azure Databricks hesap ekibinize ulaşın.

Yapıt yükleme işlemi kayıt sırasında zaman aşımına uğradı

Modeli env_pack ile kaydettiğinizde Azure Databricks, paketlenmiş model ağırlıkları ile ortamı artefaktlar (model_version.tar ve model_environment.tar) olarak yükler. databricks-sdk ile 0.102.0 sürümünden önceki sürümlerde, büyük LLM artefaktlarının karşıya yüklenmesi beş dakika sonra zaman aşımına uğrayabilir ve aşağıdakine benzer bir hatayla kayıt işlemi başarısız olabilir:

MlflowException: The following failures occurred while uploading one or more artifacts to
/Models/<catalog>/<schema>/<model>/<version>: {
  '.../model_environment.tar': "TimeoutError('Timed out after 0:05:00')",
  '.../model_version.tar': "TimeoutError('Timed out after 0:05:00')"
}

Bunu düzeltmek için databricks-sdk>=0.102.0 sürümüne yükseltin ve modeli yeniden kaydedin:

%pip install databricks-sdk>=0.102.0