README.md 2.86 KB
Newer Older
chenzk's avatar
v1.0  
chenzk committed
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
# FINCH
## 论文
[FINCH: Prompt-guided Key-Value Cache Compression for Large Language Models ](https://direct.mit.edu/tacl/article/doi/10.1162/tacl_a_00716/125280)

## 模型简介

FINCH将context分成多块,然后依次与prompt拼接输入模型并级联起来推理,从而把完整context切小来减小显存占用。

<div align=center>
    <img src="./doc/FINCH.png"/>
</div>

## 环境依赖
| 软件 |   版本        |
| :------: |:---------:|
| DTK |      dtk25.04.1        |
| python |   3.10.12     |
| transformers |   5.3.0    |
| torch | 2.5.1+das.opt1.dtk25042 |

环境配置:
```
mv kvpress-FINCH-Qwen3-8B_pytorch kvpress_pytorch # 去框架名后缀
```

### Docker(方法一)
```
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.5.1-ubuntu22.04-dtk25.04.2-py3.10
# <your IMAGE ID>为以上拉取的docker的镜像ID替换,本镜像为:8ba136d0c0ab
docker run -it --shm-size=64G -v $PWD/kvpress_pytorch:/home/kvpress_pytorch -v /opt/hyhal:/opt/hyhal:ro --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name kvpress <your IMAGE ID> bash

cd /home/kvpress_pytorch/kvpress/
pip install -e . -i https://mirrors.aliyun.com/pypi/simple
```
更多镜像可前往[光源](https://modelzoo.sourcefind.cn/#/service-list)下载使用;

关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://das.sourcefind.cn:55011/portal/#/home)开发者社区下载安装;

## 数据集
`无`

## 训练
`无`

## 推理
预训练权重目录结构:
```
/home/kvpress_pytorch
    └── Qwen/Qwen3-8B

# 设置HF下载镜像:
export HF_ENDPOINT=https://hf-mirror.com
``` 

### 单机多卡
```bash
cd /home/kvpress_pytorch
python test.py # 本介绍以Qwen3-8B为示例进行步骤说明,需提前将Qwen3-8B下载到对应目录。
```

## 效果展示
`输入: `
```
context = "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."
question = "美国面积多大?"
```

`输出: `
```
answer:  美国的陆地面积约为 **983.4万平方公里**,是世界第三大国家(按陆地面积计算)。如果包括水域和领海面积,美国的总面积约为 **1000万平方公里** 左右。
此外,美国的国土面积也包括其海外领土,如关岛、波多黎各、美属萨摩亚等,这些地区虽然不属于美国本土,但也是美国的领土。
```

### 精度
DCU与GPU精度一致,推理框架:pytorch。

## 预训练权重
|          模型名称          | 权重大小 | DCU型号  | 最低卡数需求 |下载地址|
|:----------------------:|:----:|:------:|:------:|:----------:|
|  Qwen3-8B   |  8B  | K100AI |   4    | [Qwen/Qwen3-8B](https://huggingface.co/Qwen/Qwen3-8B) |

## 源码仓库及问题反馈
- http://developer.sourcefind.cn/codes/modelzoo/kvpress-FINCH-Qwen3-8B_pytorch.git

## 参考资料
- https://github.com/NVIDIA/kvpress/blob/main/kvpress/presses/finch_press.py