File size: 5,614 Bytes
8a5b6b6 aa999d9 40ac4d5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
---
license: mit
language:
- zh
- en
base_model:
- Qwen/Qwen2.5-1.5B-Instruct-GPTQ-INT8
- Qwen/Qwen2.5-1.5B-Instruct-GPTQ-INT4
pipeline_tag: text-generation
library_name: transformers
tags:
- Context
- Qwen2.5-1.5B-Instruct-GPTQ-INT8
- Qwen2.5-1.5B-Instruct-GPTQ-INT4
---
# Qwen2.5-1.5B-Instruct-python
This version of Qwen2.5-1.5B-Instruct-python has been converted to run on the Axera NPU using **w8a16** and **w4a16** quantization.
This model has been optimized with the following LoRA:
Compatible with Pulsar2 version: 4.1
## Feature
- Support for longer contexts, in this sample it's 2.5k
- Support context dialogue
- System prompt kvcache is supported
## Convert tools links:
For those who are interested in model conversion, you can try to export axmodel through the original repo : https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GPTQ-Int8
[Pulsar2 Link, How to Convert LLM from Huggingface to axmodel](https://pulsar2-docs.readthedocs.io/en/latest/appendix/build_llm.html)
[AXera NPU AXEngine LLM Runtime](https://github.com/AXERA-TECH/ax-llm/tree/ax-context)
[AXera NPU AXCL LLM Runtime](https://github.com/AXERA-TECH/ax-llm/tree/axcl-context)
### Convert script
The follow show how to convert Qwen2.5-1.5B-Instruct-GPTQ-Int8
```
pulsar2 llm_build --input_path Qwen/Qwen2.5-1.5B-Instruct-GPTQ-Int8 \
--output_path Qwen/Qwen2.5-1.5B-Instruct-GPTQ-Int8-ctx-ax650 \
--hidden_state_type bf16 --kv_cache_len 2047 --prefill_len 128 \
--last_kv_cache_len 128 \
--last_kv_cache_len 256 \
--last_kv_cache_len 384 \
--last_kv_cache_len 512 \
--last_kv_cache_len 640 \
--last_kv_cache_len 768 \
--last_kv_cache_len 896 \
--last_kv_cache_len 1024 \
--chip AX650 -c 1 --parallel 8
```
## Support Platform
- AX650
- AX650N DEMO Board
- [M4N-Dock(爱芯派Pro)](https://wiki.sipeed.com/hardware/zh/maixIV/m4ndock/m4ndock.html)
- [M.2 Accelerator card](https://axcl-docs.readthedocs.io/zh-cn/latest/doc_guide_hardware.html)
- AX630C
- *TBD*
## How to use
Download all files from this repository to the device
```
root@ax650:/mnt/qtang/llm-test/Qwen2.5-1.5B-Instruct-python# tree -L 1
.
├── chat.py
├── infer.py
├── infer_torch.py
├── Qwen2.5-1.5B-Instruct-GPTQ-Int8
├── Qwen2.5-1.5B-Instruct-GPTQ-Int8_axmodel
└── README.md
2 directories, 4 files
```
在 `AXERA 650N` 开发板上使用 `python api` 进行模型推理.
在当前目录执行以下命令:
```sh
$ python3 chat.py
```
当出现 `prompt (输入 q 退出对话) >>` 提示时输入文字, 等待模型输出, 具体示例如下:
```bash
$ python3 chat.py
...
The models have been loaded!
2025-07-21 14:23:46.137 | DEBUG | __main__:<module>:143 - >>> 创建 LlamaChatSession >>>
>>> 系统提示: 你的名字叫小智(allen), 你是一个人畜无害的 AI 助手. 深圳市今天(4月1日)阴天, 愚人节, 气温在 14°C 至 19°C
之间, 微风.
2025-07-21 14:23:46.137 | INFO | __main__:chat_loop:69 - Type 'q' to exit, Ctrl+c to stop current generation
prompt (输入 q 退出对话) >> 定义函数y=3x^3+2x+1,求解它的导数.
answer: >> 要找到函数 \( y = 3x^3 + 2x + 1 \) 的导数,我们需要对每个项分别求导,然后将它们相加起来。
1. 对 \( 3x^3 \) ���导,结果是 \( 3 \cdot 3x^{3-1} = 9x^2 \)。
2. 对 \( 2x \) ���导,结果是 \( 2 \cdot 1x^{1-1} = 2 \)。
3. 对常数项 \( 1 \) ���导,结果是 \( 0 \)。
将这些结果相加,我们得到:
\[ y' = 9x^2 + 2 \]
所以,函数 \( y = 3x^3 + 2x + 1 \) 的导数是 \( y' = 9x^2 + 2 \)。
prompt (输入 q 退出对话) >> 这个函数中自变量和因变量分别是什么?
answer: >> 在数学中,函数通常由两个变量组成:自变量(也称为输入变量)和因变量(也称为输出变量)。自变量是函数中的一个
量,它的值决定了因变量的值。
在你提供的函数 \( y = 3x^3 + 2x + 1 \) 中:
- \( x \) 是自变量。
- \( y \) 是因变量。
自变量 \( x \) 的值决定了因变量 \( y \) 的值。例如,如果你给 \( x \) ���值为 2,那么 \( y \) ��等于 \( 3(2)^3 + 2(2) +
1 = 24 + 4 + 1 = 29 \)。
因此,这个函数描述了一个关于 \( x \) 和 \( y \) 的关系,其中 \( x \) 是自变量,而 \( y \) 是因变量。通过改变 \( x \)
值,你可以计算出相应的 \( y \) ���。
prompt (输入 q 退出对话) >> 这个函数中最高幂次和最低幂次分别是多少?
answer: >> 在函数 \( y = 3x^3 + 2x + 1 \) 中,最高次幂(最高幂次)是 \( x^3 \),因此最高幂次是 3。
最低次幂(最低幂次)是 \( x^0 \),因为 \( x^0 = 1 \) 对于任何 \( x \) ���成立,所以最低幂次是 0。
因此,这个函数的最高幂次是 3,最低幂次是 0。最高幂次和最低幂次的差值是 \( 3 - 0 = 3 \)。这意味着函数的图形是一个三次多
式,它有一个顶点(如果最高幂次是偶数)或一个拐点(如果最高幂次是奇数)。在这个例子中,由于最高幂次是奇数,函数的图形
有一个拐点。
```
当上下文窗口达到上限, 可以输入 `reset` 命令重置, 例如:
```sh
prompt (输入 q 退出对话) >> reset
上下文已重置
prompt (输入 q 退出对话) >> 你是谁?今天天气如何?
answer: >> 我是小智,一名人工智能助手。今天是阴天,愚人节,气温在14°C至19°C之间,微风。
```
|