查看我们前端的测试版!另外,请查看我们的发布推文,了解我们创建世界上最好的开源角色扮演法学硕士的愿景。
注意:以下文档假设您熟悉基本的 Bittensor 概念:矿工、验证者和激励措施。如果您需要入门知识,请查看 https://docs.bittensor.com/learn/bittensor-building-blocks。
Dippy 是全球领先的人工智能伴侣应用程序之一,拥有超过 100 万用户。该应用程序在德国等国家的应用程序商店中排名第 3 ,并被《连线》杂志等出版物报道,Dippy 用户平均在该应用程序上花费 1 小时以上。
Bittensor 上的 Dippy Roleplay 子网旨在通过利用开源社区的集体努力创建世界上最好的开源角色扮演 LLM。该子网解决了孤独这一关键问题,该问题影响了很大一部分人口,并与各种心理和身体健康问题有关。
目前的 SOTA 法学硕士(Claude、OpenAI 等)是为助理用例而设计的,缺乏陪伴所需的同理心品质。虽然一些公司(例如Character AI和Inflection)已经开发了闭源角色扮演法学硕士,但开源替代方案在性能上明显落后。
考虑到创建最先进的角色扮演法学硕士的复杂性,我们计划将该过程分为三个不同的阶段。
第一阶段:
第二阶段:
第三阶段:
矿工将使用现有框架、微调技术或 MergeKit 来训练、微调或合并模型,以创建独特的角色扮演 LLM。这些模型将被提交到共享的 Hugging Face 池。
验证者将通过我们的协议评估和评估模型性能,并根据各种指标(同理心、简洁性等)对提交的内容进行排名。我们将提供一套具有最先进数据集的测试和基准测试协议。
首先,克隆存储库并cd
到它:
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
pip install -e .
作为一名矿工,您有责任利用您可以使用的所有方法,包括但不限于训练新模型、合并现有模型(我们推荐 MergeKit)、微调现有模型等等,以推动角色扮演 LLM 的发展。
我们概述了第一阶段的以下标准:
一旦您对 Roleplay 用例的模型性能感到满意,您只需将其提交到 Hugging Face ?然后使用以下命令:
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
的 API 密钥(见下文) 在运行验证器之前,建议设置权重和偏差( wandb
)。 wandb
的目的是将验证器之间的关键指标跟踪到可公开访问的页面。这里。我们强烈建议验证器使用 wandb,因为它允许子网开发人员和矿工更快速、更有效地诊断问题,例如在验证器设置异常权重的情况下。默认情况下会收集 Wandb 日志,并以匿名方式进行,但我们建议设置一个帐户,以便在仪表板上搜索运行时更轻松地区分验证器。如果您不想运行 WandB,可以通过在运行验证器时不提供--wandb-key
标志来实现。
在开始之前,如前所述,您首先需要注册wandb
帐户,然后在系统上设置 API 密钥。以下是有关如何在 Ubuntu 上执行此操作的分步指南:
登录之前,请确保您已安装wandb
Python 包。如果您尚未安装它,可以使用 pip 进行安装:
# Should already be installed with the repo
pip install wandb
要在 Ubuntu 计算机上配置 WANDB API 密钥,请按照以下步骤操作:
登录 WANDB :在终端中运行以下命令:
wandb login
输入您的 API 密钥:出现提示时,粘贴您从 WANDB 帐户设置复制的 API 密钥。
Enter
。验证登录:要验证 API 密钥设置是否正确,您可以在 Python 中启动一个使用 WANDB 的小型测试脚本。如果一切设置正确,脚本运行时应该不会出现任何身份验证错误。
设置 API 密钥环境变量(可选) :如果您不想每次都登录,可以将 API 密钥设置为~/.bashrc
或~/.bash_profile
文件中的环境变量:
echo ' export WANDB_API_KEY=your_api_key ' >> ~ /.bashrc
source ~ /.bashrc
将your_api_key
替换为实际的 API 密钥。每次您打开新的终端会话时,此方法都会自动使用 wandb 对您进行身份验证。
首先,克隆存储库并cd
到它:
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
pip install -e .
要运行评估,只需使用以下命令:
python neurons/validator.py --wallet.name WALLET_NAME --wallet.hotkey WALLET_HOT_NAME --wandb-key WANDBKEY
使用 PM2 运行自动更新验证器(推荐):
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]
请注意,此验证器将调用由 dippy 子网所有者托管的模型验证服务。如果您希望在本地运行模型验证服务,请按照以下说明操作。
注意:目前(2024 年 6 月 17 日)本地评估 API 存在一些问题。我们建议暂时使用远程验证API。
使用本地验证器 API 启动验证器需要使用--use-local-validation-api
标志启动验证器。此外,还需要一个模型队列来将模型推送到验证 API。
注意:由于pydantic
版本冲突,验证器 API 需要安装在与验证器不同的 venv 中。
如果未安装,请安装 Git Lfs。
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
如果您在 runpod 上运行,您可能还需要安装“netstat”。
apt-get install net-tools
首先,克隆存储库并cd
到其中:
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
(注意:当前存在一些重大更改,对运行本地验证 API 服务构成挑战。任何需要环境变量ADMIN_KEY
或DIPPY_KEY
的任务都适用于此处)
cd dippy_validation_api
chmod +x start_validation_service.sh
./start_validation_service.sh
python3 test_api.py
您应该看到一个 json 显示模型状态为“QUEUED”。为了理智起见,再次运行相同的命令,您应该看到模型的状态为“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
较小的模型会比大模型得分更高。模型大小是来自 HF 的模型存储库占用的磁盘空间。最大模型大小限制为 72GB。
较快的模型会比较慢的模型得分更高。
根据数据集进行评估,对真实情况产生类似响应的模型得分会更高。
能够生成与其输入长度相似的输出的模型将得分更高。
我们的代码库建立在 Nous Research 和 MyShell 的子网之上。
Dippy Bittensor 子网是根据 MIT 许可证发布的。