์ฐ๋ฆฌ๋ BERT, GPT ๋ฑ ๋ค์ํ ํ๋ฆฌํธ๋ ์ธ ๋ ๋ชจ๋ธ๋ค์ ๊ฐ์ง๊ณ ์ด๋ค ํ ์คํฌ๋ฅผ ์ํํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด, ๋ฌธ์ ๋ถ๋ฅ, ๊ฐ์ ๋ถ์, ์ง์ ์๋ต , ๊ฐ์ฒด๋ช ์ธ์,,, ๊ณผ ๊ฐ์ ์ผ๋ค์ ๋ง์ด์ฃ . ์ด๋ ์ด๋ฌํ ํ ์คํฌ๋ค์ ๋ค์ด์คํธ๋ฆผ ํ์คํฌ (downstream task)๋ผ๊ณ ํฉ๋๋ค. ๋ฐ๋๋ก upstream task๋ ํ๋ฆฌํธ๋ ์ธ ์ํค๋ ํ์ต ๋ฐฉ์์ด๋ผ๊ณ ์ดํดํ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
data1 -> model -> upstream task (ex- MLM, ๋ค์ ๋จ์ด ๋ง์ถ๊ธฐ) (pretrain)
data2 -> model(์๋ ๊ฐ์ ๋ชจ๋ธ, ์ด๋ฅผ ์ ์ดํ์ต transfer learning ์ด๋ผ๊ณ ํฉ๋๋ค.) -> downstream task (NER,QA,text-classification)
downstream task๋ฅผ ํ์ตํ๋ ๋ฐฉ์
- ํ์ธํ๋ fine-tuning, ํ๋กฌํํธ ํ๋, ์ธ ์ปจํ ์คํธ ๋ฌ๋ In-context learning
ํ์ธํ๋
BERT๋ฅผ ๊ณต๋ถํ๋ค๋ฉด ํ์ธํ๋์ ์ข ์ต์ํ ๊ฒ๋๋ค. ์๋ฅผ ๋ค์ด BERT๋ฅผ ํตํด ์ํ ๋ฆฌ๋ทฐ์ ๊ฐ์ ์ ๋ถ๋ฅํ๋ ์์ ๋ค์ ์คํํ์ ๋ downstream task ๋ ํ ์คํธ ๋ถ๋ฅ์ด๊ณ , ์ด๋ฅผ ์ํํ๊ธฐ ์ํด ๋ฆฌ๋ทฐ์ ๊ธ๋ถ์ ๋ ์ด๋ธ์ด ํฉ์ณ์ง ๋ฐ์ดํฐ์ ์ BERT์ ๋ ํ์ต์์ผ ์๋ก์ด ๋ฆฌ๋ทฐ๊ฐ ๋ค์ด์์ ๋ ๊ธ์ ์ธ์ง ๋ถ์ ์ธ์ง ํ๋จํ๋๋ก ํฉ๋๋ค. ์ฆ, ํ์ธํ๋์ downstream task์ ๋ฐ์ดํฐ ์ ์ฒด๋ฅผ ์ฌ์ฉํด ๋ชจ๋ธ ์ ์ฒด๋ฅผ ํ์ต์ํค๊ณ ์ ๋ฐ์ดํธํ๋ ๋ฐฉ์์ผ๋ก downstream task๋ฅผ ์ํํ๋ ๊ฒ์ ๋๋ค.
์ธ ์ปจํ ์คํธ ๋ฌ๋ In-context learning
์ค๋ ์ค์ ์ ์ผ๋ก ๋ณผ ๊ฒ์ ์ด๊ฒ์ ๋๋ค. ์ธ ์ปจํ ์คํธ ๋ฌ๋์ด๋ downstream task์ ๋ฐ์ดํฐ ์ค ์ผ๋ถ๋ง ์ฌ์ฉํ๊ณ , ๋ชจ๋ธ์ ์ ๋ฐ์ดํธํ์ง ์๊ณ downstream task๋ฅผ ์ํํฉ๋๋ค.
์ธ ์ปจํ ์คํธ ๋ฌ๋ In-context learning ์ 3๊ฐ์ง ๋ฐฉ์
์ธ ์ปจํ ์คํธ ๋ฌ๋์๋ ์ ๋ก์ท, ์์ท ํจ์ท ๋ฌ๋ ์ด 3๊ฐ์ง ๋ฐฉ์์ด ์์ต๋๋ค. ์ ๋ก ์ ํจ๋ downstream task์ ๋ฐ์ดํฐ ์ค ์ฐธ๊ณ ํ๋ ๊ฑด์๋ฅผ ๋ปํฉ๋๋ค. ๋ชจ๋ธ์ ์ง๋ฌธ์ ํด์ ๋ต์ ์ป๊ณ ์ถ์๋ downstream task์ ๋ฐ์ดํฐ๋ฅผ ์๋ฌด๊ฒ๋ ์๋ณด์ฌ์ฃผ๊ณ ๋ ๋ค ์ง๋ฌธ์ ๋์ง๋ฉด ์ ๋ก์ท ๋ฌ๋, ํ๊ฐ์ง ์์๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ง๋ฌธํ๋ฉด ์์ท๋ฌ๋, ๋ช๊ฐ ๋ณด์ฌ์ฃผ๊ณ ์ง๋ฌธ์ ํ๋ฉด ํจ์ท๋ฌ๋์ด ๋๋ ๊ฒ์ด์ฃ
BERT์ ๋ค๋ฅด๊ฒ GPT 3๋ ํ๋ผ๋ฏธํฐ๊ฐ ๋๋ฌด ๋ง์ ํ์ธํ๋ํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ๋ฐฉ์์ ์ฑํํฉ๋๋ค.
GPT ์ ์ ๋ ฅ์ BERT์๋ ์กฐ๊ธ ๋ค๋ฆ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก task description๊ณผ prompt๊ฐ ๋ค์ด๊ฐ๊ณ example์ ์์ ์๋ฃ์ผ๋ฉด ์ ๋ก์ท๋ฌ๋, example์ด ํ๊ฐ๋ฉด ์์ท, ์ฌ๋ฌ๊ฐ๋ฉด ํจ์ท ๋ฌ๋์ธ ๊ฒ์ด์ฃ
GPT ์ ์ ๋ ฅ์ ์์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ์์ด๋จ์ด๋ฅผ ์ ๋ ฅํ๋ฉด ํ๊ตญ์ด ๋จ์ด ๋ฒ์ญํ๊ณ ์ถ์ ๋, ์ ๋ ฅ์ ์ด๋ฐ์์ผ๋ก ์ค๋๋ค.
Translate English to Korean: (task description์ ํด๋น)
cheese => (prompt์ ํด๋น )
์ด๋ ๊ฒ ํด์ ๋ฑ ์์ํ์ด '์น์ฆ'๋ก ๋์จ๋ค๋ฉด ์ ๋ก์ท ๋ฌ๋์ ๋๋ค.
์์ท ํจ์ท ๋ฌ๋์ ๋ช๊น์ง ์๋ฅผ ์ฃผ๋ ๊ฒ์ ๋๋ค.
Translate English to Korean: (task description)
peppermint =>ํํผ๋ฏผํธ (example)
parsely =>ํ์ฌ๋ฆฌ (example)
cheese => (prompt )
example์ด ํ๊ฐ๋ฉด ์์ท, ์ฌ๋ฌ๊ฐ๋ฉด ํจ ์ท์ ๋๋ค.
์ด๋ ๊ฒ๋ง ํด์ ์ฑ๋ฅ์ด ์ด๋ป๊ฒ ๋๋์ง๋ ๋ค์ ๊ทธ๋ํ๋ฅผ ํ ์ป ํ์ธํ ์ ์์ต๋๋ค.
์ฑ๋ฅ์ ์ธก์ ํ ๊ฒฐ๊ณผ ํจ ์ท์ด 50% ์ด์์ ์ฑ๋ฅ์ ๋ณด์ธ๋ค๋ ๊ฒ์ผ๋ก ๋ณด์ ๋ช๊ฐ์ง ์๋ฅผ ์ฃผ๋ ๊ฒ๋ง์ผ๋ก๋ ์์ํ์ ๋ผ์ ์๋ค๋ ๊ฒ์ GPT๊ฐ ์๋ ค์ค ๊ฒ์ด์ฃ
GPT3๋ Open AI์์ API ์ ์ฒญ์ ํ๋ฉด ์ฌ์ฉํด ๋ณผ ์๋ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ธ ์ปจํ ์คํธ ๋ฌ๋ ๊ตฌํ
gpt-2์์ ํ๋ฒ ์ฝ๋๋ฅผ ํตํด ์ฒดํํด๋ณด๋๋ก ํฉ์๋ค. huggingface ์์ transformers ๋ก ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.
from transformers import GPT2LMHeadModel, GPT2TokenizerFast
tokenizer = GPT2TokenizerFast.from_pretrained('gpt2-medium')
model = GPT2LMHeadModel.from_pretrained('gpt2-medium')
review = input("Write down review")
prompt=f"""\
Classify the given review into positive or negative.
I don't like this movie. This review is negative
{review.strip()}.This review is\
"""
encodings=tokenizer(prompt,return_tensors='pt')
encodings={key:value.cuda() for key,value in encodings.items()}
outputs = model.generate(max_length=40, **encodings)
outputs=outputs[0, encodings['input_ids'].shape[1]:]
outputs = tokenizer.decode(outputs).strip().split('\n',1)[0]
print(outputs)
์คํ ๊ฒฐ๊ณผ I love the actor ๋ฅผ ์ ๋ ฅํ๋๋
Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation.
positive
๋ผ๊ณ ๋น๋๋ค. ์์ ์ธํ ~~ํ๋ ๋ง์ ์ง๊ธ์ ๋ฌด์ํด๋ ๋๊ณ , positive๋ผ๊ณ ์ ๋์จ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
prompt=f"""\
Classify the given review into positive or negative.
I don't like this movie. This review is negative
{review.strip()}.This review is\
"""
Classify the given review into positive or negative. ๊ฐ ํ์คํธ ์ค๋ช ๋ถ๋ถ์ด๊ณ
์ด์ ๊ด๋ จํด์ ์ด๋ฌํ ๋ ผ๋ฌธ๋ค์ ์ฐพ์๊ณ
Large Language Models are Zero-Shot Reasoners
The Power of Scale for Parameter-Efficient Prompt Tuning
https://arxiv.org/pdf/2104.08691.pdf
์ ๋ ๋ ผ๋ฌธ์ ๋ํด์ ์ฝ๊ณ ์ ๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. เซฎ • ๏ป -แ ♥
'์์ฐ์ด ์ฒ๋ฆฌ > Today I learned :' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
model.train() ๊ณผ model.eval()์ ์ค์์นญ์ ํ์์ผ๊น? (0) | 2023.01.20 |
---|---|
์์ฐ์ด ์ฒ๋ฆฌ์์์ ํ์ดํผ ํ๋ผ๋ฏธํฐ ์ข ๋ฅ, ์ค์ (0) | 2023.01.20 |
์ธ์ด๋ชจ๋ธ GPT (1) | 2023.01.17 |
๋ฒํธ๋ฅผ ํ์ฉํ ์ํ๋ฆฌ๋ทฐ ๋ถ๋ฅ (0) | 2023.01.16 |
ํ๊น ํ์ด์ค์ ํธ๋์คํฌ๋จธ ๐ค Huggingface's Transformers (0) | 2023.01.16 |