你有沒有做過英文考試裡那種「把空格填上正確答案」的題目?
完形填空任務就是這個概念的AI版本:把一段文字裡的某些詞遮起來,讓模型根據前後文推測被遮住的詞是什麼。這不只是在考記憶力,而是在測試模型是否真正理解語言的脈絡和邏輯。
你可以把它想成一個先回答「用途是什麼」的入口,抓住生活場景後,再看技術細節會更容易。
容易混淆
完形填空任務 vs 選擇題 vs 自迴歸生成
完形填空任務:把句子中間的詞遮住,讓模型根據前後文雙向推測答案,可能有多個合理答案。
選擇題:從固定選項中挑一個,答案唯一且受限。
自迴歸生成:只根據前文往後預測下一個詞,看不到後文。
最關鍵的區別:完形填空是「雙向理解」,同時看前後文來填空,這讓模型對語境的理解比只看前文的自迴歸方式更深。
記住這句就好
遮住一個詞,讓 AI 用前後文猜答案,猜得好就是真懂語言。
實際案例
BERT 的預訓練
Google 的 BERT 模型在訓練時,隨機遮住輸入文本中 15% 的詞,讓模型預測被遮住的內容。經過在大量文本上的訓練後,BERT 在 11 項 NLP 基準測試中刷新紀錄,證明完形填空是訓練語言理解能力的極佳方式。
語言能力評估
一家教育科技公司用完形填空任務來測試學生的英文閱讀理解能力。他們發現,完形填空的成績和學生整體的語言能力相關性高達 0.85,比傳統選擇題更能反映真實的語言理解程度,因為它要求學生真正理解上下文而不是靠猜。
深入了解
完形填空在 NLP 中的應用流程
步驟 做什麼 關鍵考量 選擇文本 準備大量自然語言文本作為訓練資料 文本要多樣化,涵蓋不同領域和風格 遮蔽詞彙 隨機選取一定比例的詞進行遮蔽(通常 15%) 遮蔽太多會讓任務太難,太少則學不到足夠的語言知識 模型預測 讓模型根據前後文預測被遮蔽的詞 模型需要同時利用左右兩側的上下文資訊 計算損失 比較預測結果和真實答案,計算誤差 只計算被遮蔽位置的損失,其他位置不參與 更新參數 根據損失更新模型參數 反覆訓練直到模型能準確預測大部分被遮蔽的詞
情境判斷
Q1(直覺題): 你想訓練一個模型來理解中文語法和語意,你應該用完形填空任務還是讓模型從頭到尾生成文章?
→ 完形填空任務。它強迫模型同時考慮前後文,比單向生成更能學會語言的深層結構。BERT 就是靠這個方法在中文 NLP 任務上也取得了突破性的成績。
Q2(判斷題): 你用完形填空訓練了一個語言模型,發現它在預測常見詞(如「的」「是」)時準確率很高,但預測專業術語時表現很差。這是模型的問題還是訓練資料的問題?
→ 最可能是訓練資料的問題。如果訓練語料中缺乏專業領域的文本,模型就沒有機會學習那些術語的用法和語境。解法是加入更多專業領域的文本,或者在通用模型上用專業語料做二次預訓練。但也要注意,有些罕見詞本身出現頻率就低,即使加了資料也不一定能大幅提升。
常見問題
完形填空和 GPT 的訓練方式有什麼不同?
GPT 用的是「下一個詞預測」,只看前面的文字來猜下一個詞,是單向的。完形填空則是把中間的詞遮住,讓模型同時看前面和後面來猜,是雙向的。這就是為什麼 BERT(用完形填空)更擅長理解任務,而 GPT(用下一個詞預測)更擅長生成任務。
為什麼 BERT 要遮 15% 而不是更多或更少?
這是實驗得出的經驗值。遮太少(比如 5%),模型每次訓練能學到的資訊太少,訓練效率低。遮太多(比如 50%),上下文線索不夠,模型根本猜不出來,等於在做無效訓練。15% 是在訓練效率和任務難度之間的甜蜜點。
完形填空任務只能用在文字上嗎?
不是。這個概念已經被擴展到其他領域,比如在電腦視覺中,把圖片的一部分遮住讓模型預測(MAE 就是這個思路),在語音領域也有類似的做法。核心思想都一樣:遮住一部分,讓模型學會理解整體。