精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
擁抱臉部 LLM 工具的完整初學者指南

Hugging Face 是一個人工智能研究實驗室和中心,建立了一個由學者、研究人員和愛好者組成的社區。 在很短的時間內,Hugging Face 就在人工智能領域占據了重要地位。 科技巨頭 包括谷歌、亞馬遜和英偉達在內的人工智能初創公司 Hugging Face 都進行了大量投資,使其估值大幅提升 的美元4.5億元.

在本指南中,我們將介紹 Transformer、LLM 以及 Hugging Face 庫如何在培育開源 AI 社區方面發揮重要作用。 我們還將通過 Python 示例來介紹 Hugging Face 的基本功能,包括管道、數據集、模型等。

NLP 中的 Transformer

2017年,康奈爾大學發表了一篇有影響力的論文,介紹了 變形金剛。 這些是 NLP 中使用的深度學習模型。 這一發現推動了大型語言模型的發展,例如 ChatGPT.

大型語言模型或 LLM 是使用 Transformer 來理解和創建類人文本的人工智能系統。 然而,創建這些模型的成本很高,通常需要數百萬美元,這限制了大公司的使用。

擁抱臉,始于 2016 年,旨在讓每個人都能接觸到 NLP 模型。 盡管是一家商業公司,但它提供了一系列開源資源,幫助人們和組織以經濟實惠的方式構建和使用變壓器模型。 機器識別 是關于教計算機通過識別模式來執行任務,而深度學習(機器學習的一個子集)創建了一個獨立學習的網絡。 Transformer 是一種深度學習架構,可以有效、靈活地使用輸入數據,由于訓練時間要求較少,使其成為構建大型語言模型的流行選擇。

擁抱臉部如何促進 NLP 和 LLM 項目

Hugging Face 通過提供以下功能,讓與法學碩士的合作變得更加簡單:

  1. 一系列預先訓練的模型可供選擇。
  2. 用于根據您的特定需求微調這些模型的工具和示例。
  3. 適用于各種環境的輕松部署選項。

通過 Hugging Face 可以獲得的一個很棒的資源是 打開 LLM 排行榜。 作為一個綜合平臺,它系統地監控、排名和衡量一系列大型語言模型 (LLM) 和聊天機器人的效率,為開源領域的進步提供敏銳的分析

LLM 基準通過四個指標來衡量模型:

  • AI2推理挑戰賽 (25 個鏡頭)——圍繞基礎科學教學大綱的一系列問題。
  • 海拉斯瓦格 (10 次)——一項常識性推理測試,雖然對人類來說很簡單,但這個指標對于尖端模型來說是一個重大挑戰。
  • 百萬美元 (5 個鏡頭)——涉及文本模型在 57 個不同領域的熟練程度的多方面評估,包括基礎數學、法律和計算機科學等。
  • 真實質量保證 (0-shot) — 一種工具,用于確定模型回顯經常遇到的在線錯誤信息的傾向。

基準使用“25-shot”、“10-shot”、“5-shot”和“0-shot”等術語來描述,表示模型在評估過程中給出的提示示例的數量衡量其在各個領域的表現和推理能力。 在“少樣本”范式中,為模型提供了少量示例來幫助指導他們的響應,而在“零樣本”設置中,模型沒有收到任何示例,并且必須僅依靠其預先存在的知識來做出適當的響應。

擁抱臉的組成部分

管道

'管道' 是 Hugging Face 變壓器庫的一部分,該功能有助于輕松利用 Hugging Face 存儲庫中提供的預訓練模型。 它為一系列任務提供了直觀的 API,包括情感分析、問答、掩碼語言建模、命名實體識別和摘要。

Pipelines 集成了三個中央 Hugging Face 組件:

  1. 分詞器:通過將文本轉換為模型可以理解的格式來為模型準備文本。
  2. 型號:這是管道的核心,根據預處理的輸入進行實際預測。
  3. 后處理器:將模型的原始預測轉換為人類可讀的形式。

這些管道不僅減少了大量的編碼,還提供了一個用戶友好的界面來完成各種 NLP 任務。

使用 Hugging Face 庫的 Transformer 應用程序

Hugging Face 庫的一大亮點是 Transformers 庫,它通過將模型與必要的預處理和后處理階段連接起來,簡化了 NLP 任務,從而簡化了分析過程。 要安裝并導入該庫,請使用以下命令:

1
2
pip install -q transformers
from transformers import pipeline

完成此操作后,您可以從情感分析開始執行 NLP 任務,將文本分類為積極或消極情緒。 該庫強大的 pipeline() 函數充當包含其他管道的中心,并促進音頻、視覺和多模態領域中特定于任務的應用程序。

實際應用

文字分類

使用 Hugging Face 的 pipeline() 函數,文本分類變得輕而易舉。 以下是啟動文本分類管道的方法:

1
classifier = pipeline('text-classification')

如需親身體驗,請將字符串或字符串列表輸入到管道中以獲得預測,可以使用 Python 的 Pandas 庫將其直觀地可視化。 下面是一個 Python 片段演示了這一點:

1
2
3
4
5
6
7
8
9
sentences = ['I am thrilled to introduce you to the wonderful world of AI.',
'Hopefully, it won't disappoint you.']
# Get classification results for each sentence in the list
results = classifier(sentences)
# Loop through each result and print the label and score
for i, result in enumerate(results):
print(f'Result {i + 1}:')
print(f' Label: {result['label']}')
print(f' Score: {round(result['score'], 3)}\n')

輸出

1
2
3
4
5
6
Result 1:
Label: POSITIVE
Score: 1.0
Result 2:
Label: POSITIVE
Score: 0.996

命名實體識別(NER)

NER 對于從文本中提取稱為“命名實體”的現實世界對象至關重要。 利用 NER 管道有效識別這些實體:

1
2
3
4
ner_tagger = pipeline('ner', aggregation_strategy='simple')
text = 'Elon Musk is the CEO of SpaceX.'
outputs = ner_tagger(text)
print(outputs)

輸出

1
Elon Musk: PER, SpaceX: ORG

問題回答

問答涉及從給定上下文中提取特定問題的精確答案。 初始化問答管道并輸入您的問題和上下文以獲得所需的答案:

1
2
3
4
5
reader = pipeline('question-answering')
text = 'Hugging Face is a company creating tools for NLP. It is based in New York and was founded in 2016.'
question = 'Where is Hugging Face based?'
outputs = reader(question=question, context=text)
print(outputs)

輸出

1
{'score': 0.998, 'start': 51, 'end': 60, 'answer': 'New York'}

除了文本分類、NER 和問題回答之外,Hugging Face 的管道功能還為不同的任務提供了一系列預構建的管道。 以下是可用任務子集的詳細信息:

表:擁抱面部管道任務

任務產品描述管道標識符
文本生成根據給定的提示生成文本管道(任務=“文本生成”)
概要總結冗長的文本或文檔管道(任務=“總結”)
影像分類標記輸入圖像管道(任務=“圖像分類”)
音頻分類對音頻數據進行分類管道(任務=“音頻分類”)
視覺問答使用圖像和問題回答查詢管道(任務=“vqa”)

有關詳細說明和更多任務,請參閱 Hugging Face 網站上的管道文檔.

為什么 Hugging Face 將重點轉向 Rust

擁抱臉部 Safetensors 和 tokenizer GitHub 頁面

Hugging Face (HF) 生態系統開始在其庫中使用 Rust,例如安全傳感器和標記器。

Hugging Face 最近還發布了一個新的機器學習框架,名為 蠟燭。 與使用 Python 的傳統框架不同,Candle 是使用 Rust 構建的。 使用 Rust 的目標是在支持 GPU 操作的同時增強性能并簡化用戶體驗。

Candle 的主要目標是促進無服務器推理,使輕量級二進制文件的部署成為可能,并將 Python 從生產工作負載中刪除,因為 Python 有時會因其開銷而減慢進程。 該框架是一種解決方案,旨在克服 PyTorch 等完整機器學習框架在集群上創建實例時體積大且速度慢的問題。

讓我們探討一下為什么 Rust 比 Python 更受歡迎。

  1. 速度與性能 – Rust 以其令人難以置信的速度而聞名,其性能優于傳統上用于機器學習框架的 Python。 Python 的性能有時會因其全局解釋器鎖(GIL)而降低,但 Rust 不會面臨這個問題,它承諾更快地執行任務,并隨后提高實現它的項目的性能。
  2. 安全性 – Rust 在沒有垃圾收集器的情況下提供內存安全保證,這對于確保并發系統的安全至關重要。 這在安全張量等領域發揮著至關重要的作用,在這些領域中,處理數據結構的安全性是優先考慮的。

安全張量

安全張量 受益于 Rust 的速度和安全特性。 Safetensors 涉及張量(一個復雜的數學實體)的操作,Rust 確保操作不僅快速,而且安全,避免內存處理不當可能引起的常見錯誤和安全問題。

分詞器

分詞器 處理將句子或短語分解成更小的單元,例如單詞或術語。 Rust 通過加快執行時間來幫助這個過程,確保標記化過程不僅準確而且快速,從而提高了效率 自然語言處理 任務。

Hugging Face 標記器的核心是子詞標記化的概念,在單詞和字符級標記化之間取得微妙的平衡,以優化信息保留和詞匯量。 它通過創建子標記(例如“##ing”和“##ed”)來發揮作用,保留語義豐富性,同時避免詞匯量臃腫。

子詞標記化涉及一個訓練階段,以確定字符和單詞級標記化之間最有效的平衡。 它超越了單純的前綴和后綴規則,需要對大量文本語料庫中的語言模式進行全面分析,以設計高效的子詞標記器。 生成的分詞器擅長通過將新詞分解為已知的子詞來處理新詞,從而保持高水平的語義理解。

代幣化組件

標記化器庫將標記化過程分為幾個步驟,每個步驟都解決標記化的不同方面。 讓我們深入研究這些組件:

  • 歸一化器:對輸入字符串進行初始轉換,應用必要的調整,例如小寫轉換、Unicode 規范化和剝離。
  • 預分詞器:負責將輸入字符串分段為預分段,根據預定義的規則(例如空間劃分)確定分段。
  • 型號:監督子代幣的發現和創建,適應輸入數據的具體情況并提供培訓功能。
  • 后處理器:通過添加 [CLS] 和 [SEP] 等標記,增強構造功能,以促進與許多基于 Transformer 的模型(例如 BERT)的兼容性。

要開始使用 Hugging Face 標記器,請使用以下命令安裝庫 pip install tokenizers 并將其導入到您的 Python 環境中。 該庫可以在很短的時間內標記大量文本,從而為模型訓練等更密集的任務節省寶貴的計算資源。

分詞器庫使用 它繼承了 C++ 的語法相似性,同時在編程語言設計中引入了新穎的概念。 與 Python 綁定相結合,它可確保您在 Python 環境中工作時享受較低級語言的性能。

數據集

數據集是人工智能項目的基石。 Hugging Face 提供了各種各樣的數據集,適用于各種 NLP 任務等等。 為了有效地利用它們,了解加載和分析它們的過程至關重要。 下面是一個經過充分注釋的 Python 腳本,演示了如何探索 Hugging Face 上可用的數據集:

1
2
3
4
5
from datasets import load_dataset
# Load a dataset
dataset = load_dataset('squad')
# Display the first entry
print(dataset[0])

該腳本使用 load_dataset 函數加載 SQuAD 數據集,這是問答任務的常用選擇。

利用預先訓練的模型并將其整合在一起

預訓練模型構成了許多深度學習項目的支柱,使研究人員和開發人員能夠快速啟動他們的計劃,而無需從頭開始。 Hugging Face 有助于探索各種預訓練模型,如下代碼所示:

1
2
3
4
5
6
from transformers import AutoModelForQuestionAnswering, AutoTokenizer
# Load the pre-trained model and tokenizer
model = AutoModelForQuestionAnswering.from_pretrained('bert-large-uncased-whole-word-masking-finetuned-squad')
tokenizer = AutoTokenizer.from_pretrained('bert-large-uncased-whole-word-masking-finetuned-squad')
# Display the model's architecture
print(model)

加載模型和分詞器后,我們現在可以繼續創建一個函數,該函數將一段文本和一個問題作為輸入,并返回從文本中提取的答案。 我們將利用分詞器將輸入文本和問題處理為與模型兼容的格式,然后將處理后的輸入輸入到模型中以獲得答案:

1
2
3
4
5
6
7
8
9
def get_answer(text, question):
    # Tokenize the input text and question
    inputs = tokenizer(question, text, return_tensors='pt', max_length=512, truncation=True)
    outputs = model(**inputs)
    # Get the start and end scores for the answer
    answer_start = torch.argmax(outputs.start_logits)
    answer_end = torch.argmax(outputs.end_logits) + 1
    answer = tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(inputs['input_ids'][0][answer_start:answer_end]))
    return answer

在代碼片段中,我們從 Transformers 包中導入必要的模塊,然后使用 from_pretrained 方法加載預訓練的模型及其相應的分詞器。 我們選擇在 SQuAD 數據集上微調的 BERT 模型。

讓我們看一下此函數的示例用例,其中我們有一段文本,我們希望從中提取問題的具體答案:

1
2
3
4
5
6
7
8
text = '''
The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks in the world. It was designed by Gustave Eiffel and completed in 1889. The tower stands at a height of 324 meters and was the tallest man-made structure in the world at the time of its completion.
'''
question = 'Who designed the Eiffel Tower?'
# Get the answer to the question
answer = get_answer(text, question)
print(f'The answer to the question is: {answer}')
# Output: The answer to the question is: Gustave Eiffel

在此腳本中,我們構建了一個 get_answer 函數,該函數接受文本和問題,對它們進行適當的標記,并利用預先訓練的 BERT 模型從文本中提取答案。 它演示了 Hugging Face 的 Transformers 庫的實際應用,以構建一個簡單但功能強大的問答系統。 為了更好地掌握這些概念,建議使用 谷歌 Colab 筆記本.

結論

通過其廣泛的開源工具、預先訓練的模型和用戶友好的管道,它使經驗豐富的專業人士和新手能夠以輕松和理解的方式深入探索廣闊的人工智能世界。 此外,由于 Rust 的速度和安全特性,集成 Rust 的舉措突顯了 Hugging Face 致力于促進創新,同時確保人工智能應用的效率和安全性的承諾。 Hugging Face 的變革性工作不僅使高級人工智能工具的使用變得民主化,而且還為人工智能領域的學習和發展營造了一個協作環境,促進了人工智能觸手可及的未來。

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
HuggingGPT:借力 LLM 使用 Hugging Face 模型來解決復雜的 AI 任務
AI技術實操|開源Transformer模型在NLP文本中的應用
對Hugging Face開源模型精準投毒!LLM切腦后變身PoisonGPT,用虛假事實洗腦60億人
大語言模型: 新的摩爾定律?
BERT、GPT-2這些頂尖工具到底該怎么用到我的模型里?
hugging face官網,huggingface是一個專注于聊天機器人服務的“GitHub”
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 成武县| 西丰县| 驻马店市| 青州市| 于田县| 正蓝旗| 旬邑县| 温州市| 渭南市| 长治县| 根河市| 宜州市| 海伦市| 瓦房店市| 前郭尔| 武宁县| 阜康市| 南康市| 松阳县| 当阳市| 利辛县| 泸定县| 灌南县| 佳木斯市| 哈巴河县| 桐庐县| 班玛县| 博兴县| 汨罗市| 黎城县| 策勒县| 乌恰县| 陆良县| 洞头县| 太仆寺旗| 泸溪县| 绥江县| 德钦县| 泾川县| 香河县| 黑龙江省|