Gestisci modelli aperti utilizzando il container premium Hex-LLM su Cloud TPU

Hex-LLM, un modello linguistico di grandi dimensioni (LLM) ad alta efficienza che funziona con XLA, è il framework di gestione LLM Vertex AI progettato e ottimizzato per l'hardware di Cloud TPU. Hex-LLM combina tecnologie di gestione LLM come il batch continuo e l'attenzione impaginata con ottimizzazioni Vertex AI su misura per XLA e Cloud TPU. È un LLM ad alta efficienza e a basso costo che gestisce su Cloud TPU per i modelli open source.

Hex-LLM è disponibile in Model Garden tramite parco giochi, deployment con un solo clic e blocco note.

Funzionalità

L'LLM esadecimale è basato su progetti open source con ottimizzazioni di Google per XLA e Cloud TPU. Hex-LLM raggiunge una velocità effettiva elevata e una bassa latenza durante la gestione degli LLM utilizzati di frequente.

L'LLM esadecimale include le seguenti ottimizzazioni:

  • Algoritmo di batch continuo basato su token per garantire che i modelli utilizzino appieno l'hardware con un numero elevato di richieste in parallelo.
  • Una riscrittura completa del kernel PagedAttention ottimizzato per XLA.
  • Strategie di parallelismo dei dati e di parallelismo tensore, flessibili e componibili, con metodi dello sharding delle ponderazioni altamente ottimizzati per eseguire in modo efficiente LLM su più chip Cloud TPU.

Gli LLM esadecimale supportano un'ampia gamma di LLM densi e sparsi:

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

L'LLM esadecimale offre anche una serie di funzionalità, ad esempio:

  • L'LLM esadecimale è incluso in un singolo container. L'LLM esadecimale pacchettizza il server API, il motore di inferenza e i modelli supportati in un'unica immagine Docker di cui eseguire il deployment.
  • Compatibile con il formato Modelli Hugging Face. L'LLM esadecimale può caricare un modello Hugging Face dal disco locale, da Hugging Face Hub e da un bucket Cloud Storage.
  • Quantizzazione utilizzando bitandbyte e AWQ.
  • Caricamento dinamico di LoRA. Hex-LLM è in grado di caricare i pesi LoRA leggendo l'argomento della richiesta durante la pubblicazione.

Inizia a utilizzare Model Garden

Il container di servizio Cloud TPU Hex-LLM è integrato in Model Garden. Puoi accedere a questa tecnologia di pubblicazione tramite playground, deployment con un solo clic ed esempi di blocchi note Colab Enterprise per una vasta gamma di modelli.

Usa Playground

Model Garden è un endpoint Vertex AI pre-deployment raggiungibile tramite l'invio di richieste nella scheda del modello.

  1. Inserisci un prompt e, facoltativamente, includi gli argomenti per la richiesta.

  2. Fai clic su INVIA per ricevere rapidamente la risposta del modello.

Prova con Gemma!

Usa il deployment con un solo clic

Puoi eseguire il deployment di un endpoint Vertex AI personalizzato con l'LLM esadecimale utilizzando una scheda del modello.

  1. Vai alla pagina della scheda del modello e fai clic su Esegui il deployment.

  2. Per la variante del modello che vuoi utilizzare, seleziona il tipo di macchina Cloud TPU v5e per il deployment.

  3. Fai clic su Esegui il deployment in basso per iniziare il processo di deployment. Riceverai due notifiche email: una quando il modello viene caricato e un'altra quando l'endpoint è pronto.

Usa il blocco note di Colab Enterprise

Per flessibilità e personalizzazione, puoi utilizzare gli esempi di blocchi note Colab Enterprise per eseguire il deployment di un endpoint Vertex AI con Hex-LLM utilizzando l'SDK Vertex AI per Python.

  1. Vai alla pagina della scheda del modello e fai clic su Apri blocco note.

  2. Seleziona il blocco note Vertex Serving. Il blocco note è aperto in Colab Enterprise.

  3. Esamina il blocco note per eseguire il deployment di un modello utilizzando Hex-LLM e inviare richieste di previsione all'endpoint. Lo snippet di codice per il deployment è il seguente:

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

Puoi modificare i seguenti argomenti di avvio del server LLM esadecimale per la pubblicazione personalizzata:

  • --model: il modello da caricare. Puoi specificare un ID modello Hugging Face, un percorso assoluto locale o un percorso del bucket Cloud Storage.
  • --tokenizer: il tokenizzatore da caricare. Può essere un ID modello Hugging Face, un percorso assoluto locale o un percorso del bucket Cloud Storage. Il valore predefinito è lo stesso di --model.
  • --enable_jit: se attivare la modalità JIT. Il valore predefinito è True.
  • --enable_lora: se attivare la modalità di caricamento LoRA. Il valore predefinito è False.
  • --max_lora_rank: il ranking LoRA massimo supportato per gli adattatori LoRA, definito nelle richieste. Il valore predefinito è 16.
  • --data_parallel_size: il numero di repliche parallele di dati. Il valore predefinito è 1.
  • --tensor_parallel_size: il numero di repliche parallele dei tensori. Il valore predefinito è 1.
  • --max_running_seqs: il numero massimo di richieste che il server può elaborare contemporaneamente. Più grande è questo argomento, maggiore è la velocità effettiva che il server potrebbe raggiungere, ma con potenziali effetti negativi sulla latenza. Il valore predefinito è 256.
  • --hbm_utilization_factor: la percentuale di HBM Cloud TPU gratuito che può essere allocata per la cache KV dopo il caricamento dei pesi del modello. L'impostazione di questo argomento su un valore inferiore può prevenire l'esaurimento della memoria dell'HBM di Cloud TPU. Il valore predefinito è 0.9.
  • --seed: il seed per inizializzare tutti i generatori di numeri casuali. La modifica di questo argomento potrebbe influire sull'output generato per lo stesso prompt. Il valore predefinito è 0.

Richiedi quota Cloud TPU

In Model Garden, la tua quota predefinita è di quattro chip Cloud TPU v5e nella regione us-west1. Queste quote si applicano ai deployment con un solo clic e ai deployment di blocchi note Colab Enterprise. Per richiedere quote aggiuntive, consulta Richiedere una quota superiore.