這項由阿布扎比科技創新研究院的諾貝特·提漢伊領導的國際研究團隊完成,研究發表于2025年10月,論文編號為arXiv:2510.10493v1。團隊成員來自阿布扎比科技創新研究院、阿聯酋大學、匈牙利布達佩斯羅蘭大學以及挪威奧斯陸大學。對這項研究感興趣的讀者可以通過該論文編號查詢完整研究內容。
當你看到一段JavaScript代碼時,你能猜出它是哪個AI寫的嗎?這聽起來像科幻小說,但阿布扎比科技創新研究院的研究團隊卻做到了。他們發現,就像每個人的筆跡都有獨特特征一樣,不同的大語言模型在編寫代碼時也會留下屬于自己的"指紋"。
這個發現意義重大。隨著AI生成的代碼在軟件開發中越來越普遍,識別代碼作者已經不再是簡單的"人類還是AI"問題,而是變成了"哪個AI寫的"這樣更精細的挑戰。研究團隊創建了一個包含25萬個JavaScript程序樣本的龐大數據集,涵蓋了20個不同的大語言模型。更令人驚訝的是,他們開發的識別系統在區分5個不同GPT家族模型時達到了95.8%的準確率,即使代碼經過混淆處理,準確率仍能保持在88%以上。
這項研究不僅是學術界的突破,更具有重要的現實意義。在網絡安全領域,能夠準確識別惡意代碼的AI來源;在學術誠信方面,可以檢測學生是否使用AI完成編程作業;在軟件取證中,幫助追蹤代碼的真實來源。研究團隊已經將完整數據集和訓練工具開源,為整個研究社區提供了寶貴資源。
一、如何給AI代碼做"親子鑒定"
要理解這項研究,首先需要明白什么是代碼"指紋識別"。正如法醫可以通過指紋確定嫌疑人身份一樣,研究團隊發現每個大語言模型在編寫代碼時都有獨特的"行文風格"。
傳統的AI檢測通常只能區分"人類寫的"還是"AI寫的",就像只能判斷一篇文章是手寫還是打字。但這項研究更進一步,不僅能識別出是AI寫的,還能準確說出是哪個具體的AI模型寫的,就像不僅能識別是打字的,還能準確判斷是用的蘋果鍵盤還是微軟鍵盤。
研究團隊面臨的挑戰是巨大的。JavaScript是一種非常靈活的編程語言,同樣的功能可以用無數種不同的方式實現。更復雜的是,許多大語言模型都是用相似的代碼庫訓練的,它們的"基因"有重疊。但就像同卵雙胞胎雖然DNA相似但仍有細微差別一樣,研究團隊發現即使是同一家族的AI模型,比如GPT-4和GPT-4的精簡版,在代碼編寫上仍有可識別的差異。
這種差異來自哪里呢?每個AI模型在最終訓練階段都會經過獨特的"個性化調教"過程。就像同一個廚師用同樣的食材,但因為調料習慣不同,做出的菜品味道會有細微差別。GPT-4可能更喜歡使用某種特定的函數命名方式,而Claude則傾向于使用不同的代碼結構組織邏輯。這些看似微不足道的差異,在大量樣本中會形成明顯的模式。
二、構建史上最大JavaScript"DNA數據庫"
為了訓練能夠識別不同AI的"偵探系統",研究團隊首先需要收集大量的"證據"。他們設計了250個復雜的后端Node.js編程任務,這些任務涵蓋了真實軟件開發中的各種場景,從創建JWT驗證服務到構建URL縮短器,每個任務都包含數十個子功能。
這就像要訓練一個能識別不同畫家風格的AI系統,你需要收集大量不同畫家的作品作為訓練素材。研究團隊讓每個AI模型針對同一個任務編寫10個不同版本的解決方案,最終收集了5萬個原始JavaScript程序。
但故事還沒結束。為了測試識別系統在各種"偽裝"情況下的表現,研究團隊對每個代碼樣本進行了多種變換處理。他們創建了壓縮版本(去掉所有空格和注釋,就像把一本書壓縮成電報)、混淆版本(把變量名都改成無意義的字母組合,就像用暗號重寫代碼)、以及去混淆版本(嘗試恢復被混淆代碼的可讀性)。
經過這些處理,原本的5萬個代碼樣本擴展到了25萬個,形成了迄今為止最大規模的AI生成JavaScript代碼數據集。這個數據集不僅規模龐大,質量也很高——每個代碼樣本都經過了語法檢查,確保能夠正常運行。
研究團隊還貼心地提供了兩種額外的代碼表示形式:抽象語法樹(AST)和JavaScript中間表示(JSIR)。如果把普通代碼比作一篇文章,那么AST就像是文章的大綱結構圖,而JSIR則像是文章的邏輯流程圖。這些不同的表示方式幫助研究人員從多個角度分析代碼特征。
三、三種"偵探"方法的較量
有了豐富的數據,接下來就是訓練能夠識別不同AI"指紋"的系統。研究團隊嘗試了三大類方法,就像派出三組不同專長的偵探來破案。
第一組是傳統機器學習"偵探",包括隨機森林、XGBoost、邏輯回歸等經典算法。這些算法就像經驗豐富的老偵探,雖然方法傳統,但勝在快速高效。他們先將代碼轉換成數字特征向量(就像把指紋轉換成特征點坐標),然后根據這些特征進行分類判斷。這類方法的優點是訓練速度快,結果容易解釋,但在處理復雜模式時略顯吃力。
第二組是基于Transformer的"新生代偵探",包括BERT、CodeBERT和Longformer等深度學習模型。這些模型就像擁有超強記憶力和模式識別能力的年輕偵探,能夠理解代碼的上下文關系和深層語義。CodeBERT專門針對代碼進行了預訓練,就像一個專門研究代碼的語言學家,對編程語言的"語法"和"習語"有深入理解。
第三組是研究團隊的"王牌偵探"——定制版CodeT5-JSA。這個模型基于77萬參數的CodeT5模型改進而來,研究團隊移除了原本用于代碼生成的解碼器部分,專門強化了分類識別能力。就像給一個多面手偵探進行專業化訓練,讓他專門負責身份識別工作。
在實際測試中,這三組偵探的表現差異明顯。傳統機器學習方法雖然速度快,但準確率相對較低,在20類識別任務中只能達到75%左右的準確率。基于Transformer的方法表現更好,其中CodeBERT在20類任務中達到了85%的準確率。而定制版CodeT5-JSA表現最為出色,在5類識別中達到95.8%的準確率,20類識別也能保持88.5%的高準確率。
四、即使"化妝"也難逃法眼
最令人驚訝的發現是,即使代碼經過各種"偽裝"處理,識別系統仍能保持較高的準確率。研究團隊測試了幾種常見的代碼變換:壓縮處理(去掉空格和注釋)、標識符混淆(把有意義的變量名改成隨機字母)、以及復雜的代碼混淆技術。
結果表明,這些表面的"化妝術"并不能有效掩蓋AI模型的內在特征。在壓縮代碼上,識別準確率只下降了約4%;在混淆代碼上,準確率下降約2%;即使是經過復雜混淆的代碼,準確率仍能保持在85%以上。
這個現象就像指紋識別一樣——即使你戴上手套或者涂抹護手霜,指紋的基本紋理特征仍然存在。代碼的表面特征(如變量命名、注釋風格)可能會改變,但深層的結構模式(如邏輯組織方式、控制流結構、數據處理習慣)很難完全消除。
研究團隊進一步分析發現,不同AI模型的差異主要體現在三個方面:語法匹配(代碼的結構相似性)、數據流匹配(變量依賴關系的相似性)、以及詞匯匹配(標識符和關鍵字的使用習慣)。其中,數據流匹配提供了最強的區分信號,這說明不同AI在處理數據依賴關系時有著根本性的差異。
有趣的是,即使是同一家族的AI模型(比如GPT-4和GPT-4 mini),它們在代碼風格上仍然存在可識別的差異。研究團隊分析認為,這可能源于不同模型在最終訓練階段使用了不同的數據集和調優策略。
五、從5個到20個:規模化識別的挑戰
研究團隊系統測試了不同規模識別任務的難度。從區分5個不同家族的AI模型,到區分同一家族內的5個模型,再到同時區分10個甚至20個不同模型,每一步都是新的挑戰。
在最簡單的5類不同家族識別任務中(比如區分GPT、Claude、Gemini等),BERT就能達到97.9%的準確率。這就像區分不同國家的菜系風格,意大利菜和中餐的差異非常明顯。
但當任務變成區分同一家族內的不同模型時,難度顯著增加。比如區分GPT-4、GPT-4o、GPT-4o-mini這些"近親"模型,準確率下降到90.2%。這就像要區分同一地區不同師傅做的川菜,雖然都是川菜,但每個師傅的手法仍有細微差別。
當識別范圍擴大到10個模型時,最佳系統仍能保持94.6%的準確率。而在最具挑戰性的20類識別任務中,CodeT5-JSA仍然達到了88.5%的準確率,這個表現超越了所有傳統方法和其他深度學習模型。
研究團隊通過混淆矩陣分析發現,錯誤識別主要發生在關系最密切的模型之間。比如GPT-4o和GPT-4o-mini之間的誤判率相對較高,而結構差異較大的模型之間很少發生誤判。這符合直覺——越相似的東西越難區分。
六、揭秘AI代碼的"深層密碼"
為了理解識別系統究竟抓住了什么特征,研究團隊進行了深入的相似性分析。他們使用CodeBLEU評分系統,從三個維度分析代碼相似性:詞匯匹配(表面特征)、語法匹配(結構特征)、和數據流匹配(語義特征)。
結果顯示,數據流相似性提供了最強的區分信號。同一模型生成的代碼在數據處理和變量依賴關系上高度相似(中位數相似度0.40),而不同模型之間的差異顯著(中位數相似度0.19)。這個0.21的差異看似不大,但在大量樣本中足以形成穩定的識別模式。
這個發現顛覆了人們對代碼風格的傳統認知。過去,研究者往往關注表面特征,比如變量命名習慣、縮進風格、注釋方式等。但這項研究證明,真正的"指紋"隱藏在更深層的邏輯結構中——AI模型如何組織數據流、如何處理變量依賴、如何構建控制流程。
這就像音樂識別一樣。雖然同一首歌可以用不同樂器演奏、不同音調演唱,但其基本的旋律結構和節奏模式是不變的。同樣,雖然代碼的表面形式可以改變,但其內在的邏輯組織方式卻帶著AI模型訓練的"烙印"。
語法相似性的區分能力相對較弱,這并不是因為它不重要,而是因為結構模式在不同任務間相對穩定。所有AI模型都需要遵循JavaScript的基本語法規則,所以在這個維度上的差異相對較小。
七、驗證系統的可靠性
為了確保研究結果的可靠性,研究團隊設計了一個巧妙的交叉驗證實驗。他們的訓練數據全部來自OpenRouter.ai平臺,為了排除平臺本身可能添加的"水印"或特殊標記,他們專門創建了一個包含500個全新任務的測試集,這些代碼直接從OpenAI官方API獲取,與訓練數據完全獨立。
在這個"盲測"中,訓練好的識別系統仍然保持了高準確率,準確率僅下降1-2%。這個結果證實了系統識別的確實是AI模型本身的特征,而不是數據來源平臺的特殊標記。
這個驗證過程就像藥物臨床試驗的雙盲測試。如果一個藥物只在特定實驗室條件下有效,那它的實用價值就會大打折扣。同樣,如果識別系統只對特定來源的代碼有效,那它在真實應用中就會遇到困難。這項測試證明了系統的泛化能力。
研究團隊還測試了代碼長度分布的影響。他們發現,大部分代碼樣本的長度在合理范圍內(75%的樣本少于1024個token),這意味著現有的模型架構能夠有效處理大部分真實場景。對于極長的代碼,系統性能會有所下降,但仍在可接受范圍內。
八、技術細節與創新點
在技術實現上,研究團隊做出了幾個關鍵的創新。首先是對CodeT5模型的改進。原始的CodeT5是一個編碼器-解碼器結構,既能理解代碼也能生成代碼。研究團隊移除了解碼器部分,專門強化編碼器的分類能力,就像把一個多功能工具改造成專業的精密儀器。
分類頭的設計也經過了精心優化。在簡單的5類識別任務中,使用線性層→GELU激活→Dropout→線性層的結構就足夠了。但在更復雜的10類和20類任務中,研究團隊發現這種結構的性能開始下降。經過大量實驗,他們發現使用Dropout→線性層→Tanh激活→Dropout→線性層的新結構,在20類去混淆任務中將準確率從72%提升到了79.94%。
計算資源的優化也值得關注。完整的32位浮點訓練需要958分鐘,但切換到16位bfloat16格式后,訓練時間縮短到111分鐘,準確率只下降1-3%。這種優化使得研究方法更具實用性,降低了復制研究的門檻。
在數據預處理上,研究團隊使用了TF-IDF向量化,詞匯表限制在400個最重要的詞匯。這種做法既保證了計算效率,又確保了重要特征不會被噪音掩蓋。批處理大小和梯度累積策略也根據不同模型的內存需求進行了優化。
九、現實應用與社會影響
這項研究的現實意義遠超學術價值。在網絡安全領域,當發現惡意代碼時,能夠識別其AI來源有助于追蹤攻擊者的工具選擇和技術水平。不同的AI模型可能有不同的安全漏洞模式,識別模型來源有助于預測潛在的攻擊向量。
在教育領域,隨著AI工具在編程教學中的普及,區分學生原創代碼和AI輔助代碼變得越來越重要。傳統的查重系統主要針對人類作品,對AI生成內容的識別能力有限。這項研究提供的技術可以幫助教育者更好地評估學生的真實編程能力。
在軟件開發行業,代碼來源的識別對知識產權保護具有重要意義。當AI生成的代碼在商業項目中使用時,了解其具體來源有助于評估潛在的法律風險和許可證合規性。
但這項技術也帶來了一些倫理考慮。過度的代碼監控可能會影響開發者的創作自由,如何在技術能力和隱私保護之間找到平衡是一個需要深入思考的問題。研究團隊在論文中也提到了這些擔憂,呼吁在應用這項技術時需要制定相應的倫理準則。
隨著AI技術的快速發展,模型的"指紋"特征可能會發生變化。研究團隊指出,未來需要持續更新識別系統,以適應AI模型的進化。同時,也可能出現專門設計的"反識別"技術,試圖模糊或偽造AI模型的特征簽名。
十、開源貢獻與研究影響
研究團隊的開源貢獻是這項工作的另一個重要價值。他們不僅公開了包含25萬代碼樣本的LLM-NodeJS數據集,還提供了完整的訓練腳本和Google Colab筆記本,讓其他研究者可以輕松復現和擴展這項工作。
數據集的多樣性使其不僅適用于代碼歸屬研究,還可以支持其他相關研究,比如代碼質量評估、AI生成代碼的安全性分析、不同AI模型的編程能力比較等。AST和JSIR表示形式的提供進一步擴展了數據集的應用范圍。
這種開放的研究態度在AI領域尤為可貴。許多重要的AI研究受限于數據和計算資源的限制,難以被廣泛復現和驗證。這項研究的開源發布降低了后續研究的門檻,有可能催生更多相關的研究工作。
研究團隊還提供了詳細的實驗復現指南,包括硬件配置建議、超參數設置、以及常見問題的解決方案。這種細致的文檔工作體現了嚴謹的科學態度,有助于確保研究結果的可重復性。
說到底,這項來自阿布扎比科技創新研究院的研究為我們揭示了AI代碼世界的一個重要秘密:每個AI模型都有自己獨特的"數字指紋"。這個發現不僅在技術上具有突破性,更在實踐中具有廣泛的應用前景。從網絡安全到教育評估,從知識產權保護到軟件取證,這項技術都可能發揮重要作用。
研究結果表明,即使AI模型使用相似的訓練數據,它們在代碼生成上仍保持著獨特的風格特征。更令人驚訝的是,這些特征即使在代碼經過混淆處理后仍然可以被識別出來,說明AI的"個性"深深烙印在其邏輯思維方式中,而不僅僅是表面的編碼習慣。
這項研究還揭示了一個有趣的現象:隨著AI技術的發展,我們面臨的問題已經從"這是不是AI寫的"演變成了"這是哪個AI寫的"。這種變化反映了AI技術的成熟和多樣化,也預示著未來我們需要更精細的工具來管理和理解AI生成的內容。
研究團隊的開源貢獻使得這項技術能夠被廣泛應用和改進,這對整個AI研究社區來說都是寶貴的資源。隨著越來越多的代碼由AI生成,這種識別技術將在維護代碼質量、確保學術誠信、保護知識產權等方面發揮越來越重要的作用。
當然,這項技術也提醒我們需要思考AI時代的新倫理問題:如何在技術監管和創作自由之間找到平衡,如何確保這種強大的識別能力不被濫用。這些問題的答案需要技術專家、政策制定者和社會各界的共同探索。
對于想要深入了解這項研究的讀者,可以通過論文編號arXiv:2510.10493v1查閱完整的研究報告,其中包含了詳細的技術實現、實驗數據和分析結果。
Q&A
Q1:大語言模型生成的JavaScript代碼真的有獨特指紋嗎?
A:是的,研究發現每個大語言模型在編寫JavaScript代碼時都會留下獨特的"指紋"特征。這些特征不僅體現在表面的編碼風格上,更深層地反映在代碼的邏輯結構、數據流組織和控制流程中。即使是同一家族的模型(如GPT-4和GPT-4 mini)也存在可識別的差異,研究團隊的識別系統在5類識別中達到了95.8%的準確率。
Q2:代碼混淆或壓縮后還能識別出AI模型來源嗎?
A:可以,這是研究中最令人驚訝的發現之一。即使代碼經過壓縮(去除空格和注釋)、標識符混淆(改變變量名)或復雜混淆處理,識別準確率仍能保持在85%以上。這說明AI模型的特征主要存在于深層的邏輯結構中,而不是表面的命名習慣或格式風格,這些深層特征很難通過簡單的代碼變換完全消除。
Q3:這項代碼歸屬識別技術有什么實際用途?
A:這項技術在多個領域都有重要應用價值。在網絡安全方面,可以幫助識別惡意代碼的AI來源,追蹤攻擊者工具;在教育領域,可以檢測學生作業中的AI輔助痕跡,維護學術誠信;在軟件開發中,有助于知識產權保護和許可證合規性評估;在法律取證中,可以為代碼來源提供技術證據。研究團隊已將完整數據集和工具開源,便于實際應用和進一步研究。

全部評論 (0)