RWKV

RWKV 的提示词格式

RWKV 是 RNN 的变体。出于架构原理,RWKV 对提示词的格式比 Transformer 更敏感。

RWKV 更适合 QA 和指令问答两种提示格式:

QA 格式 prompt

QA(问答)格式是 RWKV 的默认训练格式。

其中 User: 是用户提问的问题,Assistant: 是模型的回答。因此我们需要在最后一个 Assistant: 后面留空,让模型进行续写。

User: 将瑞典语 hur l?ng tid tog det att bygga twin towers 翻译成中文

Assistant: <think
User: 将瑞典语 hur l?ng tid tog det att bygga twin towers 翻译成中文

Assistant: <think></think

快思考模式是通过直接闭合 <think></think 标签来跳过思考过程,从而使模型以为自己进行了思考。此模式比“思考模式”回答得更快,同时回答质量比“不思考模式”更好。

快思考模式的标签可选 <think></think><think>\n</think

User: 将瑞典语 hur l?ng tid tog det att bygga twin towers 翻译成中文

Assistant:

新推理风格

新的推理风格适用于 G1c 及更新版本模型。注意在提示词后的 (think) 前面有一个空格。

User: 将瑞典语 hur l?ng tid tog det att bygga twin towers 翻译成中文 (think)

Assistant: <think
User: 将瑞典语 hur l?ng tid tog det att bygga twin towers 翻译成中文 (think a bit)

Assistant: <think

同样的思考风格,更简短的思考内容。

User: 将瑞典语 hur l?ng tid tog det att bygga twin towers 翻译成中文 (think a lot)

Assistant: <think

同样的思考风格,更长的思考内容。

指令问答格式 prompt

Instruction: 请将下列瑞典语翻译成中文

Input: hur l?ng tid tog det att bygga twin towers

Response:

指令问答是 RWKV 另一种训练格式。其中 Instruction: 是用户给模型的指令,Input: 是用户给模型的输入,Response: 是模型的回答。

Response: 后面留空,让模型进行续写。

Instruction: 以json格式总结下面的材料文本,包含date/location/title

Input: 2025 2 22 日,RWKV project 在中国上海漕河泾举办了主题为《RWKV-7 与未来趋势》的开发者大会。来自全国各地的开发者、行业专家和技术创新者齐聚一堂 —— 从知名高校实验室到前沿创业团队,现场涌动的创新能量印证了 RWKV-7 的优秀性能和深远意义。

Response:

参考的回复:

{
  "date": "2025年2月22日",
  "location": "中国上海漕河泾",
  "title": "RWKV-7 与未来趋势开发者大会"
}

材料问答格式

推荐使用以下材料问答格式:

User:\n材料:\n{context}\n问题:{question}\n只根据下文回答;没有就答null。\n\nAssistant: {"answer": 

User:\n下文:\n{context}\n问题:{question}\n只写材料中的答案;没有就答null。\n\nAssistant: {"answer": 

User:\n材料:\n{context}\n问题:{question}\n只回答材料中的答案;没有就答null。\n\nAssistant: {"answer": 

User:\n下文:\n{context}\n根据上文回答:{question}\n只根据上文回答;没有就答null。\n\nAssistant: {"answer": 

可以根据具体的材料内容,修改问题和限制条件。例如:

User: 材料:
# 下载最新的 MiniConda 安装包
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 运行 MiniConda 安装包的安装脚本,安装期间一定要注意进展,及时输入 yes  !
sh Miniconda3-latest-Linux-x86_64.sh -u
# 重启环境变量,激活 Conda 环境
source ~/.bashrc
# 创建名为 rwkv-lm-v7 的 conda 环境, 并指定 python 版本为 3.12
conda create -n rwkv-lm-v7 python=3.12
# 激活 rwkv 环境
conda activate rwkv-lm-v7
问题:用中文简单解释这段材料的含义
只写答案,不解释。

Assistant: {"answer": 

web demo 中并发 16 路测试:

RWKV7-G1 Prompt

推荐参数: Temperature=1、Topp=0.2、Penalty 参数调整为 0。

few-shot

对于一些带上下文的问答任务,我们建议在 prompt 中重复几个同类的问题为模型作示范,这种技巧被称为 few-shot。

举个例子:直接使用以下 prompt 进行续写时,模型生成的回复缺乏明显的风格特征:

User: 请你帮我给以下句子写广告词:这是一款新的笔记本,很轻,电池能用很久。

Assistant:

参考的模型回复:

这款笔记本轻巧便携,让你随时随地畅享移动办公。同时,它的电池续航能力惊人,让你不用担心频繁充电的烦恼。无论是学习、工作还是娱乐,这款笔记本都能满足你的需求。快来体验它吧!

使用下面的 few-shot prompt 进行续写时,模型能够从上下文中学习到具有鲜明风格特征的前文信息,从而生成带有明显风格特色的广告词:

User: 请你帮我给以下句子写广告词:这是一款手冲咖啡壶,玻璃材质,可以过滤咖啡。

Assistant: 告别速溶,只需3分钟,在家复刻咖啡馆级的风味。高透玻璃壶身,亲眼见证每一滴香醇的萃取。用一个清晨的仪式感,唤醒一整天的活力。

User: 请你帮我给以下句子写广告词:我们新出了一门口语课,教你怎么跟外国人聊天。

Assistant: 还在对着屏幕说“Hello, how are you?” 别让你的口语停留在课本里!我们的课程带你走进真实对话场景,从点餐到侃大山,让你自信开口,像本地人一样聊天!

User: 请你帮我给以下句子写广告词:这是一款新的笔记本,很轻,电池能用很久。

Assistant:

参考的回复:

轻盈如羽,电池如海。这款笔记本让你随时随地畅游数字世界,无需担心续航问题。

function call

RWKV7-G1 模型包含函数调用(function call)数据,可以通过特定格式的 prompt 实现 function call 功能。

RWKV7-G1 2.9B 模型,在续写模式下构造 function call 功能:

User: 你可以使用以下工具:
{
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_current_weather",
        "description": "获取指定地区的当前天气信息",
        "parameters": {
          "type": "object",
          "properties": {
            "location": {
              "type": "string",
              "description": "城市或地区名称,例如:'北京'"
            },
            "unit": {
              "type": "string",
              "enum": ["celsius", "fahrenheit"],
              "description": "温度单位,默认为摄氏度"
            }
          },
          "required": ["location"]
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "calculate_math_expression",
        "description": "计算数学表达式结果",
        "parameters": {
          "type": "object",
          "properties": {
            "expression": {
              "type": "string",
              "description": "数学表达式,例如:'(12+3.4)*5/2'"
            }
          },
          "required": ["expression"]
        }
      }
    }
  ]
}
请问:北京现在的天气如何?请给出json格式的调用格式
 
Assistant: <think>

参考的回复:

...模型的思考过程...
</think>
```json
{
  "name": "get_current_weather",
  "parameters": {
    "location": "北京",
    "unit": "celsius"
  }
}
```

通过在 Agent 或者 RAG 系统中解析此 json 请求,可以实现 function call 功能。

RWKV 基底模型未进行后训练,因此不支持 native tool calling。如果需要保持极高的 function call 准确度,建议对模型进行微调

视频介绍

高画质视频请跳转到 B 站观看。

这份文档对您有帮助吗?