百度搜索首屆技術創新挑戰賽:搜索模型推理優化

比賽鏈接:https://aistudio.baidu.com/aistudio/competition/detail/674/0/task-definition

賽題背景

近年來基於Transformer模型結構的預訓練語言模型技術快速發展,並在NLP領域取得了巨大成功。百度搜索引擎依託與深厚的AI技術積累,搭建了超大規模的模型推理異構加速集羣,通過落地Ernie文心模型,爲用戶帶來了顯著的搜索體驗提升。而在百度搜索Ernie模型的工業化部署實踐中,針對複雜Ernie模型結構的高性能推理對於保障億萬用戶流暢的搜索體驗、控制算力成本開銷至關重要。 在業界針對GPU進行復雜模型的異構推理加速也是一個火熱的研究話題,多種優秀的技術方案不斷湧現。其中既有百度推出靈活易用的PaddlePaddle深度學習全流程工具,也有NVIDIA推出的針對深度學習模型推理極致優化的TensorRT框架。

本賽題會提供一個典型的搜索場景的ERNIE模型,希望參賽者通過各種優化技術,挑戰最優的模型推理性能。

任務概述

模型推理優化任務採用相對開放的設定,可自行選用各種模型推理框架,挖掘GPU加速硬件特性,通過異構算子優化、模型量化壓縮等各種優化手段,追求最優的模型推理性能(推薦深入應用NVIDIA TensorRT優化技術)。參賽隊員請用飛槳AI Studio配置的NVIDIA A100完成參賽作品。

排名計算

初步排名計算: 1)所有參賽選手提交比賽方案與代碼至AI Studio,在滿足模型效果標準的前提下,由AI Studio評測系統自動評選模型性能指標前N名 2)以標準評測機器上的測試集推理運行時間進行排序。如果運行時間非常接近,在測量誤差內,則視爲成績相同。 3)對於AI Studio打榜成績相同的選手,按提交時間早晚排序。 終選排名計算:評審人員基於創新性打分,結合初步排名技術指標最終確定獲獎隊伍。

任務定義

給出已經訓練好的模型文件,模型結構以ERNIE結構爲主,提供PaddlePaddle和ONNX兩種模型格式;同時給定一批搜索線上模型推理測試數據,包括用戶的實際query、候選文檔等,所有數據均已ID化。針對測試集中的數據,要求參評系統完成從測試數據讀入、模型加載、模型推理、結果輸出的全流程。

數據集

A榜測試集爲公開數據集,包含帶label數據以及無label數據,總計數千條樣本 B榜測試集爲非公開數據集,包含數萬條樣本

數據樣例
模型輸入:每條樣本數據一行,不同域數據和模型多個輸入之間均以";“分隔,模型輸入的shape維度和數據ID之間用”:“分隔,具體的數據ID以” "分隔。 樣例如下:

qid:1;label:3;1 128 1:1 12 13 1557 40574 40997 22553 2 1571 40574 1569 42562 1557 40997 22553 1886 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;1 128 1:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;1 128 1:0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;1 128 1:1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

樣本數據以";“分割成多列,其中第一列爲樣本標識qid,第二列爲label(無label數據此處爲”-“),自第三列以後表示模型的多個輸入。在模型的多個輸入均以”:"分割成tensor的shape信息和數值value。如示例數據中,模型的第一個輸入shape爲[1,128,1],第一個輸入的數據是[1 12 13 1557 40574 40997…],第二個輸入的維度是[1,128,1],數據是[0 1 2 3 4 5…],模型的多個輸入依次類推。 對於模型輸入的shape信息[1,128,1]表示該樣本batch_size=1,輸入序列長度爲128;如[10,70,1]則表示該樣本batch_size=10,輸入序列長度爲70;選手需注意帶label的樣本數據輸入序列長度均padding到128,不帶label數據均padding到了batch內的最長序列長度。 本賽題中所有樣本數據batch_size<=10,樣本輸入序列長度<=128,標識幾個特殊ID,0=[PAD],1=[CLS],2=[SEP],3=[MASK],4=[UNK]

評價指標

評估模型精度指標: 1)模型效果:模型效果以效果指標評估損失3%以內,可通過腳本local_evaluate.py根據帶label測試數據評估模型的效果指標 2)模型性能:測試集完成推理的耗時評估 考慮真實應用場景,本賽題不可在batch維度上進行單樣本拆分或多樣本合併推理

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