《人工智能技術(shù)基礎(chǔ)》課件 第6章 變形金剛_第1頁
《人工智能技術(shù)基礎(chǔ)》課件 第6章 變形金剛_第2頁
《人工智能技術(shù)基礎(chǔ)》課件 第6章 變形金剛_第3頁
《人工智能技術(shù)基礎(chǔ)》課件 第6章 變形金剛_第4頁
《人工智能技術(shù)基礎(chǔ)》課件 第6章 變形金剛_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

人工智能技術(shù)基礎(chǔ)

變形金剛第六章

變形金剛(Transformer)是谷歌公司的VaswaniA等人在2017年發(fā)表的文章《Attentionisallyouneed》中提出解決Seq2Seq(序列到序列)問題的一種深度神經(jīng)網(wǎng)絡(luò)模型。自它提出后,自然語言處理(NaturalLangnageProcessing,NLP)研究取得了巨大進(jìn)步。

2018年后人工智能逐漸走進(jìn)了大模型時(shí)代,2022年11月30日OpenAI發(fā)布的ChatGPT在郵件撰寫、視頻腳本編寫、文本翻譯、代碼編寫等任務(wù)上的強(qiáng)大表現(xiàn)(大多不比人類差),被稱為與AlphaGo一樣轟動(dòng)的事件,是人工智能“奇點(diǎn)”來臨的初顯。而Transformer正是這些大語言模型的基礎(chǔ)。6變形金剛簡介目錄Contents6.1Transformer的結(jié)構(gòu)和工作原理Transformer在NLP中的應(yīng)用Transformer在視覺領(lǐng)域中的應(yīng)用小結(jié)6.26.36.41.學(xué)習(xí)Transformer的基本結(jié)構(gòu)和原理,掌握Transformer的位置編碼、編碼器和解碼器結(jié)構(gòu)和多頭自注意力機(jī)制,了解訓(xùn)練方式和特點(diǎn),應(yīng)用所學(xué)內(nèi)容分析和解釋其工作機(jī)制,理解和分析Transformer的優(yōu)勢和局限性;2.學(xué)習(xí)Transformer在自然語言處理中的應(yīng)用方法,理解并掌握BERT和GPT的基本原理和訓(xùn)練方法;3.學(xué)習(xí)Transformer在視覺中的應(yīng)用方法,掌握ViT的基本結(jié)構(gòu)和訓(xùn)練方法,理解PiT、CvT、DeiT、TNT和S-T等模型的結(jié)構(gòu),了解受ViT啟發(fā)的MLP-Mixer和AS-MLP的結(jié)構(gòu)。6變形金剛(Transformer)學(xué)習(xí)目標(biāo)01Transformer的結(jié)構(gòu)和工作原理6.1Transformer的結(jié)構(gòu)和工作原理編碼器(Encoder)由6個(gè)編碼模塊組成,包括殘差自注意力(Self-Attention)和殘差連接的前向神經(jīng)網(wǎng)絡(luò)(FFNN)組成;譯碼器(Decode)由6個(gè)譯碼模塊組成。包括殘差自注意力,殘差互注意力(Encoder-DecoderAttention)以及殘差連接的前向神經(jīng)網(wǎng)絡(luò);編碼器最后一個(gè)Block的輸出作為譯碼器每一個(gè)Block的輸入。

Transformer本質(zhì)上是一個(gè)Encoder-Decoder的結(jié)構(gòu)。6.1Transformer的結(jié)構(gòu)和工作原理

(a)模型組成

(b)模型結(jié)構(gòu)

圖6-1Transformer概貌6.1Transformer的結(jié)構(gòu)和工作原理

Transformer的工作流程大體可分為3步:獲取輸入序列中的每個(gè)輸入的表示向量X,X由輸入的編碼和所在位置的編碼相加得到。將輸入序列所有輸入的表示向量放在一起,構(gòu)成Transformer的輸入向量矩陣;將得到輸入向量矩陣送入Encoder中,經(jīng)過6個(gè)Encoderblock后可以得到所有輸入的編碼信息矩陣C;將Encoder輸出的編碼信息矩陣C傳遞到Decoder中,Decoder依次會(huì)根據(jù)當(dāng)前輸出的前面所有輸出來產(chǎn)生下一個(gè)輸出。6.1Transformer的結(jié)構(gòu)和工作原理

語言翻譯問題示例:將“我是一名學(xué)生”譯為英文。圖6-2輸入矩陣的生成圖6-3編碼過程6.1Transformer的結(jié)構(gòu)和工作原理

語言翻譯問題示例:將“我是一名學(xué)生”譯為英文圖6-4譯碼預(yù)測輸出6.1Transformer的結(jié)構(gòu)和工作原理6.1.2多頭自注意力多頭注意力(Multi-HeadAttention),是由多個(gè)自注意力(Self-Attention)或多個(gè)互注意力(Encoder-DecoderAttention)組成的。Transformer中的注意力機(jī)制即自注意力和互注意力,相似度計(jì)算采用的是縮放點(diǎn)積模型。(6-2)6.1Transformer的結(jié)構(gòu)和工作原理6.1.2多頭自注意力實(shí)例:以“我是一名學(xué)生”為例,以矩陣運(yùn)算的方式說明注意力機(jī)制的計(jì)算過程1.計(jì)算K、Q、V將輸入矩陣X與線性變陣矩陣WK,WQ,WV(實(shí)質(zhì)為線性神經(jīng)網(wǎng)絡(luò)層,它們的連接權(quán)通過對Transformer的訓(xùn)練得到)相乘得到K,Q,V。注意:

X,K,Q,V的每一行都表示一個(gè)詞元(token)。圖6-6計(jì)算K、Q和V6.1Transformer的結(jié)構(gòu)和工作原理6.1.2多頭自注意力2.根據(jù)公式計(jì)算注意力分布K的轉(zhuǎn)置乘以Q后,得到的矩陣行列數(shù)都為n(此例中為4),n為句子單詞數(shù),矩陣可以表示單詞之間的注意力強(qiáng)度。(b)逐行使用Softmax計(jì)算注意力系數(shù)(a)計(jì)算相似度矩陣圖6-7計(jì)算注意力分布矩陣6.1Transformer的結(jié)構(gòu)和工作原理6.1.2多頭自注意力3.將注意力分布矩陣與V矩陣相乘,得到最終的注意力輸出矩陣Z。(a)計(jì)算最終輸出Z

(b)Z1的計(jì)算過程圖6-8計(jì)算注意力模塊的最終輸出6.1Transformer的結(jié)構(gòu)和工作原理6.1.2多頭自注意力多頭注意力是由多個(gè)注意力組合形成的。圖6-9多頭注意力(Multi-HeadAttention)結(jié)構(gòu)圖Z1

Z2Z86.1Transformer的結(jié)構(gòu)和工作原理6.1.2多頭自注意力h=8時(shí)候的情況,會(huì)得到8個(gè)輸出矩陣Z。Multi-HeadAttention將8個(gè)輸出矩陣Z1到Z8拼接(Concat)在一起,然后傳入一個(gè)線性(Linear)神經(jīng)網(wǎng)絡(luò)層,得到最終的輸出Z。Multi-HeadAttention輸出的矩陣Z與其輸入的矩陣X的維度是一樣的。6.1Transformer的結(jié)構(gòu)和工作原理6.1.3編碼器結(jié)構(gòu)

Transformer的Encoderblock結(jié)構(gòu)是由Multi-HeadSelf-Attention,Add&Norm,F(xiàn)eedForward,Add&Norm組成的。6.1Transformer的結(jié)構(gòu)和工作原理6.1.3編碼器結(jié)構(gòu)1.Add&Norm

Add&Norm層由Add和Norm兩部分組成,計(jì)算公式如下。

LayerNorm(X+MultiHeadAteetion(X))

LayerNorm(X+FeedForward(X))

(6-3)

Add指X+Multi-HeadAttention(X),是一種殘差連接,在ResNet中經(jīng)常用到,通常用于解決多層網(wǎng)絡(luò)訓(xùn)練的問題,可以讓網(wǎng)絡(luò)只關(guān)注當(dāng)前差異的部分。

Norm指LayerNormalization,常用于RNN結(jié)構(gòu),LayerNormalization會(huì)將每一層神經(jīng)元的輸入轉(zhuǎn)成均值方差一致的輸入,這樣可以加快網(wǎng)絡(luò)訓(xùn)練的收斂速度。X+F(x)F(x)+x6.1Transformer的結(jié)構(gòu)和工作原理6.1.3編碼器結(jié)構(gòu)2.FeedForward

FeedForward層比較簡單,是一個(gè)兩層的全連接層,第一層的激活函數(shù)為ReLU,第二層不使用激活函數(shù),對應(yīng)的公式如下:

max(0,XW1+b1)W2+b2

(6-4)

6.1Transformer的結(jié)構(gòu)和工作原理6.1.4譯碼器結(jié)構(gòu)

Transformer的Decoderblock結(jié)構(gòu),包含兩個(gè)Multi-HeadAttention層,最后有一個(gè)Softmax層,計(jì)算下一個(gè)輸出(翻譯的單詞)的概率。第1個(gè)Multi-HeadAttention層采用Masked掩膜操作,是掩膜輸入的多頭自注意力。第2個(gè)Multi-HeadAttention層的K,V矩陣使用Encoder的編碼信息矩陣C進(jìn)行計(jì)算,而Q使用上一個(gè)Decoderblock的輸出計(jì)算,是多頭互注意力。6.1Transformer的結(jié)構(gòu)和工作原理6.1.4譯碼器結(jié)構(gòu)1.第1個(gè)Multi-HeadAttention

采用了掩膜(Masked)輸入。通過Masked操作可以防止第i個(gè)單詞知道i+1個(gè)單詞之后的信息。下面以“我是一名學(xué)生”翻譯成“Iamastudent”為例說明Masked操作。圖6-12掩膜輸入示意圖6.1Transformer的結(jié)構(gòu)和工作原理6.1.4譯碼器結(jié)構(gòu)1.第1個(gè)Multi-HeadAttention掩膜自注意力的計(jì)算過程如下,其中用012345分別表示“<Begin>Iamastudent<end>”。第1步:Decoder的輸入矩陣和Mask矩陣。輸入矩陣包含“<Begin>Iamastudent”(0,1,2,3,4)五個(gè)單詞的表示向量,Mask是一個(gè)5×5的矩陣,用1表示不遮擋(綠色),用-inf(負(fù)無窮小)表示遮擋(黃色)。圖6-13輸入矩陣和掩膜矩陣6.1Transformer的結(jié)構(gòu)和工作原理6.1.4譯碼器結(jié)構(gòu)1.第1個(gè)Multi-HeadAttention第2步:通過輸入矩陣X計(jì)算得到K,Q,V矩陣,然后計(jì)算KT和Q的乘積KTQ。第3步:得到KT

Q之后需要按(6-2)式進(jìn)行Softmax,計(jì)算注意力分布,但在Softmax之前需要使用Mask矩陣遮擋住每一個(gè)單詞之后的信息,遮擋操作如圖6-13。第4步:使用經(jīng)過逐行Softmax處理后的MaskKTQ與矩陣V相乘,得到輸出Z,則單詞1的輸出向量Z1只包含單詞的1信息。圖6-13輸入矩陣和掩膜矩陣6.1Transformer的結(jié)構(gòu)和工作原理6.1.4譯碼器結(jié)構(gòu)2.第2個(gè)Multi-HeadAttentionDecoderblock第2個(gè)Multi-HeadAttention是互注意力K,V矩陣使用Encoder的編碼信息矩陣C計(jì)算。Q根據(jù)上一個(gè)Decoderblock的輸出Z計(jì)算(如果是第1個(gè)Decoderblock,則使用輸入矩陣X進(jìn)行計(jì)算),后續(xù)的計(jì)算方法與之前描述的一致。

在Decoder中使用互注意力,可使每一時(shí)刻的輸出(預(yù)測的每個(gè)單詞)都可以利用Encoder所有輸入序列(單詞)的信息。6.1Transformer的結(jié)構(gòu)和工作原理6.1.4譯碼器結(jié)構(gòu)3.Softmax預(yù)測輸出(單詞)

Decoderblock最后是利用Softmax預(yù)測下一個(gè)單詞(的概率),之前的網(wǎng)絡(luò)層已經(jīng)得到一個(gè)最終的輸出Z0。因?yàn)镸ask的存在,使得單詞0的輸出Z0只包含單詞0的信息。Softmax根據(jù)輸出矩陣的每一行預(yù)測下一個(gè)輸出(單詞)。

圖6-15Softmax預(yù)測輸出6.1Transformer的結(jié)構(gòu)和工作原理6.1.5Transformer的訓(xùn)練Transformer本身就是編碼譯碼結(jié)構(gòu)編碼器將輸入序列X1,X2,…,XN編碼成編碼序列C1,C2,…,CN;譯碼器將編碼序列C1,C2,…,CN譯碼成每一刻產(chǎn)生一個(gè)輸出Yi的輸出序列Y1,Y2,…,YM,可以直接用于語言翻譯,也可以直接用于文字→文字生成。Transformer的訓(xùn)練可以直接采用誤差反向傳播算法進(jìn)行,訓(xùn)練數(shù)據(jù)集可以使用語言翻譯數(shù)據(jù)集;Transformer的訓(xùn)練在詞編碼和全連接層部分都使用了Dropout技術(shù)。6.1Transformer的結(jié)構(gòu)和工作原理6.1.6Transformer的特點(diǎn)分析Transformer的輸入中增加輸入序列的位置編碼,使其不僅能建立輸入序列的長程關(guān)系,還能夠表示特定輸入在序列中的位置。RNN按時(shí)刻輸入序列數(shù)據(jù),使其隱式記憶了輸入的位置信息,相比之下,Transformer的自注意力層對不同位置出現(xiàn)相同的詞給出的是同樣的輸出向量表示。如果沒有位置編碼,輸入Transformer中兩個(gè)相同但位置不同的詞,例如在不同位置上的“I”,其表示的向量是相同的。Transformer是由注意力和前向神經(jīng)網(wǎng)絡(luò)組成的,理論上它可以構(gòu)建任意長度輸入序列的長程關(guān)系,因此在各種應(yīng)用中展現(xiàn)了良好的性能。Transformer不同于RNN,不需要輸入序列按時(shí)刻串行輸入,只需將輸入序列構(gòu)成的輸入矩陣送入Transformer。它可以比較好地并行訓(xùn)練和執(zhí)行,有更高的運(yùn)行效率,但也有更大的存儲(chǔ)需求。6.1Transformer的結(jié)構(gòu)和工作原理6.1.6Transformer的特點(diǎn)分析Transformer中的Multi-HeadAttention中有多個(gè)Attention,可以捕獲輸入序列之間多種維度上的相關(guān)性,在提高了模型特征提取能力的同時(shí)也提高了模型的記憶能力。Transformer各模塊里的注意力和前向網(wǎng)絡(luò)都是殘差連接,使Transformer更易訓(xùn)練。02Transformer在NLP中的應(yīng)用6.2Transformer在NLP中的應(yīng)用Transformer起源于NLP研究,最顯著的成果也是在NLP中的應(yīng)用。它已經(jīng)成為大語言模型的基礎(chǔ)構(gòu)件,也是生成式人工智能文字生成文字的基礎(chǔ)構(gòu)件。圖6-16語言模型的發(fā)展歷程6.2.1BERT的基本原理和訓(xùn)練方法BERT(BidirectionalEncoderRepresentationfromTransformers)是2018年10月由GoogleAI研究院在文章《BERT:Pre-trainingofDeepBidirectionalTransformersforLanguageUnderstanding》中提出的一種預(yù)訓(xùn)練模型;該模型在機(jī)器閱讀理解頂級水平測試SQuAD1.1中表現(xiàn)出驚人的成績:全部兩個(gè)衡量指標(biāo)上全面超越人類,并且在11種不同NLP測試中創(chuàng)出當(dāng)時(shí)最好的表現(xiàn),代表實(shí)現(xiàn)大模型的一種模式。6.2Transformer在NLP中的應(yīng)用6.2.1BERT的基本原理和訓(xùn)練方法1.BERT的結(jié)構(gòu)BERT僅用了Transformer的Encoder側(cè)的網(wǎng)絡(luò)。BERT的維度是768維度,然后分成12個(gè)Head,每個(gè)Head的維度是64維。BERT中有一個(gè)PostionEmbedding是隨機(jī)初始化,然后從數(shù)據(jù)中學(xué)出來的。

BERT模型分為24層和12層兩種,其差別就是使用TransformerEncoder層數(shù)的差異。BERT-Base使用的是12層的TransformerEncoder結(jié)構(gòu);BERT-Large使用的是24層的TransformerEncoder結(jié)構(gòu)。6.2Transformer在NLP中的應(yīng)用6.2.1BERT的基本原理和訓(xùn)練方法2.BERT的輸入和輸出1)BERT的輸入

BERT的輸入編碼比Transformer的多了1項(xiàng),共3項(xiàng):TokenEmbeddings;SegmentEmbeddings和PositionEmbeddings。圖6-17BERT的輸入編碼6.2Transformer在NLP中的應(yīng)用6.2.1BERT的基本原理和訓(xùn)練方法2.BERT的輸入和輸出2)BERT的輸出BERT的輸出也與輸入一致,即有多少個(gè)輸入就有多少個(gè)輸出。圖6-19BERT的輸出6.2Transformer在NLP中的應(yīng)用6.2.1BERT的基本原理和訓(xùn)練方法3.BERT訓(xùn)練BERT的訓(xùn)練包含預(yù)訓(xùn)練(Pre-train)和微調(diào)(Fine-tune)兩個(gè)階段。Pre-train階段:模型是在無標(biāo)注的標(biāo)簽數(shù)據(jù)上進(jìn)行訓(xùn)練;Fine-tune階段:所有的參數(shù)會(huì)用下游的有標(biāo)注的數(shù)據(jù)進(jìn)行訓(xùn)練。圖6-20BERT的訓(xùn)練6.2Transformer在NLP中的應(yīng)用6.2.1BERT的基本原理和訓(xùn)練方法3.BERT訓(xùn)練(1)BERT預(yù)訓(xùn)練

BERT是一個(gè)多任務(wù)模型,它的預(yù)訓(xùn)練(Pre-training)任務(wù)由兩個(gè)自監(jiān)督任務(wù)組成,即掩膜語言模型(MaskedLanguageModel,MLM)和下一個(gè)句子預(yù)測(NextSentencePrediction,NSP)。(2)BERT的微調(diào)

微調(diào)(Fine-Tuning)的任務(wù)包括:基于句子對的分類任務(wù)、基于單個(gè)句子的分類任務(wù)、問答任務(wù)、命名實(shí)體識別等。

通常在BERT后加入不同的分類器(一個(gè)線性層和Softmax輸出),完成特定任務(wù)。這些任務(wù)使用的都是有標(biāo)簽的小數(shù)據(jù)集,所以BERT的微調(diào)是有監(jiān)督的微調(diào),用來確定分類器參數(shù)和微調(diào)BERT本體參數(shù)。6.2Transformer在NLP中的應(yīng)用6.2.2GPT的基本原理和訓(xùn)練方法

GPT是OpenAI在2018年6月的論文ImprovingLanguageUnderstandingbyGenerativePre-Training中提出的大語言模型,是GenerativePre-Training的簡稱。隨后OpenAI不斷推出它的升級版本,模型規(guī)模越來越大,性能越來越強(qiáng)。2022年11月30日,OpenAI發(fā)布的ChatGPT就是基于GPT3.5開發(fā)的,它引領(lǐng)了基于大語言模型(LLM)的人工智能開發(fā)熱潮,使人工智能的應(yīng)用進(jìn)入大模型時(shí)代。6.2Transformer在NLP中的應(yīng)用6.2.2GPT的基本原理和訓(xùn)練方法1.GPT的結(jié)構(gòu)

GPT使用Transformer的Decoder結(jié)構(gòu),并對TransformerDecoder進(jìn)行了一些改動(dòng)。原本Decoder包含兩個(gè)Multi-HeadAttention結(jié)構(gòu),GPT只保留了MaskMulti-HeadAttention。6.2Transformer在NLP中的應(yīng)用6.2.2GPT的基本原理和訓(xùn)練方法2.GPT的訓(xùn)練

GPT的訓(xùn)練包含預(yù)訓(xùn)練和微調(diào)兩個(gè)階段。即先在大規(guī)模無標(biāo)簽的語料庫上預(yù)訓(xùn)練,再在小得多的有標(biāo)簽的數(shù)據(jù)集上針對具體任務(wù)進(jìn)行微調(diào)。(1)GPT的預(yù)訓(xùn)練

GPT采用的是掩膜輸入,輸出是下一個(gè)輸入的預(yù)測值,因此其訓(xùn)練可以直接采用有監(jiān)督的誤差反向傳播算法,確定GPT中的權(quán)參數(shù)。

第一步,將開始符(<Start>)編碼(編碼方法與Transformer的輸入編碼一樣)后送入GPT獲得其輸出Y1;再將X1編碼,與<Start>的編碼一起送入GPT得到其輸出Y2;同樣過程繼續(xù)直到將<Begin>,X1,X2,…,XN的編碼一起送入GPT得到其輸出YN+1。

第二步,求損失函數(shù)對網(wǎng)絡(luò)權(quán)值的偏導(dǎo),反向傳播后更新網(wǎng)絡(luò)權(quán)值。6.2Transformer在NLP中的應(yīng)用6.2.2GPT的基本原理和訓(xùn)練方法2.GPT的訓(xùn)練(2)GPT的微調(diào)

預(yù)訓(xùn)練好的GPT可以看作一個(gè)通用特征提取器,根據(jù)不同的任務(wù)需求可以設(shè)計(jì)一個(gè)專用的分類或預(yù)測網(wǎng)絡(luò)(一般使用一層線性網(wǎng)絡(luò),其輸出通過Softmax完成特定任務(wù)),將GPT的輸出作為輸入,通過有監(jiān)督的訓(xùn)練方法確定分類或預(yù)測網(wǎng)絡(luò)參數(shù),微調(diào)GPT本體的參數(shù)使其完成特定任務(wù),例如文本情感分類任務(wù)。

針對不同任務(wù),不僅要微調(diào)GPT本體的參數(shù),還要簡單修改輸入數(shù)據(jù)的格式,例如對于相似度計(jì)算或問答,輸入是兩個(gè)序列,為了能夠使用GPT,需要一些特殊的技巧把兩個(gè)輸入序列變成一個(gè)輸入序列。6.2Transformer在NLP中的應(yīng)用6.2.2GPT的基本原理和訓(xùn)練方法2.GPT的訓(xùn)練(2)GPT的微調(diào)圖6-22GPT施工改造圖6.2Transformer在NLP中的應(yīng)用03Transformer在視覺領(lǐng)域中的應(yīng)用6.3Transformer在視覺領(lǐng)域中的應(yīng)用流行的識別任務(wù)視頻處理活動(dòng)識別、視頻預(yù)測多模式任務(wù)視覺問題解答和視覺推理3D分析點(diǎn)云分類和分割圖像分類、目標(biāo)檢測、動(dòng)作識別和分割生成模型單擊此處輸入你的智能圖形項(xiàng)正文low-level視覺圖像超分辨率和彩色化視覺變形金剛(VisionTransformer,ViT)6.3Transformer在視覺領(lǐng)域中的應(yīng)用6.3.1視覺變形金剛ViT是谷歌團(tuán)隊(duì)提出的將Transformer應(yīng)用在圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論