Skip to content

Latest commit

 

History

History
206 lines (142 loc) · 7.65 KB

README.md

File metadata and controls

206 lines (142 loc) · 7.65 KB

Logo


✨ オープンソースのサーバーレス GPU コンテナランタイム ✨

Documentation Join Slack Twitter Tests Passing


English | 简体中文 | 繁體中文 | Türkçe | हिंदी | Português (Brasil) | Italiano | Español | 한국어 | 日本語


Beta9

Beta9 は、クラウドプロバイダー間でスケーラブルなサーバーレス GPU ワークロードを実行するためのオープンソースプラットフォームです。

特徴:

  • GPU(または CPU)コンテナを数千にスケールアウト
  • カスタム ML モデルの超高速コールドスタート
  • ゼロへの自動スケールで使用した分だけ支払い
  • モデルと関数の出力を保存するための柔軟な分散ストレージ
  • 複数のクラウドプロバイダー間でワークロードを分散
  • シンプルな Python の抽象化を使用してタスクキューと関数を簡単にデプロイ

私たちは、Beamでユーザー向けに AI アプリケーションを大規模に実行するために、社内で beta9 を使用しています。

使用例

サーバーレス推論エンドポイント

任意の Python 関数をデコレート

from beta9 import Image, endpoint


@endpoint(
    cpu=1,
    memory="16Gi",
    gpu="T4",
    image=Image(
        python_packages=[
            "vllm==0.4.1",
        ],  # これらの依存関係はリモートコンテナにインストールされます
    ),
)
def predict():
    from vllm import LLM

    prompts = ["AIの未来は"]
    llm = LLM(model="facebook/opt-125m")
    output = llm.generate(prompts)[0]

    return {"prediction": output.outputs[0].text}

クラウドにデプロイ

$ beta9 deploy app.py:predict --name llm-inference

=> Building image
=> Using cached image
=> Deploying endpoint
=> Deployed 🎉
=> Invocation details

curl -X POST 'https://app.beam.cloud/endpoint/llm-inference/v1' \
-H 'Authorization: Bearer [YOUR_AUTH_TOKEN]' \
-d '{}'

数百のコンテナにワークロードをファンアウト

from beta9 import function

# このデコレータを使用すると、この関数を複数のリモートコンテナに並列化できます
@function(cpu=1, memory=128)
def square(i: int):
    return i**2


def main():
    numbers = list(range(100))
    squared = []

    # リスト内の各アイテムに対してリモートコンテナを実行
    for result in square.map(numbers):
        squared.append(result)

非同期ジョブをキューに入れる

from beta9 import task_queue, Image


@task_queue(
    cpu=1.0,
    memory=128,
    gpu="T4",
    image=Image(python_packages=["torch"]),
    keep_warm_seconds=1000,
)
def multiply(x):
    result = x * 2
    return {"result": result}

# タスクを手動でキューに挿入
multiply.put(x=10)

仕組み

Beta9 は、リモートのサーバーレスコンテナを迅速に起動するように設計されています。これを可能にするいくつかの要素があります:

  • S3/FUSE によってバックアップされたカスタムの遅延ローディングイメージフォーマット(CLIP
  • 高速な Redis ベースのコンテナスケジューリングエンジン
  • イメージとファイルをキャッシュするためのコンテンツアドレス指定ストレージ
  • カスタムの runc コンテナランタイム

demo gif

はじめに

Beam Cloud(推奨)

最も迅速かつ信頼性の高い方法は、Beam Cloudに無料でサインアップすることです。最初の 10 時間は無料で、その後は使用量に基づいて支払います。

オープンソースデプロイ(上級者向け)

ローカルで Beta9 を実行するか、Helm チャートを使用して既存の Kubernetes クラスターにデプロイすることができます。

ローカル開発

サーバーの設定

k3d はローカル開発に使用されます。開始するには Docker と Make が必要です。

完全自動化されたセットアップを使用するには、setup make ターゲットを実行します。

Note

これにより、既にインストールされている可能性のある一部のツールが上書きされます。詳細については、setup.shを確認してください。

make setup

SDK の設定

SDK は Python で書かれています。Python 3.8 以上が必要です。開始するには、setup-sdk make ターゲットを使用します。

Note

これにより、Poetry パッケージマネージャーがインストールされます。

make setup-sdk

SDK の使用

サーバーと SDK の設定が完了したら、こちらの SDK readme を確認してください。

貢献

大きな貢献でも小さな貢献でも歓迎します!これらは私たちにとって最も役立つことです:

コミュニティ&サポート

サポートが必要な場合は、これらのチャネルのいずれかを通じてお問い合わせください:

  • Slack (メンテナーやコミュニティメンバーとライブチャット)
  • GitHub issues (バグレポート、機能リクエスト、ロードマップに関連するものなど)
  • Twitter (リリースやその他の更新情報)

貢献者に感謝