diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/CPU\346\216\250\347\220\206\346\250\241\345\236\213\351\203\250\347\275\262\346\214\207\345\215\227.md" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/CPU\346\216\250\347\220\206\346\250\241\345\236\213\351\203\250\347\275\262\346\214\207\345\215\227.md" index 2a2b89cf04335d7f9b34f8b12bd143314bccaea4..03a109ae1d85162cb9ce7cfa6395df0c2568d54e 100644 --- "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/CPU\346\216\250\347\220\206\346\250\241\345\236\213\351\203\250\347\275\262\346\214\207\345\215\227.md" +++ "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/CPU\346\216\250\347\220\206\346\250\241\345\236\213\351\203\250\347\275\262\346\214\207\345\215\227.md" @@ -7,32 +7,67 @@ sysInfer是一款基于鲲鹏+openEuler的大模型推理加速框架,主要 ## 环境准备 ### 硬件要求 +以下以测试过程中的鲲鹏服务器为例,限定使用48核,单batch情况: + +#### 硬件格式 | 类型 | 硬件要求 | |----------------| -----------------------------| -| 服务器 | 1台 | -| CPU | 鲲鹏>= 64 cores | -| 内存 | >= 256 GB | -| 内存带宽 | >= 100 GB/s | +| 服务器 | 鲲鹏服务器 | +| 处理器 | 鲲鹏处理器 | +| 内存大小 | 512GB(16 * 32 GB) | +| 内存数据传输速率 | 4800 MT/s | +| 理论最大内存带宽 | 614.4 GB/s | +| 理论时钟周期最大处理单精度浮点数 | 8 | +| CPU socket | 2个 | +| 多核 | 128/256(物理核/逻辑核) | +| Numa节点 | 4 个 numa节点(编号0-3) | + +#### llama3-8B模型 + +| 输入 + 输出token长度 | 平均token速率(token/s) | +|----------------| -----------------------------| +| 32 | 28.11 | +| 64 | 27.66 | +| 128 | 27.47 | +| 256 | 26.87 | +| 512 | 25.93 | +| 1024 | 23.75 | +| 2048 | 21.07 | +| 4096 | 17.49 | + +#### Baichuan2-13B模型 + +| 输入 + 输出token长度 | 平均token速率(token/s) | +|----------------| -----------------------------| +| 32 | 17.81 | +| 64 | 17.57 | +| 128 | 17.36 | +| 256 | 17.04 | +| 512 | 16.53 | +| 1024 | 15.49 | +| 2048 | 13.62 | +| 4096 | 12.93 | ### 权重模型 -支持huggingface上的Baichuan2-13B和Llama3-8B等开源权重模型 +支持Transformer架构的开源大模型,例如Baichuan2和Llama3系列 ```shell +# 创建工作目录 mkdir -r /home/app cd /home/app -# 以Baichuan2-13B-Chat-GGUF为例 +# 下载Baichuan2-13B-Chat-GGUF wget https://hf-mirror.com/second-state/Baichuan2-13B-Chat-GGUF/resolve/main/Baichuan2-13B-Chat-Q4_0.gguf -# Llama3 +# 下载Llama3-8B wget https://hf-mirror.com/shenzhi-wang/Llama3-8B-Chinese-Chat-GGUF-4bit/resolve/main/Llama3-8B-Chinese-Chat-q4_0-v2_1.gguf ``` ### docker镜像拉取 ```shell -# oe_openai_server:0.0.1镜像 -docker pull hub.oepkgs.net/neocopilot/oe_openai_server@sha256:2c87870fc34754391b1160bc0478f2691d0d47e47bb5a5bc18d8ec352d73fcb3 +# 拉取oe_openai_server:0.0.1镜像 +docker pull hub.oepkgs.net/neocopilot/oe_openai_server@sha256:7d7d35e6e7a7eb43c31cebe093ae47b4f8fdcad67d36722b6e5a88522158f318 ``` @@ -42,13 +77,13 @@ docker pull hub.oepkgs.net/neocopilot/oe_openai_server@sha256:2c87870fc34754391b ### 接口部署 ```shell -# 查看鲲鹏920系列服务器逻辑核分布情况,下面以鲲鹏920为例 +# 查看鲲鹏系列服务器逻辑核分布情况,下面以某鲲鹏服务器为例 lscpu ``` CPU逻辑核心分布图 ```shell -# 以鲲鹏920为例进行绑核,逻辑核总数设置4的倍数,绑核按numa节点平均分配 +# 以鲲鹏服务器为例进行绑核,逻辑核总数设置numa节点的倍数,绑核按numa节点平均分配 docker run -it \ -v /home/app/Baichuan2-13B-Chat-Q4_0.gguf:/app/Baichuan2-13B-Chat-Q4_0.gguf \ -p 7860:7860 \ @@ -65,7 +100,8 @@ docker run -it \ ```python # request.py from openai import OpenAI -client = OpenAI(base_url="http://127.0.0.1:7860/v1") +client = OpenAI(api_key="sk-", + base_url="http://127.0.0.1:7860/v1") completion = client.chat.completions.create( model="Baichuan2-13B-Chat-Q4_0", @@ -81,3 +117,23 @@ for chunk in completion: ``` + + +接口测试成功返回如下图所示: + +测试接口成功图 + +## 对接EulerCopilot效果 + +接入效果图1: + +接入copilot效果图1 + +接入效果图2: + +接入copilot效果图2 + +接入效果图3: + +接入copilot效果图3 + diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/CPU\346\216\250\347\220\206\351\203\250\347\275\262/\346\216\245\345\205\245copilot\346\225\210\346\236\234\345\233\2761.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/CPU\346\216\250\347\220\206\351\203\250\347\275\262/\346\216\245\345\205\245copilot\346\225\210\346\236\234\345\233\2761.png" new file mode 100644 index 0000000000000000000000000000000000000000..e59e8b669c3039341655eadd75ce1fda5cda1776 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/CPU\346\216\250\347\220\206\351\203\250\347\275\262/\346\216\245\345\205\245copilot\346\225\210\346\236\234\345\233\2761.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/CPU\346\216\250\347\220\206\351\203\250\347\275\262/\346\216\245\345\205\245copilot\346\225\210\346\236\234\345\233\2762.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/CPU\346\216\250\347\220\206\351\203\250\347\275\262/\346\216\245\345\205\245copilot\346\225\210\346\236\234\345\233\2762.png" new file mode 100644 index 0000000000000000000000000000000000000000..68ae1c7cb11e663cabbf1225b188fdfd628bf549 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/CPU\346\216\250\347\220\206\351\203\250\347\275\262/\346\216\245\345\205\245copilot\346\225\210\346\236\234\345\233\2762.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/CPU\346\216\250\347\220\206\351\203\250\347\275\262/\346\216\245\345\205\245copilot\346\225\210\346\236\234\345\233\2763.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/CPU\346\216\250\347\220\206\351\203\250\347\275\262/\346\216\245\345\205\245copilot\346\225\210\346\236\234\345\233\2763.png" new file mode 100644 index 0000000000000000000000000000000000000000..d90f6182fb6ec63f868a5c2598de73db093775f2 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/CPU\346\216\250\347\220\206\351\203\250\347\275\262/\346\216\245\345\205\245copilot\346\225\210\346\236\234\345\233\2763.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/CPU\346\216\250\347\220\206\351\203\250\347\275\262/\346\265\213\350\257\225\346\216\245\345\217\243\346\210\220\345\212\237.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/CPU\346\216\250\347\220\206\351\203\250\347\275\262/\346\265\213\350\257\225\346\216\245\345\217\243\346\210\220\345\212\237.png" new file mode 100644 index 0000000000000000000000000000000000000000..374c3a2cc0be67a012ef8bf0ddc7688f97702d79 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/CPU\346\216\250\347\220\206\351\203\250\347\275\262/\346\265\213\350\257\225\346\216\245\345\217\243\346\210\220\345\212\237.png" differ