Інструменти ШІ 101
Повний посібник для початківців щодо інструментів LLM від Hugging Face

Hugging Face — це лабораторія та хаб досліджень у галузі штучного інтелекту, яка створила спільноту науковців, дослідників та ентузіастів. За короткий час Hugging Face здобула значну присутність у сфері ШІ. Технологічні гіганти, такі як Google, Amazon та Nvidia, підтримали стартап у галузі ШІ Hugging Face значними інвестиціями, оцінивши його вартість у 4,5 мільярда доларів. У цьому посібнику ми представимо трансформери, LLM та роль бібліотеки Hugging Face у розвитку опенсорс-спільноти ШІ. Ми також розглянемо основні функції Hugging Face, включаючи пайплайни, набори даних, моделі та інше, з практичними прикладами на Python.
Трансформери в NLP
У 2017 році Корнельський університет опублікував впливову статтю, яка представила трансформери. Це моделі глибокого навчання, що використовуються в NLP. Це відкриття сприяло розвитку великих мовних моделей, таких як ChatGPT. Великі мовні моделі або LLM — це системи ШІ, які використовують трансформери для розуміння та створення тексту, схожого на людський. Однак створення таких моделей є дорогим, часто коштує мільйони доларів, що обмежує їх доступність для великих компаній. Hugging Face, заснована у 2016 році, має на меті зробити моделі NLP доступними для всіх. Незважаючи на те, що це комерційна компанія, вона пропонує низку опенсорс-ресурсів, які допомагають людям та організаціям доступно будувати та використовувати трансформерні моделі. Машинне навчання полягає в навчанні комп’ютерів виконувати завдання шляхом розпізнавання шаблонів, тоді як глибоке навчання, підгалузь машинного навчання, створює мережу, яка навчається самостійно. Трансформери — це тип архітектури глибокого навчання, який ефективно та гнучко використовує вхідні дані, що робить його популярним вибором для створення великих мовних моделей завдяки меншим вимогам до часу навчання.
Як Hugging Face спрощує роботу над проектами NLP та LLM

- Низку попередньо навчених моделей на вибір.
- Інструменти та приклади для тонкого налаштування цих моделей під ваші конкретні потреби.
- Прості варіанти розгортання для різних середовищ.
Чудовим ресурсом, доступним через Hugging Face, є Open LLM Leaderboard. Функціонуючи як комплексна платформа, вона систематично відстежує, ранжує та оцінює ефективність спектру великих мовних моделей (LLM) та чат-ботів, надаючи обґрунтований аналіз досягнень у відкритому сегменті. Бенчмарки LLM оцінюють моделі за чотирма метриками:
- AI2 Reasoning Challenge (25-shot) — серія запитань з елементарного курсу природничих наук.
- HellaSwag (10-shot) — тест на здоровий глузд, який, хоча й простий для людей, є серйозним викликом для передових моделей.
- MMLU (5-shot) — багатоаспектна оцінка, що охоплює 57 різних галузей, включаючи базову математику, право та інформатику, серед іншого, для перевірки майстерності текстової моделі.
- TruthfulQA (0-shot) — інструмент для визначення схильності моделі до повторення часто зустрічається в інтернеті дезінформації.
Бенчмарки, описані такими термінами, як “25-shot”, “10-shot”, “5-shot” та “0-shot”, вказують на кількість прикладів промптів, які надаються моделі під час процесу оцінки для вимірювання її продуктивності та здібностей до міркування в різних галузях. У парадигмах “few-shot” моделям надається невелика кількість прикладів для керівництва їхніми відповідями, тоді як у налаштуванні “0-shot” моделі не отримують прикладів і повинні покладатися виключно на свою попередню знання для надання відповідної відповіді.
Компоненти Hugging Face
Пайплайни
‘pipelines‘ є частиною бібліотеки transformers від Hugging Face — функцією, яка допомагає у легкому використанні попередньо навчених моделей, доступних у репозиторії Hugging Face. Вона надає інтуїтивний API для низки завдань, включаючи аналіз тональності, відповіді на запитання, масковане мовне моделювання, розпізнавання іменованих сутностей та підсумовування. Пайплайни інтегрують три центральні компоненти Hugging Face:
- Токенізатор: Підготовлює ваш текст для моделі, перетворюючи його у формат, зрозумілий моделі.
- Модель: Це серце пайплайну, де відбуваються фактичні прогнози на основі попередньо обробленого вводу.
- Пост-процесор: Перетворює сирі прогнози моделі у форму, зрозумілу для людини.
Ці пайплайни не лише зменшують обсяг кодування, але й пропонують зручний інтерфейс для виконання різних завдань NLP.
Застосування трансформерів за допомогою бібліотеки Hugging Face
Особливістю бібліотеки Hugging Face є бібліотека Transformers, яка спрощує завдання NLP, з’єднуючи модель з необхідними етапами попередньої та післяобробки, оптимізуючи процес аналізу. Для встановлення та імпорту бібліотеки використовуйте наступні команди:
pip install -q transformers from transformers import pipeline
Після цього ви можете виконувати завдання NLP, починаючи з аналізу тональності, який класифікує текст на позитивний або негативний. Потужна функція pipeline() бібліотеки слугує хабом, що охоплює інші пайплайни та сприяє застосуванням для конкретних завдань у сферах аудіо, зору та мультимодальних областях.
Практичні застосування
Класифікація тексту
Класифікація тексту стає простою завдяки функції pipeline() від Hugging Face. Ось як можна ініціалізувати пайплайн класифікації тексту:
classifier = pipeline("text-classification")
Для практичного досвіду передайте рядок або список рядків у ваш пайплайн, щоб отримати прогнози, які можна акуратно візуалізувати за допомогою бібліотеки Pandas у Python. Нижче наведено фрагмент коду на Python, який демонструє це:
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.0 0.996
Розпізнавання іменованих сутностей (NER)
NER є ключовим для вилучення реальних об’єктів, званих ‘іменованими сутностями’, з тексту. Використовуйте пайплайн NER для ефективної ідентифікації цих сутностей:
ner_tagger = pipeline("ner", aggregation_strategy="simple") text = "Elon Musk is the CEO of SpaceX." outputs = ner_tagger(text) print(outputs)
Вихід
Elon Musk: PER, SpaceX: ORG
Відповіді на запитання
Відповіді на запитання передбачають вилучення точних відповідей на конкретні запитання з заданого контексту. Ініціалізуйте пайплайн відповідей на запитання та введіть ваше запитання та контекст, щоб отримати бажану відповідь:
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)
Вихід
{'score': 0.998, 'start': 51, 'end': 60, 'answer': 'New York'} Функція pipeline від Hugging Face пропонує низку попередньо створених пайплайнів для різних завдань, окрім класифікації тексту, NER та відповідей на запитання. Нижче наведено деталі щодо підмножини доступних завдань:
Таблиця: Завдання пайплайнів Hugging Face
| Завдання | Опис | Ідентифікатор пайплайну |
| Генерація тексту | Генерувати текст на основі заданого промпту | pipeline(task=”text-generation”) |
| Підсумовування | Підсумувати довгий текст або документ | pipeline(task=”summarization”) |
| Класифікація зображень | Позначити вхідне зображення | pipeline(task=”image-classification”) |
| Класифікація аудіо | Класифікувати аудіодані | pipeline(task=”audio-classification”) |












