LiteLLM Docker Proxyで無料のGeminiを使い倒そう!

LLM

はじめに

LiteLLM Proxyは、100以上のLarge Language Models (LLMs)を統一されたインターフェースで呼び出すことができるプロキシサーバーです。仮想キーやユーザーごとに支出を追跡し、予算を設定する機能も備えています。この記事では、初心者でも理解できるように、LiteLLM Proxyの主な機能と使用方法を丁寧に説明します。

LiteLLMのDockerセットアップ
LiteLLMは、OpenAI形式を使用してすべてのLLM APIを呼び出すことができるツールです。このガイドでは、初心者でも理解できるように、LiteLLMをDockerを使用してセットアップする方法を丁寧に説明します。こちらの記事もおす...

LiteLLM Proxyの主な機能

LiteLLM Proxyには、以下の3つの主要な機能があります。

  1. 統一されたインターフェース

    • Huggingface、Bedrock、TogetherAIなど、100以上のLLMをOpenAIのChatCompletionsおよびCompletions形式で呼び出すことができます。
  2. コスト追跡

    • 仮想キーによる認証、支出の追跡、予算の設定が可能です。
  3. 負荷分散

    • 同じモデルの複数のモデルとデプロイメント間で負荷分散を行います。
    • LiteLLM proxyは、負荷テスト中に1,500以上のリクエスト/秒を処理できます。

クイックスタート

LiteLLM Proxyを素早く起動するには、以下の2つの方法があります。

1. CLIを使用する方法

まず、以下のコマンドを実行してLiteLLM Proxyをインストールします。

$ pip install 'litellm[proxy]'

2. Dockerを使用する方法

Dockerを使用する場合は、以下のコマンドでLiteLLMのコンテナを起動します。

docker-compose -f docker\docker-compose.gemi.yml up --build

コンテナが正常に起動すると、以下のようなログが表示されます。

litellm-1  | INFO:     Started server process [1]
litellm-1  | INFO:     Waiting for application startup.
litellm-1  |
litellm-1  | #------------------------------------------------------------#
litellm-1  | #                                                            #
litellm-1  | #              'I don't like how this works...'               #
litellm-1  | #        https://github.com/BerriAI/litellm/issues/new        #
litellm-1  | #                                                            #
litellm-1  | #------------------------------------------------------------#
litellm-1  |
litellm-1  |  Thank you for using LiteLLM! - Krrish & Ishaan
litellm-1  |
litellm-1  |
litellm-1  |
litellm-1  | Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new
litellm-1  |
litellm-1  |
litellm-1  | INFO:     Application startup complete.
litellm-1  | INFO:     Uvicorn running on http://0.0.0.0:4000 (Press CTRL+C to quit)

デモスクリプトの実行

LiteLLM Proxyが起動したら、以下のコマンドを使用してデモスクリプトを実行できます。

python docker\demo\demo_openai.py

デモスクリプトの内容は以下の通りです。

import openai
client = openai.OpenAI(
    api_key="anything",
    base_url="http://localhost:4000"
)

# request sent to model set on litellm proxy, `litellm --model`
response = client.chat.completions.create(model="gpt-3.5-turbo", messages = [
    {
        "role": "user",
        "content": "this is a test request, write a short poem"
    }
])

print(response)
print("-------------")
print(response.choices[0].message.content)

このスクリプトは、LiteLLM Proxyを介して設定されたモデルにリクエストを送信し、短い詩を生成します。

デモスクリプトの実行結果は以下のように表示されます。

ChatCompletion(id='chatcmpl-7ef51102-505c-4c54-9e5a-783f6d4d0401', choices=[Choice(finish_reason='stop', index=1, logprobs=None, message=ChatCompletionMessage(content="In realms of words, a dance takes place,\nA symphony of rhythm, grace.\nEach syllable a note so fine,\nWeaving stories, making hearts entwine.\n\nFrom whispers soft to thunder's roar,\nWords paint worlds, forevermore.\nThey evoke emotions, deep and true,\nGuiding us through life's every hue.", role='assistant', function_call=None, tool_calls=None))], created=1710775833, model='gemini/gemini-pro', object='chat.completion', system_fingerprint=None, usage=CompletionUsage(completion_tokens=67, prompt_tokens=10, total_tokens=77))
-------------
In realms of words, a dance takes place,
A symphony of rhythm, grace.
Each syllable a note so fine,
Weaving stories, making hearts entwine.

From whispers soft to thunder's roar,
Words paint worlds, forevermore.
They evoke emotions, deep and true,
Guiding us through life's every hue.

まとめ

この記事では、LiteLLM Proxyの主要な機能と使用方法について、初心者にも分かりやすく説明しました。LiteLLM Proxyを使用することで、100以上のLLMを統一されたインターフェースで呼び出し、コスト管理や負荷分散を簡単に行うことができます。CLIやDockerを使用して素早く起動し、デモスクリプトを実行することで、LiteLLM Proxyの動作を確認できました。

リポジトリ

https://github.com/Sunwood-ai-labs/litellm-JP/blob/main/docker/README.Proxy.JP.md

LiteLLM Proxyに関するフィードバックやヘルプが必要な場合は、GitHubのIssueページにアクセスしてください。

コメント

タイトルとURLをコピーしました