Uber 開源研究對話系統 Plato,用於開發和訓練會話 AI

“在過去的幾十年中,智能會話代理已經發生了顯著的變化,從關鍵字定位交互式語音應答(IVR)系統到正在成爲日常生活中不可或缺的一部分的跨平臺智能個人助理。隨着這種增長,需要直觀、靈活和全面的研究和開發平臺,可以作爲開放的測試平臺,幫助評估新算法,快速創建原型,並可靠地部署會話代理。 ”

在這種背景下,Uber AI(Uber 的人工智能研究部門)開發並且開源了柏拉圖( Plato )研究對話系統。Plato 旨在構建、訓練和部署會話 AI 代理,使數據科學家和業餘愛好者能夠從原型和演示系統中收集數據。它提供乾淨且易於理解的設計,並與現有的深度學習和貝葉斯優化框架(用於調整模型)集成,可減少編寫代碼的需要。

目前,Plato 支持通過語音、文本或結構化信息(換句話說,對話行爲)進行交互,並且每個會話代理可以與人類用戶、其他會話代理(在多代理設置中)或數據進行交互。最重要的是,Plato 可以爲會話代理的每個組件包裹現有的預訓練模型,並且每個組件都可以在線(在交互期間)或離線(從數據)進行訓練。

Plato 通過模塊化設計實現了這一目標,將數據處理分爲七個步驟:

  • 語音識別(將語音轉錄爲文本)
  • 語言理解(從該文本中提取意義)
  • 狀態跟蹤(到目前爲止已經說過和完成的內容的彙總信息)
  • API 調用(搜索數據庫,查詢 API 等)
  • 對話策略(生成代理人迴應的抽象含義)
  • 語言生成(將抽象意義轉換爲文本)
  • 語音合成(將文本轉換爲語音)

每個單獨的組件都可以使用任何機器學習庫(例如,Ludwig、TensorFlow 或 PyTorch)進行在線或離線訓練,因爲 Plato 是一個通用框架。

▲Plato 的架構允許對多個代理進行併發訓練

爲了證明其可擴展性,Plato 用戶可以通過提供該類模塊的 Python 類名和包路徑以及模型的初始化參數來定義自己的體系結構或插入自己的組件。只要模塊按照它們應該執行的順序列出,Plato 就會處理其餘部分,包括包裝輸入和輸出,鏈接和執行模塊(串行或並行),以及促進對話。

在數據記錄方面,Plato 會在名爲 Dialogue Episode Recorder 的結構中跟蹤事件,該結構包含有關先前對話狀態、所採取的操作、當前對話狀態等信息。還包括一個自定義字段可用於跟蹤不屬於定義類別的任何內容。

Uber AI 的研究人員在最後表示:“我們相信,Plato 能夠在和其他開源的深度學習框架中更加無縫地訓練會話代理,從而改善學術和行業應用中的對話 AI 技術,隨着時間的推移,他們的談話會變得越來越自然。”

博客原文:https://eng.uber.com/plato-research-dialogue-system/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章