计算加速套件 TACO Kit TACO-LLM 部署

TACO-license 是 TACO-LLM 项目中用于鉴权和记录日志的组件。

相关产品
计算加速套件 TACO Kit 产品页,含版本规格、价格与购买入口。

一、公有云及太极客户:

·公有云目前支持以下地域:南京、北京、上海、广州。

·太极目前对所有客户提供支持。

·TACO-license 已经在上述范围生效,客户无需关注 TACO-license 部署。

不在上述范围的公有云客户请进入 TACO 团队交流群 咨询使用特殊版本。

二、TCE/TCS 客户:

如需在 TCE/TCS 上部署 TACO-license,请进入 TACO 团队交流群 团队进行对接。

三、TACO-license 背景及适用范围

TACO-license 是 TACO-LLM 项目下用于鉴权和记录日志的组件,适用于私有化部署 TACO-LLM。私有化客户需要在集群中部署 server 端,以对 client 端(即 TACO-LLM 本身)的请求进行鉴权。搭建条件如下,这篇档中将使用 $your_license_version 来代表实际的版本号,请在代码中进行相应替换:

//搭建环境:需要K8s,server以service的形式部署并提供服务docker images: taco-license-server:$your_license_version

成功鉴权后,可以正常使用 TACO-LLM 功能。

四、签发 license

只有被授权并在过期时间之前,在最大同时访问数量(如果设定)的限制下,才能成功鉴权的 GPU 才能使用。最大同时访问数量指的是同时访问 TACO-license 的 GPU 的最大数量,例如:授权10000台 GPU,同时限制最大同时访问的 GPU 数量为10台。

1. 客户将需要签发 license 的 GPU 发送给 TACO 团队,其方法为在所有可能执行 GPU 的机器上执行:

nvidia-smi -L

将结果写入文件(例如 request.txt),多台机器的结果直接按顺序粘贴合并到一个文件中,并提供过期时间以及最大访问数量,交给 TACO 团队以签发许可证。

2. 签发的许可证文件名为 license-taco_xxxxxxx.dat(例如 license-taco_1234-leolingli-20240906104354.dat)。

五、搭建 taco-license-server

1. 准备好 taco-license-server 的镜像,可以下载到本地或者上传到可供下载的位置。此包由 TACO 团队提供,下载地址为:

wget https://taco-1251783334.cos.ap-shanghai.myqcloud.com/taco-llm/license-server/latest/taco-license-server-latest.tgz #将docker image 解压或放到集群可以下载到的地址,如:docker load -i taco-license-server-latest.tgz#docker pull or docker tag taco-license-server: $your_license_version \\#$your_license_repository/taco-license-server:$your_license_version

2. 使用 Helm Chart 搭建服务,可以参考以下示例:

#install helm first#wget taco-operator-idc packagewget https://taco-1251783334.cos.ap-shanghai.myqcloud.com/taco-llm/license-server/latest/taco-operator-idc-latest.tgz #假设你的taco-license-server地址为 $your_license_repository/taco-license-server:$your_license_versionhelm install –generate-name \\ –set global.repository="$your_license_repository" \\ ./taco-operator-idc-latest.tgz

3. 服务将部署在 kube-system 命名空间中,可以通过 curl 命令来验证是否成功搭建,截图如下:

六、导入 license

将上述签发的 license(license-taco_xxxxxxx.dat)导入集群,使 license 生效:

1. 在集群中执行以下操作以导入许可证。请注意,导入操作将覆盖所有现有的许可证。因此,新签发的许可证需要替代之前的所有许可证:

LICENSE_FILE_NAME=license-taco_xxxxxxxxxxx.dat LICENSE_SERVER_IP=$(kubectl get svc -n kube-system taco-license-server -o jsonpath="{.spec.clusterIP}") curl -X POST -F "file=@$LICENSE_FILE_NAME" http://${LICENSE_SERVER_IP}:10080/ls

2. 执行上述命令后,可以看到提示,显示 license 已成功导入。

你也可以通过以下方法查看签发的许可证信息:

curl your-service-ip:10080/ls/view

七、client 端使用

1. 在容器中,只需使用 taco-llm 即可,无需特殊配置。你可以尝试在 pod 中执行以下操作:

curl http://taco-license-server.kube-system.svc.cluster.local:10080

2. 可以看到相同的输出:

taco license server

这意味着客户端可以访问许可证。

八、特殊情况:自定义 license 地址

注意:说明:

注意:本章节适用于使用非 kube-system 命名空间或希望自定义 qgpu-license-server 部署方式的用户。

Taco-license-server 默认支持两种连接方式,即通过 http://taco-license-server.kube-system.svc.cluster.local:10080 和 http://taco-license-server:10080 访问。这意味着部署在 kube-system 命名空间和与负载 pod 处于同一命名空间的服务地址都可以进行访问。如果用户想在其他命名空间使用,或者由于配置原因无法公开 taco-license-server 地址以允许客户端鉴权,则需要用户自行解决 taco-license-server 的部署问题。这包括部署一个可以访问到 taco-license-server 地址的 pod,并且设置 TACO_LS_ADDR 环境变量为 taco-license-server 的地址。

例如,如果 taco-license-server 可以通过地址 http://10.10.161.72:10080 访问,则应在 pod 的环境变量中添加以下变量:

·可以通过配置 YAML 文件中的环境变量来实现。

·或在容器中 bashrc 文件中添加变量:

export TACO_LS_ADDR=http://$your_license_addr:10080

Taco-LLM 将尝试通过此地址访问 Taco-License-Server。

注意:如果要显式设置 TACO_LS_ADDR 的值,请确保将 TACO_LS_ADDR 的值导出为正确的 taco-license-server 地址。尝试访问无效地址会导致鉴权程序等待超时(通常为30秒),从而延迟鉴权启动时间,可能会影响到最初几次鉴权的结果。

赞 (0)
上一篇 4天前
下一篇 4天前