這是一篇雜談,自以為是的認知。😂
我先前在survey gemma3:270m fine-tuning時才發現,gemma3是不支援MCP的,而Twinkle AI的成果有把MCP功能,也就是function call的能力加進去。
於是我就疑惑了,看了才發現AI的秘密 - Tokenizer,也可算是Embedding模型,它作用是分詞,把整句話切成一個個單字、名詞、動詞。
LLM起手式第一動就是分詞模型分詞,這個分詞的詞就是Token,然後根據模型把每個Token的結果回覆。 簡單說,「這裡有一隻貓。」,經過Tokenizer之後,會切成「這裡」「有」「一隻」「貓」「。」,這一個個詞,會轉換成數字(句點會變成<end_oooooo>,這樣的特殊tag😁),稱為「Token」。
MCP的核心其實是function call,而function是以tag(<function>)的形式加在資料集裡面訓練的,沒有這個定義,AI不會知道要呼叫工具。
白話說,<func>要定義在Tokenizer,要描述在Training Datasets,兩者都有,訓練後AI才會用工具。 今天的慶生會詢問後證實了,<function>無法透過RAG讓AI模型了解,只能透過fine-tuning在訓練集和Tokenizer加入。
訓練後,當詢問時,如下:
「新竹現在天氣好不好?」
「天氣有<func>」=> 「是否允許呼叫 weather function 擷取天氣資訊? true」
「新竹的天氣,目前溫度58度,濕度125%」
最近LVA,機器人模型有些討論,但我們先不討論物理知識相關的訓練集處理,如何控制機器人? 機器人如何知道「往前走」=「A motor+B motor+C motor+D motor」的連續操作?是不是需要<function>。
非常多年前還在學校時,當時選修柔性計算有幾個機械系同學在做機器人,當時問他們,怎麼讓機器人動作? 它們跟我說: 「機器人所有關節都是伺服馬達,一個姿勢等於所有馬達的特定角度,可定義為一個frame,走的連續動作等於播放frames,像動畫片」 底層控制不會變,但LLM介入後,也許連續動作的控制能變成LLM自動生成。
那以前或者目前怎麼做? 常見的方式是人做動作後錄製,例如: 人彎腰,透過攝影機和關節姿勢擷取後,轉換成各個關節以及伺服馬達的角度,並且錄製。 接著讓機器人按照這些錄製的結果播放,因此很久前會看到機器人跌倒後,先定住,然後很制式的特定動作站起來。 這也是大陸很常看到的狀態,或者看到有人遙控機器人的情況。 Elon Musk機器人厲害的地方是,你看它動作行雲流水非常自然,這表示它各個關節的動作已經不是制式的play frames,而是根據動作,由LLM自動自然的生成,根據的不是單純的frames,而是有點像End-to-End的方式,讓AI直接理解行為,理解動作,把行為直接轉換成frame(motor控制動作)。
放了1個月沒提的知識點😁
結論:
訂閱AI重要,但AI fine-tuning模型裡面有些知識點,沒做過不會發現🤫 整理DataSets是苦工,而且不說沒人知道,說了也沒人知道能幹麻,它是「開發AI」的基礎,但不是AI應用的成果。 Fine-Tuning很重要,但參加活動問了人之後發現,幾乎都建議直接用RAG,我認真想過,也和AI討論過😂,目前Fine-Tuning在一般AI應用或開發中,成效有限,相同作用基本上都能在RAG中完成,除了Custom Tokenizer和Custom function之外。😂
發想:
基於貓砂機馬達控制FCM的延伸思考,結合function call和彈性化的增減function call工具的使用。 我在想是否根據特定情境修改和調整資料集,custom function tag,讓它能適應特定特殊應用。 而這點帶出2個延伸
一個是,以既有資料集修改增加tag以滿足特定問答時的特定工具應用。
一個是我在想的,用模板語言與特定語法進行Fine-Tuning,因為模板語言語意、語法和既有AI模型重疊度比較低,對於已有的模型影響也許比較小,那麼就能教會AI看特定的模板語言,就想像成我們用模板語言定義了瓦干答語,這個語言根本不存在,Fine-Tuning時等於讓AI學一個全新語言。
學會後,我們在RAG中根據瓦干答語~不是,是模板語言,寫出制式的語句和答案,那麼AI就能根據RAG查詢的的結果生成準確的答案。
這樣的應用,也許能用在機器人控制、End-To-End API、程式碼產生器,這些輸入或者輸出不是自然語言,或者用自然語言查詢(輸入)得出制式格式資料(輸出)的情境。
這應該能讓Fine-Tuning這件事變得有價值,如果輔以RAG進行模板語言查詢,應該能同時做到彈性和準確性兼備。 如果真如想像,那麼能帶出2點: 1. 地端或Edge端模型能和雲端模型搭配,Edge端負責控制,雲端負責行為判斷,例如,「小呆同學,我要喝水」,雲端AI能給出「水在水壺,水壺在廚房,到廚房拿杯子裝好水之後,拿到房間」,Edge端能給出「我控制腳步移動到廚房」「我控制手部抓取水杯」「我控制水壺倒水到水杯」「我拿起水杯」「腳步移動到房間」 當然,也可以是End-To-End,直接一個Edge端AI模型內部直接轉出成這些動作控制
2. 關鍵點會需要Training Model,這無法透過RAG處理,因此需要AI公司因應需求Fine-Tuning模型,或者根據需求新增RAG資料,而RAG資料的原型是模板語言,語法與Tag則是Fine-Tuning而成,應該能保護住知識產權
以上都是嘴砲,function calling的Fine-Tuning有拿網路上資料Training,但成果不明 😂 發想還沒實做,它的起手勢,要先學Mustache。
雖然不願意承認,但「使用AI」比較容易,使用產品還是簡單些,要造輪子,太累了😂
沒有留言:
張貼留言