Découvrez la version bêta de notre Front-End ! Veuillez également consulter notre tweet de lancement pour connaître notre vision de la création du meilleur LLM de jeu de rôle open source au monde.
Remarque : La documentation suivante suppose que vous connaissez les concepts de base de Bittensor : mineurs, validateurs et incitations. Si vous avez besoin d'une introduction, veuillez consulter https://docs.bittensor.com/learn/bittensor-building-blocks.
Dippy est l'une des principales applications compagnons d'IA au monde avec plus d'un million d'utilisateurs . L'application s'est classée n°3 sur l'App Store dans des pays comme l'Allemagne, a été couverte par des publications comme le magazine Wired et l'utilisateur moyen de Dippy passe plus d'une heure sur l'application.
Le sous-réseau Dippy Roleplay sur Bittensor vise à créer le meilleur LLM de jeu de rôle open source au monde en tirant parti des efforts collectifs de la communauté open source. Ce sous-réseau aborde le problème critique de la solitude, qui touche une partie importante de la population et est liée à divers problèmes de santé mentale et physique.
Les LLM SOTA actuels (Claude, OpenAI, etc.) sont conçus pour le cas d'utilisation de l'assistant et n'ont pas les qualités empathiques nécessaires à la camaraderie. Alors que certaines entreprises (comme Character AI et Inflection) ont développé des LLM de jeu de rôle fermés, les alternatives open source sont considérablement en retard en termes de performances.
Compte tenu de la complexité de la création d'un LLM de jeu de rôle de pointe, nous prévoyons de diviser le processus en 3 phases distinctes.
Phase 1 :
Phase 2 :
Phase 3 :
Les mineurs utiliseraient des frameworks existants, des techniques de réglage fin ou MergeKit pour former, affiner ou fusionner des modèles afin de créer un LLM de jeu de rôle unique. Ces modèles seraient soumis à un pool partagé Hugging Face.
Les validateurs évalueraient les performances du modèle via notre protocole et classeraient les soumissions en fonction de diverses mesures (empathie, concision, etc.). Nous fournirons une suite de protocoles de test et d’analyse comparative avec des ensembles de données de pointe.
Pour commencer, clonez le dépôt et cd
-y :
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
pip install -e .
En tant que mineur, vous êtes responsable de tirer parti de toutes les méthodes disponibles à votre disposition, y compris, mais sans s'y limiter, la formation de nouveaux modèles, la fusion de modèles existants (nous recommandons MergeKit), la mise au point des modèles existants, etc. pour faire avancer les LLM de jeu de rôle.
Nous décrivons les critères suivants pour la phase 1 :
Une fois que vous êtes satisfait des performances du modèle pour le cas d'utilisation du jeu de rôle, vous pouvez simplement le soumettre à Hugging Face ? puis utilisez la commande suivante :
python3 dippy_subnet/upload_model.py --hf_repo_id HF_REPO --wallet.name WALLET --wallet.hotkey HOTKEY --chat_template MODEL_CHAT_TEMPLATE --model_dir PATH_TO_MODEL
wandb
(voir ci-dessous) Avant d'exécuter votre validateur, il est recommandé de configurer les poids et biais ( wandb
). Le but de wandb
est de suivre les mesures clés entre les validateurs vers une page accessible au public. ici. Nous recommandons fortement aux validateurs d'utiliser wandb, car il permet aux développeurs de sous-réseaux et aux mineurs de diagnostiquer les problèmes plus rapidement et plus efficacement, par exemple dans le cas où un validateur se verrait attribuer des pondérations anormales. Les journaux Wandb sont collectés par défaut et de manière anonyme, mais nous vous recommandons de créer un compte pour faciliter la différenciation entre les validateurs lors de la recherche d'exécutions sur notre tableau de bord. Si vous ne souhaitez pas exécuter WandB, vous pouvez le faire en ne fournissant pas l'indicateur --wandb-key
lors de l'exécution de votre validateur.
Avant de commencer, comme mentionné précédemment, vous devez d'abord créer un compte wandb
, puis définir votre clé API sur votre système. Voici un guide étape par étape expliquant comment procéder sur Ubuntu :
Avant de vous connecter, assurez-vous que le package wandb
Python est installé. Si vous ne l'avez pas encore installé, vous pouvez le faire en utilisant pip :
# Should already be installed with the repo
pip install wandb
Pour configurer votre clé API WANDB sur votre machine Ubuntu, suivez ces étapes :
Connectez-vous à WANDB : Exécutez la commande suivante dans le terminal :
wandb login
Entrez votre clé API : lorsque vous y êtes invité, collez la clé API que vous avez copiée à partir des paramètres de votre compte WANDB.
Enter
.Vérification de la connexion : Pour vérifier que la clé API a été correctement définie, vous pouvez démarrer un petit script de test en Python qui utilise WANDB. Si tout est correctement configuré, le script devrait s'exécuter sans aucune erreur d'authentification.
Définition de la variable d'environnement de clé API (facultatif) : Si vous préférez ne pas vous connecter à chaque fois, vous pouvez définir votre clé API comme variable d'environnement dans votre fichier ~/.bashrc
ou ~/.bash_profile
:
echo ' export WANDB_API_KEY=your_api_key ' >> ~ /.bashrc
source ~ /.bashrc
Remplacez your_api_key
par la clé API réelle. Cette méthode vous authentifie automatiquement avec wandb chaque fois que vous ouvrez une nouvelle session de terminal.
Pour commencer, clonez le dépôt et cd
-y :
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
pip install -e .
Pour exécuter l'évaluation, utilisez simplement la commande suivante :
python neurons/validator.py --wallet.name WALLET_NAME --wallet.hotkey WALLET_HOT_NAME --wandb-key WANDBKEY
Pour exécuter le validateur de mise à jour automatique avec PM2 (recommandé) :
pm2 start --name sn11-vali-updater --interpreter python scripts/start_validator.py -- --pm2_name sn11-vali --wallet.name WALLET_NAME --wallet.hotkey WALLET_HOT_NAME [other vali flags]
Veuillez noter que ce validateur appellera le service de validation de modèle hébergé par les propriétaires du sous-réseau Dippy. Si vous souhaitez exécuter le service de validation de modèle localement, veuillez suivre les instructions ci-dessous.
Remarque : Actuellement (17 juin 2024), il y a quelques problèmes avec l'API d'évaluation locale. Nous vous recommandons d'utiliser temporairement l'API de validation à distance.
Le démarrage d'un validateur à l'aide de votre API de validateur locale nécessite de démarrer le validateur avec l'indicateur --use-local-validation-api
. De plus, une file d'attente de modèles est requise pour pousser les modèles vers l'API de validation.
Remarque : L'API Validator doit être installée dans un venv différent de celui du validateur en raison d'un conflit de version pydantic
.
Installez Git Lfs s'il n'est pas installé.
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
Si vous utilisez runpod, vous devrez peut-être également installer « netstat ».
apt-get install net-tools
Pour commencer, clonez le dépôt et cd
-y :
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
python3 -m venv model_validation_venv
source model_validation_venv/bin/activate
model_validation_venv/bin/pip install -e . --no-deps
model_validation_venv/bin/pip install -r requirements_val_api.txt
(Remarque : il existe actuellement des modifications importantes qui posent des problèmes pour exécuter un service d'API de validation locale. Toutes les tâches nécessitant les variables d'environnement ADMIN_KEY
ou DIPPY_KEY
s'appliquent ici)
cd dippy_validation_api
chmod +x start_validation_service.sh
./start_validation_service.sh
python3 test_api.py
Et vous devriez voir un json indiquant que l'état du modèle est « QUEUED ». En exécutant à nouveau la même commande pour des raisons de santé mentale, vous devriez voir l'état du modèle comme « RUNNING ».
chmod +x kill_validation_api.sh
./kill_validation_api.sh
# Make a separate venv for the validator because of pydantic version conflict
python -m venv validator_venv
validator_venv/bin/pip install -e .
validator_venv/bin/python neurons/validator.py --wallet.name WALLET_NAME --wallet.hotkey WALLET_HOT_NAME --use-local-validation-api
# Run model queue to push models to validation api to be evaluated
validator_venv/bin/python neurons/model_queue.py --use-local-validation-api
Un modèle plus petit obtiendra un score plus élevé qu’un grand modèle. La taille du modèle est l'espace disque occupé par le dépôt de modèle de HF. La taille maximale du modèle est limitée à 72 Go.
Un modèle plus rapide obtiendra un score plus élevé qu’un modèle lent.
Évalué par rapport à des ensembles de données, un modèle qui génère une réponse similaire à la vérité terrain obtiendra un score plus élevé.
Un modèle capable de générer des sorties d’une longueur similaire à celle de ses entrées obtiendra un score plus élevé.
Notre base de code est construite sur les sous-réseaux de Nous Research et MyShell.
Le sous-réseau Dippy Bittensor est publié sous la licence MIT.