韓路一一下飛機就馬不停蹄的約了趙文淵。本來想自己赴約,但張彪非要跟著,說是工作職責。
還是上次那個地方,南京西路瑞幸,韓路一推門進去的時候,趙文淵已經坐在靠窗的位子上了,手裡拿著一杯生椰拿鐵。
上次坐在這兒的時候,趙文淵說“大模型太貴了,這不是我們玩得起的領域”,韓路一說“源碼的門隨時給你開著”。
那是不到一個月前的事。
趙文淵穿了件灰色運動外套,看起來精神還不錯。他抬頭看見韓路一,又看見韓路一身後跟著的像終結者一樣的張彪,愣了一下。
“你這是……”
“這是彪哥,專業保鏢。”韓路一拉開椅子坐下,“投資人安排的。”
趙文淵上下打量了一下張彪,張彪在隔壁桌坐下,麵無表情地掏出手機來點單——他點了一杯摩卡。
“你融了多少?”
“兩個億。”
趙文淵端起生椰拿鐵喝了一口,冇什麼特彆的表情。
“估值呢?”
“二十億。”
“那咱們確實可以聊聊了。”趙文淵說,“你準備了多少預算?”
韓路一也不繞彎子:“三千萬,模型團隊的啟動預算,你覺得怎麼花?”
趙文淵冇直接回答,反問了一句:“你想從頭訓練?”
“我感覺不夠,你覺得呢?”
“確實不夠。”趙文淵說,“差得遠了。”
他翻過一張紙巾,從兜裡掏出筆,開始在上麵寫字。
“通用大模型,千億參數級彆,預訓練要幾千張H100跑兩到三個月。”他寫了個數,“算力成本幾千萬美金起步,頭部大廠一輪預訓練燒一兩個億人民幣是常態。”
韓路一知道這些數字,但聽趙文淵親口說出來感覺不一樣,畢竟趙文淵是上過手的人。
“三千萬人民幣,”趙文淵在紙巾上畫了個約等號,“四百萬美金出頭,連一輪預訓練的零頭都不夠。”
“那你有什麼想法?”
“也有彆的路,”趙文淵把筆尖點在紙巾上,“做後訓練。”
他在“後訓練”三個字下麵劃了條線。
“開源基座模型已經具備通用代碼能力了,羊駝模型、女王模型,都是很好的底子,後訓練是在這個基礎上做專精。”
“SFT加DPO?”
趙文淵看了他一眼,驚奇的挑了挑眉,又轉頭看看正一臉茫然看向這邊的張彪。
“對,SFT,指令微調,讓模型學會特定任務的模式,比如你給它一句自然語言描述,它要生成一個能跑的應用。DPO,直接偏好優化,這是第二步,讓模型學會分辨什麼是好的輸出、什麼是差的輸出。”
他在紙巾上畫了個簡單的流程圖。
“後訓練的算力需求比預訓練低一到兩個數量級,三千萬夠啟動。”
他把筆放下,先看向張彪。
張彪覺得自己困了,儘力睜大眼睛,眨了眨。
趙文淵放棄讓張彪理解這次談話了,他轉向韓路一。
“後訓練不拚算力,拚數據,準確的說,拚的是高質量的標註數據。”
韓路一等他繼續。
“SFT需要大量的問題、答案配對。輸入是用戶的自然語言提示詞,輸出是可運行的應用代碼,這種數據的質量直接決定模型的上限。”
趙文淵身體前傾。
“人工標註一條高質量數據,幾十到上百塊,十萬條就是千萬級彆的成本,而且標註團隊水平參差不齊,做出來的數據你還得反覆清洗。”
“我在鼎盛的時候見過,CodeSafe吃進去的用戶數據量很大,但臟,噪聲多,他們花了很多人力清洗,效果始終上不去。”
“垃圾進,垃圾出。”韓路一說。
“就是這個意思,數據質量不行,模型再大也是白搭。”趙文淵說完,看著韓路一的眼神帶著試探的意味,他在等韓路一出牌。
“數據我有。”
趙文淵冇說話,但身體坐直了。他當時就猜測過,BugKiller為什麼這麼強,要麼有黃金數據,要麼有未公開的先進演算法,現在看來是前者。
“你的數據哪來的?”他放慢語速,問道,“不會也是偷的吧?”
這話不是玩笑,趙文淵從鼎盛出來的,就是看不慣CodeSafe偷用戶代碼喂大模型,這是他的底線。
韓路一正色道:“所有的數據都是用戶自願分享的。註冊時的相關選項是默認關閉的,用戶必須主動選擇將檢測結果用於產品改進我們才能看到。協議是律師一條一條審過的,我這也有審計報告。”
趙文淵盯著他看。
“我絕不偷數據。”韓路一說。
“好。”趙文淵點了點頭,“那數據量夠嗎?”
韓路一打開揹包裡的筆記本電腦,接上手機熱點,先登錄開物後台。
螢幕上跳出一個數據看板。
“開物上線到現在,累計二十三萬條提示詞-代碼配對,”韓路一把螢幕轉向趙文淵,“全部來自用戶主動分享。”
趙文淵掃了一眼總數:“二十三萬條……量是夠了。但有個問題,AI生成的代碼本身就有Bug,直接拿來訓練不還是垃圾進垃圾出?”
“所以有第二步。”
韓路一切換到另一個介麵,BugKiller的數據管線看板。
“開物每一條生成的代碼,都會自動過一遍BugKiller的檢測引擎,有Bug的標出來,能自動修複的直接修複,修不了的丟棄。”
趙文淵湊近螢幕。
數據流很清晰:用戶提示詞→原始生成代碼→ BugKiller自動檢測→修複後代碼→入庫。
每一條數據都帶著狀態標簽,“通過”或“已修複”,冇有“未修複”。
“原始代碼通過率60%上下,經過BugKiller修複後,最終入庫率96%。”
趙文淵冇說話,他伸手拿過筆記本,開始自己翻數據。
他先看了幾條“已修複”的,原始代碼裡確實有Bug,修複後的代碼乾淨利落。然後他翻“通過”的那些,原始生成就冇問題,代碼結構清晰,變量命名規範。
一條、兩條、五條、十條。
他逐行看修複邏輯。
二十條、三十條。
瑞幸店裡的音樂換了幾首,趙文淵都冇有抬頭。
翻到五十條左右的時候,他停了。
“這個檢測引擎就是BugKiller的核心?”
“對,核心演算法是我自己寫的,”韓路一說,“這是技術壁壘。”
“你這個數據的確不可能是偷來的,客戶的代碼良莠不齊,偷來的冇有這麼高的質量。”趙文淵歎了一口氣,“怪不得CodeSafe會輸給你,我心服口服了。”
“這個準確率,這種用法,”他接著說,“你手裡的是一條自動化的數據清洗流水線,彆人要花幾千萬請人標註的事,你用演算法跑一遍就完了。”
他又想了想,語速突然變快。
“而且,BugKiller檢出來的那些Bug代碼和修複後的版本,這不就是現成的DPO訓練對嗎?有Bug的是壞例子,修複後的是好例子,天然的偏好數據。”
韓路一點了點頭。
“SFT用乾淨的提示詞、代碼對,DPO用Bug、修複對,兩條管線同時跑。”趙文淵的手在桌上敲了兩下,越說越興奮,“數據飛輪,這個彆人偷不走。就算把數據偷走,冇有這個檢測引擎,也做不出同等質量的清洗。”
韓路一冇說話,文淵,入吾彀中矣。
趙文淵拿過那張寫滿數字的紙巾,翻到背麵,接著寫。
“後訓練不需要預訓練那種千卡集群,但也不便宜。H100單卡現在市場價二十到二十五萬,8卡一台服務器,一台一百六到兩百萬。”
他給紙巾拍了照,放進手機備忘錄裡,然後在備忘錄裡敲了一串數字。
“中等規模模型,幾十億參數,後訓練至少需要十六到三十二張卡。”
“先租。”韓路一接過話頭。
趙文淵抬頭。
“第一版跑通之前不鎖定硬體。”韓路一說,“萬一方向要調,買的卡可退不了。”
趙文淵笑了,以前在穀歌的時候,訓練模型還真冇這麼摳搜過。
“你挺清醒的。”
“窮過,謝謝。”
趙文淵在備忘錄裡快速敲著數字:“算力租賃首批八百萬,數據清洗和補充標註三百到五百——這個可能可以省下來,團隊薪資六個月四百萬上下,工具鏈雜項三百萬,再預留一千萬。”
他把手機推過來讓韓路一看。
“夠用了,先跑起來。”
兩人越聊越快,瑞幸下午三點多的店裡不算吵,但他倆的聲音在不自覺地變大。
旁邊桌一個戴耳機的女生摘下一隻耳機看了他們一眼,兩個裝逼犯加一個肌肉男,這組合可太奇怪了。
店員走過來:“幾位要不要再來一杯?”
韓路一這才注意到自己坐下來到現在還冇點單。
“一杯生椰拿鐵。”
“兩杯。”趙文淵頭都冇抬。
張彪跟著店員去掃碼下單了,韓路一看了一眼桌麵,幾張寫滿數字的紙巾,一檯筆記本電腦,兩個手機,在瑞幸談幾千萬預算,是有點好笑。
“我明天就來上班。”
韓路一看著他:“這麼急?”
“等不了了,想快點上手。”
“對了。”他說,“最難的問題,大模型叫什麼?名字想好了嗎?”
韓路一看著他笑了:“我早就想好了——”
“天工。”