diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\346\227\240\347\275\221\347\273\234\347\216\257\345\242\203\344\270\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/\346\227\240\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md" index 89f11b2b5da094f278824edec21878d4f5b8ccb6..60ac925784c52160992441fb8f5f43dc525c1051 100644 --- "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\346\227\240\347\275\221\347\273\234\347\216\257\345\242\203\344\270\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/\346\227\240\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md" @@ -4,7 +4,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot System 可以解决操作系统知识获取的便捷性,并且为OS领域模型赋能开发者及运维人员。作为获取操作系统知识,使能操作系统生产力工具 (如 A-Ops / A-Tune / x2openEuler / EulerMaker / EulerDevOps / StratoVirt / iSulad 等),颠覆传统命令交付方式,由传统命令交付方式向自然语义进化,并结合智能体任务规划能力,降低开发、使用操作系统特性的门槛。 -### 组件介绍 +### 主要组件介绍 | 组件 | 端口 | 说明 | | ----------------------------- | --------------- | -------------------- | @@ -37,7 +37,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot | RAM | >= 64GB | | 存储 | >= 500 GB | | GPU | Tesla V100 16GB,4张 | -| NPU | 910ProB、910B | +| NPU | 支持大模型推理的NPU卡或服务器 | 注意: @@ -95,7 +95,6 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot - SELinux设置 ```bash - # 需要关闭selinux,可以临时关闭或永久关闭 # 永久关闭SELinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 临时关闭 @@ -114,24 +113,12 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot wget https://repo.oepkgs.net/openEuler/rpm/openEuler-22.03-LTS/contrib/EulerCopilot/bge-reranker-large.tar.gz ``` -- 下载分词工具 text2vec-base-chinese-paraphrase [分词工具下载链接](https://repo.oepkgs.net/openEuler/rpm/openEuler-22.03-LTS/contrib/EulerCopilot/) - - ```bash - mkdir -p /home/EulerCopilot/text2vec - cd /home/EulerCopilot/text2vec - wget https://repo.oepkgs.net/openEuler/rpm/openEuler-22.03-LTS/contrib/EulerCopilot/text2vec-base-chinese-paraphrase.tar.gz - ``` - - 镜像包下载 - - x86或arm架构的EulerCopilot服务的各组件镜像单独提供 + - x86或arm架构的EulerCopilot服务的各组件镜像和tag可在values.yaml文件中查看 ### 3. 安装部署工具 -#### 3.1 安装 Docker - -如需要基于 GPU/NPU 部署大模型,需要检查 Docker 版本是否满足>= v25.4.0 ,如不满足,请升级 Docker 版本 - -#### 3.2 安装 K3s 并导入镜像 +#### 3.1 安装 K3s 并导入镜像 - 安装 SELinux 配置文件 @@ -144,7 +131,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot - x86 架构安装 k3s ```bash - # 在有网络的环境上获取k3s相关包,以v1.30.3+k3s1示例 + # 在有网络的环境上获取k3s相关包并上传至服务器,以v1.30.3+k3s1示例 wget https://github.com/k3s-io/k3s/releases/download/v1.30.3%2Bk3s1/k3s wget https://github.com/k3s-io/k3s/releases/download/v1.30.3%2Bk3s1/k3s-airgap-images-amd64.tar.zst cp k3s /usr/local/bin/ @@ -160,7 +147,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot - arm 架构安装 k3s ```bash - # 在有网络的环境上获取k3s相关包,以v1.30.3+k3s1示例 + # 在有网络的环境上获取k3s相关包并上传至服务器,以v1.30.3+k3s1示例 wget https://github.com/k3s-io/k3s/releases/download/v1.30.3%2Bk3s1/k3s-arm64 wget https://github.com/k3s-io/k3s/releases/download/v1.30.3%2Bk3s1/k3s-airgap-images-arm64.tar.zst cp k3s-arm64 /usr/local/bin/k3s @@ -180,7 +167,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot k3s ctr image import $(镜像文件) ``` -#### 3.3 安装 Helm 工具 +#### 3.2 安装 Helm 工具 - x86_64 架构 @@ -200,7 +187,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot rm -rf linux-arm64 ``` -#### 3.4 大模型准备 +#### 3.3 大模型准备 提供第三方openai接口或基于硬件本都部署大模型,本地部署大模型可参考附录部分。 @@ -257,7 +244,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot cd deploy/chart/databases ``` - 仅需修改镜像tag为对应架构,其余可不进行修改 + 请根据对应的架构修改镜像标签,并设置数据库密码。 ```bash vim values.yaml @@ -281,7 +268,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot helm install -n euler-copilot databases . ``` -- 查看 pod 状态 +- 检查 Pod 的状态 ```bash kubectl -n euler-copilot get pods @@ -296,12 +283,10 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot - 若服务器之前部署过 mysql,则可预先清除下 pvc,再部署 databases。 ```bash - # 获取pvc kubectl -n euler-copilot get pvc ``` ```bash - # 删除pvc kubectl -n euler-copilot delete pvc mysql-pvc ``` @@ -323,7 +308,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot 1. authHub 需要域名,可预先申请域名或在 'C:\Windows\System32\drivers\etc\hosts' 下配置。 authhub和euler-copilot必须是同一个根域名的两个子域名, 例如authhub.test.com和 eulercopilot.test.com - 2. 修改tag为对应架构的tag; + 2. 根据对应的架构修改镜像标签,并填写数据库密码。 - 安装 AuthHub @@ -380,7 +365,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot ``` - 注意: - 1. 查看系统架构,并修改values.yaml中的tag; + 1. 根据对应的架构修改镜像标签,并填写数据库密码。; 2. 修改values.yaml中的globals的domain为EulerCopilot域名,并配置大模型的相关信息 3. 手动创建`docs_dir`、`plugin_dir`、`models`三个文件挂载目录 4. 修改values.yaml中framework章节的web_url和oidc设置 @@ -414,8 +399,6 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot ``` 注意:如果 Pod 状态出现失败,建议按照以下步骤进行排查 -注意:如果 Pod 状态出现失败,建议按照以下步骤进行排查 - 1. 查看 Kubernetes 集群的事件 (Events),以获取更多关于 Pod 失败的上下文信息 ```bash @@ -459,7 +442,6 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot 首先请点击下方页面的“立即注册”按钮,完成账号的注册与登录。 ![Web登录界面](./pictures/WEB登录界面.png) - ![Web 界面](./pictures/WEB界面.png) ## 安装插件 @@ -468,18 +450,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot ## 构建专有领域智能问答 -### 1. 构建 openEuler 专业知识领域的智能问答 - - 1. 修改 values.yaml 的 pg 的镜像仓为 `pg-data` - 2. 修改 values.yaml 的 rag 部分的字段 `knowledgebaseID: openEuler_2bb3029f` - 3. 将 `vim deploy/chart/databases/templates/pgsql/pgsql-deployment.yaml` 的 volumes 相关字段注释 - 4. 进入 `cd deploy/chart/databases`,执行更新服务 `helm upgrade -n euler-copilot databases .` - 5. 进入 `cd deploy/chart/euler_copilot`,执行更新服务 `helm upgrade -n euler-copilot service .` - 6. 进入网页端进行 openEuler 专业知识领域的问答 - -### 2. 构建项目专属知识领域智能问答 - -详细信息请参考文档 [本地资产库构建指南](本地资产库构建指南.md) +详细信息请参考文档 [本地资产库构建指南](./本地资产库构建指南.md) ## 附录 @@ -588,8 +559,7 @@ NPU 环境部署可参考链接 [MindIE安装指南](https://www.hiascend.com/do ```text File "/usr/lib/python3.9/site-packages/urllib3/connection.py", line 186, in _new_conn -raise NewConnectionError( -urllib3.exceptions.eanconectionError: : Failed to establish a new conmection: [Errno 101] Network is unreachable +raise NewConnectionError(urllib3.exceptions.eanconectionError: : Failed to establish a new conmection: [Errno 101] Network is unreachable ``` - 解决办法 @@ -607,10 +577,13 @@ export HF_ENDPOINT=https://hf-mirror.com - 请先进入到 RAG 对应 Pod ```bash -curl -k -X POST "http://localhost:8005/kb/get_answer" -H "Content-Type: application/json" -d '{ \ - "question": "", \ - "kb_sn": "default_test", \ - "fetch_source": true }' +curl -k -X POST "http://localhost:8005/kb/get_answer" \ + -H "Content-Type: application/json" \ + -d '{ + "question": "", + "kb_sn": "default_test", + "fetch_source": true + }' ``` ### 3. 执行 `helm upgrade` 报错? @@ -644,10 +617,11 @@ export KUBECONFIG=/etc/rancher/k3s/k3s.yaml cat /etc/systemd/system/k3s.service.env ``` -```text -http_proxy="http://172.21.60.51:3128" -https_proxy="http://172.21.60.51:3128" -no_proxy=172.21.31.10 # 代理中剔除本机IP +```bash +http_proxy="http://XXX:XXX" +https_proxy="http://XXX:XXX" +# 代理中剔除本机IP +no_proxy=XXX.XXX.XXX.XXX ``` ### 5. GPU环境部署大模型时出现无法流式回复? @@ -655,22 +629,25 @@ no_proxy=172.21.31.10 # 代理中剔除本机IP 在服务执行 curl 大模型失败,但是将 `"stream": true` 改为 `"stream": false`就可以 curl 通? ```bash -curl http://localhost:30000/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer sk-123456" -d '{ -"model": "qwen1.5", -"messages": [ -{ -"role": "system", -"content": "你是情感分析专家,你的任务是xxxx" -}, -{ -"role": "user", -"content": "你好" -} -], -"stream": true, -"n": 1, -"max_tokens": 32768 -}' +curl -X POST http://localhost:30000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer sk-123456" \ + -d '{ + "model": "qwen1.5", + "messages": [ + { + "role": "system", + "content": "你是情感分析专家,你的任务是xxxx" + }, + { + "role": "user", + "content": "你好" + } + ], + "stream": true, + "n": 1, + "max_tokens": 8192 + }' ``` - 解决办法: @@ -679,18 +656,27 @@ curl http://localhost:30000/v1/chat/completions -H "Content-Type: application/ pip install Pydantic=1.10.13 ``` -### 6. 如何部署 sglang? +### 6. sglang如何部署模型? ```bash -# 1. 激活 Conda 环境, 并激活 Python 3.10 的 Conda 环境。假设你的环境名为 `myenv`: +# 1. 激活名为 `myenv` 的 Conda 环境,该环境基于 Python 3.10 创建: conda activate myenv -# 2. 在激活的环境中,安装 sglang[all] 和 flashinfer -pip install sglang[all]==0.3.0 +# 2. 安装 sglang 及其所有依赖项,指定版本为 0.3.0 +pip install "sglang[all]==0.3.0" + +# 3. 从特定索引安装 flashinfer,确保与您的 CUDA 和 PyTorch 版本兼容 pip install flashinfer -i https://flashinfer.ai/whl/cu121/torch2.4/ -# 3. 启动服务器 -python -m sglang.launch_server --served-model-name Qwen2.5-32B --model-path Qwen2.5-32B-Instruct-AWQ --host 0.0.0.0 --port 8001 --api-key sk-12345 --mem-fraction-static 0.5 --tp 8 +# 4. 使用 sglang 启动服务器,配置如下: +python -m sglang.launch_server \ + --served-model-name Qwen2.5-32B \ + --model-path Qwen2.5-32B-Instruct-AWQ \ + --host 0.0.0.0 \ + --port 8001 \ + --api-key "sk-12345" \ + --mem-fraction-static 0.5 \ + --tp 8 ``` - 验证安装 @@ -701,11 +687,10 @@ python -m sglang.launch_server --served-model-name Qwen2.5-32B --model-path Qwen ``` - 注意: - - 1. API Key:请确保 `--api-key` 参数中的 API 密钥是正确的 - 2. 模型路径: 确保 `--model-path` 参数中的路径是正确的,并且模型文件存在于该路径下。 - 3. CUDA 版本:确保你的系统上安装了 CUDA 12.1 和 PyTorch 2.4,因为 `flashinfer` 包依赖于这些特定版本。 - 4. 线程池大小:根据你的GPU资源和预期负载调整线程池大小。如果你有 8 个 GPU,那么可以选择 --tp 8 来充分利用这些资源。 +1. API Key:请确保 `--api-key` 参数中的 API 密钥是正确的 +2. 模型路径: 确保 `--model-path` 参数中的路径是正确的,并且模型文件存在于该路径下。 +3. CUDA 版本:确保你的系统上安装了 CUDA 12.1 和 PyTorch 2.4,因为 `flashinfer` 包依赖于这些特定版本。 +4. 线程池大小:根据你的GPU资源和预期负载调整线程池大小。如果你有 8 个 GPU,那么可以选择 --tp 8 来充分利用这些资源。 ### 7. 如何 curl embedding? @@ -725,17 +710,15 @@ curl -k -X POST http://$IP:8001/embedding \ wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64 # arm64 wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-arm64 - # 2. 执行下面的命令生成秘钥 mkcert -install # mkcert 可直接接域名或 IP, 生成证书和秘钥 mkcert example.com - -# 3. 将证书和秘钥拷贝到 /home/euler-copilot-framework_openeuler/deploy/chart_ssl/traefik-secret.yaml 中, 并执行下面命令使其生效。 +# 3. 将证书和秘钥拷贝到 `/home/euler-copilot-framework_openeuler/deploy/chart_ssl/traefik-secret.yaml` 中, 并执行下面命令使其生效。 kubectl apply -f traefik-secret.yaml ``` ### 8. Pod状态由runnning变为pending? 在Pod正常运行一段时间后,其状态从“Running”全部转变为 “Pending” 或 “Completed”, -可执行命令`df -h`,查看Pod所在宿主机的存储空间,确保可用空间不低于30%,以保证pod的正常运行。 +可执行命令`df -h`,查看Pod所在宿主机的存储空间,确保可用空间不低于30%,以保证pod的正常运行。 \ No newline at end of file diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\347\275\221\347\273\234\347\216\257\345\242\203\344\270\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/\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md" index 83186358b104c8d51042db780d9850923db6e99c..fc4758c105e99212e0d802656170d33b09aa7ed6 100644 --- "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\347\275\221\347\273\234\347\216\257\345\242\203\344\270\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/\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md" @@ -4,7 +4,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot System 可以解决操作系统知识获取的便捷性,并且为OS领域模型赋能开发者及运维人员。作为获取操作系统知识,使能操作系统生产力工具 (如 A-Ops / A-Tune / x2openEuler / EulerMaker / EulerDevOps / StratoVirt / iSulad 等),颠覆传统命令交付方式,由传统命令交付方式向自然语义进化,并结合智能体任务规划能力,降低开发、使用操作系统特性的门槛。 -### 组件介绍 +### 主要组件介绍 | 组件 | 端口 | 说明 | | ----------------------------- | --------------- | -------------------- | @@ -37,7 +37,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot | RAM | >= 64GB | | 存储 | >= 500 GB | | GPU | Tesla V100 16GB,4张 | -| NPU | 910ProB、910B | +| NPU | 支持大模型推理的NPU卡或服务器 | 注意: @@ -143,7 +143,7 @@ cd /home/euler-copilot-framework/deploy/scripts && tree cd deploy/chart/databases ``` - 仅需修改镜像tag为对应架构,其余可不进行修改 + 请根据对应的架构修改镜像标签,并设置数据库密码。 ```bash vim values.yaml @@ -167,7 +167,7 @@ cd /home/euler-copilot-framework/deploy/scripts && tree helm install -n euler-copilot databases . ``` -- 查看 pod 状态 +- 检查 Pod 的状态 ```bash kubectl -n euler-copilot get pods @@ -182,12 +182,10 @@ cd /home/euler-copilot-framework/deploy/scripts && tree - 若服务器之前部署过 mysql,则可预先清除下 pvc,再部署 databases。 ```bash - # 获取pvc kubectl -n euler-copilot get pvc ``` ```bash - # 删除pvc kubectl -n euler-copilot delete pvc mysql-pvc ``` @@ -209,7 +207,7 @@ cd /home/euler-copilot-framework/deploy/scripts && tree 1. authHub 需要域名,可预先申请域名或在 'C:\Windows\System32\drivers\etc\hosts' 下配置。 authhub和euler-copilot必须是同一个根域名的两个子域名, 例如authhub.test.com和 eulercopilot.test.com - 2. 修改tag为对应架构的tag; + 2. 根据对应的架构修改镜像标签,并填写数据库密码。 - 安装 AuthHub @@ -266,7 +264,7 @@ cd /home/euler-copilot-framework/deploy/scripts && tree ``` - 注意: - 1. 查看系统架构,并修改values.yaml中的tag; + 1. 根据对应的架构修改镜像标签,并填写数据库密码。; 2. 修改values.yaml中的globals的domain为EulerCopilot域名,并配置大模型的相关信息 3. 手动创建`docs_dir`、`plugin_dir`、`models`三个文件挂载目录 4. 修改values.yaml中framework章节的web_url和oidc设置 @@ -300,9 +298,6 @@ cd /home/euler-copilot-framework/deploy/scripts && tree ``` 注意:如果 Pod 状态出现失败,建议按照以下步骤进行排查 - -注意:如果 Pod 状态出现失败,建议按照以下步骤进行排查 - 1. 查看 Kubernetes 集群的事件 (Events),以获取更多关于 Pod 失败的上下文信息 ```bash @@ -354,18 +349,7 @@ cd /home/euler-copilot-framework/deploy/scripts && tree ## 构建专有领域智能问答 -### 1. 构建 openEuler 专业知识领域的智能问答 - - 1. 修改 values.yaml 的 pg 的镜像仓为 `pg-data` - 2. 修改 values.yaml 的 rag 部分的字段 `knowledgebaseID: openEuler_2bb3029f` - 3. 将 `vim deploy/chart/databases/templates/pgsql/pgsql-deployment.yaml` 的 volumes 相关字段注释 - 4. 进入 `cd deploy/chart/databases`,执行更新服务 `helm upgrade -n euler-copilot databases .` - 5. 进入 `cd deploy/chart/euler_copilot`,执行更新服务 `helm upgrade -n euler-copilot service .` - 6. 进入网页端进行 openEuler 专业知识领域的问答 - -### 2. 构建项目专属知识领域智能问答 - -详细信息请参考文档 [本地资产库构建指南](本地资产库构建指南.md) +详细信息请参考文档 [本地资产库构建指南](./本地资产库构建指南.md) ## 附录 @@ -474,8 +458,7 @@ NPU 环境部署可参考链接 [MindIE安装指南](https://www.hiascend.com/do ```text File "/usr/lib/python3.9/site-packages/urllib3/connection.py", line 186, in _new_conn -raise NewConnectionError( -urllib3.exceptions.eanconectionError: : Failed to establish a new conmection: [Errno 101] Network is unreachable +raise NewConnectionError(urllib3.exceptions.eanconectionError: : Failed to establish a new conmection: [Errno 101] Network is unreachable ``` - 解决办法 @@ -493,10 +476,13 @@ export HF_ENDPOINT=https://hf-mirror.com - 请先进入到 RAG 对应 Pod ```bash -curl -k -X POST "http://localhost:8005/kb/get_answer" -H "Content-Type: application/json" -d '{ \ - "question": "", \ - "kb_sn": "default_test", \ - "fetch_source": true }' +curl -k -X POST "http://localhost:8005/kb/get_answer" \ + -H "Content-Type: application/json" \ + -d '{ + "question": "", + "kb_sn": "default_test", + "fetch_source": true + }' ``` ### 3. 执行 `helm upgrade` 报错? @@ -530,10 +516,11 @@ export KUBECONFIG=/etc/rancher/k3s/k3s.yaml cat /etc/systemd/system/k3s.service.env ``` -```text -http_proxy="http://172.21.60.51:3128" -https_proxy="http://172.21.60.51:3128" -no_proxy=172.21.31.10 # 代理中剔除本机IP +```bash +http_proxy="http://XXX:XXX" +https_proxy="http://XXX:XXX" +# 代理中剔除本机IP +no_proxy=XXX.XXX.XXX.XXX ``` ### 5. GPU环境部署大模型时出现无法流式回复? @@ -541,22 +528,25 @@ no_proxy=172.21.31.10 # 代理中剔除本机IP 在服务执行 curl 大模型失败,但是将 `"stream": true` 改为 `"stream": false`就可以 curl 通? ```bash -curl http://localhost:30000/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer sk-123456" -d '{ -"model": "qwen1.5", -"messages": [ -{ -"role": "system", -"content": "你是情感分析专家,你的任务是xxxx" -}, -{ -"role": "user", -"content": "你好" -} -], -"stream": true, -"n": 1, -"max_tokens": 32768 -}' +curl -X POST http://localhost:30000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer sk-123456" \ + -d '{ + "model": "qwen1.5", + "messages": [ + { + "role": "system", + "content": "你是情感分析专家,你的任务是xxxx" + }, + { + "role": "user", + "content": "你好" + } + ], + "stream": true, + "n": 1, + "max_tokens": 8192 + }' ``` - 解决办法: @@ -565,18 +555,27 @@ curl http://localhost:30000/v1/chat/completions -H "Content-Type: application/ pip install Pydantic=1.10.13 ``` -### 6. 如何部署 sglang? +### 6. sglang如何部署模型? ```bash -# 1. 激活 Conda 环境, 并激活 Python 3.10 的 Conda 环境。假设你的环境名为 `myenv`: +# 1. 激活名为 `myenv` 的 Conda 环境,该环境基于 Python 3.10 创建: conda activate myenv -# 2. 在激活的环境中,安装 sglang[all] 和 flashinfer -pip install sglang[all]==0.3.0 +# 2. 安装 sglang 及其所有依赖项,指定版本为 0.3.0 +pip install "sglang[all]==0.3.0" + +# 3. 从特定索引安装 flashinfer,确保与您的 CUDA 和 PyTorch 版本兼容 pip install flashinfer -i https://flashinfer.ai/whl/cu121/torch2.4/ -# 3. 启动服务器 -python -m sglang.launch_server --served-model-name Qwen2.5-32B --model-path Qwen2.5-32B-Instruct-AWQ --host 0.0.0.0 --port 8001 --api-key sk-12345 --mem-fraction-static 0.5 --tp 8 +# 4. 使用 sglang 启动服务器,配置如下: +python -m sglang.launch_server \ + --served-model-name Qwen2.5-32B \ + --model-path Qwen2.5-32B-Instruct-AWQ \ + --host 0.0.0.0 \ + --port 8001 \ + --api-key "sk-12345" \ + --mem-fraction-static 0.5 \ + --tp 8 ``` - 验证安装 @@ -587,11 +586,10 @@ python -m sglang.launch_server --served-model-name Qwen2.5-32B --model-path Qwen ``` - 注意: - - 1. API Key:请确保 `--api-key` 参数中的 API 密钥是正确的 - 2. 模型路径: 确保 `--model-path` 参数中的路径是正确的,并且模型文件存在于该路径下。 - 3. CUDA 版本:确保你的系统上安装了 CUDA 12.1 和 PyTorch 2.4,因为 `flashinfer` 包依赖于这些特定版本。 - 4. 线程池大小:根据你的GPU资源和预期负载调整线程池大小。如果你有 8 个 GPU,那么可以选择 --tp 8 来充分利用这些资源。 +1. API Key:请确保 `--api-key` 参数中的 API 密钥是正确的 +2. 模型路径: 确保 `--model-path` 参数中的路径是正确的,并且模型文件存在于该路径下。 +3. CUDA 版本:确保你的系统上安装了 CUDA 12.1 和 PyTorch 2.4,因为 `flashinfer` 包依赖于这些特定版本。 +4. 线程池大小:根据你的GPU资源和预期负载调整线程池大小。如果你有 8 个 GPU,那么可以选择 --tp 8 来充分利用这些资源。 ### 7. 如何 curl embedding?