オープンソース LLM 用のオープンソース AGI サーバー
これは、オープンな汎用人工知能を構築するという Anarchy の取り組みです。 LLM-VM 経由: LLM にスーパーパワーを与える方法?そして超スピード?
ライブで試すための詳細な手順は、ここで見つけることができます: anarchy.ai
このプロジェクトはベータ版です。継続的な改善と開発が期待されます。
Anarchy LLM-VM は、ツールの使用法、永続的なステートフル メモリ、ライブ データの拡張、データとタスクの微調整、出力テンプレート、 Web プレイグラウンド、API エンドポイント、生徒と教師の蒸留、データ合成、負荷分散とオーケストレーション、大きなコンテキスト ウィンドウの模倣。
正式には、これは人間の言語の仮想マシン/インタプリタであり、データ、モデル (CPU)、プロンプト (コード)、およびツール (IO) の間で調整を行います。
これらすべてを 1 か所で独自の方法で実行することにより、LLM-VM は、分散エンドポイントでは法外にコストがかかるバッチ呼び出しを適切に最適化できます。さらに、モデルとアーキテクチャの両方に依存しないように努め、選択したモデルを現在のアーキテクチャに合わせて適切に最適化します。
Anarchy の使命に沿って、LLM-VM はオープンソース モデルのサポートに努めています。オープンソース モデルを利用し、ローカルで実行すると、次のような利点が得られます。
AGI 開発をスピードアップ : AnarchyAI を使用すると、利用可能な最新の LLM と対話するために必要なのは 1 つのインターフェイスだけです。
コストを削減しますか?:モデルをローカルで実行すると、開発とテストにかかる従量課金制のコストを削減できます。
柔軟性 ?♀️:アナーキーを使用すると、人気のあるモデルを迅速に切り替えることができるため、プロジェクトに適したツールを正確に特定できます。
コミュニティの雰囲気 ?: AGI の民主化に情熱を持って取り組んでいる、意欲的な開発者とエンジニアのアクティブなコミュニティに参加してください。
WYSIWYG ?:オープンソースとは、何も隠されていないことを意味します。お客様が構築に集中できるよう、透明性と効率性を追求しています。
暗黙的なエージェント ?: Anarchy LLM-VM は、ツールの説明を指定するだけで、 REBELなどのエージェントを通じて外部ツールを使用するようにセットアップできます。
推論の最適化 ?: Anarchy LLM-VM は、費用対効果を最大限に高めるために、エージェント レベルから既知の LLM アーキテクチャでのアセンブリに至るまで最適化されています。最先端のバッチ処理、スパース推論と量子化、蒸留、およびマルチレベル コロケーションを使用して、利用可能な最速のフレームワークを提供することを目指しています。
タスクの自動最適化 ?: Anarchy LLM-VM は、反復的なタスクのユースケースを分析し、生徒と教師の蒸留をアクティブにして、精度を損なうことなく、より大規模でより一般的なモデルから超効率的な小型モデルをトレーニングできます。さらに、データ合成技術を利用して結果を向上させることもできます。
呼び出し可能なライブラリ :任意の Python コードベースから直接使用できるライブラリを提供します。
HTTP エンドポイント ?️:完了リクエストを処理するための HTTP スタンドアロン サーバーを提供します。
ライブ データ拡張 : (ロードマップ)ライブ更新データ セットを提供できるようになり、Anarchy LLM-VM がモデルを微調整したり、ベクトル DBと連携して引用付きの最新情報を提供したりできます。
Web プレイグラウンド ?: (ロードマップ) Anarchy LLM-VM を実行し、ブラウザーからの出力をテストできるようになります。
負荷分散とオーケストレーション ⚖️: (ロードマップ)利用したい LLM またはプロバイダーが複数ある場合、それらを Anarchy LLM-VM に渡して、どれを使用するか、いつ最適化するかを自動的に判断できます。稼働時間またはコスト
出力テンプレート ?: (ROADMAP) LLM が特定の形式でのみデータを出力し、正規表現、LMQL、または OpenAI のテンプレート言語のいずれかを使用してテンプレートから変数を入力するようにできます。
永続的ステートフル メモリ: (ロードマップ) Anarchy LLM-VM はユーザーの会話履歴を記憶し、それに応じて反応できます。
Python 3.10 以上がサポートされています。 Python の古いバージョンはベストエフォート方式です。
bash > python3 --version
を使用して、使用しているバージョンを確認します。
Python をアップグレードするには、 bash > conda create -n myenv python=3.10
を使用して新しい Python 環境を作成するか、https://www.python.org/downloads/ にアクセスして最新バージョンをダウンロードします。
If you plan on running the setup steps below, a proper Python version will be installed for you
モデルが異なればシステム要件も異なります。ほとんどのシステムの制限要因は RAM である可能性がありますが、多くの機能は 16 GB の RAM でも動作します。
ただし、使用しているモデルに関する情報は必ず調べてください。メモリとコンピューティング リソースのサイズと要件はすべて異なります。
最も簡単に始める方法は、Python 環境でpip install llm-vm
実行することです。
LLM-VM をインストールするもう 1 つの方法は、このリポジトリのクローンを作成し、次のように pip を使用してインストールすることです。
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> ./setup.sh
上記の bash スクリプトsetup.sh
、MacOS と Linux でのみ機能します。
あるいは、次のようにすることもできます。
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> python -m venv < name >
> source < name > /bin/activate
> python -m pip install -e . " [dev] "
Windows を使用している場合。次の 2 つの方法のいずれかを実行できます。
次の手順を実行する前に、まず管理者として Powershell を開き、以下のコマンドを実行する必要があります。
> Set-ExecutionPolicy RemoteSigned
> Press Y and enter
> exit
これで、以下の 2 つの方法のいずれかに従うことができます。
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> .windows_setup.ps1
または
> winget install Python.Python.3.11
> python --version
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> python -m venv anarchyai
> anarchyaiScriptsactivate
> python -m pip install -e .
注記:
OpenAI モデルのいずれかを使用している場合は、API キーを使用してLLM_VM_OPENAI_API_KEY
環境変数を設定する必要があります。
当社の LLM-VM を使用すると、わずか 3 行で一般的な LLM をローカルで直接操作できるようになります。 (上記のように) インストールしたら、モデルをロードして生成を開始するだけです。
# import our client
from llm_vm . client import Client
# Select which LLM you want to use, here we have OpenAI
client = Client ( big_model = 'chat_gpt' )
# Put in your prompt and go!
response = client . complete ( prompt = 'What is Anarchy?' , context = '' , openai_key = 'ENTER_YOUR_API_KEY' )
print ( response )
# Anarchy is a political ideology that advocates for the absence of government...
# import our client
from llm_vm . client import Client
# Select the LlaMA 2 model
client = Client ( big_model = 'llama2' )
# Put in your prompt and go!
response = client . complete ( prompt = 'What is Anarchy?' , context = '' )
print ( response )
# Anarchy is a political philosophy that advocates no government...
以下のモデルからお選びください
Supported_Models = [ 'chat_gpt' , 'gpt' , 'neo' , 'llama2' , 'bloom' , 'opt' , 'pythia' ]
ローカル モデルの LLM-VM のデフォルト モデル サイズは、誰でも LLM を実験できるようにすることを目的としていますが、必要なメモリがある場合は、より大きなパラメーター モデルの方がはるかに優れたパフォーマンスを発揮します。
たとえば、教師と生徒に大小の neo モデルを使用する必要があり、十分な RAM がある場合:
# import our client
from llm_vm . client import Client
# Select the LlaMA model
client = Client ( big_model = 'neo' , big_model_config = { 'model_uri' : 'EleutherAI/gpt-neox-20b' },
small_model = 'neo' , small_model_config = { 'model_uri' : 'EleutherAI/gpt-neox-125m' })
# Put in your prompt and go!
response = client . complete ( prompt = 'What is Anarchy?' , context = '' )
print ( response )
# Anarchy is a political philosophy that advocates no government...
デフォルト モデルの詳細は次のとおりです。
名前 | モデル_Uri | モデルパラメータ | チェックポイントファイルのサイズ |
---|---|---|---|
ネオ | EleutherAI/gpt-neo-1.3B | 1.3B | 5.31GB |
咲く | bigscience/bloom-560m | 1.7B | 1.12GB |
オプト | facebook/opt-350m | 350m | 622MB |
各モデル ファミリのメモリ使用量とパラメーター数のその他の選択肢については、model_uri_tables テーブルを確認してください。
FLAT と REBEL の 2 つのエージェントがあります。
src/llm_vm/agents/<AGENT_FOLDER>
に移動し、 agent.py
というタイトルのファイルを実行することにより、エージェントを個別に実行します。
あるいは、単純なインターフェイスを実行し、CLI から実行するエージェントを選択するには、 src/llm_vm/agents/agent_interface.py
ファイルを実行し、コマンド プロンプトの指示に従います。
寄稿者を歓迎します!まずは、アクティブな Discord コミュニティに参加してください。それ以外の場合は、貢献して報酬を受け取る方法がいくつかあります。
特定のチケットをクローズすると報奨金を提供します。チケットのラベルを見て、報奨金がいくらであるかを確認してください。始めるには、Discord に参加してガイドをお読みください
マシュー・マーマン- CEO
Victor Odede - アンドゥーマー
アビギャ・ソダニ- 研究インターン
Carter Schonwald - 大胆不敵な貢献者
カイル・ワイルド- 大胆不敵な貢献者
Aarushi Banerjee - 大胆不敵な貢献者
アンドリュー・ネルソン- 大胆不敵な貢献者
MITライセンス