Connect with us

Narzędzia AI 101

Kompletny przewodnik dla początkujących po narzędziach LLM Hugging Face

mm
HUGGING FACE - COMPLETE GUIDE

Hugging Face to laboratorium badawcze AI i centrum, które zbudowało społeczność naukowców, badaczy i entuzjastów. W krótkim czasie Hugging Face zdobyło znaczącą pozycję w przestrzeni AI. Giganci technologiczni, w tym Google, Amazon i Nvidia, wsparli startup AI Hugging Face znaczącymi inwestycjami, podnosząc jego wycenę do 4,5 miliarda dolarów. W tym przewodniku przedstawimy transformery, LLM oraz jak biblioteka Hugging Face odgrywa ważną rolę w rozwijaniu otwartej społeczności AI. Przejdziemy również przez kluczowe funkcje Hugging Face, włączając w to pipeline’y, zbiory danych, modele i więcej, z praktycznymi przykładami w Pythonie.

Transformery w NLP

W 2017 roku Cornell University opublikował wpływowy artykuł wprowadzający transformery. Są to modele uczenia głębokiego używane w NLP. To odkrycie napędziło rozwój dużych modeli językowych, takich jak ChatGPT. Duże modele językowe (LLM) to systemy AI, które używają transformerów do rozumienia i tworzenia tekstu przypominającego ludzki. Jednak tworzenie tych modeli jest kosztowne, często wymagając milionów dolarów, co ogranicza ich dostępność dla dużych firm. Hugging Face, rozpoczęte w 2016 roku, ma na celu uczynienie modeli NLP dostępnymi dla wszystkich. Mimo że jest to firma komercyjna, oferuje szereg otwartych zasobów pomagających ludziom i organizacjom w przystępnym budowaniu i używaniu modeli transformerowych. Uczenie maszynowe polega na uczeniu komputerów wykonywania zadań poprzez rozpoznawanie wzorców, podczas gdy uczenie głębokie, podzbiór uczenia maszynowego, tworzy sieć uczącą się samodzielnie. Transformery to rodzaj architektury uczenia głębokiego, która efektywnie i elastycznie wykorzystuje dane wejściowe, co czyni ją popularnym wyborem do budowy dużych modeli językowych ze względu na mniejsze wymagania czasowe treningu.

Jak Hugging Face ułatwia projekty NLP i LLM

Hugging face Ecosystem - Models, dataset, metrics, transformers, accelerate, tokenizers Hugging Face uprościło pracę z LLM, oferując:

  1. Różnorodność wstępnie wytrenowanych modeli do wyboru.
  2. Narzędzia i przykłady do dostrajania tych modeli do konkretnych potrzeb.
  3. Łatwe opcje wdrażania w różnych środowiskach.

Świetnym zasobem dostępnym przez Hugging Face jest Open LLM Leaderboard. Działając jako kompleksowa platforma, systematycznie monitoruje, rankinguje i mierzy efektywność spektrum dużych modeli językowych (LLM) i chatbotów, zapewniając wnikliwą analizę postępów w domenie open-source. Benchmarki LLM mierzą modele za pomocą czterech metryk:

  • AI2 Reasoning Challenge (25-shot) — seria pytań dotyczących podstawowego programu nauczania nauk ścisłych.
  • HellaSwag (10-shot) — test wnioskowania zdroworozsądkowego, który, choć prosty dla ludzi, stanowi znaczące wyzwanie dla najnowocześniejszych modeli.
  • MMLU (5-shot) — wieloaspektowa ocena dotykająca biegłości modelu tekstowego w 57 różnych dziedzinach, obejmujących podstawową matematykę, prawo, informatykę i inne.
  • TruthfulQA (0-shot) — narzędzie do ustalania tendencji modelu do powtarzania często napotykanych w internecie dezinformacji.

Benchmarki, opisane za pomocą terminów takich jak “25-shot”, “10-shot”, “5-shot” i “0-shot”, wskazują liczbę przykładów promptów, które model otrzymuje podczas procesu ewaluacji, aby ocenić jego wydajność i zdolności rozumowania w różnych dziedzinach. W paradygmatach “few-shot” modele otrzymują małą liczbę przykładów, które pomagają kierować ich odpowiedziami, podczas gdy w ustawieniu “0-shot” modele nie otrzymują żadnych przykładów i muszą polegać wyłącznie na swojej wcześniejszej wiedzy, aby odpowiedzieć odpowiednio.

Składniki Hugging Face

Pipeline’y

‘pipeline’y są częścią biblioteki transformers Hugging Face — funkcją, która pomaga w łatwym wykorzystaniu wstępnie wytrenowanych modeli dostępnych w repozytorium Hugging Face. Zapewnia intuicyjne API dla szeregu zadań, w tym analizy sentymentu, odpowiadania na pytania, modelowania języka maskowanego, rozpoznawania nazwanych encji i podsumowywania. Pipeline’y integrują trzy centralne komponenty Hugging Face:

  1. Tokenizer: Przygotowuje tekst dla modelu, konwertując go na format zrozumiały dla modelu.
  2. Model: To serce pipeline’u, gdzie dokonywane są rzeczywiste przewidywania na podstawie przetworzonych danych wejściowych.
  3. Post-processor: Przekształca surowe przewidywania modelu w formę czytelną dla człowieka.

Te pipeline’y nie tylko redukują obszerny kod, ale także oferują przyjazny interfejs użytkownika do realizacji różnych zadań NLP.

Aplikacje Transformerów przy użyciu biblioteki Hugging Face

Atutem biblioteki Hugging Face jest biblioteka Transformers, która upraszcza zadania NLP, łącząc model z niezbędnymi etapami przetwarzania wstępnego i końcowego, usprawniając proces analizy. Aby zainstalować i zaimportować bibliotekę, użyj następujących poleceń:

 pip install -q transformers from transformers import pipeline 

Po wykonaniu tej czynności możesz wykonywać zadania NLP, zaczynając od analizy sentymentu, która kategoryzuje tekst na pozytywny lub negatywny. Potężna funkcja pipeline() biblioteki służy jako centrum obejmujące inne pipeline’y i ułatwiające aplikacje specyficzne dla zadań w domenach audio, wizji i multimodalnych.

Praktyczne zastosowania

Klasyfikacja tekstu

Klasyfikacja tekstu staje się błahostką dzięki funkcji pipeline() Hugging Face. Oto jak możesz zainicjować pipeline klasyfikacji tekstu:

 classifier = pipeline("text-classification") 

Aby zdobyć praktyczne doświadczenie, wprowadź ciąg znaków lub listę ciągów do swojego pipeline’u, aby uzyskać przewidywania, które można schludnie zwizualizować za pomocą biblioteki Pandas w Pythonie. Poniżej znajduje się fragment kodu w Pythonie demonstrujący to:

 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") 

Wynik

 1.0 0.996 

Rozpoznawanie nazwanych encji (NER)

NER jest kluczowe w wyodrębnianiu obiektów ze świata rzeczywistego, zwanych ‘nazwanymi encjami’, z tekstu. Wykorzystaj pipeline NER, aby skutecznie identyfikować te encje:

 ner_tagger = pipeline("ner", aggregation_strategy="simple") text = "Elon Musk is the CEO of SpaceX." outputs = ner_tagger(text) print(outputs) 

Wynik

 Elon Musk: PER, SpaceX: ORG 

Odpowiadanie na pytania

Odpowiadanie na pytania polega na wyodrębnianiu precyzyjnych odpowiedzi na konkretne pytania z danego kontekstu. Zainicjuj pipeline odpowiadania na pytania i wprowadź swoje pytanie oraz kontekst, aby uzyskać pożądaną odpowiedź:

 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) 

Wynik

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

Funkcja pipeline Hugging Face oferuje szereg wstępnie zbudowanych pipeline’ów dla różnych zadań, oprócz klasyfikacji tekstu, NER i odpowiadania na pytania. Poniżej szczegóły dotyczące podzbioru dostępnych zadań:

Tabela: Zadania pipeline’ów Hugging Face

Zadanie Opis Identyfikator pipeline’u
Generowanie tekstu Generuj tekst na podstawie danego promptu pipeline(task=”text-generation”)
Podsumowywanie Podsumuj długi tekst lub dokument pipeline(task=”summarization”)
Klasyfikacja obrazu Oznacz obraz wejściowy pipeline(task=”image-classification”)
Klasyfikacja audio Kategoryzuj dane audio pipeline(task=”audio-classification”)
Wizualne odpowiadanie na pytania Odpowiedz na zapytanie używając zarówno obrazu, jak i pytania pipeline(task=”vqa”)

  Aby uzyskać szczegółowe opisy i więcej zadań, zapoznaj się z dokumentacją pipeline’ów na stronie Hugging Face.

Dlaczego Hugging Face przenosi swój nacisk na Rusta

Hugging face Safetensors and tokenizer Rust

Hugging face Safetensors and tokenizer GitHub Page

Ekosystem Hugging Face (HF) zaczął wykorzystywać Rusta w swoich bibliotekach, takich jak safesensors i tokenizers. Hugging Face bardzo niedawno wydało również nową platformę uczenia maszynowego o nazwie Candle. W przeciwieństwie do tradycyjnych platform używających Pythona, Candle jest zbudowane w Ruście. Celem użycia Rusta jest zwiększenie wydajności i uproszczenie doświadczenia użytkownika przy jednoczesnym wsparciu operacji GPU. Kluczowym celem Candle jest ułatwienie inferencji bezserwerowej, umożliwiając wdrażanie lekkich plików binarnych i usunięcie Pythona z obciążeń produkcyjnych, co czasami może spowalniać procesy ze względu na jego narzuty. Ta platforma stanowi rozwiązanie problemów napotykanych z pełnymi platformami uczenia maszynow

I have spent the past five years immersing myself in the fascinating world of Machine Learning and Deep Learning. My passion and expertise have led me to contribute to over 50 diverse software engineering projects, with a particular focus on AI/ML. My ongoing curiosity has also drawn me toward Natural Language Processing, a field I am eager to explore further.