Hugging Face 是一個(gè)人工智能研究實(shí)驗(yàn)室和中心,建立了一個(gè)由學(xué)者,、研究人員和愛好者組成的社區(qū),。 在很短的時(shí)間內(nèi),Hugging Face 就在人工智能領(lǐng)域占據(jù)了重要地位,。 科技巨頭 包括谷歌,、亞馬遜和英偉達(dá)在內(nèi)的人工智能初創(chuàng)公司 Hugging Face 都進(jìn)行了大量投資,,使其估值大幅提升 的美元4.5億元. 在本指南中,我們將介紹 Transformer,、LLM 以及 Hugging Face 庫如何在培育開源 AI 社區(qū)方面發(fā)揮重要作用,。 我們還將通過 Python 示例來介紹 Hugging Face 的基本功能,包括管道,、數(shù)據(jù)集,、模型等。 NLP 中的 Transformer2017年,,康奈爾大學(xué)發(fā)表了一篇有影響力的論文,,介紹了 變形金剛。 這些是 NLP 中使用的深度學(xué)習(xí)模型,。 這一發(fā)現(xiàn)推動(dòng)了大型語言模型的發(fā)展,,例如 ChatGPT. 大型語言模型或 LLM 是使用 Transformer 來理解和創(chuàng)建類人文本的人工智能系統(tǒng)。 然而,,創(chuàng)建這些模型的成本很高,,通常需要數(shù)百萬美元,這限制了大公司的使用,。 擁抱臉,,始于 2016 年,旨在讓每個(gè)人都能接觸到 NLP 模型,。 盡管是一家商業(yè)公司,,但它提供了一系列開源資源,幫助人們和組織以經(jīng)濟(jì)實(shí)惠的方式構(gòu)建和使用變壓器模型,。 機(jī)器識(shí)別 是關(guān)于教計(jì)算機(jī)通過識(shí)別模式來執(zhí)行任務(wù),而深度學(xué)習(xí)(機(jī)器學(xué)習(xí)的一個(gè)子集)創(chuàng)建了一個(gè)獨(dú)立學(xué)習(xí)的網(wǎng)絡(luò),。 Transformer 是一種深度學(xué)習(xí)架構(gòu),,可以有效、靈活地使用輸入數(shù)據(jù),,由于訓(xùn)練時(shí)間要求較少,,使其成為構(gòu)建大型語言模型的流行選擇。 擁抱臉部如何促進(jìn) NLP 和 LLM 項(xiàng)目Hugging Face 通過提供以下功能,讓與法學(xué)碩士的合作變得更加簡(jiǎn)單:
通過 Hugging Face 可以獲得的一個(gè)很棒的資源是 打開 LLM 排行榜。 作為一個(gè)綜合平臺(tái),,它系統(tǒng)地監(jiān)控,、排名和衡量一系列大型語言模型 (LLM) 和聊天機(jī)器人的效率,為開源領(lǐng)域的進(jìn)步提供敏銳的分析 LLM 基準(zhǔn)通過四個(gè)指標(biāo)來衡量模型:
基準(zhǔn)使用“25-shot”,、“10-shot”,、“5-shot”和“0-shot”等術(shù)語來描述,表示模型在評(píng)估過程中給出的提示示例的數(shù)量衡量其在各個(gè)領(lǐng)域的表現(xiàn)和推理能力,。 在“少樣本”范式中,,為模型提供了少量示例來幫助指導(dǎo)他們的響應(yīng),而在“零樣本”設(shè)置中,,模型沒有收到任何示例,,并且必須僅依靠其預(yù)先存在的知識(shí)來做出適當(dāng)?shù)捻憫?yīng)。 擁抱臉的組成部分管道'管道' 是 Hugging Face 變壓器庫的一部分,,該功能有助于輕松利用 Hugging Face 存儲(chǔ)庫中提供的預(yù)訓(xùn)練模型,。 它為一系列任務(wù)提供了直觀的 API,包括情感分析,、問答,、掩碼語言建模、命名實(shí)體識(shí)別和摘要,。 Pipelines 集成了三個(gè)中央 Hugging Face 組件:
這些管道不僅減少了大量的編碼,還提供了一個(gè)用戶友好的界面來完成各種 NLP 任務(wù),。 使用 Hugging Face 庫的 Transformer 應(yīng)用程序Hugging Face 庫的一大亮點(diǎn)是 Transformers 庫,,它通過將模型與必要的預(yù)處理和后處理階段連接起來,簡(jiǎn)化了 NLP 任務(wù),,從而簡(jiǎn)化了分析過程,。 要安裝并導(dǎo)入該庫,,請(qǐng)使用以下命令:
完成此操作后,您可以從情感分析開始執(zhí)行 NLP 任務(wù),,將文本分類為積極或消極情緒,。 該庫強(qiáng)大的 pipeline() 函數(shù)充當(dāng)包含其他管道的中心,并促進(jìn)音頻,、視覺和多模態(tài)領(lǐng)域中特定于任務(wù)的應(yīng)用程序,。 實(shí)際應(yīng)用文字分類使用 Hugging Face 的 pipeline() 函數(shù),文本分類變得輕而易舉,。 以下是啟動(dòng)文本分類管道的方法:
如需親身體驗(yàn),,請(qǐng)將字符串或字符串列表輸入到管道中以獲得預(yù)測(cè),可以使用 Python 的 Pandas 庫將其直觀地可視化,。 下面是一個(gè) Python 片段演示了這一點(diǎn):
輸出
命名實(shí)體識(shí)別(NER)NER 對(duì)于從文本中提取稱為“命名實(shí)體”的現(xiàn)實(shí)世界對(duì)象至關(guān)重要,。 利用 NER 管道有效識(shí)別這些實(shí)體:
輸出
問題回答問答涉及從給定上下文中提取特定問題的精確答案。 初始化問答管道并輸入您的問題和上下文以獲得所需的答案:
輸出
除了文本分類,、NER 和問題回答之外,,Hugging Face 的管道功能還為不同的任務(wù)提供了一系列預(yù)構(gòu)建的管道。 以下是可用任務(wù)子集的詳細(xì)信息: 表:擁抱面部管道任務(wù)
有關(guān)詳細(xì)說明和更多任務(wù),,請(qǐng)參閱 Hugging Face 網(wǎng)站上的管道文檔. 為什么 Hugging Face 將重點(diǎn)轉(zhuǎn)向 RustHugging Face (HF) 生態(tài)系統(tǒng)開始在其庫中使用 Rust,,例如安全傳感器和標(biāo)記器。 Hugging Face 最近還發(fā)布了一個(gè)新的機(jī)器學(xué)習(xí)框架,,名為 蠟燭,。 與使用 Python 的傳統(tǒng)框架不同,Candle 是使用 Rust 構(gòu)建的,。 使用 Rust 的目標(biāo)是在支持 GPU 操作的同時(shí)增強(qiáng)性能并簡(jiǎn)化用戶體驗(yàn),。 Candle 的主要目標(biāo)是促進(jìn)無服務(wù)器推理,使輕量級(jí)二進(jìn)制文件的部署成為可能,,并將 Python 從生產(chǎn)工作負(fù)載中刪除,,因?yàn)?Python 有時(shí)會(huì)因其開銷而減慢進(jìn)程。 該框架是一種解決方案,,旨在克服 PyTorch 等完整機(jī)器學(xué)習(xí)框架在集群上創(chuàng)建實(shí)例時(shí)體積大且速度慢的問題。 讓我們探討一下為什么 Rust 比 Python 更受歡迎,。
安全張量安全張量 受益于 Rust 的速度和安全特性。 Safetensors 涉及張量(一個(gè)復(fù)雜的數(shù)學(xué)實(shí)體)的操作,,Rust 確保操作不僅快速,,而且安全,避免內(nèi)存處理不當(dāng)可能引起的常見錯(cuò)誤和安全問題,。 分詞器分詞器 處理將句子或短語分解成更小的單元,,例如單詞或術(shù)語。 Rust 通過加快執(zhí)行時(shí)間來幫助這個(gè)過程,,確保標(biāo)記化過程不僅準(zhǔn)確而且快速,,從而提高了效率 自然語言處理 任務(wù)。 Hugging Face 標(biāo)記器的核心是子詞標(biāo)記化的概念,,在單詞和字符級(jí)標(biāo)記化之間取得微妙的平衡,,以優(yōu)化信息保留和詞匯量。 它通過創(chuàng)建子標(biāo)記(例如“##ing”和“##ed”)來發(fā)揮作用,,保留語義豐富性,,同時(shí)避免詞匯量臃腫。 子詞標(biāo)記化涉及一個(gè)訓(xùn)練階段,,以確定字符和單詞級(jí)標(biāo)記化之間最有效的平衡,。 它超越了單純的前綴和后綴規(guī)則,需要對(duì)大量文本語料庫中的語言模式進(jìn)行全面分析,,以設(shè)計(jì)高效的子詞標(biāo)記器,。 生成的分詞器擅長(zhǎng)通過將新詞分解為已知的子詞來處理新詞,從而保持高水平的語義理解,。 代幣化組件標(biāo)記化器庫將標(biāo)記化過程分為幾個(gè)步驟,,每個(gè)步驟都解決標(biāo)記化的不同方面。 讓我們深入研究這些組件:
要開始使用 Hugging Face 標(biāo)記器,,請(qǐng)使用以下命令安裝庫 分詞器庫使用 銹 它繼承了 C++ 的語法相似性,同時(shí)在編程語言設(shè)計(jì)中引入了新穎的概念,。 與 Python 綁定相結(jié)合,,它可確保您在 Python 環(huán)境中工作時(shí)享受較低級(jí)語言的性能。 數(shù)據(jù)集數(shù)據(jù)集是人工智能項(xiàng)目的基石,。 Hugging Face 提供了各種各樣的數(shù)據(jù)集,,適用于各種 NLP 任務(wù)等等。 為了有效地利用它們,,了解加載和分析它們的過程至關(guān)重要,。 下面是一個(gè)經(jīng)過充分注釋的 Python 腳本,演示了如何探索 Hugging Face 上可用的數(shù)據(jù)集:
該腳本使用 load_dataset 函數(shù)加載 SQuAD 數(shù)據(jù)集,,這是問答任務(wù)的常用選擇,。 利用預(yù)先訓(xùn)練的模型并將其整合在一起預(yù)訓(xùn)練模型構(gòu)成了許多深度學(xué)習(xí)項(xiàng)目的支柱,使研究人員和開發(fā)人員能夠快速啟動(dòng)他們的計(jì)劃,,而無需從頭開始,。 Hugging Face 有助于探索各種預(yù)訓(xùn)練模型,如下代碼所示:
加載模型和分詞器后,,我們現(xiàn)在可以繼續(xù)創(chuàng)建一個(gè)函數(shù),,該函數(shù)將一段文本和一個(gè)問題作為輸入,并返回從文本中提取的答案,。 我們將利用分詞器將輸入文本和問題處理為與模型兼容的格式,,然后將處理后的輸入輸入到模型中以獲得答案:
在代碼片段中,我們從 Transformers 包中導(dǎo)入必要的模塊,,然后使用 from_pretrained 方法加載預(yù)訓(xùn)練的模型及其相應(yīng)的分詞器,。 我們選擇在 SQuAD 數(shù)據(jù)集上微調(diào)的 BERT 模型。 讓我們看一下此函數(shù)的示例用例,,其中我們有一段文本,,我們希望從中提取問題的具體答案:
在此腳本中,我們構(gòu)建了一個(gè) get_answer 函數(shù),,該函數(shù)接受文本和問題,,對(duì)它們進(jìn)行適當(dāng)?shù)臉?biāo)記,并利用預(yù)先訓(xùn)練的 BERT 模型從文本中提取答案,。 它演示了 Hugging Face 的 Transformers 庫的實(shí)際應(yīng)用,以構(gòu)建一個(gè)簡(jiǎn)單但功能強(qiáng)大的問答系統(tǒng),。 為了更好地掌握這些概念,,建議使用 谷歌 Colab 筆記本. 結(jié)論通過其廣泛的開源工具,、預(yù)先訓(xùn)練的模型和用戶友好的管道,它使經(jīng)驗(yàn)豐富的專業(yè)人士和新手能夠以輕松和理解的方式深入探索廣闊的人工智能世界,。 此外,,由于 Rust 的速度和安全特性,集成 Rust 的舉措突顯了 Hugging Face 致力于促進(jìn)創(chuàng)新,,同時(shí)確保人工智能應(yīng)用的效率和安全性的承諾,。 Hugging Face 的變革性工作不僅使高級(jí)人工智能工具的使用變得民主化,而且還為人工智能領(lǐng)域的學(xué)習(xí)和發(fā)展?fàn)I造了一個(gè)協(xié)作環(huán)境,,促進(jìn)了人工智能觸手可及的未來,。 |
|