
發布
注冊
/
登錄Transformers預訓練模型的案例
用于圖像分類的頂級預訓練模型
亞歷克斯網
概述:AlexNet 由 Alex Krizhevsky 開發,是最早普及 CNN 在圖像分類中的使用的深度學習模型之一。
主要特點:
具有 8 層的簡單架構。
ReLU 激活函數和 dropout 正則化。
應用:通用圖像分類和歷史基準。
10. 視覺變形金剛 (ViT)
概述:Vision Transformers 由 Google 開發,將最初為 NLP 設計的 Transformer 架構應用于圖像分類。
主要特點:
Transformer 編碼器架構。
使用大型數據集和計算資源進行良好擴展。
應用:一般圖像分類和大規模視覺任務。
用于圖像分類的預訓練模型的優勢
減少訓練時間:預訓練模型顯著縮短了訓練時間。由于它們已經在大型數據集上進行了訓練,因此只需要針對特定任務進行微調。這種效率使開發人員能夠更快地部署模型。
提高準確性:這些模型已經在大量數據上進行了訓練,使它們能夠很好地泛化。因此,與從頭開始訓練的模型相比,它們通常在各種任務上實現更高的準確性。這將產生更可靠的圖像分類結果。
資源效率:使用預先訓練的模型可以減少對大型數據集和計算能力的需求。與訓練新模型相比,微調預訓練模型所需的資源更少,因此資源有限的組織更容易使用它。
用于圖像分類的預訓練模型的挑戰
適應性:微調預訓練模型以適應特定任務可能很復雜。并非所有模型都能很好地適應所有任務,有時需要進行大量調整才能實現最佳性能。
過擬合:存在過度擬合的風險,尤其是在對小型數據集進行微調時。
展開 閱讀理解回答問題(Question Answering)---一個更強的BERT預訓練模型
1 引言
在<Transformers之問題對答(Question Answering)>中, 使用了mrm8488/bert-multi-cased-finetuned-xquadv1數據集回答問題, 這個數據集是一個多語言預訓練模型: BERT(base-multilingual-cased) fine-tuned for multilingual Q&A. 并且使用了最簡單的管道pileline()調用方法. 就像我們已經看到的一樣, 這個模型得出的結果不理想, 因此本文探索了一個更高級的預訓練模型.
2 模型描述
本文的試驗模型采用了bert-large-uncased-whole-word-masking-finetuned-squad數據集作為問題回答模型。在默認狀態下, 這個模型保存在C:\Users\m\.cache\huggingface\transformers文件夾內. 該模型不區分字母的大小寫, 使用了屏蔽語言模擬masked language modeling (MLM) 目標對英語語言進行預訓練。可以在問題回答管道中使用它,或者使用它來輸出給定查詢和上下文的原始結果。BERT模型在BookCorpus上進行了預訓練,該數據集由11,038本未出版的書籍和英文維基百科組成(不包括列表、表格和標題)。
與其他BERT模型不同的是,這個模型使用了全詞屏蔽Whole Word Masking技術進行訓練。在這種情況下,一個詞所對應的所有標記(tokens)都會被一次性屏蔽掉, 而整體屏蔽率保持不變。訓練是相同的 -- 每個被屏蔽的WordPiece標記都是獨立預測的。在預訓練之后,這個模型在SQuAD數據集上用一個微調腳本進行了微調。
展開 巖石邊坡工程的數據挖掘(Data Mining)
3 相似性查詢
相似性查詢是數據挖掘的主要組成部分,主要使用的算法有:Doc2Vec, LSI, Flashtext和Transformer:
Doc2Vec Model---段落相似性查詢
語義相似模型(Doc2Vec)在雙語教學中的應用
使用WMD Similarity確定句子之間的相似度
使用Transformers確定句子之間的相似度
SentenceTransformers庫更新V2.0.0
聯合6種Transformers預訓練模型
一個快速的句子和段落相似查詢方法
通過Euclidean距離計算向量值來對句子相似度排序
基于文檔名稱的相似度查詢
4 摘要和關鍵字
摘要和關鍵字抽出主要使用了兩個算法:sumy和pyTextRank.
文本摘要生成的確定過程和隨機過程
PyTextRank---文本關鍵字(keywords)的自動取出
使用Trigram獲取文檔的中心思想
5 主題聚合
主題聚合使用了兩個算法:LDA和Transformer
LDA Topic Modeling(主題建模)
使用Transformers確定句子之間的相似度
6 生成新的句子
生成新的句子主要使用了馬爾可夫鏈
馬爾可夫鏈(Markov chain)隨機產生新的文檔
利用文本相似度聚類產生能夠再學習的新文檔
7 應用
目前,這個數據挖掘工作主要的應用領域包括雙語教學,產生新的論文主題以及生成論文內容等。
展開 BERTopic(V0.9.0)主題模擬技術
BERTopic默認的嵌入模型是sentence-transformers,也可以使用Spacy, Flair, Gensim, USE等嵌入模型。
(2) 聚類文檔(Cluster Documents)
用UMAP來降低嵌入的維度; 用HDBSCAN對減少的嵌入進行聚類,并創建語義相似的文件群。
(3) 創建主題表征(Create topic representation)
用c-TF-IDF提取和減少主題; 提高具有最大邊際相關性的詞匯的連貫性.
4 產生主題
為了便于比較,使用《主題模擬的藝術(The Art of Topic Modeling)---以Step-Path Failure為例》中的數據集,這是一個基于關鍵詞step-path failure的數據集,在那篇筆記中,采用Top2Vec庫進行了主題模擬,結果產生出兩個非常近似的主題, 其中最核心的關鍵詞是rockslides和fracture。
BERTopic默認的模型是paraphrase-MiniLM-L6-v2, 以前曾經使用過這個模型(聯合6種Transformers預訓練模型). 同樣的數據使用BERTopic產生出如下19個主題。
展開 
Transformers之問題對答(Question Answering)
1 引言
Transformers的環境配置非常麻煩, 盡管花了幾個小時試了各種方法, 但仍然沒有完全解決問題. 本文僅試驗了Transformers之問題對答(Question Answering), 其它功能還沒有測試. 在試驗之前, 檢查了每個模塊的安裝情況, 如下圖所示。
問題對答是信息檢索和自然語言處理NLP中的一項任務, 也是NLP中最難處理的一項內容, 該任務要求系統正確回答以人類自然語言提出的問題。在提取性問題解答方案中,通過提供一段文字,使用模型根據上下文來預測答案在段落中的位置。這是一項非常具有挑戰性的任務.
PyTextRank---文本關鍵字(keywords)的自動取出
使用Transformers確定句子之間的相似度
SentenceTransformers庫更新V2.0.0
聯合6種Transformers預訓練模型
2 模型簡介
盡管目前Question Answering模型共有307個,但本次測試使用的模型仍然是mrm8488/bert-multi-cased-finetuned-xquadv1. 該模型由谷歌創建,并在XQuAD之類的數據上進行了微調,用于多語言(11種不同的語言)的問答任務。BERT(base-multilingual-cased) fine-tuned for multilingual Q&A. 由于數據集基于SQuAD v1.1,所以數據中沒有無法回答的問題, 以便模型可以專注于跨語言的轉移。
3 調用方法
調用方法如下:
from transformers import pipeline
# pipeline模塊是一個抽象層,提供了簡單的API來執行各種任務。
展開 Top2Vec (V1.0.26)主題模擬代碼的改進
另外三種模型是:
universal-sentence-encoder (USE)
universal-sentence-encoder-multilingual (USEM)
distiluse-base-multilingual-cased (DBMC)
USE和USEM依賴于Tensorflow,由于庫沖突的原因沒有安裝Tensorflow;DBMC依賴于sentence-transforers模型(聯合6種Transformers預訓練模型), 因此目前只使用Doc2Vec和DBMC兩個模型。Top2Vec原作者對各種模型的應用范圍給出了如下建議:對于大型數據集和具有非常獨特詞匯的數據集,Doc2Vec可以產生更好的結果。這將從頭開始訓練一個Doc2Vec 模型。這種方法是不分語言的。但是多種語言不會對應起來;使用USE運行速度會很快,因為它已經包含了預訓練好的高效模型,這個模型建議用于較小的數據集。對于英語或多語言模型的大型數據集,建議使用USEM模型; 對于多語言數據集和USEM未覆蓋的語言,建議使用DBMC模型,不過DBMC的運行速度比DBMC的運行速度要慢很多。在目前我們自己數據集的測試中,發現DBMC得出的結果比Doc2Vec的結果好,不過Doc2Vec仍然可以得出一些DBMC沒有的結果,因此把這兩個模型聯合在一起,同時運行。
2.3 產生bigram
默認的Top2Vec只能產生單個詞匯,在實際項目中,生成bigram更有意義(使用Trigram獲取文檔的中心思想)。因此在代碼中使用Phraser做了改進。這個改進對Doc2Vec和DBMC都適用, 代碼中所有涉及詞匯的部分假如有的化都以短語出現。下面的詞云顯示得出的結果不再是單個詞匯而是短語。
展開 生成摘要(Summarization)的新方法
在初始階段,我們使用的算法主要是基于文本簡單的詞頻統計《文本摘要生成的確定過程和隨機過程》, 后來使用的算法《PyTextRank---文本關鍵字(keywords)的自動取出》《聯合6種Transformers預訓練模型》開始朝著大規模的預訓練模型發展。本文繼續探索Transformers在生成摘要中的應用。
2 虛擬環境
起初比較懶得動手,把所有的庫都安裝在默認的根目錄下,但隨著安裝庫的不斷增加,各種庫之間的模塊開始發生沖突。因此還的按照規矩來,建立虛擬環境。建立虛擬環境有兩種方法:一種是手工建立,這種方法比較隨意,可以建立在硬盤中的任何位置,缺點是每次進入環境時都必須手動輸入命令;另一種是在Anaconda中建立,可以直接跳入到虛擬環境中,缺點是虛擬環境的位置已經被固定(C:\Users\Administrator\anaconda3\envs\tfs4),而且每次必須首先打開Anaconda,不過這個操作過程應該可以用一個cmd命令行來簡化,目前我還懶得動手寫。
Transformers的虛擬環境名為tfs4。主要模塊安裝了截至2021/7/24的最新版本,關鍵庫如下:
Transformers V4.9.0
Torch V1.9.0
Spacy V3.1.1
pytextrank 3.2.0
Spyder V5.0.5
Python 3.8.10
3 管道(Pipeline)方法
Transformers提供了許多管道(Pipeline)用來簡化操作。在《Transformers之問題對答(Question Answering)》中,使用了"question-answering"管道進行回答問題。
展開 BERT模型的應用回顧(階段性總結)
1 引言
BERT(Bidirectional Encoder Representations from Transformers)是一個以自監督方式在大型英語數據語料庫上預訓練的transformers模型。Transformers架構在論文《 Attention is All You Need 注意力是你所需要的》提出,其中編碼器(encoder)對輸入文本進行編碼,解碼器(decoder)對編碼進行處理,以理解序列背后的上下文信息。堆棧中的每個編碼器和解碼器都使用一個注意力機制,將每個輸入與其他輸入一起處理,以權衡它們之間的相關性,并在解碼器的幫助下生成輸出序列。注意力機制能夠動態地突出和理解輸入文本的特征。
BERT模型基于Transformers架構,在BookCorpus上進行了預訓練,該數據集由11,038本沒有出版的書籍和英文維基百科組成(不包括列表、表格和標題)。BERT的預訓練有兩個目標: (1) Masked Language Modeling (MLM): 掩蔽語言模擬(MLM)---取一個句子,模型隨機掩蔽輸入中15%的單詞,然后通過模型運行整個掩蔽的句子預測掩蔽的單詞。這與傳統的遞歸神經網絡RNN不同,RNN通常是一個接一個地看單詞,或者與自回歸模型GPT不同,GPT在內部屏蔽未來的標記, 而MLM允許模型學習句子的雙向表示,這樣的訓練為需要雙向語境的下游任務,如SQuAD奠定了堅實基礎。程序為 geotech-fill-mask.py, 代表性例子:完形填空---遮蔽式語言模擬(Masked Language Modeling). (2) Next Sentence Prediction (NSP): 下一句預測(NSP)---模型在預訓練期間將兩個被掩蓋的句子連接起來作為輸入。
展開 英偉達、AMD:確認對華斷供高端GPU芯片
該芯片由 540 億個晶體管組成,打包了第三代 Tensor 核心,并具有針對稀疏矩陣運算的加速功能,對于 AI 推理和訓練來說特別有用。此外,每個 GPU 可以劃分為多個實例,執行不同的推理任務,采用 Nvidia NVLink 互連技術可以將多個 A100 GPU 用于更大的 AI 推理工作負載。
然而,這些在 H100 出現之后顯得略有不足了。在今年春季的發布會中,英偉達CEO黃仁勛發布了面向高性能計算(HPC)和數據中心的下一代 Hopper 架構,搭載新一代芯片的首款加速卡被命名為 H100,它就是 A100 的替代者。
H100 是一款針對大模型專門優化過的芯片,使用臺積電 5nm 定制版本制程(4N)打造,單塊芯片包含 800 億晶體管。同時也是全球首款 PCI-E 5 和 HBM 3 顯卡,一塊 H100 的 IO 帶寬就是 40 terabyte 每秒。
Transformer 類預訓練模型是當前 AI 領域最熱門的方向,英偉達以此為目標專門優化 H100 的設計,提出了 Transformer Engine,集合了新的 Tensor Core、FP8 和 FP16 精度計算,以及 Transformer 神經網絡動態處理能力,可以將此類機器學習模型的訓練時間從幾周縮短到幾天。
針對服務器應用,H100 也可以虛擬化為 7 個用戶共同使用,每個用戶獲得的算力相當于兩塊全功率的 T4 GPU。此外,H100 還實現了業界首個基于 GPU 的機密計算。
基于 Hopper 架構的 H100,英偉達還推出了機器學習工作站、超級計算機等一系列產品。8 塊 H100 和 4 個 NVLink 結合組成一個巨型 GPU——DGX H100,一共有 6400 億晶體管,AI 算力 32 petaflops,HBM3 內存容量高達 640G。
展開