【LLM应用采用实例】老牌导航大厂TomTom如何打造新一代车用助手

图片来源/TomTom

想像一下,你打开车门、进入驾驶座,忽然想起之前去过的景点,想再访却想不起名字。于是你开口问:「我想再去一次那个赛车场,它叫什么?」方向盘旁的车用助理立刻回答:「Circuit Zandvort。」你又说:「太好了,我想去那里。附近有哪些充电站呢?」接著,车用助理列出赛车场周遭的充电站,秀在方向盘旁的显示器上。你看了看说:「麻烦带我到第一个充电站,也帮我调高车内温度,」于是,萤幕上秀出导航地图,车内温度也变暖了。

这正是荷兰老牌导航厂商TomTom,在今年Build大会上秀出的智慧座舱原型实测影片。他们如何打造?

专攻导航与图资的荷兰厂商TomTom打造一款智慧座舱车上助理,驾驶用语音提问,如导航去特定的充电站、调高温度,就能得到相对应的回复。图片来源/TomTom

选定LLM大脑搭配5大技术

「早在2023年,我们就开始动手做了。」TomTom资料科学家Massimiliano Ungheretti指出,团队当时受到ChatGPT启发,认为这类大型语言模型(LLM)可作为智慧座舱的大脑,来协调操控行车大小事。有了大脑,他们还需要「耳、口、手、短期记忆、知识」才能完成驾驶指令,而这5项核心技能,分别对应到自动语音识别、文字转语音、功能/外挂/动作、对话状态,以及向量搜寻和检索增强生成(RAG)等技术。

Massimiliano针对最后一项说明,虽然LLM大脑很聪明,但未必具备特定知识,因此他们决定采用RAG方法、而非微调,来更有效率地补足大脑专业知识。

划定这些架构后,团队得先试水温,采用Azure OpenAI服务和其他指令微调过的LLM作为大脑,并搭配提示工程,来验证智慧座舱助理概念。他也提到,采用提示工程,「能带来更好的迭代速度,加速产品正式上线。」

步骤1:概念验证

进一步来说,在概念验证(PoC)阶段,TomTom将概念设定为「可用推理行动ReAct提示工程,来将Davinci GPT串接到TomTom服务。」Massimiliano表示,为验证这个概念,他们首先利用微软AI开发平台Azure AI Studio中的游乐场(Playground),来进行测试。

Azure AI Studio平台提供多种模型和API,来供企业尝鲜、测试,在今年大会中还正式上架了强大的多模态模型GPT-4o,以API和模型形式提供,这也是TomTom团队接下来要尝试的模型之一,尤其用来发展更好的语音对话体验。

为打造车用助理,TomTom先是设定核心概念,接著在Azure AI Studio中的游乐场(Playground)来快速测试。可行后,再透过开源LLM开发框架LangChain来实作、迭代。图片来源/微软

步骤2:用LangChain开发迭代

回到2023年初,当TomTom在游乐场验证概念后,接著将概念验证结果,利用当时问世没多久的开源LLM开发框架LangChain重现,进而迭代。

在这阶段,他们已将LLM大脑与智慧座舱核心技能连结,可实现简单的互动。但「这只在我的机器上执行!」Massimiliano点出,为让这个成果大规模扩展、取得更多回馈以进行更多迭代,他们将应用程式上云。

TomTom揭露智慧座舱车用助理的开发流程,首先在游乐场中利用提示工程来测试核心概念,接著使用LLM开发框架LangChain来实作。为取得更多回馈加速迭代,他们将原型App上云,并简化基础设施管理工作。最后,他们将原型App整合至既有服务中,同时也进行各项品质评估、强化安全防护等。图片来源/TomTom

步骤3:上云扩大使用者

于是,TomTom评估后采用Azure容器应用程式,兼顾上云和无伺服器特色,既能让更多人使用智慧座舱原型App,团队也只需维护少量基础设施、专注智慧座舱助理开发。同时,他们也采用Bicep语言来部署Azure资源,实现基础设施即程式码(Infra as Code),简化基础设施管理工作。

同时,在这个阶段,团队还得考量App上云后的记忆和知识储存。于是,他们选用Azure Cosmos DB资料库来储存智慧座舱的对话与知识,Massimiliano补充,在知识部分,团队还添加向量与RAG资料,来补强智慧座舱的特定知识。

他还强调,在App中增添语音或文字对话功能,就得考量对话长度增加所带来的效能减退问题,而管理上下文长度、确保输入模型的Token量限制,或采用一些框架来动态剪枝,或保留些时间给对话,都是能兼顾短期记忆和App效能的建议作法。

至于知识部分,因团队采用RAG,也就是搜寻知识资料库、将最合适的答案回复给使用者。但「最棘手的是如何吸收这些知识,尤其是,如何对大型文件拆分、呈现这些资料给LLM,比如回传给模型前先进行摘要。」Massimiliano表示,这是开发者会面临的另一个挑战。

步骤4:整合准备上线

完成上述步骤后,接下来就是将迭代成果整合至既有服务中,并进行各项品质评估。「这并不容易,」Massimiliano解释,因为LLM可能给出随机回答,若用另一个LLM来检测这个LLM的输出值,则又更加随机。

与此同时,走到这一步的TomTom团队,也开始思考是否要放弃LangChain。但后来回顾,也只是因为当时太早使用了,随著越来越多工具和配套资源出现,他们并未舍弃这个框架。

在这个阶段,他们也思考,除了短期记忆,应该也要增添整体智慧座舱的长期记忆,来达到更好的对话体验。最后,还有一件上线前的必做事项:红队演练与安全防护。

如何进行演练呢?Massimiliano建议,起初可挑一个自动红队框架,并举办一个小型黑客松,来让人组队攻击智慧座舱App,再将这些经验纳入自动红队框架中。此外,使用Azure OpenAI或其他框架的审核过滤器等功能,也能强化App保护。

从中学到的2件事

Massimiliano演讲时展示的实测结果,正是完成上述4大步骤的TomTom智慧座舱原型App,已成功整合至座车,该原型App也持续优化中。

Massimiliano点出,团队从这段经验,也学到2大重要课题。首先,为跟上快速发展的AI步调,开发者要找出最小可验证的核心概念,来快速迭代、发展许多原型。他表示,开发者甚至可独立于主要App,来验证新概念,再将学习到的知识融入主要App中。接著,开发者要进行无止尽的迭代,因为技术和期望「每天都在变化。」

再来,要确认这些原型是否有价值,就得让原型App接触更多人群、得到使用回馈,才能进一步改善。这时,就得将原本地端的原型转为云端App,采用一些现成云端服务、使用模板,就能快速实现这一点,并专注于核心概念发展、做出差异化。

 相关报导