我是 Kota,宇鯨智能的創辦人,從 2021 年開始了一人公司,協助中小企業透過 Data / AI 技術進行數位轉型。
我特別關注想要建立新的服務模式、獲取營收的製造業。這背後需要進行大量的流程再造和數位管理,也需要藉由 AI 技術自動化瓶頸的步驟,這些是我特別擅長的領域。
前一篇提到,我們最後決定讓系統適應使用者原本的詢價方式。業務拿到不同格式的 Excel,由軟體先把資料整理出來,再利用 AI 模型理解裡面的文字,將零件描述對應到公司內部既有的料號。
如果今天重新看這個問題,一個很直覺的選擇可能會是套 LLM(Large Language Model)。不過呢,我們最後卻選擇一個尺寸小非常多、基於 Transformer 架構的文字分類模型。我會接著在文章中分享當時技術選型背後的思路。
客戶提供的 Excel 中有零件名稱、位置、備註等資訊。文本可能包含中文、英文、專有名詞,也可能用不同方式描述同一個零件,LLM 對文字的理解能力強,若在意資料不外流,也有開源的 LLM 可以選擇,LLM 似乎是一個合理的選擇。
但這裡 AI 模型的任務,是根據這些文字判斷它到底對應到公司內部哪一個料號。確定料號之後,後面的 BOM、成本和價格就可以從內部資料庫展開並計算。
我們不需要 AI 模型幫忙寫一段答案,也不需要和使用者進行多輪對話,更不需要讓它自由生成新的內容。AI 模型的任務有明確的邊界,也就是既有料號集合的分類(Classification)。如果一個比較小的 NLP (Natural Language Processing)模型已經足夠做好這個任務,就必須認真思考,用更大的模型真的能夠帶來多少額外價值?
為了提升模型準確度,我們先整理客戶過去的報價紀錄,把歷史資料轉成可以訓練/測試的資料集,再利用這些資料 Fine-tune 出一個屬於這家客戶的分類模型。專案中也持續拿客戶後來收到的新報價資料做驗證。客戶內部甚至會定期拿新的資料做類似盲測,測到問題再回饋給我們。這個過程持續了兩三個月,最後才完成驗收。
另外,這不是一個訓練完就永遠不會改變的模型。客戶的料號和 BOM 本來就會持續更新,未來如果出現新的品項或新的描述方式,模型就需要有更新或重新訓練的機制。
回到使用者的角度來思考這個問題,業務會帶著筆電到處跑,如果每次使用還要先連特定 Server、VPN,或做很多額外設定,原本想省下來的操作時間,可能會被新的使用流程抵銷。因此,我們判斷這套工具最後不會放在一台高規格的 AI Server 上,而是一套桌面型軟體,直接安裝在業務自己的電腦上。
而業務實際使用的電腦是公司既有的舊筆電,沒有 GPU 也不是什麼 AI PC,所以這個模型很可能要跑在 CPU 上。此外,因為急著報價,業務丟一批報價資料進去之後,也不能等超過 10 分鐘才能拿到結果。
如果使用 LLM 的話,由於模型尺寸比較大,Fine-tune、部署和運算成本較高;對一個相對明確的分類任務來說,實在看不到這些額外成本能帶來足夠明顯的商業價值。就算 LLM 模型的測試結果很準確,但業務的電腦跑不動,最後還得為了這個模型重新買設備、架 Server、改變使用流程,那些成本也都應該被算進技術選型裡。
相比之下,我們最後採用的 Transformer 分類模型小很多,大約就是數百 MB 等級。最重要的是,它可以在一般 CPU 上跑,而且最後能夠跟前面的 Excel 處理流程一起包進單機版軟體,直接交付給業務使用。
綜合以上,進行 AI 模型的技術選型時,我會覺得必須要考量:
模型能力只是技術選型的一部分,真正的方案還要和使用者設備、工作環境、等待時間、更新方式一起看。
即使我們用客戶過去的資料 Fine-tune,還是會有新的品項、新的寫法出現在資料中,模型勢必會遇到不確定的資料,而且模型是基於機率,不可能保證全對。可是,如果業務必須檢查 AI 分類出來的每一筆資料,似乎又省不了太多時間。
所以下一篇,我會接著分享,如果 AI 不可能每一筆都判對,我們能不能讓人只檢查那些 AI 自己也不太確定的資料?
有興趣知道更多的,也歡迎和我聯繫交流( kota@yujing.io )!