改個(gè)名字,數(shù)倍提升Function Calling準(zhǔn)確率!
你好啊,我是小智,今天我將詳細(xì)解析Hammer模型如何通過(guò)函數(shù)名和參數(shù)名的修改,數(shù)倍提升模型在Function Calling任務(wù)中的準(zhǔn)確性。
改名提升模型性能,看似玄學(xué)也有依據(jù)
簡(jiǎn)潔命名的模糊性
在大多數(shù)編程語(yǔ)言中,函數(shù)名和參數(shù)名都是對(duì)功能的抽象表達(dá)。通常情況下,簡(jiǎn)潔的命名規(guī)則便于代碼閱讀與理解,但當(dāng)這些簡(jiǎn)潔的命名被直接作為模型輸入時(shí),可能會(huì)導(dǎo)致一定程度的模糊性。例如,假設(shè)我們有一個(gè)名為get_data的函數(shù),該函數(shù)可能用于從數(shù)據(jù)庫(kù)、文件或網(wǎng)絡(luò)獲取數(shù)據(jù),但不同的上下文可能會(huì)讓模型難以判斷其真正用途。
特別是在存在復(fù)雜功能的情況下,簡(jiǎn)潔的命名約定可能導(dǎo)致誤導(dǎo)。例如,save可能表示保存文件、保存數(shù)據(jù),甚至是提交數(shù)據(jù)庫(kù)事務(wù)。此時(shí),模型僅依賴函數(shù)名推斷函數(shù)目的時(shí),簡(jiǎn)潔命名反而可能降低準(zhǔn)確性。
同名參數(shù)的誤導(dǎo)性
同樣,函數(shù)參數(shù)名的命名慣例也可能影響模型的判斷。在數(shù)據(jù)集中,不同的函數(shù)可能使用相同或類似的參數(shù)名,導(dǎo)致模型在推斷過(guò)程中受到歷史數(shù)據(jù)的干擾。比如,data或input等參數(shù)名可能在不同的函數(shù)中具有完全不同的含義,但如果模型只依據(jù)參數(shù)名來(lái)推斷其用途,可能會(huì)引發(fā)錯(cuò)誤推斷。
命名約定的不一致性
在實(shí)際開(kāi)發(fā)中,命名約定常常因團(tuán)隊(duì)、項(xiàng)目或語(yǔ)言的不同而存在差異。例如,駝峰式命名(CamelCase)和下劃線式命名(snake_case)在同一數(shù)據(jù)集中可能并存。如果訓(xùn)練數(shù)據(jù)集中的命名方式與測(cè)試環(huán)境中的不一致,模型的表現(xiàn)可能會(huì)受到負(fù)面影響。在這種情況下,模型可能無(wú)法準(zhǔn)確理解不同命名方式的函數(shù)或參數(shù),影響其調(diào)用的準(zhǔn)確性。
Schema描述更加準(zhǔn)確有力
Schema描述提供了更靈活的自然語(yǔ)言解釋,往往更準(zhǔn)確和詳細(xì),并通常包含函數(shù)和參數(shù)名稱旨在傳達(dá)的信息"。
函數(shù)和參數(shù)名稱的簡(jiǎn)潔和簡(jiǎn)潔格式可能會(huì)導(dǎo)致歧義,并誤導(dǎo)模型的理解,特別是在存在復(fù)雜功能的情況下。相比之下,描述提供了對(duì)函數(shù)作用和預(yù)期行為的更全面的視角,超越了函數(shù)和參數(shù)名稱所能傳達(dá)的內(nèi)容。通過(guò)關(guān)注描述而不是名稱,模型可以更準(zhǔn)確地把握函數(shù)的意圖,并避免訓(xùn)練數(shù)據(jù)中特定命名模式引入的陷阱。
如何實(shí)現(xiàn)改名后的模型訓(xùn)練
增強(qiáng)數(shù)據(jù)集:微調(diào)與多樣性提升
為了提升函數(shù)調(diào)用準(zhǔn)確率,Hammer模型采用了增強(qiáng)數(shù)據(jù)集的策略。在此方法中,模型通過(guò)對(duì)數(shù)據(jù)集進(jìn)行擴(kuò)展,尤其是在xLAM-function-calling-60k數(shù)據(jù)集上增加了7,500個(gè)實(shí)例,這些實(shí)例專注于檢測(cè)無(wú)關(guān)性,從而使得模型能夠更好地區(qū)分相關(guān)和無(wú)關(guān)的函數(shù)調(diào)用。
通過(guò)這種增強(qiáng)方式,模型能夠更好地處理在訓(xùn)練集和測(cè)試集之間存在的命名不一致性。對(duì)數(shù)據(jù)集的微調(diào)不僅提高了模型對(duì)函數(shù)名的敏感度,也讓模型學(xué)會(huì)了如何忽略無(wú)關(guān)的參數(shù)和函數(shù)。
函數(shù)屏蔽:減少對(duì)名稱的依賴
Hammer模型采用了函數(shù)屏蔽技術(shù),在訓(xùn)練過(guò)程中隨機(jī)將候選函數(shù)名稱替換為隨機(jī)字符串。這一策略的核心思想是使得模型更關(guān)注函數(shù)的功能描述,而非函數(shù)名稱。這種方式迫使模型理解函數(shù)的功能,而不僅僅是通過(guò)名稱來(lái)推測(cè)其目的。
具體來(lái)說(shuō),模型通過(guò)僅僅理解函數(shù)的輸入輸出及其描述來(lái)進(jìn)行函數(shù)調(diào)用,而非依賴可能模糊或誤導(dǎo)的名稱信息。例如,在訓(xùn)練過(guò)程中,模型可能會(huì)遇到如下兩種情況:
- 原始命名:get_user_data(user_id)
- 屏蔽后的命名:function_1234(arg1)
在屏蔽后的訓(xùn)練過(guò)程中,模型不會(huì)通過(guò)get_user_data來(lái)猜測(cè)其功能,而是通過(guò)函數(shù)描述或參數(shù)來(lái)推斷其功能。
函數(shù)描述的優(yōu)化
除去函數(shù)名本身,函數(shù)描述也是模型理解函數(shù)目的的重要線索。通過(guò)增強(qiáng)訓(xùn)練集中的函數(shù)描述,并將這些描述與輸入輸出匹配,模型能夠更好地學(xué)習(xí)到函數(shù)的實(shí)際功能。這一過(guò)程涉及到對(duì)數(shù)據(jù)集的精細(xì)化處理,使得每個(gè)函數(shù)都附帶一個(gè)盡可能詳細(xì)的描述。
這種優(yōu)化策略,結(jié)合函數(shù)屏蔽和增強(qiáng)數(shù)據(jù)集的手段,能有效提升模型對(duì)函數(shù)調(diào)用的準(zhǔn)確性和魯棒性。
啟發(fā)
高質(zhì)量數(shù)據(jù)是金礦
在任何機(jī)器學(xué)習(xí)任務(wù)中,高質(zhì)量數(shù)據(jù)都至關(guān)重要。而數(shù)據(jù)的質(zhì)量不僅僅體現(xiàn)在標(biāo)注的準(zhǔn)確性,還包括數(shù)據(jù)的多樣性和豐富性。Hammer模型的成功不僅僅在于使用了大規(guī)模的數(shù)據(jù)集,更在于對(duì)已有數(shù)據(jù)進(jìn)行了精細(xì)化的改造和優(yōu)化。作為AI工程師,我們應(yīng)該從數(shù)據(jù)源的多樣性和質(zhì)量上投入更多精力,而不僅僅關(guān)注模型的復(fù)雜度。
從人的角度出發(fā)
大多數(shù)工程師在設(shè)計(jì)函數(shù)時(shí),往往是從功能描述出發(fā),而非僅依賴函數(shù)名稱。這一思維模式實(shí)際上與模型的思維方式存在類似性。通過(guò)從人的角度理解模型如何處理函數(shù)調(diào)用,我們可以發(fā)現(xiàn)許多潛在的優(yōu)化空間。例如,考慮到工程師在編寫(xiě)函數(shù)時(shí)會(huì)根據(jù)其功能來(lái)定義參數(shù),而不僅僅依賴參數(shù)名本身,模型也應(yīng)該更多地關(guān)注函數(shù)的功能描述。
本文轉(zhuǎn)載自 ??AI小智??,作者: AI小智
