基於深度學習的自動問答工具——qa_match開源項目解析qa_match是58同城開源的一款基於深度學習的問答匹配工具,支持一層和兩層結構知識庫問答。qa_match通過意圖匹配模型支持一層結構知識庫問答,通過融合領域分類模型和意圖匹配模型的結果支持兩層結構知識庫問答。qa_match同時支持無監督預訓練功能,通過輕量級預訓練語言模型(SPTM,Simple Pre-trained Model)可以提升基於知識庫問答等下遊任務的效果。
qa_match開源項目地址:
https://github.com/wuba/qa_match
qa_match文章介紹:
開源 | qa_match:一款基於深度學習的層級問答匹配工具
開源 | qa_match更新啦——支持輕量級預訓練、提高問答通用性
主辦:58同城
58同城技術委員會AI分會聯合ITPUB,於2020年6月16日晚上20:00-21:00舉辦了一期線上技術沙龍,58同城AI Lab算法資深工程師賀睿直播分享了《基於深度學習的自動問答工具——qa_match開源項目解析》。
本次沙龍的乾貨如下,各位技術大拿們敬請享用。
qa_match是58同城開源的一款基於深度學習的問答匹配工具,實現了文本分類和匹配算法的融合、輕量級訓練語言模型等,支持一層、兩層結構知識庫的自動問答。本次分享將深度解析該項目中的算法模型原理和應用實踐。
58同城TEG技術工程平臺群AI Lab算法資深工程師,2018年4月加入58,目前主要負責智能客服算法研發工作,曾就職於騰訊,負責推薦算法研發,2016年7月碩士畢業於中國科學院大學。
問題1:請問離線訓練時正負例的比例是多少?
解答:DSSM離線訓練時的默認正負例比例是1:200,可以通過negative_size參數進行調整。
問題2:這裡的知識庫是怎麼產生的?量級大概多少?
解答:知識庫是機器挖掘和人工標註結合產生的,量級取決於具體業務,比如咱們給的demo裡邊知識庫大小為90k。
問題3:這裡DSSM這裡是說先計算出標準問的向量表徵,標準問大概多少個呢?訓練時是用的一個正例其餘負例,這裡的採樣負例是保證所有的擴展問都包括嗎?
解答:標準問問題數與業務場景相關,比如咱們給的demo中有2k個標準問。訓練時採樣負例不保證所有擴展問都包括。
問題4:這裡如果按照現在預訓練的方式,用Transformer會怎麼樣,預訓練速度會有變化嗎?
解答:如果按照現在預訓練的方式,使用一層Transformer,預訓練速度會變快。
問題5:我理解去掉nsp可能是當時的一個點,是這樣嗎?
解答:是的,因為我們是在2019年4月開始開發該模型,當時距BERT發布不久,一些去掉nsp的模型如RoBERTa還沒有提出無法復用,所以我們當時需要解決這個點。
問題6:實際有結果率,以及模型的有結果率怎樣做能接近呢?會把這個當做優化目標嗎?
解答:需要調整閾值來使這兩個指標接近,比如發現唯一回答模型有結果率低於實際有結果率,則可以通過調低唯一回答閾值的方式來使它們接近。不會把這個當做優化目標。
問題7:請問生產中模型是在什麼配置機器上跑的?
解答:我們訓練模型是在P40顯卡+Intel(R) Xeon(R) CPU E5-2620 v4機器上跑的,線上推理是在CPU Intel(R) Xeon(R) CPU E5-2620 v4機器上跑的。