Ein Open-Source-AGI-Server für Open-Source-LLMs
Ist dies Anarchys Versuch, eine offene, verallgemeinerte künstliche Intelligenz aufzubauen? durch die LLM-VM: eine Möglichkeit, Ihren LLMs Superkräfte zu verleihen? und Superspeed?
Eine ausführliche Anleitung zum Live-Ausprobieren finden Sie hier: anarchy.ai
Dieses Projekt befindet sich in der BETA-Phase. Erwarten Sie kontinuierliche Verbesserung und Weiterentwicklung.
Die Anarchy LLM-VM ist ein hochoptimiertes und eigenwilliges Backend für die Ausführung von LLMs mit allen modernen Funktionen, die wir von der Fertigstellung erwarten: Tool-Nutzung, persistenter Stateful-Speicher, Live-Datenerweiterung, Daten- und Aufgaben-Feinabstimmung, Ausgabevorlagen, ein Web-Spielplatz, API-Endpunkte, Schüler-Lehrer-Destillation, Datensynthese, Lastausgleich und Orchestrierung, große Kontextfenster-Mimikry.
Formal handelt es sich um eine virtuelle Maschine/einen Dolmetscher für die menschliche Sprache, die Daten, Modelle (CPU), Ihre Eingabeaufforderungen (Code) und Tools (IO) koordiniert.
Indem die LLM-VM all diese Dinge auf eine eigensinnige Weise an einem Ort erledigt, kann sie Batch-Aufrufe richtig optimieren, die bei verteilten Endpunkten exorbitant teuer wären. Darüber hinaus wird sowohl Modell- als auch Architekturunabhängigkeit angestrebt, sodass das ausgewählte Modell ordnungsgemäß für die aktuelle Architektur optimiert wird.
Im Einklang mit der Mission von Anarchy ist die LLM-VM bestrebt, Open-Source-Modelle zu unterstützen. Durch die Nutzung von Open-Source-Modellen und deren lokale Ausführung erzielen Sie mehrere Vorteile:
Beschleunigen Sie Ihre AGI-Entwicklung: Mit AnarchyAI benötigen Sie nur eine Schnittstelle, um mit den neuesten verfügbaren LLMs zu interagieren.
Reduzieren Sie Ihre Kosten?: Durch den lokalen Betrieb von Modellen können die Pay-as-you-go-Kosten für Entwicklung und Tests gesenkt werden.
Flexibilität ?♀️: Mit Anarchy können Sie schnell zwischen beliebten Modellen wechseln, sodass Sie genau das richtige Werkzeug für Ihr Projekt finden können.
Community Vibes?: Treten Sie unserer aktiven Community aus hochmotivierten Entwicklern und Ingenieuren bei, die leidenschaftlich an der Demokratisierung von AGI arbeiten
WYSIWYG ?: Open Source bedeutet, dass nichts verborgen bleibt; Wir streben nach Transparenz und Effizienz, damit Sie sich auf das Bauen konzentrieren können.
Implizite Agenten?: Die Anarchy LLM-VM kann so eingerichtet werden, dass sie externe Tools über unsere Agenten wie REBEL verwendet, indem einfach Toolbeschreibungen bereitgestellt werden!
Inferenzoptimierung?: Die Anarchy LLM-VM ist von der Agentenebene bis hin zur Montage auf bekannten LLM-Architekturen optimiert, um das Beste für Ihr Geld zu bekommen. Mit modernster Batchverarbeitung, spärlicher Inferenz und Quantisierung, Destillation und mehrstufiger Colocation wollen wir das schnellste verfügbare Framework bereitstellen.
Automatische Aufgabenoptimierung?: Die Anarchy LLM-VM analysiert Ihre Anwendungsfälle für sich wiederholende Aufgaben, wobei sie die Schüler-Lehrer-Destillation aktivieren kann, um ein supereffizientes kleines Modell aus einem größeren, allgemeineren Modell zu trainieren, ohne an Genauigkeit zu verlieren. Darüber hinaus können Datensynthesetechniken genutzt werden, um die Ergebnisse zu verbessern.
Aufrufbare Bibliothek: Wir stellen eine Bibliothek bereit, die direkt von jeder Python-Codebasis aus verwendet werden kann.
HTTP-Endpunkte ?️: Wir stellen einen eigenständigen HTTP-Server zur Verfügung, um Abschlussanfragen zu verarbeiten.
Live-Datenerweiterung: (ROADMAP) Sie können einen Datensatz mit Live-Aktualisierung bereitstellen und die Anarchy LLM-VM optimiert Ihre Modelle oder arbeitet mit einer Vektor-Datenbank, um aktuelle Informationen mit Zitaten bereitzustellen
Web Playground ?: (ROADMAP) Sie können die Anarchy LLM-VM ausführen und ihre Ausgaben über den Browser testen.
Lastausgleich und Orchestrierung ⚖️: (ROADMAP) Wenn Sie mehrere LLMs oder Anbieter nutzen möchten, können Sie diese an die Anarchy LLM-VM übergeben, um automatisch herauszufinden, mit welchen Sie zusammenarbeiten und wann Sie Ihre optimieren müssen Betriebszeit oder Ihre Kosten
Ausgabevorlage?: (ROADMAP) Sie können sicherstellen, dass das LLM nur Daten in bestimmten Formaten ausgibt und Variablen aus einer Vorlage entweder mit regulären Ausdrücken, LMQL oder der Vorlagensprache von OpenAI ausfüllt
Persistent Stateful Memory: (ROADMAP) Die Anarchy LLM-VM kann sich den Konversationsverlauf eines Benutzers merken und entsprechend reagieren
Python >=3.10 Unterstützt. Ältere Versionen von Python basieren auf dem Best-Effort-Prinzip.
Verwenden Sie bash > python3 --version
um zu überprüfen, welche Version Sie verwenden.
Um Ihr Python zu aktualisieren, erstellen Sie entweder eine neue Python-Umgebung mit bash > conda create -n myenv python=3.10
oder gehen Sie zu https://www.python.org/downloads/, um die neueste Version herunterzuladen.
If you plan on running the setup steps below, a proper Python version will be installed for you
Verschiedene Modelle haben unterschiedliche Systemanforderungen. Begrenzende Faktoren dürften bei den meisten Systemen der Arbeitsspeicher sein, aber viele Funktionen funktionieren bereits mit 16 GB Arbeitsspeicher.
Informieren Sie sich jedoch immer über die von Ihnen verwendeten Modelle, da diese alle unterschiedliche Größen und Anforderungen an Arbeitsspeicher und Rechenressourcen haben.
Der schnellste Einstieg besteht darin pip install llm-vm
in Ihrer Python-Umgebung auszuführen.
Eine andere Möglichkeit, die LLM-VM zu installieren, besteht darin, dieses Repository zu klonen und es mit pip wie folgt zu installieren:
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> ./setup.sh
Das obige Bash-Skript setup.sh
funktioniert nur für MacOS und Linux.
Alternativ könnten Sie Folgendes tun:
> 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] "
Wenn Sie Windows verwenden. Sie können einer der beiden folgenden Methoden folgen:
Bevor Sie einen der folgenden Schritte ausführen, müssen Sie Powershell zunächst als Administrator öffnen und den folgenden Befehl ausführen
> Set-ExecutionPolicy RemoteSigned
> Press Y and enter
> exit
Jetzt können Sie eine der beiden folgenden Methoden anwenden:
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> .windows_setup.ps1
oder
> 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 .
Notiz :
Wenn Sie eines der OpenAI-Modelle verwenden, müssen Sie die Umgebungsvariable LLM_VM_OPENAI_API_KEY
mit Ihrem API-Schlüssel festlegen.
Mit unserer LLM-VM können Sie in nur 3 Zeilen direkt vor Ort mit beliebten LLMs arbeiten. Sobald Sie es installiert haben (wie oben), laden Sie einfach Ihr Modell und beginnen Sie mit der Generierung!
# 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...
Wählen Sie aus den folgenden Modellen
Supported_Models = [ 'chat_gpt' , 'gpt' , 'neo' , 'llama2' , 'bloom' , 'opt' , 'pythia' ]
Die Standardmodellgrößen von LLM-VM für lokale Modelle sollen das Experimentieren mit LLMs für jedermann zugänglich machen. Wenn Sie jedoch über den erforderlichen Speicher verfügen, sind Modelle mit größeren Parametern weitaus leistungsfähiger!
Wenn Sie beispielsweise ein großes und ein kleines Neo-Modell für Ihren Lehrer und Schüler verwenden möchten und über genügend RAM verfügen:
# 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...
Hier sind einige Details zum Standardmodell:
Name | Model_Uri | Modellparameter | Größe der Checkpoint-Datei |
---|---|---|---|
Neo | EleutherAI/gpt-neo-1.3B | 1,3B | 5,31 GB |
Blühen | bigscience/bloom-560m | 1,7B | 1,12 GB |
OPT | facebook/opt-350m | 350m | 622 MB |
Weitere Optionen zur Speichernutzung und Parameteranzahl in jeder Modellfamilie finden Sie in den Tabellen model_uri_tables.
Es gibt zwei Agenten: FLAT und REBEL.
Führen Sie die Agenten separat aus, indem Sie in src/llm_vm/agents/<AGENT_FOLDER>
gehen und die Datei mit dem Titel agent.py
ausführen.
Um alternativ eine einfache Schnittstelle auszuführen und einen Agenten auszuwählen, der über die CLI ausgeführt werden soll, führen Sie die Datei src/llm_vm/agents/agent_interface.py
aus und befolgen Sie die Anweisungen der Eingabeaufforderung.
Wir freuen uns über Mitwirkende! Um zu beginnen, müssen Sie unserer aktiven Discord-Community beitreten. Ansonsten gibt es hier einige Möglichkeiten, einen Beitrag zu leisten und bezahlt zu werden:
Wir bieten Prämien für das Schließen bestimmter Tickets an! Sehen Sie sich die Ticketetiketten an, um zu sehen, wie hoch das Kopfgeld ist. Treten Sie zunächst dem Discord bei und lesen Sie den Leitfaden
Matthew Mirman – CEO
Victor Odede – Undoomer
Abhigya Sodani – Forschungspraktikantin
Carter Schonwald – Furchtloser Mitwirkender
Kyle Wild – Furchtloser Mitwirkender
Aarushi Banerjee – Furchtloser Mitwirkender
Andrew Nelson – Furchtloser Mitwirkender
MIT-Lizenz