1 Star 0 Fork 0

mike / RWKV-Runner

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

RWKV Runner

本项目旨在消除大语言模型的使用门槛,全自动为你处理一切,你只需要一个仅仅几MB的可执行程序。此外本项目提供了与OpenAI API兼容的接口,这意味着一切ChatGPT客户端都是RWKV客户端。

license release

English | 简体中文 | 日本語

安装

Windows MacOS Linux

视频演示 | 疑难解答 | 预览 | 下载 | 懒人包 | 简明服务部署示例 | 服务器部署示例 | MIDI硬件输入

小贴士

  • 你可以在服务器部署backend-python,然后将此程序仅用作客户端,在设置的API URL中填入你的服务器地址

  • 如果你正在部署并对外提供公开服务,请通过API网关限制请求大小,避免过长的prompt提交占用资源。此外,请根据你的实际情况,限制请求的 max_tokens 上限: https://github.com/josStorer/RWKV-Runner/blob/master/backend-python/utils/rwkv.py#L567, 默认le=102400, 这可能导致极端情况下单个响应消耗大量资源

  • 预设配置已经开启自定义CUDA算子加速,速度更快,且显存消耗更少。如果你遇到可能的兼容性(输出乱码) 问题,前往配置页面,关闭使用自定义CUDA算子加速,或更新你的显卡驱动

  • 如果 Windows Defender 说这是一个病毒,你可以尝试下载v1.3.7_win.zip, 然后让其自动更新到最新版,或添加信任 (Windows Security -> Virus & threat protection -> Manage settings -> Exclusions -> Add or remove exclusions -> Add an exclusion -> Folder -> RWKV-Runner)

  • 对于不同的任务,调整API参数会获得更好的效果,例如对于翻译任务,你可以尝试设置Temperature为1,Top_P为0.3

功能

  • RWKV模型管理,一键启动
  • 前后端分离,如果你不想使用客户端,也允许单独部署前端服务,或后端推理服务,或具有WebUI的后端推理服务。 简明服务部署示例 | 服务器部署示例
  • 与OpenAI API兼容,一切ChatGPT客户端,都是RWKV客户端。启动模型后,打开 http://127.0.0.1:8000/docs 查看API文档
  • 全自动依赖安装,你只需要一个轻巧的可执行程序
  • 预设多级显存配置,几乎在各种电脑上工作良好。通过配置页面切换Strategy到WebGPU,还可以在AMD,Intel等显卡上运行
  • 自带用户友好的聊天,续写,作曲交互页面。支持聊天预设,附件上传,MIDI硬件输入及音轨编辑。 预览 | MIDI硬件输入
  • 内置WebUI选项,一键启动Web服务,共享硬件资源
  • 易于理解和操作的参数配置,及各类操作引导提示
  • 内置模型转换工具
  • 内置下载管理和远程模型检视
  • 内置一键LoRA微调 (仅限Windows)
  • 也可用作 OpenAI ChatGPT 和 GPT Playground 客户端 (在设置内填写API URL和API Key)
  • 多语言本地化
  • 主题切换
  • 自动更新

Simple Deploy Example

git clone https://github.com/josStorer/RWKV-Runner

# 然后
cd RWKV-Runner
python ./backend-python/main.py #后端推理服务已启动, 调用/switch-model载入模型, 参考API文档: http://127.0.0.1:8000/docs

# 或者
cd RWKV-Runner/frontend
npm ci
npm run build #编译前端
cd ..
python ./backend-python/webui_server.py #单独启动前端服务
# 或者
python ./backend-python/main.py --webui #同时启动前后端服务

# 帮助参数
python ./backend-python/main.py -h

API并发压力测试

ab -p body.json -T application/json -c 20 -n 100 -l http://127.0.0.1:8000/chat/completions

body.json:

{
  "messages": [
    {
      "role": "user",
      "content": "Hello"
    }
  ]
}

Embeddings API 示例

注意: 1.4.0 版本对embeddings API质量进行了改善,生成结果与之前的版本不兼容,如果你正在使用此API生成知识库等,请重新生成

如果你在用langchain, 直接使用 OpenAIEmbeddings(openai_api_base="http://127.0.0.1:8000", openai_api_key="sk-")

import numpy as np
import requests


def cosine_similarity(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))


values = [
    "I am a girl",
    "我是个女孩",
    "私は女の子です",
    "广东人爱吃福建人",
    "我是个人类",
    "I am a human",
    "that dog is so cute",
    "私はねこむすめです、にゃん♪",
    "宇宙级特大事件!号外号外!"
]

embeddings = []
for v in values:
    r = requests.post("http://127.0.0.1:8000/embeddings", json={"input": v})
    embedding = r.json()["data"][0]["embedding"]
    embeddings.append(embedding)

compared_embedding = embeddings[0]

embeddings_cos_sim = [cosine_similarity(compared_embedding, e) for e in embeddings]

for i in np.argsort(embeddings_cos_sim)[::-1]:
    print(f"{embeddings_cos_sim[i]:.10f} - {values[i]}")

MIDI Input

小贴士: 你可以下载 https://github.com/josStorer/sgm_plus, 并解压到程序的assets/sound-font目录, 以使用离线音源. 注意, 如果你正在从源码编译程序, 请不要将其放置在源码目录中

如果你没有MIDI键盘, 你可以使用像 Virtual Midi Controller 3 LE 这样的虚拟MIDI输入软件, 配合loopMIDI, 使用普通电脑键盘作为MIDI输入

USB MIDI 连接

  • USB MIDI设备是即插即用的, 你能够在作曲页面选择你的输入设备
  • image

Mac MIDI 蓝牙连接

  • 对于想要使用蓝牙输入的Mac用户, 请安装Bluetooth MIDI Connect, 启动后点击托盘连接, 之后你可以在作曲页面选择你的输入设备
  • image

Windows MIDI 蓝牙连接

  • Windows似乎只为UWP实现了蓝牙MIDI支持, 因此需要多个步骤进行连接, 我们需要创建一个本地的虚拟MIDI设备, 然后启动一个UWP应用, 通过此UWP应用将蓝牙MIDI输入重定向到虚拟MIDI设备, 然后本软件监听虚拟MIDI设备的输入
  • 因此, 首先你需要下载loopMIDI, 用于创建虚拟MIDI设备, 点击左下角的加号创建设备
  • image
  • 然后, 你需要下载Bluetooth LE Explorer, 以发现并连接蓝牙MIDI设备, 点击Start搜索设备, 然后点击Pair绑定MIDI设备
  • image
  • 最后, 你需要安装MIDIberry, 这个UWP应用能将MIDI蓝牙输入重定向到虚拟MIDI设备, 启动后, 在输入栏, 双击你实际的蓝牙MIDI设备名称, 在输出栏, 双击我们先前创建的虚拟MIDI设备名称
  • image
  • 现在, 你可以在作曲页面选择虚拟MIDI设备作为输入. Bluetooth LE Explorer不再需要运行, loopMIDI窗口也可以退出, 它会自动在后台运行, 仅保持MIDIberry打开即可
  • image

相关仓库:

Preview

主页

image

聊天

image

image

续写

image

作曲

小贴士: 你可以下载 https://github.com/josStorer/sgm_plus, 并解压到程序的assets/sound-font目录, 以使用离线音源. 注意, 如果你正在从源码编译程序, 请不要将其放置在源码目录中

image

image

配置

image

模型管理

image

下载管理

image

LoRA微调

image

设置

image

MIT License Copyright (c) 2023 josStorer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

暂无描述 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/mikepudding_admin/RWKV-Runner.git
git@gitee.com:mikepudding_admin/RWKV-Runner.git
mikepudding_admin
RWKV-Runner
RWKV-Runner
master

搜索帮助