Avantages d’utiliser Litellm pour vos applications LLM


# Introduction
Avec une augmentation des modèles de grandes langues (LLM) ces dernières années, de nombreuses applications alimentées par LLM émergent. L’implémentation LLM a introduit des fonctionnalités qui étaient auparavant inexistantes.
Au fil du temps, de nombreux modèles et produits LLM sont devenus disponibles, chacun avec ses avantages et ses inconvénients. Malheureusement, il n’y a toujours pas de moyen standard d’accéder à tous ces modèles, car chaque entreprise peut développer son propre cadre. C’est pourquoi avoir un outil open-source tel que Litrellm est utile lorsque vous avez besoin d’un accès standardisé à vos applications LLM sans aucun coût supplémentaire.
Dans cet article, nous explorerons pourquoi Litellm est bénéfique pour la construction d’applications LLM.
Allons-y.
# Avantage 1: Accès unifié
Le plus grand avantage de Litellm est sa compatibilité avec différents fournisseurs de modèles. L’outil prend en charge plus de 100 services LLM différents via des interfaces standardisées, nous permettant d’y accéder quel que soit le fournisseur de modèles que nous utilisons. Il est particulièrement utile si vos applications utilisent plusieurs modèles différents qui doivent fonctionner de manière interchangeable.
Quelques exemples des principaux fournisseurs de modèles soutenus par Litellm comprennent:
- Openai et Azure Openai, comme GPT-4.
- Anthropique, comme Claude.
- Aws Bedrock & Sagemaker, support des modèles comme Amazon Titan et Claude.
- Google Vertex Ai, comme Gemini.
- Étreindre Face Hub et Olllama pour des modèles open source comme Llama et Mistral.
Le format standardisé suit le cadre d’OpenAI, en utilisant son schéma de chat / complétion. Cela signifie que nous pouvons changer facilement de modèles sans avoir besoin de comprendre le schéma du fournisseur de modèles d’origine.
Par exemple, voici le code Python pour utiliser le modèle Gemini de Google avec Litellm.
from litellm import completion
prompt = "YOUR-PROMPT-FOR-LITELLM"
api_key = "YOUR-API-KEY-FOR-LLM"
response = completion(
model="gemini/gemini-1.5-flash-latest",
messages=({"content": prompt, "role": "user"}),
api_key=api_key)
response('choices')(0)('message')('content')
Vous n’avez qu’à obtenir le nom du modèle et les clés d’API respectives à partir du fournisseur de modèles pour y accéder. Cette flexibilité rend Litellm idéal pour les applications qui utilisent plusieurs modèles ou pour effectuer des comparaisons de modèles.
# Avantage 2: suivi des coûts et optimisation
Lorsque vous travaillez avec des applications LLM, il est important de suivre l’utilisation et les dépenses de jetons pour chaque modèle que vous implémentez et dans tous les fournisseurs intégrés, en particulier dans les scénarios en temps réel.
LitellM permet aux utilisateurs de conserver un journal détaillé de l’utilisation des appels de l’API, fournissant toutes les informations nécessaires pour contrôler efficacement les coûts. Par exemple, l’appel «Complétion» ci-dessus aura des informations sur l’utilisation du jeton, comme indiqué ci-dessous.
usage=Usage(completion_tokens=10, prompt_tokens=8, total_tokens=18, completion_tokens_details=None, prompt_tokens_details=PromptTokensDetailsWrapper(audio_tokens=None, cached_tokens=None, text_tokens=8, image_tokens=None))
L’accès aux paramètres cachés de la réponse fournira également des informations plus détaillées, y compris le coût.
Avec la sortie similaire à ci-dessous:
{'custom_llm_provider': 'gemini',
'region_name': None,
'vertex_ai_grounding_metadata': (),
'vertex_ai_url_context_metadata': (),
'vertex_ai_safety_results': (),
'vertex_ai_citation_metadata': (),
'optional_params': {},
'litellm_call_id': '558e4b42-95c3-46de-beb7-9086d6a954c1',
'api_base': 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent',
'model_id': None,
'response_cost': 4.8e-06,
'additional_headers': {},
'litellm_model_name': 'gemini/gemini-1.5-flash-latest'}
Il y a beaucoup d’informations, mais la pièce la plus importante est «Response_Cost», car elle estime la charge réelle que vous encourerez pendant cet appel, bien qu’elle puisse toujours être compensée si le fournisseur de modèles offre un accès gratuit. Les utilisateurs peuvent également définir prix personnalisés pour les modèles (par jeton ou par seconde) pour calculer avec précision les coûts.
Un plus avancé suivi des coûts L’implémentation permettra également aux utilisateurs de définir un Budget de dépenses et limitetout en connectant également les informations d’utilisation des coûts LitellM à un tableau de bord analytique pour agréger plus facilement les informations. Il est également possible de fournir des balises d’étiquette personnalisées pour aider à attribuer les coûts à certains utilisations ou départements.
En fournissant des données détaillées sur l’utilisation des coûts, LitellM aide les utilisateurs et les organisations à optimiser plus efficacement leurs coûts d’application LLM et leur budget.
# Avantage 3: facilité de déploiement
Litellm est conçu pour un déploiement facile, que vous l’utilisiez pour le développement local ou un environnement de production. Avec des ressources modestes requises pour l’installation de la bibliothèque Python, nous pouvons exécuter Litellm sur notre ordinateur portable local ou l’héberger dans un déploiement conteneurisé avec Docker sans avoir besoin d’une configuration supplémentaire complexe.
En parlant de configuration, nous pouvons configurer Litellm plus efficacement à l’aide d’un fichier de configuration YAML pour répertorier toutes les informations nécessaires, telles que le nom du modèle, les touches API et tous les paramètres personnalisés essentiels pour vos applications LLM. Vous pouvez également utiliser une base de données backend telle que SQLite ou PostgreSQL pour stocker son état.
Pour la confidentialité des données, vous êtes responsable de votre propre confidentialité en tant qu’utilisateur déployant vous-même Litellm, mais cette approche est plus sécurisée car les données ne quittent jamais votre environnement contrôlé, sauf lorsqu’ils sont envoyés aux fournisseurs LLM. Une caractéristique Litellm prévoit des utilisateurs d’entreprise est la connexion unique (SSO), le contrôle d’accès basé sur les rôles et les journaux d’audit si votre application a besoin d’un environnement plus sécurisé.
Dans l’ensemble, LitellM offre des options de déploiement flexibles et une configuration tout en gardant les données sécurisées.
# Avantage 4: Caractéristiques de résilience
La résilience est cruciale lors de la création d’applications LLM, car nous voulons que notre application reste opérationnelle même face à des problèmes inattendus. Pour promouvoir la résilience, Litellm fournit de nombreuses fonctionnalités utiles dans le développement d’applications.
Une fonctionnalité de Litellm est intégrée mise en cacheoù les utilisateurs peuvent mettre en cache des invites et des réponses LLM afin que les demandes identiques n’encournent pas des coûts ou la latence répétés. C’est une fonctionnalité utile si notre application reçoit fréquemment les mêmes requêtes. Le système de mise en cache est flexible, prenant en charge la mise en cache en mémoire et à distance, comme avec une base de données vectorielle.
Une autre caractéristique de Litellm est Retries automatiquespermettant aux utilisateurs de configurer un mécanisme lorsque les demandes échouent en raison d’erreurs telles que des délais d’attente ou des erreurs de limite de taux pour réessayer automatiquement la demande. Il est également possible de configurer mécanismes de secourscomme l’utilisation d’un autre modèle si la demande a déjà atteint la limite de réessayer.
Enfin, nous pouvons définir la limitation du taux pour les demandes définies par minute (tr / min) ou les jetons par minute (TPM) pour limiter le niveau d’utilisation. C’est un excellent moyen de plafonner des intégrations de modèle spécifiques pour empêcher les échecs et respecter les exigences d’infrastructure d’application.
# Conclusion
À l’ère de la croissance des produits LLM, il est devenu beaucoup plus facile de créer des applications LLM. Cependant, avec autant de fournisseurs de modèles, il devient difficile d’établir une norme pour la mise en œuvre de LLM, en particulier dans le cas des architectures de système multimodèles. C’est pourquoi Litellm peut nous aider à créer efficacement les applications LLM.
J’espère que cela a aidé!
Cornellius Yudha Wijaya est un directeur adjoint des sciences de données et un écrivain de données. Tout en travaillant à plein temps chez Allianz Indonesia, il aime partager des conseils de python et de données via les médias sociaux et la rédaction des médias. Cornellius écrit sur une variété d’IA et de sujets d’apprentissage automatique.