0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何將ChatGPT的能力蒸餾到另一個(gè)大模型

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:深度學(xué)習(xí)自然語(yǔ)言處理 ? 2023-06-12 15:06 ? 次閱讀

如何將ChatGPT的能力蒸餾到另一個(gè)大模型,是當(dāng)前許多大模型研發(fā)的研發(fā)范式。當(dāng)前許多模型都是采用chatgpt來(lái)生成微調(diào)數(shù)據(jù),如self instruct,然后加以微調(diào),這其實(shí)也是一種數(shù)據(jù)蒸餾的模擬路線。

不過(guò),這種數(shù)據(jù)蒸餾的方式,只是單向的,并沒(méi)有進(jìn)行數(shù)據(jù)反饋。

最近的一篇文章《Lion: Adversarial Distillation of Closed-Source Large Language Model》 提出了一個(gè)將知識(shí)從一個(gè)復(fù)雜的、閉源的大型語(yǔ)言模型(LLM)轉(zhuǎn)移到一個(gè)緊湊的、開(kāi)源的LLM的做法,其中加入了數(shù)據(jù)反饋的閉環(huán)機(jī)制,將蒸餾的指令分成困難和簡(jiǎn)單兩類(lèi)指令,并且逐步來(lái)生成困難指令有偏的引導(dǎo)開(kāi)源LLM模型的學(xué)習(xí),取得了較好的效果。

論文地址:https://arxiv.org/pdf/2305.12870.pdf

fc6930ae-08ea-11ee-962d-dac502259ad0.png

整體框架AKD的工作如圖2所示,在一個(gè)迭代中分成三個(gè)階段:1)模仿階段,使學(xué)生的反應(yīng)與教師的反應(yīng)保持一致;2)辨別階段,識(shí)別困難指令;3)生成階段,產(chǎn)生新的困難指令,以升級(jí)對(duì)學(xué)生模型的挑戰(zhàn)。

該對(duì)抗性知識(shí)蒸餾框架可以被解釋為一個(gè)動(dòng)態(tài)的最小-最大游戲:在模仿階段,對(duì)學(xué)生進(jìn)行微調(diào),使其與教師在硬樣本上的模型差異最??;在辨別和生成階段,根據(jù)學(xué)生模型的學(xué)習(xí)進(jìn)度,制作新的困難樣本,使模型差異最大化。

從教育的角度上來(lái)看,這種框架推動(dòng)了學(xué)生模型去發(fā)現(xiàn)原本隱藏的知識(shí),為完全理解鋪平道路,隨著訓(xùn)練的進(jìn)行,經(jīng)過(guò)幾次迭代,系統(tǒng)能夠最好能達(dá)到平衡狀態(tài)。這時(shí),學(xué)生模型已經(jīng)掌握了所有的硬樣本,裁判員R不再能夠區(qū)分學(xué)生S和教師T的模型。

為了驗(yàn)證方法的有效性,該框架將ChatGPT的知識(shí)轉(zhuǎn)移到LLaMA上,選擇Alpaca的訓(xùn)練數(shù)據(jù)(僅由175條手動(dòng)選擇的種子指令生成)作為初始訓(xùn)練指令,并執(zhí)行三次AKD的迭代,總共訓(xùn)練了70K數(shù)據(jù),最終得到模型Lion,實(shí)驗(yàn)結(jié)果表明,7B模型Lion都表現(xiàn)出較好的性能。

本文對(duì)該工作的具體算法思想進(jìn)行介紹,供大家一起參考,其中關(guān)于各種prompt,包括打分prompt,指令擴(kuò)充prompt都是可以關(guān)注的點(diǎn)。

一、算法思想方法

利用一個(gè)復(fù)雜的教師模型T(x; θT)的知識(shí),目標(biāo)是制作一個(gè)更輕便的學(xué)生模型S(x; θS)。

理想情況下,如果模型差異的期望值(表示教師T和學(xué)生S之間的預(yù)測(cè)差異)在統(tǒng)一數(shù)據(jù)分布上達(dá)到最小,那么學(xué)生模型就是最優(yōu)的。

受對(duì)抗性知識(shí)提煉(AKD)的啟發(fā),該框架轉(zhuǎn)向優(yōu)化期望值的上限--"難樣本 "上的模型差異期望值,其中教師T和學(xué)生S的表現(xiàn)差距相對(duì)較大。

這些 "難樣本 "傾向于主導(dǎo)模型差異的期望值。因此,通過(guò)在這些 "難樣本 "上對(duì)學(xué)生模型S進(jìn)行優(yōu)化,可以有效和高效地重新控制整體預(yù)期模型差異。

其基本原理是相當(dāng)直接,可以類(lèi)比于現(xiàn)實(shí)世界的教育場(chǎng)景:持續(xù)關(guān)注學(xué)生認(rèn)為難以掌握的 "難 "知識(shí),是提高學(xué)生能力的最有效方法。

fc79b1c2-08ea-11ee-962d-dac502259ad0.png

圖2描述了對(duì)抗性知識(shí)蒸餾的整個(gè)框架,它包含了一個(gè)迭代的三個(gè)階段:

1)模仿階段,使學(xué)生的反應(yīng)與教師的反應(yīng)相一致;

2)辨別階段,識(shí)別難樣本;

3)生成階段,產(chǎn)生新的硬樣本,以升級(jí)學(xué)生模型所面臨的挑戰(zhàn)。

1、初始化

如圖2所示,框架中建立了四個(gè)角色和兩個(gè)數(shù)據(jù)池,并使用使用LLaMA來(lái)初始化學(xué)生模型S。

通過(guò)使用ChatGPT來(lái)初始化教師模型T、裁判員R和生成器G,

該框架從一個(gè)給定的初始Train Pool XA = {xAi }i∈[1,NA]開(kāi)始迭代,其中xAi是XA中的第i條指令,NA是XA中的樣本數(shù)。

Cache Pool XB的初始化與XA相同,由評(píng)估S和T性能的指令組成。

注意,這里的指令是由指令提示和實(shí)例輸入組成的,如下表所示:

fc92bb40-08ea-11ee-962d-dac502259ad0.png

2、模仿階段

損失函數(shù)采用Kullback-Leibler Divergence,即KL散度,用于量化教師模型T和學(xué)生模型S的輸出概率分布的差異。

因此,為了將教師的知識(shí)傳遞給學(xué)生,通過(guò)教師T向前傳播訓(xùn)練池XA中的指令,構(gòu)建訓(xùn)練數(shù)據(jù){xAi, T (xAi )}i∈[1,N A]。

有了這些訓(xùn)練數(shù)據(jù),其中xAi作為輸入,T(xAi )作為目標(biāo),通過(guò)最小化交叉熵?fù)p失來(lái)微調(diào)我們的學(xué)生模型S。

3、識(shí)別階段

圖2展示了從緩存池開(kāi)始的判別階段,表示為XB。

大型語(yǔ)言模型如ChatGPT,有可能作為無(wú)偏見(jiàn)的裁判來(lái)衡量?jī)蓚€(gè)不同的人工智能助手產(chǎn)生的回復(fù)質(zhì)量,也就是使用chatgpt進(jìn)行打分。

在具體實(shí)現(xiàn)上,將緩存池XB中的每條指令xBi通過(guò)教師T和學(xué)生S反饋,分別產(chǎn)生輸出T(xBi)和S(xBi)。然后要求裁判員R量化教師的響應(yīng)T(xBi)和學(xué)生的響應(yīng)S(xBi)之間的質(zhì)量差異,di用來(lái)表示這兩個(gè)分?jǐn)?shù)之間的差異。di的計(jì)算公司如下:

fcab5c36-08ea-11ee-962d-dac502259ad0.pngfcc29842-08ea-11ee-962d-dac502259ad0.png

上述過(guò)程是通過(guò)使用表2的提示模板來(lái)完成,該模板要求LLM考慮兩個(gè)回答的有用性、相關(guān)性、準(zhǔn)確性和詳細(xì)程度,并輸出兩個(gè)分?jǐn)?shù)。

兩個(gè)分?jǐn)?shù)之差,就是di,可以通過(guò)設(shè)置一個(gè)閾值τ(在實(shí)驗(yàn)中使用的是1.0),將困難的指令劃分為那些di≥τ的指令,而其他的則被識(shí)別為簡(jiǎn)單的指令。

fcd02ad4-08ea-11ee-962d-dac502259ad0.png

圖3直觀地展示了在第一次迭代中哪些類(lèi)型的指令被識(shí)別為困難指令。與cache池中的指令相比,被識(shí)別的羅曼指令的分布是非常不同的,它們更側(cè)重于復(fù)雜的任務(wù),如數(shù)學(xué)、編碼等。

4、生成階段

在仔細(xì)識(shí)別了困難指令之后,生成階段的目標(biāo)是產(chǎn)生反映這些困難指令所對(duì)應(yīng)的數(shù)據(jù)分布的樣本。

這個(gè)過(guò)程通過(guò)使用復(fù)雜的LLM作為生成器G來(lái)實(shí)現(xiàn),并從困難指令中隨機(jī)抽取一條指令,并提示生成器G生成一條新指令。新生成的指令需要與同一領(lǐng)域有關(guān),并與抽樣指令的任務(wù)類(lèi)型相匹配,如下表3顯示了用于該提示的模板。

fcf065ba-08ea-11ee-962d-dac502259ad0.png

如圖3所示,指令要求新生成的硬性結(jié)構(gòu)的分布似乎與先前確定的硬性指令的分布相類(lèi)似。為了減輕災(zāi)難性遺忘的問(wèn)題并增加生成指令的多樣性,還從簡(jiǎn)單指令中隨機(jī)抽出一條指令,并提示生成器G生成一條新的指令,該指令與抽出的指令屬于同一領(lǐng)域,但也呈現(xiàn)出更多的長(zhǎng)尾分布,使用的指令模板如下所示:

fd112480-08ea-11ee-962d-dac502259ad0.png

為了控制迭代的比率,在每個(gè)迭代中,將N定義為新生成指令的總數(shù)量,然后在生成的困難指令和簡(jiǎn)單指令之間保持1:1的比例。

為了保證多樣性,只有當(dāng)一條新指令與緩存池中任何現(xiàn)有結(jié)構(gòu)的ROUGE-L重疊度低于0.7時(shí),才會(huì)被視為有效。

最后,將對(duì)Train Pool進(jìn)行更新,用新生成的指令替換現(xiàn)有指令。同時(shí)通過(guò)加入這些新生成的指令來(lái)擴(kuò)充緩存池。

在具體訓(xùn)練過(guò)程中,該學(xué)生模型是用預(yù)先訓(xùn)練好的LLaMA 7B進(jìn)行初始化。Train Pool和Cache Pool用Alpaca的52K in-struction數(shù)據(jù)集進(jìn)行初始化。迭代總次數(shù)設(shè)置為3次,每次迭代增加6K新生成的指令,最終形成訓(xùn)練了70K數(shù)據(jù)。

在花費(fèi)方面,學(xué)生模型在8個(gè)A100 GPU上訓(xùn)練了3個(gè)epochs,請(qǐng)求使用gpt-3.5-turbo API大約36萬(wàn)次,這個(gè)數(shù)字大約是WizardLM使用量624k的一半,產(chǎn)生了相當(dāng)大的費(fèi)用,接近500美元。

二、測(cè)試數(shù)據(jù)集與實(shí)驗(yàn)?zāi)P?/p>

1、數(shù)據(jù)集

評(píng)估LLM在各種任務(wù)中的功效是一個(gè)相當(dāng)大的挑戰(zhàn),因?yàn)椴煌娜蝿?wù)需要相當(dāng)不同的專(zhuān)業(yè)知識(shí),而且許多任務(wù)不能用自動(dòng)指標(biāo)來(lái)評(píng)估,在實(shí)驗(yàn)中采用了兩個(gè)著名的數(shù)據(jù)集:

Vicuna-Instructions:一個(gè)由GPT-4合成的數(shù)據(jù)集,包含80個(gè)基線模型認(rèn)為具有挑戰(zhàn)性的問(wèn)題。該數(shù)據(jù)集橫跨九個(gè)不同的類(lèi)別,即通用、知識(shí)、角色扮演、常識(shí)、費(fèi)米、反事實(shí)、編碼、數(shù)學(xué)和寫(xiě)作。以用戶(hù)為導(dǎo)向的指導(dǎo)。

User oriented Instructions:一個(gè)人工組裝的數(shù)據(jù)集,包括252個(gè)結(jié)構(gòu),其動(dòng)機(jī)是71個(gè)面向用戶(hù)的應(yīng)用,如Grammarly、StackOverflow、Overleaf。

2、對(duì)比模型

對(duì)比實(shí)驗(yàn)選用五個(gè)模型:

LLaMA:一個(gè)基礎(chǔ)語(yǔ)言模型的集合,參數(shù)范圍從7B到65B。它在公開(kāi)可用的數(shù)據(jù)集上訓(xùn)練了數(shù)萬(wàn)億個(gè)標(biāo)記,并被證明在多種基準(zhǔn)中優(yōu)于較大尺寸的LLM,如GPT-3(175B)。使用LLaMA 3的7B參數(shù)版本。

Alpaca:以LLaMA為基礎(chǔ),通過(guò)查詢(xún)OpenAI的text-davinci-003模型產(chǎn)生的52K個(gè)指令跟隨實(shí)例進(jìn)行微調(diào)。使用Alpaca 4的7B參數(shù)版本。

Vicuna:以LLaMA為基礎(chǔ),并根據(jù)從ShareGPT收集的7萬(wàn)個(gè)用戶(hù)共享對(duì)話進(jìn)行了微調(diào)。使用FastChat 5的7B參數(shù)版本。

WizardLM:使用Evol-Instruct方法,將Alapca的52000條指令的例子引導(dǎo)到250000條更復(fù)雜的指令集中。使用WizardLM 6中的7B參數(shù)版本。

ChatGPT:通過(guò)監(jiān)督和強(qiáng)化學(xué)習(xí)技術(shù)進(jìn)行微調(diào),由人類(lèi)培訓(xùn)師提供必要的反饋和指導(dǎo)。使用ChatGPT3.5 turbo版本。

3、評(píng)測(cè)結(jié)果

首先看自動(dòng)化評(píng)估,使用GPT-4的方式進(jìn)行模型自動(dòng)打分,用于評(píng)價(jià)在給定封閉集合上的性能表現(xiàn),對(duì)應(yīng)的prompt如下,采用與識(shí)別困難樣本的prompt一致。

fd31651a-08ea-11ee-962d-dac502259ad0.png

實(shí)現(xiàn)結(jié)果如下,GBS評(píng)測(cè)來(lái)看,Lion除了與ChatGPT有差距外,均好于其他模型。fd496106-08ea-11ee-962d-dac502259ad0.png

再看使用人工評(píng)價(jià)的方式,進(jìn)行對(duì)齊能力,如果一個(gè)聊天助手的特點(diǎn)是樂(lè)于助人、誠(chéng)實(shí)和無(wú)害(HHH),則被認(rèn)為是一致的。這些標(biāo)準(zhǔn)被用來(lái)衡量人工智能(AI)系統(tǒng)與人類(lèi)價(jià)值觀一致的程度。結(jié)果如下:

fd61e35c-08ea-11ee-962d-dac502259ad0.png

我們可以看到,Lion也能得到一個(gè)與自動(dòng)化評(píng)測(cè)一致的效果。

下面再看一個(gè)具體的模型預(yù)測(cè)效果,這是個(gè)比較好的case:

fd8698aa-08ea-11ee-962d-dac502259ad0.png

總結(jié)

本文對(duì)《Lion: Adversarial Distillation of Closed-Source Large Language Model》這一工作進(jìn)行了介紹。

與Alpaca和WizardLM這樣只對(duì)學(xué)生模型進(jìn)行一次微調(diào)的方法相比,該工作提出的對(duì)抗性知識(shí)蒸餾方法采用了對(duì)學(xué)生模型的迭代更新,得到了更好的效果。

不過(guò)這種迭代方法也有一些現(xiàn)實(shí)問(wèn)題,例如:

首先,不可避免地導(dǎo)致了較慢的迭代速度。

其次,與傳統(tǒng)的對(duì)抗性知識(shí)蒸餾方法不同的是,該方法使用一個(gè)黑箱和參數(shù)凍結(jié)的ChatGPT來(lái)扮演這個(gè)角色,LLM的質(zhì)量在新指令的生成中相當(dāng)重要。

另外,在評(píng)估方面,盡管利用GPT-4進(jìn)行的自動(dòng)評(píng)估在評(píng)估聊天機(jī)器人的表現(xiàn)方面展示了良好的前景,但該技術(shù)尚未達(dá)到成熟和準(zhǔn)確的水平,特別是考慮到大型語(yǔ)言模型容易產(chǎn)生不存在的或 "幻覺(jué) "的信息。此外,缺乏一個(gè)統(tǒng)一的標(biāo)準(zhǔn)來(lái)評(píng)估大型語(yǔ)言模型,這降低了基于人類(lèi)的評(píng)估的說(shuō)服力。

最后,為聊天機(jī)器人創(chuàng)建一個(gè)全面的、標(biāo)準(zhǔn)化的評(píng)估系統(tǒng)是一個(gè)普遍的研究挑戰(zhàn),需要進(jìn)一步的探索和研究。當(dāng)前,已經(jīng)出現(xiàn)了很多魚(yú)龍混雜的各類(lèi)榜單,而且排名的結(jié)果還不不一樣,這其實(shí)又是另一個(gè)混沌狀態(tài),這需要引起我們的重視,并擦亮眼睛。
責(zé)任編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6712

    瀏覽量

    88300
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3030

    瀏覽量

    48346
  • ChatGPT
    +關(guān)注

    關(guān)注

    28

    文章

    1517

    瀏覽量

    6904

原文標(biāo)題:如何更好地蒸餾ChatGPT模型能力:Lion閉源大型語(yǔ)言模型的對(duì)抗性蒸餾模型原理及實(shí)驗(yàn)工作介紹

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問(wèn)如何將例程中的includes中的文件夾,拷貝另一個(gè)工程的includes下面?怎么操作?

    本帖最后由 只耳朵怪 于 2018-6-14 08:48 編輯 如圖所示,請(qǐng)問(wèn)如何將例程中的includes中的文件夾,拷貝另一個(gè)工程的includes下面
    發(fā)表于 06-13 12:57

    如何將PIC引腳的合成頻率輸出到另一個(gè)設(shè)備?

    執(zhí)行數(shù)學(xué)來(lái)轉(zhuǎn)換比率。我把輸入的TMR1H,TMR1L值乘以1000,然后DIVID。E 24位的結(jié)果是1787。數(shù)字在LCD顯示器上都OK,但是如何將另一個(gè)PIC引腳(0~111.88 88赫茲
    發(fā)表于 10-23 15:55

    怎么個(gè)7系列收發(fā)器同步另一個(gè)

    嗨,如何將個(gè)7系列收發(fā)器轉(zhuǎn)移到另一個(gè)7系列收發(fā)器?我正在使用12G SDI視頻收發(fā)器,它在個(gè)
    發(fā)表于 10-30 18:03

    如何將信號(hào)從個(gè)示意頁(yè)面另一個(gè)?

    如何將信號(hào)從個(gè)示意頁(yè)面另一個(gè)?我知道我可以使紙張更大,但是我知道連接器的符號(hào),所以我想知道如何使用它。肖恩 以上來(lái)自于百度翻譯 以下
    發(fā)表于 03-22 12:51

    CAL數(shù)據(jù)復(fù)制另一個(gè)頻道

    CAL數(shù)據(jù)復(fù)制另一個(gè)頻道
    發(fā)表于 07-03 10:25

    如何將MHC設(shè)置從個(gè)項(xiàng)目復(fù)制/傳輸?shù)?b class='flag-5'>另一個(gè)項(xiàng)目?

    我有三套PCB代碼:生產(chǎn)、工廠測(cè)試和實(shí)驗(yàn)。這三套都應(yīng)該有相同的MHC設(shè)置。我如何將MHC設(shè)置從個(gè)項(xiàng)目復(fù)制/傳輸?shù)?b class='flag-5'>另一個(gè)項(xiàng)目?我試著導(dǎo)出/導(dǎo)入,但是似乎只傳遞了
    發(fā)表于 07-23 06:28

    如何將數(shù)據(jù)從個(gè)總線傳輸?shù)?b class='flag-5'>另一個(gè)總線?

    大家好, 我數(shù)據(jù)從個(gè)總線傳輸?shù)?b class='flag-5'>另一個(gè)總線,雖然它是直接映射,但它沒(méi)有正確傳輸,存在誤碼。任何人都可以給我這個(gè)問(wèn)題的解決方案嗎?問(wèn)候,
    發(fā)表于 11-06 09:47

    如何將數(shù)據(jù)從個(gè)SDI通道路由另一個(gè)SDI通道

    嗨,KC705評(píng)估板中有4個(gè)SDI通道。我想知道如何將個(gè)通道上的SDI數(shù)據(jù)作為RX通過(guò)MGT收發(fā)器引腳路由
    發(fā)表于 05-20 14:52

    如何將Virtex 5 LVPECL_25連接到另一個(gè)設(shè)備的3.3v lvpecl?

    如何將Virtex 5 LVPECL_25連接到另一個(gè)設(shè)備的3.3v lvpecl?謝謝!
    發(fā)表于 06-12 09:07

    可以個(gè)TouchGFX項(xiàng)目之間的屏幕、對(duì)象和交互復(fù)制另一個(gè)項(xiàng)目嗎?

    您可以個(gè) TouchGFX 項(xiàng)目之間的屏幕、對(duì)象和交互復(fù)制另一個(gè)項(xiàng)目嗎?我嘗試了 Ctrl + C 對(duì)象,但它們似乎只在同
    發(fā)表于 01-10 06:08

    如何將yocto從個(gè)版本升級(jí)另一個(gè)版本?

    ),您將如何逐步完成?我是否需要從個(gè)版本另一個(gè)版本手動(dòng)執(zhí)行?(必須有更有效的方法)。應(yīng)用程序呢。如果需要,將如何更新它們?并查看所需的依賴(lài)項(xiàng)。
    發(fā)表于 03-23 07:52

    怎樣個(gè)CAD圖插到另一個(gè)CAD圖中?

    要將個(gè)CAD圖插入另一個(gè)圖中,我估計(jì)有幾種不同需求,種是整圖插入,種是部分插入,
    發(fā)表于 10-24 15:38 ?2.5w次閱讀

    GPU礦機(jī)的用戶(hù)很快就能尋求另一個(gè)有利可圖的用途

    目前的熊市用GPU礦機(jī)挖礦的礦工受到了很大的打擊 。但是,擁有GPU礦機(jī)的用戶(hù)可能很快就能將產(chǎn)能較低的GPU礦機(jī)硬件用于另一個(gè)有利可圖的用途:挖礦顯卡高性能的渲染能力出租給那些希望在低功耗電腦上體驗(yàn)高質(zhì)量PC游戲的用戶(hù)。
    發(fā)表于 03-19 15:00 ?1312次閱讀

    若干蒸餾方法之間的細(xì)節(jié)以及差異

    以往的知識(shí)蒸餾雖然可以有效的壓縮模型尺寸,但很難teacher模型能力蒸餾
    的頭像 發(fā)表于 05-12 11:39 ?1333次閱讀

    盤(pán)古大模型ChatGPT4的區(qū)別

    中表現(xiàn)出色的模型。但是,這兩個(gè)模型之間存在著些區(qū)別,這些區(qū)別可能使其中
    的頭像 發(fā)表于 08-30 18:27 ?5457次閱讀