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

이 모델은 2020-05-01에 HF papers에 게시되었으며, 2020-11-16에 Hugging Face Transformers에 기여되었습니다.

HerBERT

개요

HerBERT 모델은 Piotr Rybak, Robert Mroczkowski, Janusz Tracz, Ireneusz Gawlik이 KLEJ: Comprehensive Benchmark for Polish Language Understanding에서 제안했습니다. 이는 전체 단어 동적 마스킹을 적용한 MLM 목적 함수만으로 폴란드 코퍼스로 학습된 BERT 기반 언어 모델입니다.

해당 논문의 초록은 다음과 같습니다:

최근 몇 년간 Transformer 기반 모델의 등장으로 일반 자연어 이해(NLU) 작업에서 상당한 성능 향상이 이루어졌습니다. 이러한 빠른 연구의 진전은 제안된 방법론을 공정하게 비교할 수 있는 일반 NLU 벤치마크 없이는 불가능했을 것입니다. 그러나 이러한 벤치마크는 소수의 언어에 대해서만 제공됩니다. 이 문제를 완화하기 위해, 우리는 폴란드어 이해를 위한 포괄적인 다중 작업 벤치마크와 온라인 리더보드를 소개합니다. 이 벤치마크는 실체 인식, 질의응답, 텍스트 함의 등 기존 데이터셋에서 채택된 다양한 작업으로 구성됩니다. 또한, e-commerce 도메인을 위한 새로운 감정 분석 작업인 Allegro Reviews(AR)를 소개합니다. 공통 평가 체계를 보장하고 다양한 NLU 작업으로 일반화되는 모델을 장려하기 위해, 벤치마크에는 다양한 도메인과 애플리케이션의 데이터셋이 포함됩니다. 추가로, 우리는 폴란드어에 특화되어 학습된 Transformer 기반 모델인 HerBERT를 공개합니다. HerBERT는 평균 성능이 가장 우수하며, 9개 작업 중 3개에서 최상의 결과를 달성합니다. 마지막으로, 여러 표준 베이스라인과 최근에 제안된 다국어 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) — merges 파일의 경로.
  • 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], 선택) — 사용자 지정 merges 목록입니다.

HuggingFace의 tokenizers 라이브러리를 기반으로 HerBERT용 BPE 토크나이저를 구성합니다.

특이점:

  • BERT의 사전 토크나이저를 사용합니다. BertPreTokenizer는 공백과 구두점 기준으로 토큰을 분리합니다. 구두점 문자의 각 출현은 개별적으로 처리됩니다.

이 토크나이저는 대부분의 메서드를 포함하고 있는 TokenizersBackend를 상속받습니다. 메서드에 대한 자세한 내용은 상위 클래스를 참고하세요.

Update on GitHub