语言模型图谱
让我们一起构建这个图谱!我们已尽力找到专业化模型,但有了您的参与,我们肯定能做得更好!
🔗 Hugging Face 上的 Octopus-v4
🏆领域开放 LLM 排行榜
本项目旨在构建世界上最大的语言模型图谱。据我们所知,这是首次尝试构建这样一个图谱。请查看我们的设计演示。在这个图谱中,我们将整合许多不同的专业模型,并为节点之间的边训练相应的 Octopus 模型,以帮助有效分发和传递信息。我们希望联合所有开源语言模型,以提供能与闭源模型竞争的性能。
该项目仍处于早期阶段,我们目前仅包含了最初的 Octopus 模型。然而,在 Nexa AI,我们致力于投入大量时间和资源来创建一个强大的 AI 模型图谱。
项目范围
本项目主要关注以下几个方面:
- 确定所需的专业模型并训练这些模型。
- 构建由多个专业模型作为节点组成的图谱。
- 训练 Octopus 模型以高效连接不同节点。
这个 GitHub 仓库的文件结构组织如下:
main.py
:这是运行 Octopus v4 模型的主要脚本。build_graph
:包含构建和管理语言模型图谱的方法。这包括创建、更新和删除节点和边的操作。specialized_models
:这里您可以找到训练代码以及如何准备数据和训练专业模型的教程。我们提供基于 Hugging Face Transformers TRL 库的代码,以便于您的训练过程。如果在训练过程中遇到任何问题或疑问,请随时提出。specialized_models_inference
:这里您可以找到专业模型的推理代码。该代码用于通过语言模型图谱与 octopus-v4 模型一起工作,入口文件是specialized_infer.py
。
环境设置
我们建议使用 Linux 环境,并假设您在参与项目时拥有 NVIDIA GPU。要设置项目,请按照以下步骤操作:
conda create -n octopus4 python=3.10
pip3 install torch torchvision torchaudio
pip3 install transformers datasets accelerate peft
请确保先安装 PyTorch,然后再安装其他软件包。我们建议同时安装 torchvision 和 torchaudio,因为我们将来会引入多模态 AI 代理。或者,您可以使用我们的 Docker 镜像创建开发环境。有关设置开发环境的更多信息,请参考这个 YouTube 视频。您可以使用我们的 Dockerfile 构建镜像。
docker build -t octopus4 .
docker run --gpus all -p 8700:8700 octopus4
或者,您可以直接拉取我们的 docker 镜像
docker pull nexaai/octopus4
使用 Octopus v4 模型
我们最初的 v4 模型是为 MMLU 基准测试定制的。然而,我们计划在未来支持实际应用场景。Octopus v4 模型帮助您找到最合适的模型来完成任务,并重新格式化您的查询,使工作模型能够有效处理。在图谱设置中,它知道选择最佳邻居以及如何在节点之间传递消息。
以下是 Octopus v4 模型结果的示例:
查询:当 x 等于 2 时,告诉我 x^3 的导数结果是多少?
<nexa_4>('求函数 f(x) = x^3 在 x 等于 2 的点处的导数,并在变化率和切线斜率的背景下解释结果。')
<nexa_end>
在这个用例中,<nexa_4>
是代表数学 GPT 的特殊标记。自然语言的数学问题被转换为专业的数学表达式,以便工作模型更好地理解。要尝试我们的模型,您可以使用 python main.py
运行代码来尝试 Octopus v4 模型。
我们实验中使用的相应模型如下:
模型选择
我们利用最新的大型语言模型来处理各种领域。以下是每个类别选择的模型摘要。在没有专门模型用于某个主题的情况下,我们使用像 Llama3-8b 这样的通用模型。您可以考虑为我们下面的表格添加更多内容。Nexa AI 将为专业模型创建另一个排行榜。
模型 | 类别 | 科目 |
---|---|---|
jondurbin/bagel-8b-v1.0 | 生物学 | 大学生物学 , 高中生物学 |
Weyaxi/Einstein-v6.1-Llama3-8B | 物理学 | 天文学 , 大学物理学 , 概念物理学 , 高中物理学 |
meta-llama/Meta-Llama-3-8B-Instruct | 商业 | 商业伦理 , 管理学 , 市场营销 |
meta-llama/Meta-Llama-3-8B-Instruct | 化学 | 大学化学 , 高中化学 |
abacusai/Llama-3-Smaug-8B | 计算机科学 | 大学计算机科学 , 计算机安全 , 高中计算机科学 , 机器学习 |
Open-Orca/Mistral-7B-OpenOrca | 数学 | 抽象代数 , 大学数学 , 小学数学 , 高中数学 , 高中统计学 |
meta-llama/Meta-Llama-3-8B-Instruct | 经济学 | 计量经济学 , 高中宏观经济学 , 高中微观经济学 |
AdaptLLM/medicine-chat | 健康 | 解剖学 , 临床知识 , 大学医学 , 人类衰老 , 医学遗传学 , 营养学 , 专业医学 , 病毒学 |
STEM-AI-mtl/phi-2-electrical-engineering | 工程学 | 电气工程 |
meta-llama/Meta-Llama-3-8B-Instruct | 哲学 | 形式逻辑 , 逻辑谬误 , 道德争议 , 道德情境 , 哲学 , 世界宗教 |
microsoft/Phi-3-mini-128k-instruct | 其他 | 全球事实 , 杂项 , 专业会计 |
meta-llama/Meta-Llama-3-8B-Instruct | 历史 | 高中欧洲历史 , 高中美国历史 , 高中世界历史 , 史前史 |
meta-llama/Meta-Llama-3-8B-Instruct | 文化 | 人类性学 , 社会学 |
AdaptLLM/law-chat | 法律 | 国际法 , 法理学 , 专业法律 |
meta-llama/Meta-Llama-3-8B-Instruct | 心理学 | 高中心理学 , 专业心理学 |
MMLU基准测试结果(5-shot学习)
以下是在5-shot学习设置下测试的各种模型的MMLU比较分数:
模型 | MMLU分数 |
---|---|
Octopus-V4 | 74.6% |
GPT-3.5 | 70.0% |
Phi-3-mini-128k-instruct | 68.1% |
OpenELM-3B | 26.7% |
Lamma3-8b-instruct | 68.4% |
Gemma-2b | 42.3% |
Gemma-7b | 64.3% |
领域LLM排行榜
探索我们收集的特定领域大型语言模型(LLMs)或通过建议新的针对特定领域的模型来做出贡献。有关可用模型的详细信息以及与我们社区互动,请访问我们的领域LLM排行榜。
训练专业模型
我们鼓励你训练并添加专业模型列表。
有关训练专业模型的说明,请参阅specialized_models
目录。我们目前支持使用Hugging Face TRL进行训练,选择它是因为它在训练专业模型时便捷且稳健。未来的更新将扩展支持,包括LoRA训练、训练更大的模型(如13B和70B)、分布式训练等。敬请期待这些增强功能。
推荐的训练程序
为了有效地开发你的专业模型,我们建议按以下步骤进行:
- 数据收集和准备:收集特定于你领域的数据集。处理这个数据集以确保它是干净的且不含不适当的内容。
- 模型训练:使用监督微调(SFT)方法训练你的模型。
- DPO训练:为直接偏好优化(DPO)准备一个数据集,并使用DPO来训练你的模型。