3ib0n commited on
Commit
3647152
·
verified ·
1 Parent(s): e49b881

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ Qwen2.5-Coder-7B-Instruct.rkllm filter=lfs diff=lfs merge=lfs -text
37
+ demo_Linux_aarch64/lib/librkllmrt.so filter=lfs diff=lfs merge=lfs -text
38
+ demo_Linux_aarch64/lib/librknnrt.so filter=lfs diff=lfs merge=lfs -text
Qwen2.5-Coder-7B-Instruct.rkllm ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a4509d3396ccaac7dc36f11327499dfe211ac00ffb9323d2cb3c7585a60da395
3
+ size 8193646756
README.md ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ base_model:
3
+ - Qwen/Qwen2.5-Coder-7B
4
+ pipeline_tag: text-generation
5
+ library_name: transformers
6
+ tags:
7
+ - rknn
8
+ - rkllm
9
+ - code
10
+ - codeqwen
11
+ - chat
12
+ - qwen
13
+ - qwen-coder
14
+ - rk3588
15
+ ---
16
+ ## 3ib0n's RKLLM Guide
17
+ These models and binaries require an RK3588 board running rknpu driver version 0.9.7 or above
18
+
19
+ ## Steps to reproduce conversion
20
+ ```shell
21
+ # Download and setup miniforge3
22
+ curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
23
+ bash Miniforge3-$(uname)-$(uname -m).sh
24
+
25
+ # activate the base environment
26
+ source ~/miniforge3/bin/activate
27
+
28
+ # create and activate a python 3.8 environment
29
+ conda create -n rknn-llm-1.1.4 python=3.8
30
+ conda activate rknn-llm-1.1.4
31
+
32
+ # clone the lastest rknn-llm toolkit
33
+ git clone https://github.com/airockchip/rknn-llm.git
34
+
35
+ # intstall dependencies for the toolkit
36
+ pip install transformers accelerate torchvision rknn-toolkit2==2.2.1
37
+ pip install --upgrade torch pillow
38
+
39
+ # install rkllm
40
+ pip install ../../rkllm-toolkit/packages/rkllm_toolkit-1.1.4-cp38-cp38-linux_x86_64.whl
41
+
42
+ # edit or create a script to export rkllm models
43
+ cd rknn-llm/examples/rkllm_multimodal_demo
44
+ nano export/export_rkllm.py # update input and output paths
45
+ python export/export_rkllm.py
46
+ ```
47
+
48
+ Example export_rkllm.py modified from https://github.com/airockchip/rknn-llm/blob/main/examples/rkllm_multimodel_demo/export/export_rkllm.py
49
+ ```python
50
+ import os
51
+ from rkllm.api import RKLLM
52
+ from datasets import load_dataset
53
+ from transformers import AutoTokenizer
54
+ from tqdm import tqdm
55
+ import torch
56
+ from torch import nn
57
+
58
+ modelpath = "~/models/Qwen/Qwen2.5-Coder-7B-Instruct/" ## UPDATE HERE
59
+ savepath = './Qwen2.5-Coder-7B-Instruct.rkllm' ## UPDATE HERE
60
+ llm = RKLLM()
61
+
62
+ # Load model
63
+ # Use 'export CUDA_VISIBLE_DEVICES=2' to specify GPU device
64
+ ret = llm.load_huggingface(model=modelpath, device='cpu')
65
+ if ret != 0:
66
+ print('Load model failed!')
67
+ exit(ret)
68
+
69
+ # Build model
70
+ qparams = None
71
+
72
+ ## Do not use the dataset parameter as we are converting a pure text model, not a multimodal
73
+ ret = llm.build(do_quantization=True, optimization_level=1, quantized_dtype='w8a8',
74
+ quantized_algorithm='normal', target_platform='rk3588', num_npu_core=3, extra_qparams=qparams)
75
+
76
+ if ret != 0:
77
+ print('Build model failed!')
78
+ exit(ret)
79
+
80
+ # # Export rkllm model
81
+ ret = llm.export_rkllm(savepath)
82
+ if ret != 0:
83
+ print('Export model failed!')
84
+ exit(ret)
85
+ ```
86
+
87
+ ## Steps to build and run demo
88
+
89
+ ```shell
90
+ # Dwonload the correct toolchain for working with rkllm
91
+ # Documentation here: https://github.com/airockchip/rknn-llm/blob/main/doc/Rockchip_RKLLM_SDK_EN_1.1.0.pdf
92
+ wget https://developer.arm.com/-/media/Files/downloads/gnu-a/10.2-2020.11/binrel/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz
93
+ tar -xz gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz
94
+
95
+ # ensure that the gcc compiler path is set to the location where the toolchain dowloaded earlier is unpacked
96
+ nano deploy/build-linux.sh # update the gcc compiler path
97
+
98
+ # compile the demo app
99
+ cd delpoy/
100
+ ./build-linux.sh
101
+ ```
102
+
103
+ ## Steps to run the app
104
+ More information and original guide: https://github.com/airockchip/rknn-llm/tree/main/examples/rkllm_multimodel_demo
105
+ ```shell
106
+ # push install dir to device
107
+ adb push ./install/demo_Linux_aarch64 /data
108
+ # push model file to device
109
+ adb push Qwen2.5-Coder-7B-Instruct.rkllm /data/models
110
+
111
+ adb shell
112
+ cd /data/demo_Linux_aarch64
113
+ # export lib path
114
+ export LD_LIBRARY_PATH=./lib
115
+ # soft link models dir
116
+ ln -s /data/models .
117
+ # run llm(Pure Text Example)
118
+ ./llm models/Qwen2.5-Coder-7B-Instruct.rkllm 128 512
119
+ ```
demo_Linux_aarch64/lib/librkllmrt.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3cef353105c3bfd31f99c4963fce8498d2fac633d845633c904f523b7c3bcd0a
3
+ size 6239192
demo_Linux_aarch64/lib/librknnrt.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1170e5f99f2db7ed4d3a4c2bdbed941b7363bd090e0c28b4e210f40614327911
3
+ size 7192616
demo_Linux_aarch64/llm ADDED
Binary file (30.3 kB). View file