你想讓模型一個 token 一個 token 往下寫時,你會怎麼判斷它真正的作用?
你可以把它想成 因果語言模型是一種語言模型,它基於序列中先前詞彙預測下一個詞彙,並明確建模詞彙之間的因果關係,以提升生成文本的連貫性和可控性。
在 你想讓模型一個 token 一個 token 往下寫時 這種情境裡,這個概念會直接影響你怎麼設計、怎麼評估、怎麼上線。
容易混淆
因果語言模型 vs 遮罩語言模型 因果語言模型只能看前文,遮罩語言模型會看左右上下文。
因果語言模型 vs 編碼器模型 因果語言模型重生成,編碼器模型重理解。
因果語言模型 vs 文字分類器 前者要一個 token 一個 token 產生內容,後者只要輸出類別。
記住這句就好
先看它要解決的是什麼問題,再看它是不是最合適的方法。
實際案例
案例 1:聊天機器人 模型要根據前面的對話往下接話,這很符合因果語言模型的做法。
案例 2:程式碼補全 你打完前半段函式,模型接著預測下一個 token。
算法與應用
面向 重點 核心 用前面的 token 預測下一個 token,形成自回歸生成。 優點 適合自然生成、對話、摘要草稿和程式碼補全。 注意 推理時容易累積誤差,前面一錯後面就一起偏。
情境判斷
Q1(判斷題): 如果模型在生成時能偷看後面的字,還算因果語言模型嗎? → 不算,那已經違反了自回歸的限制。
Q2(判斷題): 如果任務是分類不是生成,還一定要用這種模型嗎? → 不一定,這時可能有更省資源的模型更合適。
常見問題
為什麼 GPT 類模型屬於因果語言模型?
因為它們都是沿著前文逐步預測下一個 token。
和 BERT 的差別是什麼?
BERT 看雙向上下文,因果語言模型只能看前面。
這種模型只適合聊天嗎?
不只,摘要、寫作、補全、翻譯草稿都會用到。