我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
在 AI說書 - 從0開始 - 290 | Tokenizer 重要性範例之展示 2 中,我們給了一個範例,當中包含未知的字詞,假設一個 AI 團隊發現了這個問題並嘗試用 Byte-Level 之 Byte-Pair Encoding (BPE) 來解決它,則會面臨以下問題:
- unk 將被分解為單字片段,例如,我們最終可能會將 corporations 變成 corp + o + ra +tion + s,這些標記中的一個或多個很有可能在資料集中找到
- unk 將成為一組由資料集中存在的標記表示的 Subwords,但不傳達原始標記的含義
- Transformer 會訓練得很好,沒有人會注意到 unk 被打成碎片,訓練毫無意義
- Transformer 可能會產生出色的結果並將其性能從 0.8 提高到 0.9
- 每個人都會鼓掌,直到專業用戶在危急情況下應用錯誤的結果,例如,在英語中,corp 可以表示 corporation 或 corporal,這可能會在 corp 和其他詞彙之間造成混亂和不良關聯
我們可以看到,社群媒體的標準可能足以使用 Transformer 來處理瑣碎的話題,但在現實的企業專案中,產生與資料集相符的預訓練 Tokenizer 將需要艱苦的工作,在現實生活中,資料集每天都會隨著使用者輸入而成長,使用者輸入成為模型資料集的一部分,應定期訓練和更新,確保品質控制的一種方法可以透過以下三個步驟:
- 使用 Byte-Level 之 Byte-Pair Encoding (BPE) 演算法訓練 Tokenizer
- 使用程式控制結果,例如我們將在本章的分析和控制 Token ID 對應的品質部分中建立程式
- 使用 Word2Vec 演算法訓練 Tokenizer,該演算法僅用於品質控制,然後解析資料集,找到 unk 分詞,並將其儲存在資料庫中,執行查詢以檢查是否缺少關鍵字
您可能會傾向於依賴 Transformer 對看不見的單字進行推理的能力,但是,我建議在具有關鍵決策的策略專案中執行多種品質控制方法。