Transformers documentation

HerBERT

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Эта модель была опубликована в HF papers 2020-05-01 и добавлена в Hugging Face Transformers 2020-11-16.

HerBERT

Обзор

Модель HerBERT была предложена в работе KLEJ: Comprehensive Benchmark for Polish Language Understanding П. Рыбаком, Р. Мрочковским, Я. Трацем и И. Гавликом. Это языковая модель на основе BERT, обученная на польских корпусах с использованием только цели MLM и динамического маскирования целых слов.

Аннотация из статьи следующая:

В последние годы целая серия моделей на основе Transformer обеспечила значительный прогресс в задачах общего понимания естественного языка (NLU). Такой стремительный темп исследований был бы невозможен без общих бенчмарков NLU, позволяющих объективно сравнивать предлагаемые методы. Однако такие бенчмарки доступны лишь для небольшого числа языков. Чтобы смягчить эту проблему, мы представляем комплексный многозадачный бенчмарк для понимания польского языка, дополненный онлайн-таблицей лидеров. Он включает разнообразный набор задач, заимствованных из существующих датасетов для распознавания именованных сущностей, вопросно-ответных систем, текстовой импликации и других. Мы также вводим новую задачу анализа тональности для области электронной коммерции, названную Allegro Reviews (AR). Чтобы обеспечить единую схему оценки и поощрять модели, обобщающиеся на различные задачи NLU, бенчмарк включает датасеты из разных областей и приложений. Кроме того, мы публикуем HerBERT — модель на основе Transformer, обученную специально для польского языка, которая демонстрирует наилучшую среднюю производительность и показывает лучшие результаты по трем из девяти задач. Наконец, мы проводим обширную оценку, включающую несколько стандартных базовых моделей и недавно предложенные многоязычные модели на основе Transformer.

Эта модель была предоставлена пользователем rmroczkowski. Исходный код можно найти здесь.

Пример использования

from transformers import HerbertTokenizer, RobertaModel


tokenizer = HerbertTokenizer.from_pretrained("allegro/herbert-klej-cased-tokenizer-v1")
model = RobertaModel.from_pretrained("allegro/herbert-klej-cased-v1", device_map="auto")

encoded_input = tokenizer.encode("Kto ma lepszą sztukę, ma lepszy rząd – to jasne.", return_tensors="pt").to(model.device)
outputs = model(encoded_input)

# HerBERT can also be loaded using AutoTokenizer and AutoModel:
from transformers import AutoModel, AutoTokenizer


tokenizer = AutoTokenizer.from_pretrained("allegro/herbert-klej-cased-tokenizer-v1")
model = AutoModel.from_pretrained("allegro/herbert-klej-cased-v1", device_map="auto")

Реализация Herbert аналогична BERT, за исключением метода токенизации. Справочник по API и примеры см. в документации BERT.

HerbertTokenizer

класс transformers.HerbertTokenizer

< >

( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Nonecls_token: str = '<s>'unk_token: str = '<unk>'pad_token: str = '<pad>'mask_token: str = '<mask>'sep_token: str = '</s>'vocab_file: str | None = Nonemerges_file: str | None = None**kwargs )

Параметры

  • vocab_file (str) — Путь к файлу словаря.
  • merges_file (str) — Путь к файлу слияний.
  • cls_token (str, необязательный, по умолчанию "<s>") — Токен классификатора.
  • unk_token (str, необязательный, по умолчанию "<unk>") — Токен неизвестного слова.
  • pad_token (str, необязательный, по умолчанию "<pad>") — Токен отступов.
  • mask_token (str, необязательный, по умолчанию "<mask>") — Токен маски.
  • sep_token (str, необязательный, по умолчанию "</s>") — Токен-разделитель.
  • vocab (str, dict или list, необязательный) — Пользовательский словарь.
  • merges (str или list[str], необязательный) — Список пользовательских слияний.

Создайте BPE-токенизатор для HerBERT (на базе библиотеки tokenizers от HuggingFace).

Особенности:

  • использует предтокенизатор BERT: BertPreTokenizer разделяет токены по пробелам, а также по знакам препинания. Каждое вхождение символа пунктуации обрабатывается отдельно.

Этот токенизатор наследуется от TokenizersBackend, который содержит большинство методов. За дополнительной информацией о методах следует обращаться к суперклассу.

Update on GitHub