介绍 Basaran 项目
Basaran 是一个开源项目,旨在为 OpenAI 文本补全 API 提供一个可替代的解决方案。它支持 Hugging Face Transformers 的文本生成模型,提供兼容的流式 API。
Basaran 的主要功能
- 流式生成:支持多种解码策略。
- 模型支持:兼容仅解码器和编码器-解码器模型。
- Detokenizer:能够处理代理字符和空白字符。
- 多 GPU 支持:包括可选的量化。
- 实时进度:通过 服务器发送事件 展示部分进展。
- API 兼容性:与 OpenAI 的 API 和客户端库兼容。
- 交互沙盒:提供一个基于 Web 的可用沙盒环境。
快速开始
要快速使用 Basaran,可以直接替换 user/repo
为你选择的模型,并使用最新版本的 Docker 镜像运行以下命令:
docker run -p 80:80 -e MODEL=user/repo hyperonym/basaran:X.Y.Z
访问以下网址即可开始使用:
- 沙盒环境:
http://127.0.0.1/
- API 地址:
http://127.0.0.1/v1/completions
安装方法
使用 Docker
Basaran 推荐使用 Docker 安装,相关镜像在 Docker Hub 上可用。如果需要使用 GPU 加速,还需要安装 NVIDIA 驱动程序 和 NVIDIA 容器运行时。
有三种主要使用方式:
- 直接运行:通过环境变量
MODEL="user/repo"
下载相应的 Hugging Face Hub 模型。 - 捆绑打包:使用 Dockerfile 来预加载或捆绑模型。
- 绑定挂载:将本地文件系统中的模型挂载到容器中。
使用 pip
Basaran 在 Python 3.8+ 和 PyTorch 1.13+ 环境下测试通过。建议创建虚拟环境后再安装。
- 使用
pip install basaran
安装。 - 安装 GPU 加速所需的依赖(可选)。
- 设定模型并运行 Basaran。
从源码运行
如果希望使用最新的功能或自行修改,可以从源码运行:
- 克隆代码库并安装依赖。
- 设定模型并运行 Basaran。
基本使用方法
Basaran 的 HTTP 请求和响应格式与 OpenAI API 保持一致。可以使用 cURL
进行测试:
curl http://127.0.0.1/v1/completions \
-H 'Content-Type: application/json' \
-d '{ "prompt": "once upon a time,", "echo": true }'
作为 Python 库使用
Basaran 也可以作为库直接在 Python 中使用。不需要启动单独的 API 服务器:
- 使用
pip install basaran
安装。 - 使用
load_model
函数载入模型。 - 通过模型调用生成流式输出。
兼容性
Basaran API 的格式与 OpenAI 保持一致,主要的兼容性差异体现在参数支持和响应字段上。每个 Basaran 进程仅服务于一个模型。
路线图
Basaran 项目的未来计划包括 API 的增强和更多模型架构及解码策略的支持。
贡献
Basaran 是一个开放源码项目,欢迎社区贡献。如果有任何想法或问题,可以通过创建问题的方式与项目团队交流。
Basaran 在 MIT 许可证下可用。