1. DeepSeek-R1¶
DeepSeek-R1是深度求索(DeepSeek)公司推出的开源大语言模型,是一个兼具强推理能力和任务广泛适用性的高效模型。
DeepSeek-R1基于开源模型进行了微调,提供了1.5B、7B等参数版本的DeepSeek-R1-Distill模型,适合部署到边缘设备。

这些蒸馏出的模型的能力也非常强,从论文给出的评测表看,蒸馏出的 qwen-14b 模型的能力完全不输 OpenAI-o1-mini。

Github开源仓库:https://github.com/deepseek-ai/DeepSeek-R1
本章将在鲁班猫板卡上使用rkllm本地部署DeepSeek-R1-Distill模型。
1.1. 模型转换¶
从 deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B 获取模型文件, 如果网络不行就尝试去镜像网站:https://hf-mirror.com/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B/tree/main 拉取模型文件。
# 安装git-lfs
git lfs install
# 获取DeepSeek-R1-Distill-Qwen-1.5B
git clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
# 从镜像网址获取(可选)
git clone https://hf-mirror.com/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
# 获取DeepSeek-R1-Distill-Qwen-7B
git clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
# 从镜像网址获取(可选)
git clone https://hf-mirror.com/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
获取rkllm工程文件,使用rkllm-toolkit将DeepSeek-R1-Distill模型转为rkllm模型,rkllm-toolkit环境安装参考下 前面 RKLLM章节 或者查看 Rockchip_RKLLM_SDK_CN_xxx.pdf 。
需要注意rkllm支持rk3588和rk3576平台,请使用lubancat-3/4/5板卡,教程将测试lubancat-3/4/5板卡。
# 获取rknn-llm
git clone https://github.com/airockchip/rknn-llm.git
# 简单创建一个rkllm-toolkit环境
conda create -n rkllm_1.1.4 python=3.10
conda activate rkllm_1.1.4
# 切换到rkllm-toolkit目录,安装rkllm_toolkit
cd rknn-llm/rkllm-toolkit
(rkllm_1.1.4) llh@llh:/xxx/rkllm-toolkit$ pip3 install rkllm_toolkit-1.1.4-cp310-cp310-linux_x86_64.whl
...
使用例程中的generate_data_quant.py生成量化数据,可自行修改量化的校准样本。
# 然后切换到例程目录
cd examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/export
# 生成量化数据,可自行修改量化的校准样本
(rkllm_1.1.4) llh@llh:/xxx/rknn-llm$ python generate_data_quant.py -m ../deepseek-aiDeepSeek-R1-Distill-Qwen-1.5B/
.........
使用export_rkllm.py导出rkllm模型,注意修改模型路径。
# 修改export_rkllm.py中的模型路径为前面拉取的deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B路径
modelpath = '/path/to/DeepSeek-R1-Distill-Qwen-1.5B'
# 鲁班猫4转换DeepSeek-R1-Distill-Qwen-1.5B_Demo
(rkllm_1.1.4) llh@llh:/xxx/rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/export$ python export_rkllm.py
INFO: rkllm-toolkit version: 1.1.4
The argument `trust_remote_code` is to be used with Auto classes. It has no effect here and is ignored.
Downloading data files: 100%|████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 1236.89it/s]
Extracting data files: 100%|█████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 94.04it/s]
Generating train split: 21 examples [00:00, 1244.50 examples/s]
Optimizing model: 100%|███████████████████████████████████████████████████████████████████████████| 28/28 [00:33<00:00, 1.18s/it]
Building model: 100%|███████████████████████████████████████████████████████████████| 399/399 [00:10<00:00, 36.55it/s]
WARNING: The bos token has two ids: 151646 and 151643, please ensure that the bos token ids in config.json and tokenizer_config.json are consistent!
INFO: The token_id of bos is set to 151646
INFO: The token_id of eos is set to 151643
INFO: The token_id of pad is set to 151643
Converting model: 100%|██████████████████████████████████████████████████| 339/339 [00:00<00:00, 3528211.06it/s]
INFO: Exporting the model, please wait ....
[=================================================>] 597/597 (100%)
INFO: Model has been saved to ./DeepSeek-R1-Distill-Qwen-1.5B_W8A8_RK3588.rkllm!
# 如果是鲁班猫3,除了修改模型路径还需要修改export_rkllm.py中target_platform,修改quantized_dtype为W4a16或者w8a8
target_platform = "RK3576"
quantized_dtype = "w4a16"
num_npu_core = 2
# 鲁班猫3转换DeepSeek-R1-Distill-Qwen-1.5B_Demo
(rkllm_1.1.4) llh@llh:/xxx/rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/export$ python export_rkllm.py
INFO: rkllm-toolkit version: 1.1.4
The argument `trust_remote_code` is to be used with Auto classes. It has no effect here and is ignored.
Optimizing model: 100%|████████████████████████████████████████████████████████████████████████| 28/28 [00:26<00:00, 1.06it/s]
Building model: 100%|██████████████████████████████████████████████████████████████████████████| 399/399 [00:07<00:00, 51.22it/s]
WARNING: The bos token has two ids: 151646 and 151643, please ensure that the bos token ids in config.json and tokenizer_config.json are consistent!
INFO: The token_id of bos is set to 151646
INFO: The token_id of eos is set to 151643
INFO: The token_id of pad is set to 151643
Converting model: 100%|███████████████████████████████████████████████████████████████████| 339/339 [00:00<00:00, 3253704.93it/s]
INFO: Exporting the model, please wait ....
[=================================================>] 398/398 (100%)
INFO: Model has been saved to ./DeepSeek-R1-Distill-Qwen-1.5B_w4a16_RK3576.rkllm!
1.2. 部署测试¶
通过板端Runtime库API接口函数,在板端部署推理程序。测试例程编译可以交叉编译也可以直接板卡上编译,教程这里测试是直接在板卡上编译。 首先,板卡上获取测试例程:
sudo apt update
sudo apt install gcc g++ cmake
# 板卡上获取测试例程(教程测试lubancat-4)
git clone https://github.com/airockchip/rknn-llm
# 切换到例程目录
cd rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy
板卡上编译例程:
# 修改build-linux.sh中编译为
GCC_COMPILER_PATH=aarch64-linux-gnu
cat@lubancat:~/rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy$ ./build-linux.sh
-- The C compiler identification is GNU 13.3.0
-- The CXX compiler identification is GNU 13.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (0.7s)
-- Generating done (0.0s)
-- Build files have been written to: /home/cat/rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy/build/build_linux_aarch64_Release
[ 50%] Building CXX object CMakeFiles/llm_demo.dir/src/llm_demo.cpp.o
[100%] Linking CXX executable llm_demo
[100%] Built target llm_demo
[100%] Built target llm_demo
Install the project...
-- Install configuration: "Release"
-- Installing: /home/cat/rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy/install/demo_Linux_aarch64/./llm_demo
-- Set non-toolchain portion of runtime path of "/home/cat/rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy/install/demo_Linux_aarch64/./llm_demo" to ""
-- Up-to-date: /home/cat/rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy/install/demo_Linux_aarch64/lib/librkllmrt.so
1.2.1. 测试lubancat-3板卡¶
测试使用8+64(内存8G,emmc存储64G)的lubancat-4板卡,系统是网盘最新的ubunut22.04系统,先测试DeepSeek-R1-Distill-Qwen-1.5B:
# 切换到install/demo_Linux_aarch64目录下,将前面转换出的模型传输到板卡
cat@lubancat:~/.../install/demo_Linux_aarch64$ export LD_LIBRARY_PATH=./lib
# 查看性能
cat@lubancat:~/.../install/demo_Linux_aarch64$ export RKLLM_LOG_LEVEL=1
cat@lubancat:~/install/demo_Linux_aarch64$ ./llm_demo ~/DeepSeek-R1-Distill-Qwen-1.5B_w4a16_RK3576.rkllm 2048 4096
rkllm init start
I rkllm: rkllm-runtime version: 1.1.4, rknpu driver version: 0.9.8, platform: RK3576
rkllm init success
**********************可输入以下问题对应序号获取回答/或自定义输入********************
[0] 现有一笼子,里面有鸡和兔子若干只,数一数,共有头14个,腿38条,求鸡和兔子各有多少只?
[1] 有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
*************************************************************************
user: 1
有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
robot: <think>
首先,总共有28位小朋友。
从左边开始数,第10位是学豆。
这意味着前9位(1到9)都是其他孩子,剩下的28 - 9 = 19位是从第10位开始的。
因此,从右边开始数,第10位对应的左边有19位,右边就是28 - 10 + 1 = 19位。
</think>
**Solution:**
我们有28位小朋友排成一队。我们需要确定从右边数第10位的位置。
1. **总人数:** 28 位
2. **左边开始数的第10位是学豆,意味着前9位(1到9)都是其他孩子。**
3. **剩下的位置是从第10位开始的:**
\[
28 - 9 = 19
\]
4. **从右边数,第10位对应的左边有19位,右边就是:**
\[
28 - 10 + 1 = 19
\]
因此,**从右边开始数,第10位是第19位。**
\[
\boxed{19}
\]
--------------------------------------------------------------------------------------
Stage Total Time (ms) Tokens Time per Token (ms) Tokens per Second
--------------------------------------------------------------------------------------
Prefill 385.49 33 11.68 85.61
Generate 26737.97 267 101.39 9.86
--------------------------------------------------------------------------------------
测试DeepSeek-R1-Distill-Qwen-7B:
cat@lubancat:~/install/demo_Linux_aarch64$ ./llm_demo ~/DeepSeek-R1-Distill-Qwen-7B_w4a16_RK3576.rkllm 2048 4096
rkllm init start
I rkllm: rkllm-runtime version: 1.1.4, rknpu driver version: 0.9.8, platform: RK3576
rkllm init success
user: 1
有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
robot: <think>
首先,总共有28个小朋友排成一行。
已知从左边开始数,第10位是小豆。
要找出小豆的位置,可以使用总人数减去已知位置再加一的方法。即 28 - 10 + 1 = 19。
因此,从右边开始数,小豆是第19位。
</think>
**解答:**
我们有28个小朋友排成一行。根据题意:
- **从左边开始数,第10位是学豆。**
要找出学豆的位置从右边开始数的顺序,可以使用以下方法:
1. **总人数减去已知位置再加一**:
\[
28 - 10 + 1 = 19
\]
因此,从右边开始数,学豆是第\(\boxed{19}\)位。
--------------------------------------------------------------------------------------
Stage Total Time (ms) Tokens Time per Token (ms) Tokens per Second
--------------------------------------------------------------------------------------
Prefill 1307.26 33 39.61 25.24
Generate 70197.04 193 365.11 2.74
--------------------------------------------------------------------------------------
测试DeepSeek-R1-Distill-Llama-8B:
cat@lubancat:~/install/demo_Linux_aarch64$ ./llm_demo ~/DeepSeek-R1-Distill-Llama-8B_w4a16_RK3576.rkllm 2048 4096
rkllm init start
I rkllm: rkllm-runtime version: 1.1.4, rknpu driver version: 0.9.8, platform: RK3576
rkllm init success
user: 1
有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
robot: <think>
首先,总共有28位同学。
如果第10位是学豆,那么从右边开始数,他的位置也是第10位,因为对称的位置相同。
因此,从右边开始数,他是第10位。
</think>
**解题步骤:**
1. **确定总人数:**
总共有28位同学排成一行。
2. **确定位置关系:**
- 从左边开始数,学豆的位置是第10位。
- 从右边开始数,他所在的位置也是第10位,因为他位于队列的正中间。
3. **得出结论:**
学豆从右边开始数,是第10位。
**答案:**
从右边开始数,学豆是第\boxed{10}位。
--------------------------------------------------------------------------------------
Stage Total Time (ms) Tokens Time per Token (ms) Tokens per Second
--------------------------------------------------------------------------------------
Prefill 1421.02 37 38.41 26.04
Generate 68102.04 177 385.92 2.59
--------------------------------------------------------------------------------------
1.2.2. 测试lubancat-4板卡¶
测试使用16+128(内存16G,emmc存储128G)的lubancat-4板卡,系统是网盘最新的ubunut24.04系统,先测试DeepSeek-R1-Distill-Qwen-1.5B:
# 切换到install/demo_Linux_aarch64目录下,将前面转换出的模型传输到板卡
cat@lubancat:~/.../install/demo_Linux_aarch64$ export LD_LIBRARY_PATH=./lib
# 查看性能
cat@lubancat:~/.../install/demo_Linux_aarch64$ export RKLLM_LOG_LEVEL=1
# Usage: ./llm_demo model_path max_new_tokens max_context_len
cat@lubancat:~/.../install/demo_Linux_aarch64$ ./llm_demo ~/DeepSeek-R1-Distill-Qwen-1.5B_W8A8_RK3588.rkllm 2048 4096
rkllm init start
I rkllm: rkllm-runtime version: 1.1.4, rknpu driver version: 0.9.8, platform: RK3588
rkllm init success
**********************可输入以下问题对应序号获取回答/或自定义输入********************
[0] 现有一笼子,里面有鸡和兔子若干只,数一数,共有头14个,腿38条,求鸡和兔子各有多少只?
[1] 有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
*************************************************************************
user: 1
有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
robot: <think>
首先,总共有28位小朋友。
# 省略..........................
\[
N - k + 1
\]
- 这里,\( N = 28 \)(总人数),\( k = 10 \)(学豆的位置)。
3. **代入公式计算:**
\[
28 - 10 + 1 = 19
\]
**结论:**
从右边开始数,学豆是第 **19** 位。
\boxed{19}
--------------------------------------------------------------------------------------
Stage Total Time (ms) Tokens Time per Token (ms) Tokens per Second
--------------------------------------------------------------------------------------
Prefill 196.76 33 5.96 167.71
Generate 29769.22 380 79.34 12.60
--------------------------------------------------------------------------------------
测试DeepSeek-R1-Distill-Qwen-7B:
# Usage: ./llm_demo model_path max_new_tokens max_context_len
cat@lubancat:~/xxx/deploy/install/demo_Linux_aarch64$ ./llm_demo ~/DeepSeek-R1-Distill-Qwen-7B_W8A8_RK3588.rkllm 2048 4096
rkllm init start
I rkllm: rkllm-runtime version: 1.1.4, rknpu driver version: 0.9.8, platform: RK3588
rkllm init success
user: 1
有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
robot: <think>
首先,总共有28个小朋友排成一行。
# 省略..........................
**求解过程:**
1. **理解位置关系:**
- 如果一个位置在队列中,从左数的位置为 \( P \),那么从右数的位置可以通过以下公式计算:
\[
\text{从右边开始的位置} = 总人数 - 从左边开始的位置 + 1
\]
2. **代入数值:**
\[
\text{从右边开始的位置} = 28 - 10 + 1 = 19
\]
**最终答案:**
\[
\boxed{19}
\]
--------------------------------------------------------------------------------------
Stage Total Time (ms) Tokens Time per Token (ms) Tokens per Second
--------------------------------------------------------------------------------------
Prefill 930.83 33 28.21 35.45
Generate 87289.02 277 316.18 3.16
--------------------------------------------------------------------------------------
测试DeepSeek-R1-Distill-Llama-8B:
cat@lubancat:~/xxx/install/demo_Linux_aarch64$ ./llm_demo ~/DeepSeek-R1-Distill-Llama-8B_W8A8_RK3588.rkllm 2048 4096
rkllm init start
I rkllm: rkllm-runtime version: 1.1.4, rknpu driver version: 0.9.8, platform: RK3588
rkllm init success
user: 1
有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
robot: <think>
首先,总共有28个小朋友排成一行。
从左边开始数,第10位是学豆。
为了确定从右边开始的位置,我们需要计算从右边数到学豆所需的步数。因为总人数是偶数,所以中间的位置是14.5。
由于学豆位于第10位,从右边数起就是28 - 10 + 1 = 19位。
</think>
要确定从右边开始数学豆的位置,我们可以按照以下步骤进行:
1. **总人数**:共有28位小朋友排成一行。
2. **左边开始的位置**:学豆位于第10位。
3. **计算右边的位置**:
- 总人数为偶数,中间的位置是第14.5位。
- 学豆在左边第10位,那么从右边开始数到它需要跨越28 - 10 + 1 = 19位。
因此,从右边开始数学豆是第\(\boxed{19}\)位。
--------------------------------------------------------------------------------------
Stage Total Time (ms) Tokens Time per Token (ms) Tokens per Second
--------------------------------------------------------------------------------------
Prefill 1006.98 37 27.22 36.74
Generate 79901.06 237 338.03 2.96
--------------------------------------------------------------------------------------
测试DeepSeek-R1-Distill-Qwen-14B:
# Usage: ./llm_demo model_path max_new_tokens max_context_len
cat@lubancat:~/xxx/deploy/install/demo_Linux_aarch64$ ./llm_demo ~/DeepSeek-R1-Distill-Qwen-14B_W8A8_RK3588.rkllm 2048 4096
rkllm init start
I rkllm: rkllm-runtime version: 1.1.4, rknpu driver version: 0.9.8, platform: RK3588
rkllm init success
user:
1
有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
robot: <think>
首先,总共有28位小朋友排成一行。
从左边开始数,学豆位于第10位。
为了确定他从右边开始数的位置,可以使用公式:位置 = 总人数 - 左边的序号 + 1。
代入数值计算,得到位置 = 28 - 10 + 1 = 19。
</think>
解答:
有28位小朋友排成一行。学豆从左边数是第10位,那么他从右边数的位置可以通过以下步骤计算:
1. **总人数**:28人
2. **左边的序号**:第10位
3. **右边的序号** = 总人数 - 左边的序号 + 1
\[
右边的序号 = 28 - 10 + 1 = 19
\]
因此,学豆从右边开始数是第\(\boxed{19}\)位。
--------------------------------------------------------------------------------------
Stage Total Time (ms) Tokens Time per Token (ms) Tokens per Second
--------------------------------------------------------------------------------------
Prefill 2219.08 33 67.24 14.87
Generate 131929.57 211 626.30 1.60
--------------------------------------------------------------------------------------
1.2.3. 测试lubancat-5板卡¶
测试使用16+128(内存16G,emmc存储128G)的lubancat-5板卡,系统是网盘最新的ubunut24.04系统,先测试DeepSeek-R1-Distill-Qwen-1.5B:
# 切换到install/demo_Linux_aarch64目录下,将前面转换出的模型传输到板卡
cat@lubancat:~/.../install/demo_Linux_aarch64$ export LD_LIBRARY_PATH=./lib
# 查看性能
cat@lubancat:~/.../install/demo_Linux_aarch64$ export RKLLM_LOG_LEVEL=1
# Usage: ./llm_demo model_path max_new_tokens max_context_len
cat@lubancat:~/.../install/demo_Linux_aarch64$ ./llm_demo /home/cat/DeepSeek-R1-Distill-Qwen-1.5B_W8A8_RK3588.rkllm 2048 4096
rkllm init start
I rkllm: rkllm-runtime version: 1.1.4, rknpu driver version: 0.9.8, platform: RK3588
rkllm init success
**********************可输入以下问题对应序号获取回答/或自定义输入********************
[0] 现有一笼子,里面有鸡和兔子若干只,数一数,共有头14个,腿38条,求鸡和兔子各有多少只?
[1] 有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
*************************************************************************
user: 1
有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
robot: <think>
#省略...............
**解答过程:**
1. **确定学豆的位置:**
- 从左边开始数,第10位是学豆。因此,学豆位于第10位小朋友的位置。
2. **计算从右边开始数的对应位置:**
- 在一个有 **N** 个元素的序列中,第 **k** 个元素从右边开始数的位置为:
\[
N - k + 1
\]
- 这里,\( N = 28 \)(总人数),\( k = 10 \)(学豆的位置)。
3. **代入公式计算:**
\[
28 - 10 + 1 = 19
\]
**结论:**
从右边开始数,学豆是第 **19** 位。
\boxed{19}
--------------------------------------------------------------------------------------
Stage Total Time (ms) Tokens Time per Token (ms) Tokens per Second
--------------------------------------------------------------------------------------
Prefill 203.94 33 6.18 161.81
Generate 30844.06 380 82.20 12.57
--------------------------------------------------------------------------------------
测试DeepSeek-R1-Distill-Qwen-7B:
cat@lubancat:~/.../install/demo_Linux_aarch64$ ./llm_demo ~/DeepSeek-R1-Distill-Qwen-7B_W8A8_RK3588.rkllm 2048 4096
rkllm init start
I rkllm: rkllm-runtime version: 1.1.4, rknpu driver version: 0.9.8, platform: RK3588
rkllm init success
user: 1
# 省略.................
**求解过程:**
1. **理解位置关系:**
- 如果一个位置在队列中,从左数的位置为 \( P \),那么从右数的位置可以通过以下公式计算:
\[
\text{从右边开始的位置} = 总人数 - 从左边开始的位置 + 1
\]
2. **代入数值:**
\[
\text{从右边开始的位置} = 28 - 10 + 1 = 19
\]
**最终答案:**
\[
\boxed{19}
\]
--------------------------------------------------------------------------------------
Stage Total Time (ms) Tokens Time per Token (ms) Tokens per Second
--------------------------------------------------------------------------------------
Prefill 954.18 33 28.91 34.58
Generate 89596.44 277 324.54 3.08
--------------------------------------------------------------------------------------
测试DeepSeek-R1-Distill-Llama-8B:
cat@lubancat:~/.../install/demo_Linux_aarch64$ ./llm_demo ~/DeepSeek-R1-Distill-Llama-8B_W8A8_RK3588.rkllm 2048 4096
rkllm init start
I rkllm: rkllm-runtime version: 1.1.4, rknpu driver version: 0.9.8, platform: RK3588
rkllm init success
user: 1
有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
robot: <think>
首先,总共有28个小朋友排成一行。
从左边开始数,第10位是学豆。
为了确定从右边开始的位置,我们需要计算从右边数到学豆所需的步数。因为总人数是偶数,所以中间的位置是14.5。
由于学豆位于第10位,从右边数起就是28 - 10 + 1 = 19位。
</think>
要确定从右边开始数学豆的位置,我们可以按照以下步骤进行:
1. **总人数**:共有28位小朋友排成一行。
2. **左边开始的位置**:学豆位于第10位。
3. **计算右边的位置**:
- 总人数为偶数,中间的位置是第14.5位。
- 学豆在左边第10位,那么从右边开始数到它需要跨越28 - 10 + 1 = 19位。
因此,从右边开始数学豆是第\(\boxed{19}\)位。
--------------------------------------------------------------------------------------
Stage Total Time (ms) Tokens Time per Token (ms) Tokens per Second
--------------------------------------------------------------------------------------
Prefill 1030.87 37 27.86 35.89
Generate 82051.87 237 347.13 2.88
--------------------------------------------------------------------------------------
测试DeepSeek-R1-Distill-Qwen-14B:
# Usage: ./llm_demo model_path max_new_tokens max_context_len
cat@lubancat:~/xxx/deploy/install/demo_Linux_aarch64$ ./llm_demo ~/DeepSeek-R1-Distill-Qwen-14B_W8A8_RK3588.rkllm 2048 4096
rkllm init start
I rkllm: rkllm-runtime version: 1.1.4, rknpu driver version: 0.9.8, platform: RK3588
rkllm init success
user: 1
有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?
robot: <think>
首先,总共有28位小朋友排成一行。
从左边开始数,学豆位于第10位。
为了确定他从右边开始数的位置,可以使用公式:位置 = 总人数 - 左边的序号 + 1。
代入数值计算,得到位置 = 28 - 10 + 1 = 19。
</think>
解答:
有28位小朋友排成一行。学豆从左边数是第10位,那么他从右边数的位置可以通过以下步骤计算:
1. **总人数**:28人
2. **左边的序号**:第10位
3. **右边的序号** = 总人数 - 左边的序号 + 1
\[
右边的序号 = 28 - 10 + 1 = 19
\]
因此,学豆从右边开始数是第\(\boxed{19}\)位。
--------------------------------------------------------------------------------------
Stage Total Time (ms) Tokens Time per Token (ms) Tokens per Second
--------------------------------------------------------------------------------------
Prefill 2223.62 33 67.38 14.84
Generate 133877.24 211 635.56 1.57
--------------------------------------------------------------------------------------