捷豹路虎在今年初一場活動中,公開了擁抱生成式AI的經驗,展示如何只訓練一套內部用的客製化LLM模型,來通吃不同任務的做法,以節省日後大量微調小任務專屬模型訓練的後續費用。

他們有一個服務車主的車用系統Pivi Pro,可提供對談式的互動介面,來查詢車主休旅車的各項操作設定,例如車主會問:「假日要到阿爾貝斯山健行,想到達山上小木屋,但路面都是很深的軟雪,要怎麼設定休旅車的駕駛模式。」不過,真正的挑戰是,就這樣一句話,車主會有百百種講法。

捷豹路虎提供的車主手冊,內有非常詳細的操控文件,也都可以透過這個車上App來查詢,但是,車主得問對問題,用對關鍵字,才能搜尋得到。捷豹路虎不希望提供查詢的對話服務亂講與開車無關的空話,只能提供車主參考文件範圍的內容。

所以,捷豹路虎將大量文件變成嵌入向量,連車主查詢文字也轉換成嵌入向量,來進行相似度比對,再提估最接近的內容給車主。他們先用BERT模型來做,效果還不錯,蒐集一些技術文件,車主資料,顧客意見調查的資料等,訓練出一款自己的模型稱為CarBERT。但還不夠好,因為當時他們所用的BERT參數量只有3.4億個參數,他們想要用1,750億參數的GPT 3來試看看。

但是,這兩者的參數量差了500倍,他們評估,自己不可能重頭訓練出一套自己的NLP模型。而且這個作法還有一個課題,今天是車主文件的微調,如果是另一個主題的內容,或是另一種任務就得再微調一份新的模型。因為微調後的LLM模型,是客製化的專屬模型,無法用於其他用途,換句話說,微調後的客製化LLM模型,沒有通用性。

捷豹路虎的擔心是,日後若想要將SaaS形式ChatGPT類技術服務,客製運用到不同的任務用途,每一次,只要需求、任務有些微不同,就需要一筆少少的微調費用,看似不多,但積數百個「少」會變成真的「多」,這個不可預估總成本的不確定感,讓他們轉而思考,能不能從Prompt提示問題下手。後來,他們嘗試了另一種提示工程的優化做法,不是微調語言模型,而是靠「微調提示文字(Prompts)」,來提高準確度和限定回答領域。

例如,車況設定有4種,a,b,c,d,a用於沙地,b用於雨天,c用於軟雪,d用於結冰,現在車主想問深軟雪的設定,若可以將整套車主文件都輸入,作為提示文字,再來比對車主的問題就可以比較準確的比對出更合適的車主文件內容。
可是,當時捷豹路虎遇到的技術困難是,提示文字的上限是4千個Token,大概3千多個中文字,放不下那麼多字的車主文件內容,怎麼解?

捷豹路虎用了Nvidia的大型語言模型框架Nemo,提供的13億參數GPT3預訓練模型,但是這次他們用了P-Tuning作法,輸入的是一個「提示向量」,而不只是提示文字。
因為提示文字實際放到模型中來進行推論時,還是得先轉換成一個嵌入向量矩陣來進行推論計算。

捷豹路虎所用的P-TUNING作法就是,直接將想要輸入的提示文字,先來訓練出一個輸入用的提示向量矩陣,這個方法也是業界會用的作法,稱為P-Tuning調校。換句話說,不是微調模型,而是透過優化提示向量的做法,來提高準確度。模型微調和P-Tuning調校,兩者也可以搭配使用。

使用P-Tuning調校最大的好處是,捷豹路虎認為,可以先用大量企業內部資料,微調出一個內部客製化的GPT,然後再針對不同的小任務,改用提示向量優化作法P-tuning,微調輸入的提示向量來達到一套小任務的客製化模型,來實現,一套內部模型,通吃不同任務的做法,來省下日後大量微調小任務專屬模型訓練的費用。

 

熱門新聞

Advertisement