Confira a versão beta do nosso Front-End! Além disso, verifique nosso Tweet de lançamento para conhecer nossa visão de criar o melhor LLM de RPG de código aberto do mundo.
Observação: a documentação a seguir pressupõe que você esteja familiarizado com os conceitos básicos do Bittensor: mineradores, validadores e incentivos. Se você precisar de uma cartilha, verifique https://docs.bittensor.com/learn/bittensor-building-blocks.
Dippy é um dos principais aplicativos complementares de IA do mundo, com mais de 1 milhão de usuários . O aplicativo ficou em 3º lugar na App Store em países como a Alemanha, foi coberto por publicações como a revista Wired e o usuário médio do Dippy passa mais de 1 hora no aplicativo.
A sub-rede Dippy Roleplay no Bittensor visa criar o melhor LLM de roleplay de código aberto do mundo, aproveitando os esforços coletivos da comunidade de código aberto. Esta sub-rede aborda a questão crítica da solidão, que afecta uma parcela significativa da população e está ligada a vários problemas de saúde física e mental.
Os LLMs SOTA atuais (Claude, OpenAI etc.) são projetados para o caso de uso de assistente e carecem das qualidades empáticas necessárias para o companheirismo. Embora algumas empresas (como Character AI e Inflection) tenham desenvolvido LLMs de roleplay de código fechado, as alternativas de código aberto ficam significativamente atrás em desempenho.
Dada a complexidade de criar um LLM de roleplay de última geração, planejamos dividir o processo em 3 fases distintas.
Fase 1:
Fase 2:
Fase 3:
Os mineradores usariam estruturas existentes, técnicas de ajuste fino, ou MergeKit, para treinar, ajustar ou mesclar modelos para criar um LLM de roleplay exclusivo. Esses modelos seriam submetidos a um pool compartilhado de Hugging Face.
Os validadores avaliariam e avaliariam o desempenho do modelo por meio de nosso protocolo e classificariam os envios com base em várias métricas (empatia, concisão, etc.). Forneceremos um conjunto de protocolos de teste e benchmarking com conjuntos de dados de última geração.
Para começar, clone o repositório e cd
nele:
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
pip install -e .
Como minerador, você é responsável por aproveitar todos os métodos disponíveis à sua disposição, incluindo, entre outros, treinar novos modelos, mesclar modelos existentes (recomendamos MergeKit), ajustar modelos existentes e assim por diante para impulsionar os LLMs de RPG.
Descrevemos os seguintes critérios para a Fase 1:
Quando estiver satisfeito com o desempenho do modelo para o caso de Roleplay, você pode simplesmente enviá-lo para Hugging Face ? e então use o seguinte 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
(veja abaixo) Antes de executar seu validador, é recomendado configurar Pesos e Vieses ( wandb
). O objetivo do wandb
é rastrear as principais métricas dos validadores para uma página acessível ao público. aqui. É altamente recomendável que os validadores usem o wandb, pois ele permite que desenvolvedores de sub-redes e mineradores diagnostiquem problemas de forma mais rápida e eficaz, por exemplo, no caso de um validador receber pesos anormais. Os logs do Wandb são coletados por padrão e feitos de forma anônima, mas recomendamos a configuração de uma conta para facilitar a diferenciação entre validadores ao pesquisar execuções em nosso painel. Se você não quiser executar o WandB, poderá fazê-lo não fornecendo o sinalizador --wandb-key
ao executar seu validador.
Antes de começar, conforme mencionado anteriormente, primeiro você precisa se registrar para uma conta wandb
e, em seguida, definir sua chave API em seu sistema. Aqui está um guia passo a passo sobre como fazer isso no Ubuntu:
Antes de fazer login, certifique-se de ter o pacote wandb
Python instalado. Se você ainda não instalou, você pode fazer isso usando pip:
# Should already be installed with the repo
pip install wandb
Para configurar sua chave API WANDB em sua máquina Ubuntu, siga estas etapas:
Faça login no WANDB : execute o seguinte comando no terminal:
wandb login
Insira sua chave API : quando solicitado, cole a chave API que você copiou das configurações da sua conta WANDB.
Enter
.Verificando o Login : Para verificar se a chave API foi definida corretamente, você pode iniciar um pequeno script de teste em Python que usa WANDB. Se tudo estiver configurado corretamente, o script deverá ser executado sem erros de autenticação.
Configurando a variável de ambiente da chave de API (opcional) : Se preferir não fazer login sempre, você pode definir sua chave de API como uma variável de ambiente em seu arquivo ~/.bashrc
ou ~/.bash_profile
:
echo ' export WANDB_API_KEY=your_api_key ' >> ~ /.bashrc
source ~ /.bashrc
Substitua your_api_key
pela chave de API real. Este método autentica você automaticamente com wandb sempre que você abre uma nova sessão de terminal.
Para começar, clone o repositório e cd
nele:
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
pip install -e .
Para executar a avaliação, basta usar o seguinte comando:
python neurons/validator.py --wallet.name WALLET_NAME --wallet.hotkey WALLET_HOT_NAME --wandb-key WANDBKEY
Para executar o validador de atualização automática com 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]
Observe que este validador chamará o serviço de validação de modelo hospedado pelos proprietários da sub-rede dippy. Se desejar executar o serviço de validação de modelo localmente, siga as instruções abaixo.
Nota : Atualmente (17 de junho de 2024) existem alguns problemas com a API de avaliação local. Recomendamos usar a API de validação remota temporariamente.
Iniciar um validador usando sua API de validador local requer iniciar o validador com o sinalizador --use-local-validation-api
. Além disso, uma fila de modelos é necessária para enviar modelos para a API de validação.
Nota : A API do validador precisa ser instalada em um local diferente do validador devido ao conflito de versão pydantic
.
Instale o Git Lfs se não estiver instalado.
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
Se você estiver executando o runpod, também poderá precisar instalar o 'netstat'.
apt-get install net-tools
Para começar, clone o repositório e cd
nele:
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
(Observação: atualmente há alterações importantes que representam desafios para a execução de um serviço de API de validação local. Quaisquer tarefas que exijam os env vars ADMIN_KEY
ou DIPPY_KEY
se aplicam aqui)
cd dippy_validation_api
chmod +x start_validation_service.sh
./start_validation_service.sh
python3 test_api.py
E você deverá ver um json mostrando que o status do modelo é "QUEUED" Executando o mesmo comando novamente por uma questão de sanidade, você deverá ver o status do modelo como "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
Um modelo menor terá uma pontuação mais alta do que um modelo grande. O tamanho do modelo é o espaço em disco ocupado pelo repositório de modelos de HF. O tamanho máximo do modelo é limitado a 72 GB.
Um modelo mais rápido terá uma pontuação mais alta do que um modelo lento.
Avaliado em relação a conjuntos de dados, um modelo que gere uma resposta semelhante à verdade básica terá uma pontuação mais alta.
Um modelo que pode gerar resultados com comprimento semelhante aos seus insumos terá uma pontuação mais alta.
Nossa base de código é construída nas sub-redes da Nous Research e MyShell.
A sub-rede Dippy Bittensor é lançada sob a licença MIT.