大語言模型:語言理解和生成(中文版)_第1頁
大語言模型:語言理解和生成(中文版)_第2頁
大語言模型:語言理解和生成(中文版)_第3頁
大語言模型:語言理解和生成(中文版)_第4頁
大語言模型:語言理解和生成(中文版)_第5頁
已閱讀5頁,還剩295頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

動手操作大型語言模型動手操作大型語言模型購買O'Reilly書籍可以用于教育、商業或促銷用途售部門:800-998-9938或corpora.編輯:NicoleButterfield.開發編輯:MicheleCronin.制作編輯:ClareLaylock.封面設計:KarenMontgomery.插畫師:KateDullea.2024年12月:第一版早期版本的修訂歷史請訪問/catalog/errata.csp?isbn=9781098給早期發行版讀者的說明在本章中,我們將討論使用大型語言建模對文本進行分類的各種方法。監督文本分類對于使用文本數據作為輸入的監督分類,通模型選擇選擇可能不像您想象的那么簡單。模型在它架構,大小,推理速度,架構,某些任務的BERT是一個很好的底層架構,用于表示任務,可以·BERT-基-無基·蒸餾堿在本節中,我們將在一些示例中使用“bert-base-c地,套管”與任何上述模型。嘗試不同的模型的數據集是“rotten_tomatoes”;pa雖然本書關注LLM,但強烈建議將這些示例與經典但強示文本并在此基礎上訓練LogisticReg分類主管使用RottenTomatoes數據集,我首先,如圖1-4所示,我們采用現有的T通常,選擇前饋神經網絡作為分類器。這兩個步驟都描述了相同的模型,因為分類頭直接添加到BERT模型中。如圖1-6所示,我們的分類器只不過是一個預先訓練好的LLM,上在第10章中,我們將使用圖2-4和圖2-5中所示的相同管道,但將對大型語里,我們將更深入地了解微調是如何工作的,以及為什么它會改進model_args.train_custmodel_args.custom_para{“lr”:1e-3,{“lr”:1e-3,]接下來,我們可以在訓練數據集上訓練模型result,model_outputs,wy_pred=np.argmax(model_outputs))的例如,您還可以使用它來創建一個自定義的命名實體識別模預訓練嵌入BERT等基于transformer的一般模型中獲得的更好的代圖1-9.分類器是一個單獨的模型,它利用SBERT的嵌入來學習。從sentence_transformers導入Sentenceeval_embeddings=model.en選擇模型可以很簡單。我們可以回到基礎知識并使用邏輯回歸,而不0精度在不需要微調LLM的情況下,我們成功實現了0.零樣本分類任務不同的任務。圖2-11給出了零炮分類圖1-10.圖2-11.在zero-sh言來描述我們希望模型做什么。它通常被稱預訓練嵌入影評論”。這種描述可以通過轉換器嵌入。最后,兩個標簽以似性(在本書中經常使用)是一種相似性度嵌入的點積除以其長度的乘積這聽起來肯定比實際情況更復雜,希望似度最高的標簽圖1-13給出了一個很好的例v2')eval_embeddings=mo#為每個文檔查找最佳匹配標簽sim_matrix=cosine_similarity(eval_emb01考慮到我們根本沒有使用任何標記數據,0.01在這個例子中,我們通過命名標簽并嵌入它們來應用零次分類當我們有一些入它們并將它們添加到管道中可以幫助提高性能。例如,我們可以將標記示例入一起平均。我們甚至可以通過創建不同類型的表示(標簽嵌入,文檔嵌入,NLI可以通過在如何使用前提/假設對方面有點創造性來用于零射擊分論,并將其作為我們的前提(yin201例如,假設可以是:“這個例子是正面的電個蘊涵時,我們可以在它是一個矛盾時將評論標記為正面和負面。使用他們的中心上有大量的預訓練模型。對于零射擊分類任務,https://huggingface.co/models?pipeline_tag=zero-shot-classification。“candidate_labels=[“負面影評”,“正面(),01在沒有任何微調的情況下,它獲得了0.81標簽的短語來增加這個值。例如,看看如果候選標簽只是“negative”和“positive”會發生什么另一個很好的預訓練零射擊分類模型是mcc-transformers的cross-encoder,即cross-encoder/nli-deberta-base。由于訓練一個轉換器模型的重點使用生成模型進行分類模型,與我們迄今為止所做的工作有點不同我們使用模型并試圖引導它朝著我們正在尋找的答案類型發展,而不是根據我們的數據微調模型情境學習模型甚至可以做一些全新的事情,只需展示也被稱為上下文學習,指的是讓模型學習或),跟隨示例。在成功生成haikus之后,由于),defgpt_prediction(prompt,document,model=]seehere允許我們處理速率限制錯誤這種錯誤OpenAI和其他外部API通常避免速率限制錯誤的一個簡單方法是使用隨最后,我們需要使用您可以從帳戶中獲得的A使用外部API時,請始終跟蹤您的使用情況。外部API,如O型往往有自己的想法,并返回關于為什么某document=“謙遜,迷人,古怪,輸出結果確實顯示,OpenAI的模型將示模板,我們可以在“[DOCUMENT>))010.91分這是我們迄今為止看到的最高值,考慮雖然這種使用GPT的零觸發分類表現出了很高的性紹的上下文學習。如果涉及特定于領域的數據,這一點尤其如此,當模型的任務進行更新時,模型對特定于任務的細微差別的適應性可能會受到限制。fewshot_prompt=“預測如果是正數,就說1;如果是負數,就說0。D“”document=“謙遜,迷人,古怪,01我們可以通過工程提示將上下文學習的例子擴展到多標簽分類。例如,命名實體識別圖1-17.一個命名實體識別的例子,它檢測實體“地點”和“度的NLP應用程序,并且一直是NER任務的要使用SpaCy的OpenAI模型,我們接下來,我們需要配置SpaCy管道。需要定命名實體識別“后端”是用于執行“任務”的底層GPT-3.5-turbo模型。在任務中,我們可以#創建命名實體識別任務并定義latask={““標簽”:“日期、年齡、位置、疾病、癥狀“api”:“OpenAI”,“配置”:{“型號”:“gpt-3.5-turbo”}#合并配置并創建SpaCy管道config=使用SpaCy從頭開始訓練NER模型是不可能的,只需要幾行代碼,但它也絕不是困難的!在我在下一章中,我們將繼續分類,但重點是無任何標簽的文本數據,我們能做什么?我們給早期發行版讀者的說明始,我們使用大型Transformer模型,在本章中,我們將討論使用語言模型來增強我們將討論代碼示例,您可以使用這些功能來請注意,這不僅對網絡搜索有用,而且搜索是1密集檢索2-重排序3-生成搜索包括一個生成模型,該模型只是生成一個響如圖2-3。生成式搜索對一個問題給出一個答案,并引用其信息源。密集檢索根據圖2-5中的距離判斷,“text2”是該查密集檢索示例通過在https://cohere.ai/注冊獲取您的Cohere從sklearn.metrics.pairwise導入cosine_#在這里粘貼API密鑰記住不要共享APIAPI_key=“”#從os.cohere創建并獲取CohereAPI密鑰co=coher/wiki/Interstellar_(film).我們會拿到《星際穿越》是一部《星際穿越》是一部2014年的史詩科幻電影,由馬修·麥康納、安妮·海瑟薇、杰西卡主演,故事發生在一個反烏托邦的未來,人類克里斯托弗和喬納森·諾蘭兄弟撰寫了加州理工學院理論物理學家和2017年諾貝爾獎獲得者電影攝影師HoytevanHoytema在35#清理以刪除空格和新行textures=np.array([##創建搜索索引,傳入embeddinsearch_index=Ann#將所有向量添加到搜索索引中進行index我們現在可以使用任何我們想要的查詢來搜索數據集我們只需嵌入查詢,并將其嵌入呈現給索引,索引將檢索最相似的文):在Nearestneighbors:?)返回結果),挑戰性的。因此,例如,如果你在互聯網和型,然后將其部署在法律文本上(沒有足夠),對長文本進行分塊.只嵌入文檔的代表性部分,而忽略文本的其余部分。這可能意味著只在這種方法中,我們將文檔分成更小的塊,圖2-7.對文檔進行分塊以進行嵌入的許多可能選項。.每個句子都是一個塊。這里的問題是,這可能太細了,向量不能捕.有些語塊的很多意義都來自于它們周圍的文本。所以.將文檔的標題添加到塊中.在它們之前和之后添加一些文本到塊中。這樣,塊可以重疊,因如圖2-8所示將文本分成重疊的片段是一種保留不最近鄰搜索與矢量數據庫用于密集檢索的微調嵌入模型看一個來自我們數據集的例子,句子“Interstellarpremiere.相關查詢一:“星際上映日期”.不相關查詢:“星際演員陣容”重排序種更簡單的方法是將其作為搜索管道中的最于與搜索查詢的相關性來改變搜索結果的順重新排序示例APIKEY=“”MODEL_NAME=“rerank-english-02”queryquery=“filmgross”Cohere的Rerank端點是開始使用第一個rerank的簡單方法。我們只需將文檔排名:3,文檔索引:2這表明重新排序者對第一個結果更有信心,選,比如說一百或一千個結果,然后將這些個入圍名單被稱為搜索管道的第一階段。使用句子轉換器進行開源檢索和重新排序句子轉換器庫。https://www.sber重新排序模型的工作原理法在一篇名為Multi-StageDocumentRankingw要了解更多關于使用LLM進行搜索的發展,PretrainedTransformersforTextRanking:BERTandBeyond是一個高度推薦的研究這些模型的發展直生成搜索息檢索形式。人們開始向ChatGPT這樣一個名為檢索增強生成的機器學習研究領域。該領域其他LLM應用搜索·生成合成數據以改進嵌入模型。這包括像GenQ和InPars-v2這樣的方.文本生成模型評估指標但是如果像圖3-16這樣的情況,兩個系統都只得到三個結果中的一在這種情況下,我們可以憑直覺認為系統1比在這種情況下,分配數值分數的一種常見方評估一組結果,然后如何聚合這些結果以跨件中所有查詢上的平均精度,并獲得其均值.密集檢索,依賴于文本嵌入的相似性。這些系統嵌入了搜索查詢,并我們還研究了評估搜索系統的一種可能方法MeanAv們優化算法是我們什么時候才能知道我們的算法是正確的?算法“正確”“transformers”和“self-attention”等術語來描述傳統上,我們期望關于特在本章中,我們將提供如何使用大型語言模文本聚類NLP中探索性數據分析的一個主要組成部分是文本聚類。這種無監督的技術旨在將類似的文本或文檔分組在一起,合中輕松發現模式的方法。在深入分類任務現的支持問題和發現新內容以推動SEO實在我們描述如何執行文本聚類之前,我們將我們首先使用HuggingFace的數據fromsentence_transfo在對從ArXiv抽象生成的嵌入進行聚類之難。這種詛咒是在處理高維數據時發生的一加,每個維度中可能值的數量呈指數增長。間變得越來越復雜。此外,隨著維數的增加所周知的方法是主成分分析(PCA)和均勻流形近似和投影(mcinnes2018umap)。對于這個管然而,降低視錯覺的技術并非完美無缺。它們無法在低維表示中完美地#我們擬合并轉換嵌入以減少它們reduced_embed類。許多算法都能很好地處理聚類任務,從基于質心的方法(如k-一個很好的默認模型是HierarchicalDensity-BasedSpatialClusterApplicationswithNoise(HDBSHDBSCAN是一種稱為DBSCAN的聚類算法的分層變然后,使用我們之前生成的2D嵌入,我們 pd.DataFrame(np.hstack([redu如圖3-6。生成的聚類(彩色)和離群值(灰色)表示為2D可視化。使用任何降維技術用于可視化目的都會造成信息損失。它僅僅是我們原始它是信息性的,但它可能會將集群推到一起,并使它們比實際上更遠。因諷刺被認為是最難分析的問題之一在我們的觀察中,印尼社會醫學界的人傾向于用諷刺的方式來批評某件事這里的附加功能來檢測諷刺后,一個共同的SCON.自動諷刺檢測是情感分析中的一個關鍵步驟,要考慮到情感文本對每個創建的集群都這樣做,但這可能需要主題建模傳統上,主題建模是一種旨在發現文本數據集潛在狄利克雷分配(LDA;blei2003latent模型的文檔可能很有可能包含“BERT”,“self-attention”和“transformers”“rlhf”等單詞。“reward”,這個問題的一個解決方案是BERTopic,模塊化,許多新發布的模型可以集成在其架域的發展,BERTopic也在發展。這允許BERTopicBERTopic是一種主題建模技術,它假設語義相似的文檔集圖3-8描述了與前面相同的步驟,即使用嵌入轉換器嵌入文檔,如圖3-8所示BERTopic管道的第一部分是聚類文本數據。果我們有數百萬個文檔存儲和跟蹤變得非常困一種名為c-TF-IDF的技術,它代表基于類的術語頻率逆文TF-IDF是經典TF-IDF過程的基于類的改編。c-TF-I要使用c-TF-IDF,我們首先將集群中的將這兩個步驟放在一起,聚類和表示主題,就會產生B有趣的是,c-TF-IDF技巧不使用大型語言模型,因此不考慮單詞的上下就像神經搜索一樣,它允許一個有效的起點,之后我們可以使用計算量更大當我們使用c-TF-IDF生成主題時,我通過聚類,每個文檔只被分配到一個聚類或主題。在實踐中,文檔可能包題文檔分配給單個主題并不總是最準確的方法。我們將在后面討論這個問題,因為幾種方法來處理這個問題,但是重要的是要理解,在其核心,使用BERTopi完全替換為另一個類似的算法。這種“樂高積木”的示。圖中還顯示了我們可以使用的另一個算法TF-IDF來創建初始主題表示,但我們可以使如圖3-11所示。BERTopic的模塊化是一個關鍵組件,它允許您根然而,BERTopic的模塊化是眾所周fromsentence_transformersimportSentenceTransformerfromsklearn.feature_extraction.textimportCountVectofrombertopic.representationimportKeyBERT靈感bertopic.vectorizersimportBERTopic管道的一部分。接下來,讓我們更明確地構建BER##第1步-提取嵌入(藍色塊)embeddiSentenceTransformer(“hdbscan_model=HDB#結合步驟,構建我們自己的主題模型) topic_model=BERTopic(umap_model=utopics,probs=topicmodel.fitt 010213243t字表示,這些關鍵字在Name列中與“_”連接算法HDBSCAN,它不強制所有點都被聚類。為了“abstractive”。根據這些關鍵詞,似乎主題是總結任務。要獲取每個主題的前10個關鍵字以及它們的c-TF-IDF權重,我們可以使用get_topic ()函數:),),),),),什么的。例如,看到單詞“rogue”出現是),),),),句子中可以有多個主題盡管BERTopic#計算token級topic_distr上的主題分布,topic_tokentopic_model.visualize_approximate_distri圖3-12.BERTopic中提供了廣泛的可視化選項。如圖3-12所示,輸出表明文檔在一定程度上包含多個主題。這種分化功能允許我們對生成的主題進行廣泛的概述其中如圖3-13所示。BERTopic中提供了廣泛的可視化選項。圖3-14.在2D空間中表示的主題的主題間距離圖。我們只可視化了一部分主題,因為顯示所有300個主題會導致相當混亂的可視化。此外沒有傳遞“abstracts”,而是傳遞了“titles”,因為當鼠標懸停在文檔上時,我們只想查看每篇論最后,我們可以使用visualize_barchart創建如圖3-16所示。前8個主題的前5個關鍵詞。表示模型如圖3-17所示。在應用c-TFIDF權重之后,可以使用各在本節中,這些單詞的初始排名可以被視為“對于前10個主題,顯示兩種模型之間主題表示的差異og_words=“|“.join(lisc-TF-IDF生成的主題不考慮主題中單詞的bertopic.representation_model.()KeyBERT啟發的方法。在其最基本的形式中,KeyBER將文檔中的單詞嵌入與文檔嵌入進行比較,以在BERTopic中,我們希望在主題級別而不是西如圖3-18所示,KeyBERTInspired使用c-TF代表性文檔,方法是每個主題隨機抽取500個文檔,計算它們的c-TF-IDF值,并找到最具代表性的文檔。這些文檔被frombertopic.representationimportKeyBERTInspired#更新我們的主題表示new_topic_model.update_主題:2總結|摘要|總結|抽象|extractive-->觀點-->情感|方面|方面|方面級|c-TF-IDF不區分它認為重要的詞的類型無論管道,模型和部署選項。更具體地說,我們frombertopic.representa#顯示主題差異topic_differs(topic主題:8方面|情緒|Absa|基于方面的|主題:9個解釋|解釋|理由|理由|可解使用c-TF-IDF,結果關鍵字中可能有很多“cars”這樣的詞本質上是一樣的。換句話說,我們希望所產生的主題具有足夠的多樣性,盡可能少的重復。(圖3-20)), vectors-->嵌入|相似性|向量|word2vec主題:8方面|情緒|Absa|基于方面的|文本生成BERTopic中不使用我們在第三十章中詳細可以決定主題是關于什么的。在BERTopicc-TF-IDF表示來選擇的。然后提取“[KEYWORDS]“標記進行引用。這些關鍵字也可以幸運的是,與大多數大型語言模型一樣,我T5系列生成模型之一。這些模型的有趣之處在BERTopic允許使用這樣的模型來生成主題標簽。我們frombertopic.representationimpfrombertopic.representationimpmodel='gorepresentation_model=主題:0主題:0演講|ASR|識別|聲學|enfrombertopic.representationimfrombertopic.representationimd主題:主題:0演講|ASR|識別|聲學|en主題:主題:3parsing|解析器|依賴|AMR|解析器-主題:主題:4hate|進攻|講話|檢測|有毒的-話題:話題:6性別|偏置|偏見|去偏|公平-標題:標題:7ner|命名|實體|識別|嵌套-->`delay_in_seconds`參數用于在frombertopic.representationim主題:主題:0演講|ASR|識別|聲學|en主題:主題:3parsing|解析器|依賴|AMR|解析器-主題:主題:4hate|進攻|講話|檢測|有毒的-話題:話題:6性別|偏置|偏見|去偏|公平-標題:標題:7ner|命名|實體|識別|嵌套-->得注意的是,LangChain將語言模型連數據庫上應用ChatGPT由于我們希望最大限度地減少Lan信息量,因此將最具代表性的文檔傳遞給包。然后,我LangChain支持的語言模型來提取主題。下面的示例演示fromfromlangchain.chains.question_answeringimportload_qchain=load_qa_chai#顯示主題差異topic_differences(topic_主題:主題:0演講|ASR|識別|聲學|en主題:主題:3parsing|解析器|依賴|AMR|解析器-主題:主題:4hate|進攻|講話|檢測|有毒-話題:6性別|偏置|偏見|去偏|公平-標題:7ner|命名|實體|識別|嵌套-->主題建模變化,(第4章令牌和令牌嵌入給早期發行版讀者的說明任務,如命名實體識別。在本章中,我們將著名的word2vec嵌入方法,并了解它如LLM代幣化標記器如何準備語言模型的輸入接下來的代碼塊顯示了defgenermodel_name=“openchat/openchat”)tokenizer處理輸入提示,并在變量input_ids中返回模型所需標記(字符,單詞或單詞的一部分)的唯一ID。這些I如圖4-3所示標記器處理輸入提示,并將實際輸入準備到語言模如果我們想檢查這些ID,我們可以使用toke))M.它..第一個標記是ID為#1的標記,即s>,這是一個指示文本開.一些標記是完整的單詞(例如,寫,一封,電子郵件).請注意空格字符沒有自己的標記。相反,部分標記(如'izing'和'iEncoding(簡稱BPE,廣泛用于GPT模型),WordP如圖4-4。令牌化器還用于通過將輸出令牌ID轉換為與該ID相單詞與子字與角色與字節令牌字記號這種方法在Word2Vec等早期方法中法處理進入數據集的新詞。它還產生了一個詞匯表,該詞匯表具有許多標記,它們之間的差異最小(例如,道歉,道歉者。后一個挑戰通過子詞標記化來解決,正如我們所看到的,它有一個用于“道),子字令牌角色令牌了對序列的其余部分進行建模之外,還需要對信息進行建模以拼出“p-l-a-y”。字節令牌ByT5:使用預訓練的字節到字節模型走向無令牌的未比較經過訓練的LLM令牌化器tokenization方法,我們用來初tokenizer訓練的數據集。讓我們比較和對比一些實際的,u堩蟠這將使我們能夠看到每個tokenizer如何.資本化.英語以外的其他語言.數字和數字讓我們從較老的tokenizer到較新的tokenizer,看看它們如何對文本進行tokenizer,以及這可能對語言模型有什么影響。我們將對文本進行“[UNK]”“sep_token”:“[SEP]”“cls_token”:“[CLS]”“mask_token”:對于BERTtokenizer的未封裝(更.換行符消失了,這使得模型對換行符中編碼的信息視而不見聊天記錄.所有文字都是小寫的.單詞“capitalization”被編碼為兩個子標記capital##izatio##字符用于指示此標記是連接到它前面的標記的部.表情符號和漢字消失了,取而代之的是[UNK]特殊令牌,表示“.注意“CAPITALIZATION”現在如何表示為八個標記:CA##PI.兩個BERTtokenizer都將輸入包裝在一個起始[CLS]token和一個[SEP]token中。[CLS]和[SEP]是用于標記化方法:BPE,在NeuralMachineTranslationof現在,每個字符都表示為多個令牌。雖然我們看到這些標記被打印為字符,但它們實際上代表不同的標記。例如,該表情符號被分解為令牌ID為8582、236和113的令牌。標記器成功地從這些標記重建原始字符。我們可以看到,通過打印tokenizer.decode([8582,236,113]),它將輸出tokenizer.decode([8582,236,),),示為三個標記(編號220最后一個空格是結束引號字符標空白字符的意義是什么?這些對于理解或生成代碼的模型很續空格字符的模型可以說是更適合Python代碼數據集。雖然模型可以將其表示記,但這確實使建模變得更加困難,因為模型需要跟蹤縮進級別。這是一個標記化方法:SentencePiece,在SentenceP.沒有換行或空白標記,這將使模型處理代碼變得具有挑戰性“兩個標簽:“兩個標簽:”".GPT-4標記器將四個空格表示為單個標記。事.python關鍵字elif在GPT-4中有自己的標記。這一點和前一點.GPT-4標記器使用更少的標記來表示大多數單詞。這里的例子'CAPITALIZATION'(兩個令牌對四個)“文件名>"tokenizer還包括一堆特殊的令牌,以便在代碼上執行得更好“issue_start>”“jupyte>”四個空格:““兩個制表符:“.與GPT-4類似,它將空白列表編碼為單個.到目前為止,我們看到的每個人的一個主要區別是每個數字都被分配在《卡拉狄加:科學的大型語言模型》中描22英語和意大利語英語和資本化英語和資本化英文和大寫<s>EnglishandCAPITALIZATION2-70b-chat-hf令牌化器屬性但是是什么決定了他們的代幣化行為呢?有三器如何分解文本:分詞方法、初始化參數和我WordPiece和SentencePiece是一些比較流行的方法。這些在選擇了標記化方法之后,LLM設計者需要詞匯量特殊卡圖.填充令牌牌.掩蔽令牌注的問題的域,正如我們在Galactica的工作>和[資本化都轉換成小寫嗎?(Name大寫通常攜帶有?)有些模型同時發布了cased和uncased版本(比如Bert據集而有所不同(甚至在我們開始模型訓練方法通過優化詞匯表來表示特定的數據集。):):):《NaturalLanguageProcessingwithT一種語言模型為其標記器的詞匯保持嵌入圖4-6.語言模型在其分詞器中保存與每個標記相關聯的用語言模型創建上下文化的詞嵌入),在前一段中提到的文本應用程序之外,這些情fromfromt

溫馨提示

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

評論

0/150

提交評論