使用示例
单卡部署(适用于A100/A800)
以下是一个简单的调用 代码登录后可见生成对话的示例代码,可在单张A100/A800或CPU运行,使用FP16精度时约占用30GB显存:
代码登录后可见
多卡部署(适用于两张或以上NVIDIA 3090))
您也可以通过以下代码在两张NVIDIA 3090显卡上运行MOSS推理:
代码登录后可见
模型量化
在显存受限的场景下,调用量化版本的模型可以显著降低推理成本。我们使用[链接登录后可见]算法和[链接登录后可见]中推出的OpenAI [链接登录后可见] backend(目前仅支持linux系统)实现量化推理(目前仅支持单卡部署量化模型):
代码登录后可见
插件增强
您可以使用 代码登录后可见及其量化版本来使用插件,其单轮交互输入输出格式如下:
代码登录后可见
其中"Human"为用户输入,"Results"为插件调用结果,需要在程序中写入,其余字段为模型输出。因此,使用插件版MOSS时每轮对话需要调用两次模型,第一次生成到 代码登录后可见获取插件调用结果并写入"Results",第二次生成到 代码登录后可见获取MOSS回复。
我们通过[链接登录后可见]来控制各个插件的启用情况。默认情况下所有插件均为 代码登录后可见,若要启用某个插件,需要修改对应插件为 代码登录后可见并提供接口格式。示例如下:
代码登录后可见
以上是一个启用了搜索引擎和计算器插件的例子,各插件接口具体约定如下:
插件 | 接口格式 |
Web search | Search(query) |
Calculator | Calculate(expression) |
Equation solver | Solve(equation) |
Text-to-image | Text2Image(description) |
以下是一个MOSS使用搜索引擎插件的示例:
代码登录后可见
本轮调用模型后我们获取了调用插件命令 代码登录后可见,在执行插件后将插件返回结果拼接到"Results"中即可再次调用模型得到回复。其中插件返回结果应按照如下格式:
代码登录后可见
以下为第二次调用模型得到MOSS回复的代码:
代码登录后可见
完整的本轮对话输出为:
代码登录后可见
其他插件格式请参考[链接登录后可见]. 搜索引擎插件可参照我们开源的[链接登录后可见].
网页Demo
Streamlit
我们提供了一个基于[链接登录后可见]实现的网页Demo,您可以运行本仓库中的[链接登录后可见]来打开网页Demo:
代码登录后可见
该网页Demo默认使用 代码登录后可见单卡运行,您也可以通过参数指定其他模型以及多卡并行,例如:
代码登录后可见
注意:使用Streamlit命令时需要用一个额外的 代码登录后可见分割Streamlit的参数和Python程序中的参数。
Gradio
感谢[链接登录后可见]提供的基于[链接登录后可见]的网页Demo,您可以运行本仓库中的[链接登录后可见]:
代码登录后可见
Api Demo
你可以运行仓库中的 代码登录后可见来对外提供一个简单的api服务
代码登录后可见
启动api服务后,您可以通过网络调用来与MOSS交互
代码登录后可见
首次调用,您会得到一个api服务返回的uid
代码登录后可见
您可以在后续的对话中填入该uid来和MOSS进行多轮对话
代码登录后可见
命令行Demo
您可以运行仓库中的 代码登录后可见来启动一个简单的命令行Demo:
代码登录后可见
您可以在该Demo中与MOSS进行多轮对话,输入 代码登录后可见 可以清空对话历史,输入 代码登录后可见 终止Demo。该命令默认使用 代码登录后可见单卡运行,您也可以通过参数指定其他模型以及多卡并行,例如:
代码登录后可见
同时,我们也提供了由深度学习框架 [链接登录后可见] 支持的MOSS模型,您可以通过运行仓库中的 代码登录后可见 来启动命令行Demo。计图能够在显存不足时通过内存交换大幅度减少显存的消耗。首先确保您安装了 代码登录后可见 和 代码登录后可见:
代码登录后可见
接着运行下面的命令:
代码登录后可见
通过API调用MOSS服务
如您不具备本地部署条件或希望快速将MOSS部署到您的服务环境,请联系我们获取推理服务IP地址以及专用API KEY,我们将根据当前服务压力考虑通过API接口形式向您提供服务,接口格式请参考[链接登录后可见]。由于服务能力有限,目前仅面向企业开放API服务,请签署[链接登录后可见]并填写[链接登录后可见]取得授权。
🔥 微调
本仓库提供了基于 MOSS 基座模型进行 SFT 训练的微调代码 [链接登录后可见].下面以微调不带 plugins 的对话数据为例介绍代码的使用方法(带 plugins 的数据与此一致)。
软件依赖
代码登录后可见
使用方法
将数据集按照 [链接登录后可见] 格式处理并放到 代码登录后可见 目录中。将 [链接登录后可见] 文件夹下载到本地(可根据自己的计算配置更改相关信息,详细请参考 [链接登录后可见] 官方文档。
创建 代码登录后可见 文件并将以下内容复制到该文件中:
代码登录后可见
然后,运行以下指令进行训练:
代码登录后可见
多节点运行需每台机器都运行一次,且需要正确指定每台机器的 代码登录后可见. 如果你想要从本地加载模型,可以将 run.sh 中的 fnlp/moss-moon-003-base 改为你本地的模型路径。
在使用的时候注意 代码登录后可见 模型的 tokenizer 中,代码登录后可见 为 代码登录后可见,在训练SFT模型时需要将该 token 指定为 代码登录后可见 token.