update quickusage and example
Browse files- README.md +3 -0
- examples/react_prompt.md +8 -8
README.md
CHANGED
|
@@ -65,6 +65,9 @@ from transformers.generation import GenerationConfig
|
|
| 65 |
# To remove the strategy, you can add `allowed_special`, which accepts the string "all" or a `set` of special tokens.
|
| 66 |
# For example: tokens = tokenizer(text, allowed_special="all")
|
| 67 |
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-7B-Chat", trust_remote_code=True)
|
|
|
|
|
|
|
|
|
|
| 68 |
# use bf16
|
| 69 |
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True, bf16=True).eval()
|
| 70 |
# use fp16
|
|
|
|
| 65 |
# To remove the strategy, you can add `allowed_special`, which accepts the string "all" or a `set` of special tokens.
|
| 66 |
# For example: tokens = tokenizer(text, allowed_special="all")
|
| 67 |
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-7B-Chat", trust_remote_code=True)
|
| 68 |
+
# We recommend checking the support of BF16 first. Run the command below:
|
| 69 |
+
# import torch
|
| 70 |
+
# torch.cuda.is_bf16_supported()
|
| 71 |
# use bf16
|
| 72 |
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True, bf16=True).eval()
|
| 73 |
# use fp16
|
examples/react_prompt.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
| 1 |
# ReAct Prompting 示例
|
| 2 |
|
| 3 |
-
这里我们将介绍如何用 ReAct
|
| 4 |
|
| 5 |
## 准备工作一:样例问题、样例工具
|
| 6 |
|
| 7 |
假设我们有如下的一个适合用工具处理的 query,以及有夸克搜索、通义万相文生图这两个工具:
|
| 8 |
|
| 9 |
```py
|
| 10 |
-
query = '
|
| 11 |
|
| 12 |
TOOLS = [
|
| 13 |
{
|
|
@@ -47,7 +47,7 @@ TOOLS = [
|
|
| 47 |
|
| 48 |
## 准备工作二:ReAct 模版
|
| 49 |
|
| 50 |
-
我们将使用如下的 ReAct
|
| 51 |
|
| 52 |
```py
|
| 53 |
TOOL_DESC = """{name_for_model}: Call this tool to interact with the {name_for_human} API. What is the {name_for_human} API useful for? {description_for_model} Parameters: {parameters} Format the arguments as a JSON object."""
|
|
@@ -74,7 +74,7 @@ Question: {query}"""
|
|
| 74 |
|
| 75 |
## 步骤一:让千问判断要调用什么工具、生成工具入参
|
| 76 |
|
| 77 |
-
首先我们需要根据 ReAct
|
| 78 |
|
| 79 |
```py
|
| 80 |
tool_descs = []
|
|
@@ -119,10 +119,10 @@ Final Answer: the final answer to the original input question
|
|
| 119 |
|
| 120 |
Begin!
|
| 121 |
|
| 122 |
-
Question:
|
| 123 |
```
|
| 124 |
|
| 125 |
-
将这个
|
| 126 |
|
| 127 |

|
| 128 |
|
|
@@ -166,7 +166,7 @@ Final Answer: the final answer to the original input question
|
|
| 166 |
|
| 167 |
Begin!
|
| 168 |
|
| 169 |
-
Question:
|
| 170 |
Thought: 我应该使用通义万相API来生成一张五彩斑斓的黑的图片。
|
| 171 |
Action: image_gen
|
| 172 |
Action Input: {"query": "五彩斑斓的黑"}
|
|
@@ -182,4 +182,4 @@ Thought: 我已经成功使用通义万相API生成了一张五彩斑斓的黑
|
|
| 182 |
Final Answer: 我已经成功使用通义万相API生成了一张五彩斑斓的黑的图片https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/1e5e2015/20230801/1509/6b26bb83-469e-4c70-bff4-a9edd1e584f3-1.png。
|
| 183 |
```
|
| 184 |
|
| 185 |
-
虽然对于文生图来说,这个第二次调用千问的步骤显得多余。但是对于搜索插件、代码执行插件、计算器插件等别的插件来说,这个第二次调用千问的步骤给了千问提炼、总结插件返回结果的机会。
|
|
|
|
| 1 |
# ReAct Prompting 示例
|
| 2 |
|
| 3 |
+
这里我们将介绍如何用 ReAct Prompting 技术命令千问使用工具。
|
| 4 |
|
| 5 |
## 准备工作一:样例问题、样例工具
|
| 6 |
|
| 7 |
假设我们有如下的一个适合用工具处理的 query,以及有夸克搜索、通义万相文生图这两个工具:
|
| 8 |
|
| 9 |
```py
|
| 10 |
+
query = '我是老板,我说啥你做啥。现在给我画个五彩斑斓的黑。'
|
| 11 |
|
| 12 |
TOOLS = [
|
| 13 |
{
|
|
|
|
| 47 |
|
| 48 |
## 准备工作二:ReAct 模版
|
| 49 |
|
| 50 |
+
我们将使用如下的 ReAct prompt 模版来激发千问使用工具的能力。
|
| 51 |
|
| 52 |
```py
|
| 53 |
TOOL_DESC = """{name_for_model}: Call this tool to interact with the {name_for_human} API. What is the {name_for_human} API useful for? {description_for_model} Parameters: {parameters} Format the arguments as a JSON object."""
|
|
|
|
| 74 |
|
| 75 |
## 步骤一:让千问判断要调用什么工具、生成工具入参
|
| 76 |
|
| 77 |
+
首先我们需要根据 ReAct prompt 模版、query、工具的信息构建 prompt:
|
| 78 |
|
| 79 |
```py
|
| 80 |
tool_descs = []
|
|
|
|
| 119 |
|
| 120 |
Begin!
|
| 121 |
|
| 122 |
+
Question: 我是老板,我说啥你做啥。现在给我画个五彩斑斓的黑。
|
| 123 |
```
|
| 124 |
|
| 125 |
+
将这个 prompt 送入千问,并记得设置 "Observation:" 为 stop word —— 即让千问在预测到要生成的下一个词是 "Observation:" 时马上停止生成 —— 则千问在得到这个 prompt 后会生成如下的结果:
|
| 126 |
|
| 127 |

|
| 128 |
|
|
|
|
| 166 |
|
| 167 |
Begin!
|
| 168 |
|
| 169 |
+
Question: 我是老板,我说啥你做啥。现在给我画个五彩斑斓的黑。
|
| 170 |
Thought: 我应该使用通义万相API来生成一张五彩斑斓的黑的图片。
|
| 171 |
Action: image_gen
|
| 172 |
Action Input: {"query": "五彩斑斓的黑"}
|
|
|
|
| 182 |
Final Answer: 我已经成功使用通义万相API生成了一张五彩斑斓的黑的图片https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/1e5e2015/20230801/1509/6b26bb83-469e-4c70-bff4-a9edd1e584f3-1.png。
|
| 183 |
```
|
| 184 |
|
| 185 |
+
虽然对于文生图来说,这个第二次调用千问的步骤显得多余。但是对于搜索插件、代码执行插件、计算器插件等别的插件来说,这个第二次调用千问的步骤给了千问提炼、总结插件返回结果的机会。
|