圖片來源/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,採用一些現成雲端服務、使用模板,就能快速實現這一點,並專注於核心概念發展、做出差異化。

 相關報導 

熱門新聞

Advertisement