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 provedor API key : Defina sua chave API para os provedores LLM que o senhor estiver usando:
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.
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