AbdulElahGwaith's picture
Upload folder using huggingface_hub
a9bd396 verified

์ด ๋ชจ๋ธ์€ 2020-07-28์— ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ 2021-03-30์— Hugging Face Transformers์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

PyTorch

BigBird[[bigbird]]

BigBird๋Š” BERT์˜ 512ํ† ํฐ๊ณผ ๋‹ฌ๋ฆฌ ์ตœ๋Œ€ 4096ํ† ํฐ๊นŒ์ง€์˜ ์‹œํ€€์Šค ๊ธธ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋œ ํŠธ๋žœ์Šคํฌ๋จธ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ํŠธ๋žœ์Šคํฌ๋จธ๋“ค์€ ์‹œํ€€์Šค ๊ธธ์ด๊ฐ€ ๋Š˜์–ด๋‚ ์ˆ˜๋ก ์–ดํ…์…˜ ๊ณ„์‚ฐ ๋น„์šฉ์ด ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•˜์—ฌ ๊ธด ์ž…๋ ฅ ์ฒ˜๋ฆฌ์— ์–ด๋ ค์›€์„ ๊ฒช์Šต๋‹ˆ๋‹ค. BigBird๋Š” ํฌ์†Œ ์–ดํ…์…˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ, ๋ชจ๋“  ํ† ํฐ์„ ๋™์‹œ์— ์‚ดํŽด๋ณด๋Š” ๋Œ€์‹  ๋กœ์ปฌ ์–ดํ…์…˜, ๋žœ๋ค ์–ดํ…์…˜, ๊ทธ๋ฆฌ๊ณ  ๋ช‡ ๊ฐœ์˜ ์ „์—ญ ํ† ํฐ์„ ์กฐํ•ฉํ•˜์—ฌ ์ „์ฒด ์ž…๋ ฅ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฐฉ์‹์„ ํ†ตํ•ด ๊ณ„์‚ฐ ํšจ์œจ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ์‹œํ€€์Šค ์ „์ฒด๋ฅผ ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ BigBird๋Š” ์งˆ์˜์‘๋‹ต, ์š”์•ฝ, ์œ ์ „์ฒดํ•™ ์‘์šฉ์ฒ˜๋Ÿผ ๊ธด ๋ฌธ์„œ๋ฅผ ๋‹ค๋ฃจ๋Š” ์ž‘์—…์— ํŠนํžˆ ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  ์›๋ณธ BigBird ์ฒดํฌํฌ์ธํŠธ๋Š” Google ์กฐ์ง์—์„œ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅธ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”์˜ BigBird ๋ชจ๋ธ๋“ค์„ ํด๋ฆญํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์–ธ์–ด ์ž‘์—…์— BigBird๋ฅผ ์ ์šฉํ•˜๋Š” ๋” ๋งŽ์€ ์˜ˆ์‹œ๋ฅผ ํ™•์ธํ•ด๋ณด์„ธ์š”.

์•„๋ž˜ ์˜ˆ์‹œ๋Š” [Pipeline], [AutoModel], ๊ทธ๋ฆฌ๊ณ  ๋ช…๋ น์ค„์—์„œ [MASK] ํ† ํฐ์„ ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

import torch
from transformers import pipeline

pipeline = pipeline(
    task="fill-mask",
    model="google/bigbird-roberta-base",
    dtype=torch.float16,
    device=0
)
pipeline("Plants create [MASK] through a process known as photosynthesis.")
import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(
    "google/bigbird-roberta-base",
)
model = AutoModelForMaskedLM.from_pretrained(
    "google/bigbird-roberta-base",
    dtype=torch.float16,
    device_map="auto",
)
inputs = tokenizer("Plants create [MASK] through a process known as photosynthesis.", return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs)
    predictions = outputs.logits

masked_index = torch.where(inputs['input_ids'] == tokenizer.mask_token_id)[1]
predicted_token_id = predictions[0, masked_index].argmax(dim=-1)
predicted_token = tokenizer.decode(predicted_token_id)

print(f"The predicted token is: {predicted_token}")
!echo -e "Plants create [MASK] through a process known as photosynthesis." | transformers-cli run --task fill-mask --model google/bigbird-roberta-base --device 0

์ฐธ๊ณ ์‚ฌํ•ญ[[notes]]

  • BigBird๋Š” ์ ˆ๋Œ€ ์œ„์น˜ ์ž„๋ฒ ๋”ฉ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ž…๋ ฅ์„ ์˜ค๋ฅธ์ชฝ์— ํŒจ๋”ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • BigBird๋Š” original_full๊ณผ block_sparse ์–ดํ…์…˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ ์‹œํ€€์Šค ๊ธธ์ด๊ฐ€ 1024 ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ์—๋Š” ํฌ์†Œ ํŒจํ„ด์˜ ์ด์ ์ด ํฌ์ง€ ์•Š์œผ๋ฏ€๋กœ original_full ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ๊ตฌํ˜„์€ 3๋ธ”๋ก ์œˆ๋„์šฐ ํฌ๊ธฐ์™€ 2๊ฐœ์˜ ์ „์—ญ ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ITC ๊ตฌํ˜„๋งŒ ์ง€์›ํ•˜๊ณ  num_random_blocks=0์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์‹œํ€€์Šค ๊ธธ์ด๋Š” ๋ธ”๋ก ํฌ๊ธฐ๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค[[resources]]

  • BigBird ์–ดํ…์…˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ์ž์„ธํ•œ ์ž‘๋™ ์›๋ฆฌ๋Š” BigBird ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

BigBirdConfig[[bigbirdconfig]]

[[autodoc]] BigBirdConfig

BigBirdTokenizer[[bigbirdtokenizer]]

[[autodoc]] BigBirdTokenizer - get_special_tokens_mask - save_vocabulary

BigBirdTokenizerFast[[bigbirdtokenizerfast]]

[[autodoc]] BigBirdTokenizerFast

BigBird ํŠน์ • ์ถœ๋ ฅ[[bigbird-specific-outputs]]

[[autodoc]] models.big_bird.modeling_big_bird.BigBirdForPreTrainingOutput

BigBirdModel[[bigbirdmodel]]

[[autodoc]] BigBirdModel - forward

BigBirdForPreTraining[[bigbirdforpretraining]]

[[autodoc]] BigBirdForPreTraining - forward

BigBirdForCausalLM[[bigbirdforcausallm]]

[[autodoc]] BigBirdForCausalLM - forward

BigBirdForMaskedLM[[bigbirdformaskedlm]]

[[autodoc]] BigBirdForMaskedLM - forward

BigBirdForSequenceClassification[[bigbirdforsequenceclassification]]

[[autodoc]] BigBirdForSequenceClassification - forward

BigBirdForMultipleChoice[[bigbirdformultiplechoice]]

[[autodoc]] BigBirdForMultipleChoice - forward

BigBirdForTokenClassification[[bigbirdfortokenclassification]]

[[autodoc]] BigBirdForTokenClassification - forward

BigBirdForQuestionAnswering[[bigbirdforquestionanswering]]

[[autodoc]] BigBirdForQuestionAnswering - forward