Un serveur AGI Open Source pour les LLM Open Source
C'est l'effort d'Anarchy pour construire une intelligence artificielle généralisée ouverte ? à travers le LLM-VM : un moyen de donner des super-pouvoirs à vos LLM ? et supervitesse ?.
Vous pouvez trouver des instructions détaillées pour l’essayer en direct ici : anarchy.ai
Ce projet est en BETA. Attendez-vous à une amélioration et un développement continus.
L'Anarchy LLM-VM est un backend hautement optimisé et avisé pour exécuter des LLM avec toutes les fonctionnalités modernes que nous attendons de l'achèvement : utilisation des outils, mémoire avec état persistante, augmentation des données en direct, réglage fin des données et des tâches, modèles de sortie, un terrain de jeu Web, des points de terminaison d'API, une distillation élève-enseignant, une synthèse de données, un équilibrage de charge et une orchestration, un mimétisme de grande fenêtre contextuelle.
Formellement, il s'agit d'une machine virtuelle/interprète pour le langage humain, coordonnant entre les données, les modèles (CPU), vos invites (code) et les outils (IO).
En effectuant toutes ces choses au même endroit et de manière avisée, la LLM-VM peut optimiser correctement les appels par lots qui seraient exorbitants avec des points de terminaison distribués. Il s'efforce en outre d'atteindre un agnosticisme à la fois en matière de modèle et d'architecture, en optimisant correctement le modèle choisi pour l'architecture actuelle.
Conformément à la mission d'Anarchy, le LLM-VM s'efforce de prendre en charge les modèles open source. En utilisant des modèles open source et en les exécutant localement, vous obtenez plusieurs avantages :
Accélérez votre développement AGI : Avec AnarchyAI, une seule interface suffit pour interagir avec les derniers LLM disponibles.
Réduisez vos coûts ? : L’exécution de modèles localement peut réduire les coûts de développement et de test facturés à l’utilisation.
Flexibilité ?♀️ : Anarchy vous permet de basculer rapidement entre les modèles populaires afin que vous puissiez identifier exactement l'outil adapté à votre projet.
Community Vibes ? : Rejoignez notre communauté active de développeurs et d'ingénieurs très motivés qui travaillent avec passion pour démocratiser l'AGI.
WYSIWYG ? : Open source signifie que rien n'est caché ; nous visons la transparence et l’efficacité afin que vous puissiez vous concentrer sur la construction.
Agents implicites ? : L'Anarchy LLM-VM peut être configuré pour utiliser des outils externes via nos agents tels que REBEL simplement en fournissant des descriptions d'outils !
Optimisation de l'inférence ? : La LLM-VM d'Anarchy est optimisée depuis le niveau de l'agent jusqu'à l'assemblage sur des architectures LLM connues pour en tirer le meilleur parti. Avec un traitement par lots de pointe, une inférence et une quantification clairsemées, une distillation et une colocalisation à plusieurs niveaux, nous visons à fournir le cadre le plus rapide disponible.
Optimisation automatique des tâches ? : Anarchy LLM-VM analysera vos cas d'utilisation pour des tâches répétitives où il pourra activer la distillation élève-enseignant pour former un petit modèle super efficace à partir d'un modèle plus général plus grand sans perdre en précision. Il peut en outre tirer parti des techniques de synthèse de données pour améliorer les résultats.
Bibliothèque appelable : nous fournissons une bibliothèque qui peut être utilisée directement à partir de n'importe quelle base de code Python.
Points de terminaison HTTP ?️ : Nous fournissons un serveur HTTP autonome pour gérer les demandes d'achèvement.
Augmentation des données en direct : (ROADMAP) Vous serez en mesure de fournir un ensemble de données de mise à jour en direct et Anarchy LLM-VM affinera vos modèles ou travaillera avec une base de données vectorielle pour fournir des informations à jour avec des citations.
Web Playground ? : (ROADMAP) Vous pourrez exécuter Anarchy LLM-VM et tester ses sorties depuis le navigateur.
Équilibrage de charge et orchestration ⚖️ : (FEUILLE DE ROUTE) Si vous avez plusieurs LLM ou fournisseurs que vous souhaitez utiliser, vous pourrez les transmettre à Anarchy LLM-VM pour déterminer automatiquement avec lequel travailler et quand optimiser votre la disponibilité ou vos coûts
Modèle de sortie ? : (FEUILLE DE ROUTE) Vous pouvez vous assurer que le LLM génère uniquement des données dans des formats spécifiques et remplit les variables d'un modèle avec des expressions régulières, LMQL ou le langage de modèle d'OpenAI.
Mémoire avec état persistant : (ROADMAP) Anarchy LLM-VM peut mémoriser l'historique des conversations d'un utilisateur et réagir en conséquence.
Python >=3.10 Pris en charge. Les anciennes versions de Python fonctionnent au mieux.
Utilisez bash > python3 --version
pour vérifier sur quelle version vous vous trouvez.
Pour mettre à niveau votre python, créez un nouvel environnement python en utilisant bash > conda create -n myenv python=3.10
ou accédez à https://www.python.org/downloads/ pour télécharger la dernière version.
If you plan on running the setup steps below, a proper Python version will be installed for you
Différents modèles ont des exigences système différentes. Les facteurs limitants sur la plupart des systèmes seront probablement la RAM, mais de nombreuses fonctions fonctionneront même avec 16 Go de RAM.
Cela dit, recherchez toujours les informations sur les modèles que vous utilisez, ils ont tous des tailles et des exigences différentes en termes de mémoire et de ressources de calcul.
Le moyen le plus rapide de commencer est d'exécuter pip install llm-vm
dans votre environnement Python.
Une autre façon d'installer la LLM-VM consiste à cloner ce référentiel et à l'installer avec pip comme ceci :
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> ./setup.sh
Le script bash ci-dessus setup.sh
ne fonctionne que pour MacOS et Linux.
Alternativement, vous pouvez faire ceci :
> 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] "
Si vous êtes sous Windows. Vous pouvez suivre l’une des deux méthodes ci-dessous :
Avant d'effectuer l'une des étapes suivantes, vous devez d'abord ouvrir Powershell en tant qu'administrateur et exécuter la commande ci-dessous
> Set-ExecutionPolicy RemoteSigned
> Press Y and enter
> exit
Vous pouvez maintenant suivre l’une des deux méthodes ci-dessous :
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> .windows_setup.ps1
ou
> 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 .
Note :
Si vous utilisez l'un des modèles OpenAI, vous devrez définir la variable d'environnement LLM_VM_OPENAI_API_KEY
avec votre clé API.
Notre LLM-VM vous permet de travailler directement avec des LLM populaires localement en seulement 3 lignes. Une fois que vous l'avez installé (comme ci-dessus), chargez simplement votre modèle et commencez à générer !
# 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...
Choisissez parmi les modèles suivants
Supported_Models = [ 'chat_gpt' , 'gpt' , 'neo' , 'llama2' , 'bloom' , 'opt' , 'pythia' ]
Les tailles de modèle par défaut LLM-VM pour les modèles locaux sont destinées à rendre l'expérimentation des LLM accessible à tous, mais si vous disposez de la mémoire requise, des modèles à paramètres plus grands fonctionneront bien mieux !
par exemple, si vous souhaitez utiliser un grand et un petit modèle néo pour votre professeur et votre élève, et que vous disposez de suffisamment de 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...
Voici quelques détails du modèle par défaut :
Nom | Modèle_Uri | Paramètres du modèle | Taille du fichier de point de contrôle |
---|---|---|---|
Néo | EleutherAI/gpt-neo-1.3B | 1,3B | 5,31 Go |
Floraison | bigscience/bloom-560m | 1,7 milliards | 1,12 Go |
OPTER | facebook/opt-350m | 350m | 622 Mo |
Pour d'autres choix d'utilisation de la mémoire et de nombre de paramètres dans chaque famille de modèles, consultez les tables model_uri_tables.
Il y a deux agents : FLAT et REBEL.
Exécutez les agents séparément en accédant au src/llm_vm/agents/<AGENT_FOLDER>
et en exécutant le fichier intitulé agent.py
.
Alternativement, pour exécuter une interface simple et choisir un agent à exécuter à partir de la CLI, exécutez le fichier src/llm_vm/agents/agent_interface.py
et suivez les instructions de l'invite de commande.
Nous souhaitons la bienvenue aux contributeurs ! Pour commencer, vous devez rejoindre notre communauté Discord active. Sinon, voici quelques façons de contribuer et d'être payé :
Nous offrons des primes pour la clôture de tickets spécifiques ! Regardez les étiquettes des billets pour voir le montant de la prime. Pour commencer, rejoignez le discord et lisez le guide
Matthieu Mirman - PDG
Victor Odède - Undoomer
Abhigya Sodani - Stagiaire de recherche
Carter Schonwald - Contributeur intrépide
Kyle Wild - Contributeur intrépide
Aarushi Banerjee - Contributeur intrépide
Andrew Nelson - Contributeur intrépide
Licence MIT