¡Mira la versión beta de nuestro Front-End! Además, consulte nuestro Tweet de lanzamiento para conocer nuestra visión de crear el mejor LLM de juegos de rol de código abierto del mundo.
Nota: La siguiente documentación supone que está familiarizado con los conceptos básicos de Bittensor: mineros, validadores e incentivos. Si necesita una introducción, consulte https://docs.bittensor.com/learn/bittensor-building-blocks.
Dippy es una de las aplicaciones complementarias de IA líderes en el mundo con más de 1 millón de usuarios . La aplicación ocupa el puesto número 3 en la App Store en países como Alemania, ha sido cubierta por publicaciones como la revista Wired y el usuario promedio de Dippy pasa más de 1 hora en la aplicación.
La subred Dippy Roleplay en Bittensor tiene como objetivo crear el mejor LLM de juegos de rol de código abierto del mundo aprovechando los esfuerzos colectivos de la comunidad de código abierto. Esta subred aborda el tema crítico de la soledad, que afecta a una parte importante de la población y está relacionada con diversos problemas de salud física y mental.
Los LLM SOTA actuales (Claude, OpenAI, etc.) están diseñados para el caso de uso de asistente y carecen de las cualidades empáticas necesarias para el compañerismo. Si bien algunas empresas (como Character AI e Inflection) han desarrollado LLM de juegos de rol de código cerrado, las alternativas de código abierto están muy por detrás en cuanto a rendimiento.
Dada la complejidad de crear un LLM de juego de rol de última generación, planeamos dividir el proceso en 3 fases distintas.
Fase 1:
Fase 2:
Fase 3:
Los mineros utilizarían marcos existentes, técnicas de ajuste fino o MergeKit para entrenar, ajustar o fusionar modelos para crear un LLM de juego de roles único. Estos modelos se enviarían a un grupo compartido de Hugging Face.
Los validadores evaluarían el rendimiento del modelo a través de nuestro protocolo y clasificarían los envíos en función de varias métricas (empatía, concisión, etc.). Proporcionaremos un conjunto de protocolos de prueba y evaluación comparativa con conjuntos de datos de última generación.
Para comenzar, clone el repositorio y cd
:
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
pip install -e .
Como minero, usted es responsable de aprovechar todos los métodos disponibles a su disposición, incluidos, entre otros, entrenar nuevos modelos, fusionar modelos existentes (recomendamos MergeKit), ajustar los modelos existentes, etc. para impulsar los LLM de juegos de rol.
Describimos los siguientes criterios para la Fase 1:
Una vez que esté satisfecho con el rendimiento del modelo para el caso de uso de Roleplay, simplemente puede enviarlo a Hugging Face. y luego use el siguiente comando:
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
(ver más abajo) Antes de ejecutar su validador, se recomienda configurar Pesos y Sesgos ( wandb
). El propósito de wandb
es rastrear métricas clave entre validadores hasta una página de acceso público. aquí. Recomendamos encarecidamente que los validadores utilicen wandb, ya que permite a los desarrolladores y mineros de subredes diagnosticar problemas de manera más rápida y efectiva, por ejemplo, en caso de que a un validador se le establecieran pesos anormales. Los registros de Wandb se recopilan de forma predeterminada y lo hacen de forma anónima, pero recomendamos configurar una cuenta para que sea más fácil diferenciar entre validadores cuando buscan ejecuciones en nuestro panel. Si no desea ejecutar WandB, puede hacerlo no proporcionando el indicador --wandb-key
cuando ejecute su validador.
Antes de comenzar, como se mencionó anteriormente, primero deberá registrarse para obtener una cuenta wandb
y luego configurar su clave API en su sistema. Aquí hay una guía paso a paso sobre cómo hacer esto en Ubuntu:
Antes de iniciar sesión, asegúrese de tener instalado el paquete wandb
Python. Si aún no lo has instalado, puedes hacerlo usando pip:
# Should already be installed with the repo
pip install wandb
Para configurar su clave API WANDB en su máquina Ubuntu, siga estos pasos:
Inicie sesión en WANDB : ejecute el siguiente comando en la terminal:
wandb login
Ingrese su clave API : cuando se le solicite, pegue la clave API que copió de la configuración de su cuenta WANDB.
Enter
.Verificación del inicio de sesión : para verificar que la clave API se configuró correctamente, puede iniciar un pequeño script de prueba en Python que use WANDB. Si todo está configurado correctamente, el script debería ejecutarse sin errores de autenticación.
Configuración de la variable de entorno de la clave API (opcional) : si prefiere no iniciar sesión cada vez, puede configurar su clave API como una variable de entorno en su archivo ~/.bashrc
o ~/.bash_profile
:
echo ' export WANDB_API_KEY=your_api_key ' >> ~ /.bashrc
source ~ /.bashrc
Reemplace your_api_key
con la clave API real. Este método lo autentica automáticamente con wandb cada vez que abre una nueva sesión de terminal.
Para comenzar, clone el repositorio y cd
:
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
pip install -e .
Para ejecutar la evaluación, simplemente use el siguiente comando:
python neurons/validator.py --wallet.name WALLET_NAME --wallet.hotkey WALLET_HOT_NAME --wandb-key WANDBKEY
Para ejecutar el validador de actualización automática con PM2 (recomendado):
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]
Tenga en cuenta que este validador llamará al servicio de validación de modelos alojado por los propietarios de la subred dippy. Si desea ejecutar el servicio de validación de modelos localmente, siga las instrucciones a continuación.
Nota : Actualmente (17 de junio de 2024) hay algunos problemas con la API de evaluación local. Recomendamos utilizar la API de validación remota temporalmente.
Iniciar un validador usando su API de validador local requiere iniciar el validador con el indicador --use-local-validation-api
. Además, se requiere una cola de modelos para enviar modelos a la API de validación.
Nota : La API del validador debe instalarse en un venv diferente al del validador debido a un conflicto de versiones pydantic
.
Instale Git Lfs si no está instalado.
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
Si está ejecutando runpod, es posible que también necesite instalar 'netstat'.
apt-get install net-tools
Para comenzar, clone el repositorio y cd
en él:
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
(Nota: actualmente hay cambios importantes que plantean desafíos para ejecutar un servicio API de validación local. Cualquier tarea que requiera las variables de entorno ADMIN_KEY
o DIPPY_KEY
se aplica aquí)
cd dippy_validation_api
chmod +x start_validation_service.sh
./start_validation_service.sh
python3 test_api.py
Y debería ver un json que muestra que el estado del modelo es "EN COLA". Al ejecutar el mismo comando nuevamente por motivos de cordura, debería ver el estado del modelo como "EN EJECUCIÓN".
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 modelo más pequeño obtendrá una puntuación más alta que un modelo grande. El tamaño del modelo es el espacio en disco ocupado por el repositorio de modelos de HF. El tamaño máximo del modelo está limitado a 72 GB.
Un modelo más rápido obtendrá una puntuación más alta que un modelo lento.
Evaluado frente a conjuntos de datos, un modelo que genere una respuesta similar a la verdad sobre el terreno obtendrá una puntuación más alta.
Un modelo que pueda generar resultados con una longitud similar a la de sus entradas obtendrá una puntuación más alta.
Nuestra base de código se basa en las subredes de Nous Research y MyShell.
La subred Dippy Bittensor se publica bajo la licencia MIT.