Rastreando LiteLM 🚄
O LiteLLM é um gateway LLM de código aberto que permite o acesso a mais de 100 LLMs em uma interface unificada.
O MLflow Tracing fornece o recurso de rastreamento automático para o LiteLLM. Ao ativar o rastreamento automático
para LiteLLM chamando a função mlflow.litellm.autolog
, MLflow capturará os rastreamentos para a invocação de LLM e log os enviará para a experiência MLflow ativa.
import mlflow
mlflow.litellm.autolog()
MLflow O rastreamento captura automaticamente as seguintes informações sobre as chamadas do site LiteLLM:
- Solicitações e respostas de conclusão
- Latências
- Metadados sobre o provedor LLM, como o nome do modelo e o URL endpoint
- Uso e custo dos tokens
- Cache atingido
- Qualquer exceção, se levantada
Pré-requisitos
Antes de executar os exemplos abaixo, certifique-se de que o senhor tenha:
-
Databricks credenciais configuradas : Se estiver executando fora do site Databricks, defina sua variável de ambiente:
Bashexport DATABRICKS_HOST="https://your-workspace.cloud.databricks.com"
export DATABRICKS_TOKEN="your-personal-access-token"
Se estiver executando dentro de um notebook Databricks, eles serão automaticamente definidos para o senhor.
-
LLM chave do provedor API: Certifique-se de que sua chave API esteja configurada. Para ambientes de produção, use segredosMosaic AI Gateway ou Databricks em vez de valores codificados para um gerenciamento seguro API key .
Bashexport ANTHROPIC_API_KEY="your-anthropic-api-key" # For Anthropic models
export OPENAI_API_KEY="your-openai-api-key" # For OpenAI models
# Add other provider keys as needed
Exemplo básico
import mlflow
import litellm
# Enable auto-tracing for LiteLLM
mlflow.litellm.autolog()
# Set up MLflow tracking on Databricks
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/litellm-demo")
# Call Anthropic API via LiteLLM
response = litellm.completion(
model="claude-3-5-sonnet-20241022",
messages=[{"role": "user", "content": "Hey! how's it going?"}],
)
API assíncrona
O MLflow suporta o rastreamento das APIs assíncronas do LiteLLM:
mlflow.litellm.autolog()
response = await litellm.acompletion(
model="claude-3-5-sonnet-20241022",
messages=[{"role": "user", "content": "Hey! how's it going?"}],
)
transmissão
MLflow suporta o rastreamento da transmissão sincronizada e assíncrona do LiteLLM APIs:
mlflow.litellm.autolog()
response = litellm.completion(
model="claude-3-5-sonnet-20241022",
messages=[{"role": "user", "content": "Hey! how's it going?"}],
stream=True,
)
for chunk in response:
print(chunk.choices[0].delta.content, end="|")
MLflow registrará as saídas concatenadas dos blocos de transmissão como uma saída de intervalo.
Para ambientes de produção, use segredosMosaic AI Gateway ou Databricks em vez de valores codificados para um gerenciamento seguro API key .
Desativar o rastreamento automático
O rastreamento automático para o LiteLLM pode ser desativado globalmente chamando mlflow.litellm.autolog(disable=True)
ou mlflow.autolog(disable=True)
.
Próximas etapas
- Entenda os conceitos de rastreamento - Saiba como o MLflow captura e organiza os dados de rastreamento
- Depure e observe seu aplicativo - Use o Trace UI para analisar o comportamento do seu aplicativo LiteLLM
- Avalie a qualidade do seu aplicativo - Configure a avaliação de qualidade para seu aplicativo LLM com vários provedores