🎏 pykoi: 统一界面的 RLHF/RLAIF
pykoi 是一个用于通过 RLHF 改进 LLM 的开源 Python 库。我们提供了一个统一的接口,包括 RLHF/RLAIF 数据和反馈收集、使用强化学习和奖励建模进行微调,以及 LLM 比较。
特性
pykoi
让您可以轻松获取实时用户反馈并持续改进您的模型。以下是一些常见应用:
可分享的用户界面
您是否想存储来自 OpenAI、Amazon Bedrock(:woman_technologist: 正在构建中 :man_technologist:)或 Huggingface 的 LLM 聊天历史?只需三行代码,pykoi 就可以让您在本地存储它们,确保 100% 的隐私。这包括启动聊天机器人 UI、在您的计算实例(CPU 或 GPU)中自动保存聊天历史,并在仪表板上进行可视化。探索以下演示:
- 如果您使用的是 CPU 实例,请查看 demo_launch_app_cpu.ipynb
- 如果您使用的是 GPU 实例,请查看 demo_launch_app_gpu.ipynb
- 或者,阅读我们的博客以获取更多信息!
模型比较
比较模型是一项困难的任务。pykoi
通过允许直接比较多个模型的性能,只需几行代码就能轻松完成。如果您有多个语言模型想要在一组提示或通过交互式会话进行比较,可以使用 pk.Compare
。查看以下任一演示:
- 如果您使用的是 CPU 实例,请查看 demo_launch_app_cpu.ipynb
- 如果您使用的是 GPU 实例,请查看 demo_launch_app_gpu.ipynb
- 或者,阅读我们的博客以获取更多信息!
RLHF
人类反馈强化学习(RLHF)是一种独特的训练范式,结合了强化学习和人在环中训练。核心思想是使用人类评估反馈来改进模型的决策能力,并引导学习过程朝着期望的结果发展。来自 Deepmind、OpenAI 和 Meta Llama2 的研究人员都证明,RLHF 对大型语言模型(LLM)的训练是一个游戏规则改变者。
pykoi
允许您轻松地在通过 pykoi
聊天或排名数据库收集的数据集上微调您的模型。查看我们的博客以获取详细使用说明。
RAG
使用 pykoi
快速实现检索增强生成(RAG)聊天机器人。上传您自己的文档,在预训练的 LLM(如 OpenAI 或 Huggingface)之上创建上下文感知的响应。
然后与 RAG 聊天机器人聊天,您可以选择特定的源进行文本生成,并查看模型用于生成响应的源。
最后,您可以保存修改后的响应以帮助改进模型。这是收集 RLHF 数据的好方法。
安装
要开始使用 pykoi,您可以选择任何安装选项。选择应基于您需要的功能(例如,RAG、RLHF 或全部)和您拥有的计算资源,如 CPU(例如,您的笔记本电脑)或 GPU(例如,AWS EC2 或 SageMaker)。
选项 1:RAG(CPU)
此选项允许您使用 OpenAI API 或 Anthropic Claude2 API 在 CPU 上运行 RAG。如果您有 conda,RAG(CPU)的安装很简单。如果没有,请为您的操作系统安装 conda。
首先,在终端上使用以下命令创建一个 conda 环境:
conda create -n pykoi python=3.10 -y
conda activate pykoi # 某些操作系统需要 `source activate pykoi`
然后安装 pykoi
和兼容的 pytorch(基于您的操作系统)
pip3 install "pykoi[rag]"
pip3 install torch
选项 2:RAG(GPU)
此选项允许您使用来自 HuggingFace 的开源 LLM 在 GPU 上运行 RAG。以下是关于为下面的安装设置 EC2 GPU 实例的快速教程。
在您的 GPU 实例终端上,使用以下命令创建一个 conda 环境:
conda create -n pykoi python=3.10 -y && source activate pykoi
然后安装 pykoi
和 pytorch(基于您的 cuda 版本)。您可以通过 nvcc -V
找到您的 CUDA 版本。
pip3 install "pykoi[rag, huggingface]"
pip3 install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu121 # cu121 表示 cuda 12.1
选项 3:RLHF(GPU)
此选项允许您在 GPU 上通过 RLHF 训练 LLM。以下是关于为下面的安装设置 EC2 GPU 实例的快速教程。
在您的 GPU 实例终端上,使用以下命令创建一个 conda 环境:
conda create -n pykoi python=3.10 -y && source activate pykoi
然后安装 pykoi
和 pytorch(基于您的 cuda 版本)。您可以通过 nvcc -V
找到您的 CUDA 版本。
pip3 install "pykoi[rlhf]"
pip3 install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu121 # cu121 表示 cuda 12.1
恭喜您完成了安装!
开发设置
如果您有兴趣为我们做出贡献,以下是初步的开发设置。
后端开发设置
conda create -n pykoi python=3.10
conda activate pykoi
cd pykoi
pip3 install poetry
然后,根据您需要开发的功能,运行以下一个或多个安装选项。我们建议安装以下所有选项,尽管可能需要多花约 3 分钟。
- 选项 1:RAG(CPU)
poetry install --no-root --extras rag
- 选项 2:RAG(GPU)
poetry install --no-root --extras "rag huggingface"
- 选项 3:RLHF(GPU)
poetry install --no-root --extras rlhf
最后,如果您使用的是 GPU,请安装 pytorch(基于您的 cuda 版本)。您可以通过 nvcc -V
找到您的 CUDA 版本。
pip3 uninstall -y torch
pip3 install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu121 # cu121 表示 cuda 12.1
现在您已完成安装,尝试修改其中一个示例并运行以下命令!
python -m example.retrieval_qa.retrieval_qa_huggingface_demo
前端开发设置
cd pykoi/pykoi/frontend
npm install
npm run build
EC2 开发设置
如果您使用的是 EC2,可以使用以下配置启动 GPU 实例:
-
EC2
g5.2xlarge
(如果您想运行具有 7B 参数的预训练 LLM) -
Deep Learning AMI PyTorch GPU 2.0.1(Ubuntu 20.04)
-
EBS:至少 100G