打造人工智能 "数字人"--展示如何吸引客户的注意力
在筹备2025年1月全美零售联合会(NRF)大型Supermicro 的设计与内容时,我们明确需要展示一款数字人类技术——它能够理解展台访客的提问并给出详细回应。 关键在于,该演示必须采用本地化部署,确保人机对话的延迟控制在正常人类交流的预期范围内(50-100毫秒)。
本文将深入探讨我们为何选择展示数字人的背景故事、我们所面临的挑战和在短短两周内克服这些挑战的过程,以及与我们的数字人互动的人们对我们的评价。
我们想讲的故事
鉴于我们决定在 NRF 大展上展示数字人机应用,我们希望在零售环境中挑选一个引人入胜的故事。我们还希望选择一个现实世界中的例子来展示数字人形的内在价值。我们决定展示的使用案例是一个数字人,它可以回答关于餐厅菜单选项的自然语言问题。
虽然这个用例看似简单,但却让我们有可能向可能来到我们展位的三个不同受众讲述一个故事。这些受众可以描述如下:
- 餐厅经理/业主。我们对这个角色的目标是向他们展示一个可以轻松部署并为其业务提供价值的应用程序。积极的数字化人文体验将减少员工随时了解菜单选择和选项变化的难度。他们知道,员工流失的代价是昂贵的,因此,我们可以向他们展示,可以在节省企业成本的前提下,通过数字化人工智能来丰富客户的体验。
- 技术专家。这个人会想知道我们是如何创造数字人的,我们遇到了哪些挑战,以及我们是如何克服这些挑战的。我们的目标是展示创造数字人的现实,以及为什么这是一个可复制的机会。
- 消费者。这个人是餐厅服务的消费者,因此几乎所有看过演示的人都符合这个定义。这个人会根据数字人的易用性、回答的准确性以及最终的互动可信度来评判数字人。我们的目标是展示在日常生活中使用数字人是多么简单。
并非首次人工智能数字人类体验
我们为2025年NRF大型展会打造数字人类演示的愿景,Supermicro涉足数字人类领域。此前我们已与两家独立软件供应商(ISV)合作,成功开发出能Supermicro产品组合提供推荐解答的数字人类。事实上,这正是我们在2024年西班牙巴塞罗那世界移动通信大会上展示的两项数字人类演示之一。
虽然第一次的体验是积极的,尤其是看到人们与我们的数字人进行实时互动,但这需要大量的协调工作,尤其是需要三方共同参与才能实现。这一次,我们决定自己完成所有工作。在研究了我们自己完成演示所花费的时间和精力后,我们确定,如果我们拥有资源,并且能够在组织内部迅速做出决策,那么这项工作肯定更容易管理。
创建 "数字人类 "需要做些什么?
我们首先召集了一支由内部人工智能专家和零售市场专家组成的团队,以决定我们想要展示的使用案例以及我们想要传达的信息(如上所述)。
接下来,我们将需求记录在案,并制定了开发、测试和排除原型故障的拟议时间表。我们还计划重复其中的一个或多个周期,以最终完成我们的 "数字人"。我们还需要确保留出足够的时间,将承载 LLM 和 "数字人 "应用程序的边缘服务器运到 NRF 活动现场,并在我们的展位上安装好。
一旦我们有了自己的要求和我们认为可以实现的时间表,我们就开始着手实现它。
我们如何打造 "数字人类
我们最早的决定之一就是利用我们与英伟达™(NVIDIA)的紧密关系,英伟达™是人工智能开发和实施工具的市场领导者。我们根据英伟达™(NVIDIA®)的 "数字人类蓝图"(Digital Human Blueprint)构建了我们的 "数字人类"。这加快了我们实现价值(在我们的案例中,是一个工作演示)的时间,同时实施了英伟达的最佳实践。此外,它还让我们能够专注于定制,使每个演示与众不同,例如头像特征和 LLM 定制。
利用英伟达™(NVIDIA®)的开发工具,我们可以轻松地使用检索增强生成(RAG)来定制解决方案的 LLM 部分。RAG 是一种将检索模型与生成模型相结合的人工智能技术。它能从数据库或文档集中检索相关信息,并利用这些信息生成更准确、更贴近上下文的回复。在我们的项目中,我们将 RAG 管道与餐厅的具体信息连接起来,以获得有关其餐饮选择、定价、营业时间和其他因素(如确定的每周特价)的最新详细信息。这确保了我们的数据是最新的,也确保了我们的数字员工经过了良好的 "培训"。
请阅读附录 A,了解构建数字人类的技术细节。
满足对边缘服务器的要求,实现数字人类
我们开发 "数字人 "的优势之一,是现有的边缘服务器组合,旨在支持边缘人工智能应用的要求。我们对将要托管/运行我们的 "数字人 "演示的服务器有以下要求:
- 用于 LLM 和 RAG 的 GPU 处理流水线要求系统配备两台英伟达™(NVIDIA®)L40S。
- 前端系统需要支持两台英伟达™(NVIDIA®)L40S 和 CPU 计算,以支持用户体验:将语音转换为文本(人机对话)、将文本转换为语音(机人对话)、动画和渲染头像,以及使头像的嘴唇与他们所说的话同步。
- 每个系统都需要存储应用程序容器和数据。
- 后端系统需要能够托管数据库,以支持 RAG 管道。
- 典型的零售环境不会有全尺寸的机架空间。
为满足这些要求,我们Supermicro -2Supermicro 系统,该系统隶属于Hyper家族。我们特别选择这款服务器是因为它:
- 短深度系统经过优化,适用于没有数据中心机架的边缘部署环境
- 双处理器系统能够容纳人工智能加速所需的 GPU 类型和数量
成功的结论
除了无数前来参观我们展位的访客外,我们还接待了由NRF组织的五组参观团。这些团体通常由十余名寻求沉浸式体验的展会参与者组成。Supermicro 为导览行程的站点,正是因为我们展示了数字化人体体验项目。
这次演示在参观者中引起了很大反响。许多人不仅看到了我们所展示的使用案例的价值,还开始集思广益,探讨如何根据他们的业务需求调整系统,从而引发了几次精彩的对话和随后的展后会议。
附录 A--构建 "数字化人类 "的技术细节
系统设置
数字人由两个系统组成:前端系统和后端系统。前端系统负责渲染数字人,后端系统负责运行 RAG 管道和托管 LLM 模型。
首先要获取英伟达™(NVIDIA®)API 密钥,以便下载模型和容器映像。您可以访问英伟达™(NVIDIA®)API 目录获取 API 密钥。应该有一个 使用此蓝图开发弹出窗口,但如果没有出现,请单击 使用此蓝图开发按钮。然后点击 生成 API 密钥按钮并保存此密钥。
前端系统设置
- 安装 Ubuntu 24.04,并确保所有软件包都是最新的。
- 安装 OpenSSH 服务器。
- 确保用户拥有 sudo 权限,可以在没有密码的情况下运行 sudo。
后台系统设置
- 安装 Ubuntu 24.04,并确保所有软件包都是最新的。
- 安装 OpenSSH 服务器。
- 确保用户拥有 sudo 权限,可以在没有密码的情况下运行 sudo。
为用户生成 SSH 密钥对,并将公钥复制到前端系统。这样,前端系统就可以在没有密码的情况下连接到后端系统。替换
your_email@example.com您的真实电子邮件地址:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
将公钥复制到前端系统,替换为
<user>输入您的用户名和<frontend_ip_address>前端系统的实际 IP 地址:ssh-copy-id <user>@<frontend_ip_address>
配置前端系统
在后端系统上,通过克隆 ACE GitHub 仓库下载部署脚本。
git clone https://github.com/NVIDIA/ACE.git
导航至 baremetal 一键脚本目录:
cd ACE/workflows/tokkio/4.1/scripts/one-click/baremetal
通过设置环境变量来配置部署脚本。用该设置的实际值替换myconfig.env中的信息。
cp config-template-examples/llm-ov-3d-cotrun-1x-stream/my-config.env my-config.env nano my-config.env export OPENAI_API_KEY="<replace-with-openai-api-key>" export NGC_CLI_API_KEY="<replace-with-your-NVIDIA-personal-API-Key>" export NVIDIA_API_KEY="<replace-with-you-NVIDIA-Personal-API-Key>" export APP_HOST_IPV4_ADDR="<replace-with-the-ip-address-of-front-end-system>" export APP_HOST_SSH_USER="<replace-with-the-username-of-front-end-system>" export COTURN_HOST_IPV4_ADDR="<replace-with-the-ip-address-of-front-end-system>" export COTURN_HOST_SSH_USER="<replace-with-the-username-of-front-end-system>"
复制配置模板文件并编辑值,使其与此设置相匹配。
cp config-template-examples/llm-ov-3d-cotrun-1x-stream/config-template.yml my-config-template.yml
运行部署脚本配置前端系统。这需要一段时间才能完成,请耐心等待。
源 my-config.env ./envbuild.sh install --component all --config-file ./my-config-template.yml
在前端系统上运行以下命令,确认前端系统已启动并运行:
kubectl get pods -n app
提供 RAG 管道和 LLM 模型
在后端系统上,执行以下步骤配置 RAG 管道和 LLM 模型:
- 安装 Docker 和 Docker Compose。
- 安装最新的英伟达驱动程序。
- 安装并配置英伟达™(NVIDIA®)容器工具包。
使用Llama 3.1 8B 替换所使用的 NIM。- 在前端系统中,按照此处的说明定制数字人的 RAG 端点:
https://docs.nvidia.com/ace/tokkio/4.1/customization/customize-reference-workflows.html#rag-endpointcustomization
