生成式AI與大型語言模型

模型蒸餾(model distillation)

/ MOD-ul dis-tih-LAY-shun /

模型蒸餾,是一種把又大又貴的模型,壓縮成一個又小又省、表現卻幾乎一樣好的模型的辦法——辦法是讓小模型學著去模仿大模型。大模型是「老師」,小模型是「學生」:你給兩者餵同樣的輸入,訓練學生時,不只讓它對上最終答案,更讓它去模仿老師整套的回應模式。學生最終成了老師一個小巧的回聲,跑起來又快又省得多。

它之所以比「直接從零訓練一個小模型」更管用,道理微妙而相當優雅。老師的輸出,攜帶的資訊比一個乾巴巴的「對或錯」標籤要多:看到一張狗的照片,老師可能說90%是狗、7%是狼、3%是貓——而這些「軟」的相對分數,悄悄教給學生「狗更像狼、而非更像貓」。從這份更豐富的訊號裡學習,讓一個小學生能以零頭的體量,捕捉到大老師的許多微妙之處。一個蒸餾出來的模型,可以小到能在手機上運行。

不過要把它的天花板說清楚。學生無法超越老師的知識——它至多只能逼近,並且不可避免地會丟掉老師的一些邊角情形與稀有本領。「幾乎一樣好」,通常意味著以一點真實但不大的品質損失,換來速度與成本上的巨大勝利。而從別人的模型裡蒸餾,會引出它自己的問題,因為某些廠商的條款,禁止用其模型的輸出去訓練一個競爭對手。

一個需要一整機架伺服器的龐大模型,答得慢、每次查詢都很貴。一個團隊把它蒸餾成一個體量只有二十分之一、能在單塊晶片上跑的模型,作答只需零頭的時間。在日常問題上,小模型與它不相上下;可在那些稀有、刁鑽的問題上,它會略遜一籌。

小學生模仿大老師——便宜得多,幾乎一樣好。

蒸餾出來的模型能逼近老師、卻永遠無法超越它,並且會悄悄丟掉一些稀有的或邊角的本領。「幾乎一樣好」是一樁貨真價實的交易,而非一次免費的複製——而從競爭對手模型的輸出裡蒸餾,可能違反那家廠商的使用條款。

又稱
knowledge distillationteacher-student training模型蒸馏模型蒸餾知识蒸馏