在公司的數據集上

  • BERT fine tune,精度82%,訓練:30小時fune tune。serving:單GPU 5000詞每秒;
  • fasttext,精度81.5%,訓練:1分鐘,serving:單CPU 7萬詞每秒。

看你選擇咯


個人感覺很需要,特別是在實際項目研發中,合適才是最好的,沒必要一味追求最佳性能,BERT等演算法沒有GPU上線是個大麻煩,特別是那種實時性要求很高的項目。


對一些場景來說,即使性能很好,但是也不適合用,像資訊類內容數據隨時間分布變化比較大,bert這種模型實際性能會衰減的很厲害,反而fasttext、textcnn性能會更穩定。一些大平台會持續迭代模型,這種肯定是bert,0.5%的提升也會有很大的收益。


需要,bert效果好一點,但落地成本也比較高,需要權衡一下。一般先用簡單模型搭基線。


太tmd的需要了,你要知道bert是非常重的,那麼意味著需要的數據量也非常多才能達到預期的效果。那麼除去遠多於fastext,cnn的層數,bert還剩下什麼?mask和attention,那這兩個你不能用在cnn上嗎?而且根據我的工程經驗,在非常少的數據集上,我對fasttext有點盲目崇拜。


雖然沒啥人看但是還是修改下,rnn還是在某些場景下很有用,該放棄的應該是cnn

------

個人認為是不用了。

首先rnn系模型基本就不用了考慮了,幾乎沒有任何優勢;

在分類任務時,BERT太大的時候用transformer就好,即使是單層transformer的效果也勝過CNN;

在生成型任務時,不用BERT/transformer,難道還指望什麼反卷積之類的嗎?


當然要嘗試,因為BERT的計算量大,在某些資源受限條件下是沒法用的。實際場合需要又快又準的模型。


我理解還是需要的。fasttext速度非常快,通常在調研階段可以快速跑一版,一般在一些小數據集上能取得比較好效果了,如果效果不行,可以分析結果再上bert。畢竟奧卡姆剃刀原理:兩個類似的解決方案,選擇簡單的。


要看具體訓練集合大小,訓練集合比較大的情況下(&>1m),bert帶來的提升比較有限,反而性能消耗會比較大,但是訓練集合較少的情況,bert完勝,然後根據實際情況選擇使用bert還是蒸餾個小模型。


要的,因為實際生產環境中,需要權衡精度要求與迭代效率。

在精度要求不高(業務量級不大)的情況下,textcnn相比於bert有更快的訓練速度,不需要太多數據和計算資源,而且學習成本低,適合多人低成本協作,(精度上的差距可以接受的前提下)


還是要結合任務和可用資源決定,bert在增加計算消耗的同時不能保證在所有任務都有顯著提高。


並沒有完全淘汰,某些場合仍有必要。

  • 後Bert時代,很多研究都是對Bert進行compression,其中不少方法都在嘗試把Bert蒸餾到一個簡單的模型里去。畢竟大家都知道,Bert雖好,但是也太慢。
  • 一些傳統的模型的思路很好,仍然有借鑒的必要和可能。畢竟Bert的成功也是借鑒了很多種自監督學習方法,並且踩在了Tranformer的肩膀上。


推薦閱讀:
相关文章