
# Introduction
With the surge of huge language fashions (LLMs) in recent times, many LLM-powered functions are rising. LLM implementation has launched options that have been beforehand non-existent.
As time goes on, many LLM fashions and merchandise have grow to be out there, every with its professionals and cons. Sadly, there’s nonetheless no customary approach to entry all these fashions, as every firm can develop its personal framework. That’s the reason having an open-source software reminiscent of LiteLLM is helpful while you want standardized entry to your LLM apps with none further price.
On this article, we’ll discover why LiteLLM is helpful for constructing LLM functions.
Let’s get into it.
# Profit 1: Unified Entry
LiteLLM’s greatest benefit is its compatibility with totally different mannequin suppliers. The software helps over 100 totally different LLM providers via standardized interfaces, permitting us to entry them whatever the mannequin supplier we use. It’s particularly helpful in case your functions make the most of a number of totally different fashions that have to work interchangeably.
A number of examples of the foremost mannequin suppliers that LiteLLM helps embrace:
- OpenAI and Azure OpenAI, like GPT-4.
- Anthropic, like Claude.
- AWS Bedrock & SageMaker, supporting fashions like Amazon Titan and Claude.
- Google Vertex AI, like Gemini.
- Hugging Face Hub and Ollama for open-source fashions like LLaMA and Mistral.
The standardized format follows OpenAI’s framework, utilizing its chat/completions schema. Which means we will swap fashions simply without having to know the unique mannequin supplier’s schema.
For instance, right here is the Python code to make use of Google’s Gemini mannequin with LiteLLM.
from litellm import completion
immediate = "YOUR-PROMPT-FOR-LITELLM"
api_key = "YOUR-API-KEY-FOR-LLM"
response = completion(
mannequin="gemini/gemini-1.5-flash-latest",
messages=[{"content": prompt, "role": "user"}],
api_key=api_key)
response['choices'][0]['message']['content']
You solely have to receive the mannequin identify and the respective API keys from the mannequin supplier to entry them. This flexibility makes LiteLLM ideally suited for functions that use a number of fashions or for performing mannequin comparisons.
# Profit 2: Value Monitoring and Optimization
When working with LLM functions, it is very important observe token utilization and spending for every mannequin you implement and throughout all built-in suppliers, particularly in real-time situations.
LiteLLM permits customers to keep up an in depth log of mannequin API name utilization, offering all the mandatory info to manage prices successfully. For instance, the `completion` name above could have details about the token utilization, as proven beneath.
utilization=Utilization(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))
Accessing the response’s hidden parameters may also present extra detailed info, together with the fee.
With the output much like beneath:
{'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/fashions/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'}
There’s a variety of info, however crucial piece is `response_cost`, because it estimates the precise cost you’ll incur throughout that decision, though it may nonetheless be offset if the mannequin supplier provides free entry. Customers also can outline customized pricing for fashions (per token or per second) to calculate prices precisely.
A extra superior cost-tracking implementation may also enable customers to set a spending price range and restrict, whereas additionally connecting the LiteLLM price utilization info to an analytics dashboard to extra simply combination info. It is also attainable to supply customized label tags to assist attribute prices to sure utilization or departments.
By offering detailed price utilization knowledge, LiteLLM helps customers and organizations optimize their LLM utility prices and price range extra successfully.
# Profit 3: Ease of Deployment
LiteLLM is designed for straightforward deployment, whether or not you employ it for native improvement or a manufacturing surroundings. With modest assets required for Python library set up, we will run LiteLLM on our native laptop computer or host it in a containerized deployment with Docker and not using a want for advanced further configuration.
Talking of configuration, we will arrange LiteLLM extra effectively utilizing a YAML config file to record all the mandatory info, such because the mannequin identify, API keys, and any important customized settings in your LLM Apps. It’s also possible to use a backend database reminiscent of SQLite or PostgreSQL to retailer its state.
For knowledge privateness, you might be liable for your personal privateness as a person deploying LiteLLM your self, however this method is safer for the reason that knowledge by no means leaves your managed surroundings besides when despatched to the LLM suppliers. One function LiteLLM gives for enterprise customers is Single Signal-On (SSO), role-based entry management, and audit logs in case your utility wants a safer surroundings.
General, LiteLLM gives versatile deployment choices and configuration whereas conserving the information safe.
# Profit 4: Resilience Options
Resilience is essential when constructing LLM Apps, as we would like our utility to stay operational even within the face of surprising points. To advertise resilience, LiteLLM gives many options which are helpful in utility improvement.
One function that LiteLLM has is built-in caching, the place customers can cache LLM prompts and responses in order that equivalent requests do not incur repeated prices or latency. It’s a helpful function if our utility ceaselessly receives the identical queries. The caching system is versatile, supporting each in-memory and distant caching, reminiscent of with a vector database.
One other function of LiteLLM is computerized retries, permitting customers to configure a mechanism when requests fail on account of errors like timeouts or rate-limit errors to robotically retry the request. It’s additionally attainable to arrange further fallback mechanisms, reminiscent of utilizing one other mannequin if the request has already hit the retry restrict.
Lastly, we will set price limiting for outlined requests per minute (RPM) or tokens per minute (TPM) to restrict the utilization stage. It’s an effective way to cap particular mannequin integrations to forestall failures and respect utility infrastructure necessities.
# Conclusion
Within the period of LLM product progress, it has grow to be a lot simpler to construct LLM functions. Nevertheless, with so many mannequin suppliers on the market, it turns into arduous to ascertain a normal for LLM implementation, particularly within the case of multi-model system architectures. For this reason LiteLLM may also help us construct LLM Apps effectively.
I hope this has helped!
Cornellius Yudha Wijaya is an information science assistant supervisor and knowledge author. Whereas working full-time at Allianz Indonesia, he likes to share Python and knowledge suggestions by way of social media and writing media. Cornellius writes on a wide range of AI and machine studying subjects.