Schauen Sie sich die Beta-Version unseres Front-Ends an! Lesen Sie auch unseren Launch-Tweet für unsere Vision, das weltweit beste Open-Source-Rollenspiel-LLM zu entwickeln.
Hinweis: In der folgenden Dokumentation wird davon ausgegangen, dass Sie mit den grundlegenden Bittensor-Konzepten vertraut sind: Miner, Validatoren und Anreize. Wenn Sie eine Grundierung benötigen, schauen Sie sich bitte https://docs.bittensor.com/learn/bittensor-building-blocks an.
Dippy ist eine der weltweit führenden KI-Begleit-Apps mit mehr als einer Million Nutzern . Die App belegt in Ländern wie Deutschland Platz 3 im App Store , wurde von Publikationen wie dem Wired-Magazin besprochen und der durchschnittliche Dippy-Benutzer verbringt mehr als eine Stunde mit der App.
Das Dippy Roleplay-Subnetz auf Bittensor zielt darauf ab, das weltweit beste Open-Source-Rollenspiel-LLM zu schaffen, indem es die gemeinsamen Anstrengungen der Open-Source-Community nutzt. Dieses Subnetz befasst sich mit dem kritischen Problem der Einsamkeit, das einen erheblichen Teil der Bevölkerung betrifft und mit verschiedenen psychischen und physischen Gesundheitsproblemen verbunden ist.
Aktuelle SOTA-LLMs (Claude, OpenAI usw.) sind für den Anwendungsfall Assistent konzipiert und verfügen nicht über die für Kameradschaft erforderlichen einfühlsamen Qualitäten. Während einige Unternehmen (wie Character AI und Inflection) Closed-Source-Rollenspiel-LLMs entwickelt haben, hinken die Open-Source-Alternativen in der Leistung deutlich hinterher.
Angesichts der Komplexität der Erstellung eines hochmodernen Rollenspiel-LLM planen wir, den Prozess in drei verschiedene Phasen zu unterteilen.
Phase 1:
Phase 2:
Phase 3:
Miner würden vorhandene Frameworks, Feinabstimmungstechniken oder MergeKit verwenden, um Modelle zu trainieren, zu verfeinern oder zusammenzuführen, um ein einzigartiges Rollenspiel-LLM zu erstellen. Diese Modelle würden an einen gemeinsamen Hugging Face-Pool übermittelt.
Validatoren würden die Modellleistung über unser Protokoll bewerten und bewerten und die Einsendungen anhand verschiedener Metriken (Empathie, Prägnanz usw.) bewerten. Wir stellen eine Reihe von Test- und Benchmarking-Protokollen mit modernsten Datensätzen bereit.
Klonen Sie zunächst das Repository und kopieren Sie es per cd
:
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
pip install -e .
Als Miner sind Sie dafür verantwortlich, alle Ihnen zur Verfügung stehenden Methoden zu nutzen, einschließlich, aber nicht beschränkt auf das Training neuer Modelle, das Zusammenführen vorhandener Modelle (wir empfehlen MergeKit), die Feinabstimmung bestehender Modelle usw., um Rollenspiel-LLMs voranzutreiben.
Wir skizzieren die folgenden Kriterien für Phase 1:
Sobald Sie mit der Leistung des Modells für den Rollenspiel-Anwendungsfall zufrieden sind, können Sie es einfach an Hugging Face senden. und verwenden Sie dann den folgenden Befehl:
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
(siehe unten) Bevor Sie Ihren Validator ausführen, wird empfohlen, Gewichtungen und Verzerrungen ( wandb
) einzurichten. Der Zweck von wandb
besteht darin, wichtige Kennzahlen über Validatoren hinweg auf einer öffentlich zugänglichen Seite zu verfolgen. Hier. Wir empfehlen Validatoren dringend , wandb zu verwenden, da es Subnetzentwicklern und Minern ermöglicht, Probleme schneller und effektiver zu diagnostizieren, beispielsweise für den Fall, dass ein Validator ungewöhnliche Gewichtungen festlegen sollte. Wandb-Protokolle werden standardmäßig gesammelt und zwar anonym. Wir empfehlen jedoch die Einrichtung eines Kontos, um die Unterscheidung zwischen Validatoren bei der Suche nach Läufen in unserem Dashboard zu erleichtern. Wenn Sie WandB nicht ausführen möchten, können Sie dies tun, indem Sie beim Ausführen Ihres Validators nicht das Flag --wandb-key
angeben.
Bevor Sie beginnen, müssen Sie sich, wie bereits erwähnt, zunächst für ein wandb
-Konto registrieren und dann Ihren API-Schlüssel auf Ihrem System festlegen. Hier ist eine Schritt-für-Schritt-Anleitung, wie Sie dies unter Ubuntu tun:
Stellen Sie vor dem Anmelden sicher, dass das wandb
-Python-Paket installiert ist. Wenn Sie es noch nicht installiert haben, können Sie dies mit pip tun:
# Should already be installed with the repo
pip install wandb
Führen Sie die folgenden Schritte aus, um Ihren WANDB-API-Schlüssel auf Ihrem Ubuntu-Computer zu konfigurieren:
Melden Sie sich bei WANDB an : Führen Sie den folgenden Befehl im Terminal aus:
wandb login
Geben Sie Ihren API-Schlüssel ein : Wenn Sie dazu aufgefordert werden, fügen Sie den API-Schlüssel ein, den Sie aus Ihren WANDB-Kontoeinstellungen kopiert haben.
Enter
.Überprüfen der Anmeldung : Um zu überprüfen, ob der API-Schlüssel richtig eingestellt wurde, können Sie ein kleines Testskript in Python starten, das WANDB verwendet. Wenn alles richtig eingerichtet ist, sollte das Skript ohne Authentifizierungsfehler laufen.
API-Schlüssel-Umgebungsvariable festlegen (optional) : Wenn Sie sich nicht jedes Mal anmelden möchten, können Sie Ihren API-Schlüssel als Umgebungsvariable in Ihrer ~/.bashrc
oder ~/.bash_profile
Datei festlegen:
echo ' export WANDB_API_KEY=your_api_key ' >> ~ /.bashrc
source ~ /.bashrc
Ersetzen Sie your_api_key
durch den tatsächlichen API-Schlüssel. Diese Methode authentifiziert Sie automatisch bei wandb, jedes Mal, wenn Sie eine neue Terminalsitzung öffnen.
Klonen Sie zunächst das Repository und kopieren Sie es per cd
:
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
pip install -e .
Um die Auswertung auszuführen, verwenden Sie einfach den folgenden Befehl:
python neurons/validator.py --wallet.name WALLET_NAME --wallet.hotkey WALLET_HOT_NAME --wandb-key WANDBKEY
So führen Sie den automatisch aktualisierenden Validator mit PM2 aus (empfohlen):
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]
Bitte beachten Sie, dass dieser Validator den von den Inhabern des Dippy-Subnetzes gehosteten Modellvalidierungsdienst aufruft. Wenn Sie den Modellvalidierungsdienst lokal ausführen möchten, befolgen Sie bitte die nachstehenden Anweisungen.
Hinweis : Derzeit (17. Juni 2024) gibt es einige Probleme mit der lokalen Bewertungs-API. Wir empfehlen, vorübergehend die Remote-Validierungs-API zu verwenden.
Das Starten eines Validators mit Ihrer lokalen Validator-API erfordert das Starten des Validators mit dem Flag --use-local-validation-api
. Darüber hinaus ist eine Modellwarteschlange erforderlich, um Modelle an die Validierungs-API zu übertragen.
Hinweis : Aufgrund eines pydantic
Versionskonflikts muss die Validator-API in einem anderen Venv als der Validator installiert werden.
Installieren Sie Git Lfs, falls es nicht installiert ist.
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
Wenn Sie Runpod verwenden, müssen Sie möglicherweise auch „netstat“ installieren.
apt-get install net-tools
Klonen Sie zunächst das Repository und cd
hinein:
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
(Hinweis: Derzeit gibt es wichtige Änderungen, die die Ausführung eines lokalen Validierungs-API-Dienstes vor Herausforderungen stellen. Hier gelten alle Aufgaben, die die Umgebungsvariablen ADMIN_KEY
oder DIPPY_KEY
erfordern.)
cd dippy_validation_api
chmod +x start_validation_service.sh
./start_validation_service.sh
python3 test_api.py
Und Sie sollten einen JSON sehen, der anzeigt, dass der Modellstatus „QUEUED“ ist. Wenn Sie denselben Befehl aus Gründen der Vernunft noch einmal ausführen, sollten Sie den Status des Modells als „RUNNING“ sehen.
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
Ein kleineres Modell erzielt eine höhere Punktzahl als ein großes Modell. Die Modellgröße ist der Speicherplatz, der vom Modell-Repo von HF belegt wird. Die maximale Modellgröße ist auf 72 GB begrenzt.
Ein schnelleres Modell erzielt eine höhere Punktzahl als ein langsames Modell.
Bei der Auswertung anhand von Datensätzen erzielt ein Modell, das eine ähnliche Reaktion wie die Grundwahrheit erzeugt, eine höhere Punktzahl.
Ein Modell, das Ausgaben mit ähnlicher Länge wie seine Eingaben generieren kann, erzielt eine höhere Punktzahl.
Unsere Codebasis basiert auf den Subnetzen von Nous Research und MyShell.
Das Dippy Bittensor-Subnetz wird unter der MIT-Lizenz veröffentlicht.