Code Monkey home page Code Monkey logo

kogpt2's Introduction

KoGPT2 (한국어 GPT-2) Ver 2.0

GPT-2는 주어진 텍스트의 다음 단어를 잘 예측할 수 있도록 학습된 언어모델이며 문장 생성에 최적화 되어 있습니다. KoGPT2는 부족한 한국어 성능을 극복하기 위해 40GB 이상의 텍스트로 학습된 한국어 디코더(decoder) 언어모델입니다.

Tokenizer

tokenizers 패키지의 Character BPE tokenizer로 학습되었습니다.

사전 크기는 51,200 이며 대화에 자주 쓰이는 아래와 같은 이모티콘, 이모지 등을 추가하여 해당 토큰의 인식 능력을 올렸습니다.

😀, 😁, 😆, 😅, 🤣, .. , :-), :), -), (-:...

또한 <unused0> ~ <unused99>등의 미사용 토큰을 정의해 필요한 테스크에 따라 자유롭게 정의해 사용할 수 있게 했습니다.

> from transformers import PreTrainedTokenizerFast
> tokenizer = PreTrainedTokenizerFast.from_pretrained("skt/kogpt2-base-v2",
  bos_token='</s>', eos_token='</s>', unk_token='<unk>',
  pad_token='<pad>', mask_token='<mask>')
> tokenizer.tokenize("안녕하세요. 한국어 GPT-2 입니다.😤:)l^o")
['▁안녕', '하', '세', '요.', '▁한국어', '▁G', 'P', 'T', '-2', '▁입', '니다.', '😤', ':)', 'l^o']

Model

Model # of params Type # of layers # of heads ffn_dim hidden_dims
kogpt2-base-v2 125M Decoder 12 12 3072 768
> import torch
> from transformers import GPT2LMHeadModel

> model = GPT2LMHeadModel.from_pretrained('skt/kogpt2-base-v2')
> text = '근육이 커지기 위해서는'
> input_ids = tokenizer.encode(text, return_tensors='pt')
> gen_ids = model.generate(input_ids,
                           max_length=128,
                           repetition_penalty=2.0,
                           pad_token_id=tokenizer.pad_token_id,
                           eos_token_id=tokenizer.eos_token_id,
                           bos_token_id=tokenizer.bos_token_id,
                           use_cache=True)
> generated = tokenizer.decode(gen_ids[0])
> print(generated)
근육이 커지기 위해서는 무엇보다 규칙적인 생활습관이 중요하다.
특히, 아침식사는 단백질과 비타민이 풍부한 과일과 채소를 많이 섭취하는 것이 좋다.
또한 하루 30 이상 충분한 수면을 취하는 것도 도움이 된다.
아침 식사를 거르지 않고 규칙적으로 운동을 하면 혈액순환에 도움을  뿐만 아니라 신진대사를 촉진해 체내 노폐물을 배출하고 혈압을 낮춰준다.
운동은 하루에 10 정도만 하는  좋으며 운동 후에는 반드시 스트레칭을 통해 근육량을 늘리고 유연성을 높여야 한다.
운동  바로 잠자리에 드는 것은 피해야 하며 특히 아침에 일어나면 몸이 피곤해지기 때문에 무리하게 움직이면 오히려 역효과가  수도 있다...

Performances

Classification or Regression

NSMC(acc) KorSTS(spearman)
KoGPT2 2.0 89.1 77.8

Data

한국어 위키 백과 이외, 뉴스, 모두의 말뭉치 v1.0, 청와대 국민청원 등의 다양한 데이터가 모델 학습에 사용되었습니다.

Demo

데모 링크

User Contributed Examples

Related press releases

Contacts

KoGPT2 관련 이슈는 이곳에 올려주세요.

License

KoGPT2CC-BY-NC-SA 4.0 라이선스 하에 공개되어 있습니다. 모델 및 코드를 사용할 경우 라이선스 내용을 준수해주세요. 라이선스 전문은 LICENSE 파일에서 확인하실 수 있습니다.

kogpt2's People

Contributors

bage79 avatar bm-k avatar cynthia avatar dalinaum avatar haven-jeon avatar muhyun avatar seawavve avatar seujung avatar soeque1 avatar yunho0130 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kogpt2's Issues

summarization 질문

안녕하세요,
kogpt2 를 통해 요약을 진행해 보고 싶은데
관련 문서나 도움이 될만한 자료가 있는지 여쭤보고 싶습니다.

단어의 음절과 음절 사이에 공백 추가 문제

안녕하십니까 NLP 공부중인 학부생입니다.
transformers 의 AutoTokenizer를 통해 토크나이져를 생성하고, 음절 단위로 임베딩 하였을 때 일부 토큰과 토큰 사이에 공백이 추가된 현상이 있습니다..
화면 캡처 2024-04-15 222034

ONNX Export and Inference

🚀 Feature

ONNX export 및 inference를 지원합니다.

Motivation

최근 pytorch에서 onnx export시 dynamic_axes를 지원합니다. 쉽게 dynamic sequnce에 대하여 컨버팅이 가능할 것으로 기대됩니다.

Pitch

작업하여 PR 하도록 하겠습니다.

Is there any published paper describing your work?

Hello,

First of all, thank you for publishing this repository. Is there any published paper describing your work? I mean a paper in some journal or conference proceedings. This information would help to understand your work a lot.

Thanks in advance!

apple m1 아키텍춰에서 gpt2 사용시 오류 발생 이슈

os : mac os 12.5.1
python version : 3.9.7
python packages :
torch 1.12.1
tensorflow-macos 2.8.0
tensorflow-metadata 1.7.0
tensorflow-metal 0.4.0

위와 같은 환경에서 아래와 같은 코드를 실행 시켰을때 오류 발생.


code

import torch
from transformers import GPT2LMHeadModel
from transformers import PreTrainedTokenizerFast

device = torch.device("mps")

device = torch.device("cpu")

fast = "skt/kogpt2-base-v2"
tokenizer = PreTrainedTokenizerFast.from_pretrained(fast)

model = GPT2LMHeadModel.from_pretrained("skt/kogpt2-base-v2").to(device=device, non_blocking=True)

text = "테스트입니당"
inputs = tokenizer(text, return_tensors="pt").to(device=device)

gen_ids = model.generate(

inputs["input_ids"],
max_length=128,
repetition_penalty=2.0,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id,
bos_token_id=tokenizer.bos_token_id,
use_cache=True,

)
generated = tokenizer.decode(gen_ids[0])
print(generated)


에러 메세지

gen_ids = model.generate(

File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
return func(*args, **kwargs)
File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/transformers/generation_utils.py", line 1294, in generate
return self.greedy_search(
File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/transformers/generation_utils.py", line 1689, in greedy_search
outputs = self(
File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/transformers/models/gpt2/modeling_gpt2.py", line 1058, in forward
transformer_outputs = self.transformer(
File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/transformers/models/gpt2/modeling_gpt2.py", line 901, in forward
outputs = block(
File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/transformers/models/gpt2/modeling_gpt2.py", line 401, in forward
attn_outputs = self.attn(
File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/transformers/models/gpt2/modeling_gpt2.py", line 323, in forward
query, key, value = self.c_attn(hidden_states).split(self.split_size, dim=2)
File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
File "/Users/nuri/miniforge3/envs/env_nlp/lib/python3.9/site-packages/transformers/pytorch_utils.py", line 109, in forward
x = torch.addmm(self.bias, x.view(-1, x.size(-1)), self.weight)
RuntimeError: tensors must be 2-D

위의 코드에서 device를 cpu로 설정시는 정상 동작이 됩니다.

위 문제 관련하여 문의 드립니다.

KoGPT2를 이용한 Fine-Tuning 성능을 올리고 싶습니다.

안녕하세요, KoGPT2로 동화 생성을 해보고자 Fine-Tuning을 해보고 있는 학부생입니다.
우선 좋은 모델을 공개해주셔서 감사합니다. 깃헙을 레퍼런스 삼아 공부하며 개발 중입니다.

질문으로 Fine-Tuning(Transfer Learning)의 성능을 높이는 방법에 대해 자문을 구하고 싶습니다.
제가 목표하고 있는 결과물은 한 문장을 넣었을 때 3가지 문장을 생성하고, 그 중에 하나를 골라 다시 input으로 넣어주면서 문장이 이어지게 동화를 생성하는 것입니다. 현재 KoGPT2에다 별다른 모델 Architecture 추가 없이 동화 데이터로 Transfer learning을 진행해보았는데요, 데이터는 약 650개의 동화를 한 문장씩 Dataset에 넣어 약 36,000개의 문장을 넣었습니다. 해당 결과를 아래 이미지로 첨부했습니다.
하지만 문장이 말이 되지 않는 경우가 대다수입니다. 이를 해결하기 위해 LSTM의 Cell state 역할을 하는 memory 구조를 추가한 모델도 시도해보았으나 성과가 없었습니다.

기본 Transfer Learning을 할 때 Epoch=30으로 해주었는데,(현재 100번으로 시도 중입니다.) 세부 하이퍼파라미터를 튜닝한다고 크게 달라지지 않을 것 같아 자문을 구하고자 합니다. 데이터가 너무 적은 것이 문제일까요? 저의 task에 유의미할만한 검증된 모델이 있을까요? 명확한 답변이 어려우시겠지만 의견 한 번만 주시면 감사하겠습니다 :)

image

입력 텍스트가 문장인 경우

안녕하세요^^
좋은 모델 공개해주셔서 감사드립니다.
KoGPT2 모델을 설치하고 돌려보았는데 한 가지 의문점이 생겨 질문 드립니다.

입력 텍스트를 바꾸어가며 몇 가지 실험을 해보았는데, 입력 텍스트가 문장이 아닌 경우(예: "나는 밥을")에는 다음 토큰들이 정상적으로 생성되지만, 입력 텍스트가 문장인 경우(예: "나는 밥을 먹는다.")에는 다음 토큰이 생성되지 않는 것을 보았습니다.

OpenAI의 GPT2의 경우 문장(혹은 문장들)을 입력으로 넣으면 비슷한 맥락의 문장들이 추가적으로 생성되었는데요. GPT2를 기반으로 한 KoGPT2에서도 이러한 기능이 가능할 것이라 보는데 generate 함수의 파라미터를 바꾸어도 문장에 대한 다음 문장 생성이 이루어지지 않는 것 같아 질문 드립니다.

이전 질문글에 대한 답변을 참고하여 num_return_sequences 파라미터를 조정해보았지만, 입력 텍스트가 문장의 형태인 경우에는

Generated 0: 나는 밥을 먹는다.
Generated 1: 나는 밥을 먹는다.
Generated 2: 나는 밥을 먹는다.

와 같이 되더군요.
이처럼 입력 텍스트가 문장인 경우 이어서 연속적인 문장이 생성되도록 하려면 모델의 어떤 부분을 조정해야 하는지 알려주신다면 감사하겠습니다!

개행 문제

안녕하세요. bpe로 쪼갠 사전안에 개행 문자가 없는 거 같습니다.

따라서 KoGPT2에서는 개행이 안 되는 거 같습니다. KoGPT2에서 개행하는 방법에 대해서 해결법을 알려주시길 바랍니다.

감사합니다.

보캡에 대해서

주어진 토큰 이외에 추가적으로 special token을 넣어 사용하고싶은데
이럴때 보켑에서 설정을 어떻게하면되나요?

koGPT-2 Colab에서 torch와 GPU 이용해서 학습시 OOM 문제

안녕하세요.

Colab에서 KoGPT-2의 pytorch GPT2LMHeadModel을 불러와
.train() 모드로 device를 cuda로 설정한 후 학습을 진행하려고 하는데,
GPU 16G 메모리 중 15G 를 torch가 사용하여, OOM에러로 학습할 수 없습니다.

위 이슈 관련으로 해결방법있는지 여쭤보고 싶습니다.

맥북프로 16G 에서 cpu device로는 학습이 진행됨을 확인하였습니다.

감사합니다!

KoGPT2 FineTuning 예제 또는 방법

KoGPT로 파인 튜닝 공부하고 있는 학생입니다. 혹시 파인 튜닝 예제나 방법 정리 되어 있는 글이 있을까요..? 다른 예제 확인 해보는데
from transformers.configuration_gpt2 import GPT2Config
ModuleNotFoundError: No module named 'transformers.configuration_gpt2'
같은 오류가 발생해서 해결하는데 고생 하고 있네요

Pretraining 관련 질문입니다.

안녕하세요.

KoGPT2를 트레이닝하는데에 사용된 리소스와 시간이 궁금합니다. 어떤 환경(GPU 등)에서 pretrain된 것인지 알 수 있을까요? 20GB텍스트를 학습하는데에 소요된 시간도 궁금합니다. Epoch은 어떻게 결정하셨나요?

감사합니다.

모델 다운로드 받는 방법을 질문드립니다.

물론 아래 코드를 통해서 다운 받는 것으로 예상됩니다. 그렇지만, SKT에서 지정한 모델을 다운로드 받는 방법과 코드가 궁금합니다.

감사합니다.

tokenizer = {
    'url':
    'https://kobert.blob.core.windows.net/models/kogpt2/tokenizer/kogpt2_news_wiki_ko_cased_818bfa919d.spiece',
    'fname': 'kogpt2_news_wiki_ko_cased_818bfa919d.spiece',
    'chksum': '818bfa919d'
}


def download(url, filename, chksum, cachedir='~/kogpt2/'):
    f_cachedir = os.path.expanduser(cachedir)
    os.makedirs(f_cachedir, exist_ok=True)
    file_path = os.path.join(f_cachedir, filename)
    if os.path.isfile(file_path):
        if hashlib.md5(open(file_path,
                            'rb').read()).hexdigest()[:10] == chksum:
            print('using cached model')
            return file_path
    with open(file_path, 'wb') as f:
        response = requests.get(url, stream=True)
        total = response.headers.get('content-length')

        if total is None:
            f.write(response.content)
        else:
            downloaded = 0
            total = int(total)
            for data in response.iter_content(
                    chunk_size=max(int(total / 1000), 1024 * 1024)):
                downloaded += len(data)
                f.write(data)
                done = int(50 * downloaded / total)
                sys.stdout.write('\r[{}{}]'.format('█' * done,
                                                   '.' * (50 - done)))
                sys.stdout.flush()
    sys.stdout.write('\n')
    assert chksum == hashlib.md5(open(
        file_path, 'rb').read()).hexdigest()[:10], 'corrupted file!'
    return file_path

nsmc 파인튜닝시 파라미터 질문

안녕하세요.
KoGPT2를 이용하여 NSMC 데이터셋으로 감정분석 파인튜닝을 하려고 합니다.
이 경우 GPT2LMHeadModel이 아닌 GPT2DoubleHeadsModel을 사용하려고 하는데요.
kogpt2model.load_state_dict(torch.load(model_file) 라인에서
아래와 같은 오류가 발생합니다.

05/11/2020 19:10:56 - WARNING - main - device: cuda:1, n_gpu: 4
using cached model
using cached model
Traceback (most recent call last):
File "KoGPT2-finetuning_KoBERT_ver.py", line 50, in
gpt2_model, vocab = get_pytorch_kogpt2_model()
File "/home/yanghee/PycharmProjects/KoGPT2/kogpt2/pytorch_kogpt2.py", line 72, in get_pytorch_kogpt2_model
return get_kogpt2_model(model_path, vocab_path, ctx)
File "/home/yanghee/PycharmProjects/KoGPT2/kogpt2/pytorch_kogpt2.py", line 77, in get_kogpt2_model
kogpt2model.load_state_dict(torch.load(model_file))
File "/home/yanghee/anaconda3/envs/KoGPT2_py36/lib/python3.6/site-packages/torch/nn/modules/module.py", line 845, in load_state_dict
self.class.name, "\n\t".join(error_msgs)))
RuntimeError: Error(s) in loading state_dict for GPT2DoubleHeadsModel:
Missing key(s) in state_dict: "multiple_choice_head.summary.weight", "multiple_choice_head.summary.bias".

이는 배포해주신 파라미터 파일이 GPT2LMHeadModel에 맞춰져있기 때문일까요?
KoGPT2로 NSMC 데이터셋에 테스트 하신 결과도 올려주셨는데,
혹시 어떤식으로 파인튜닝을 하셨는지 알려주시면 감사하겠습니다!

gpt2 v2 fine tuning

현재 소설 데이터셋을 이용해 gpt2 를 학습시키려고 하는 학생입니다.

fine tuning 을 하려고 하는데
kogpt2 = GPT2LMHeadModel.from_pretrained('skt/kogpt2-base-v2')

이 코드의 "skt/kogpt2-base-v2" 부분에서 에러가 발생합니다
OSError: Model name 'skt/kogpt2-base-v2' was not found in model name list. We assumed 'https://s3.amazonaws.com/models.huggingface.co/bert/skt/kogpt2-base-v2/config.json' was a path, a model identifier, or url to a configuration file named config.json or a directory containing such a file but couldn't find any such file at this path or url.

혹시 어떤 문제인지 여쭤봐도 될까요?

KoGPT2 import 시 에러

안녕하세요.

기초적인 질문일 수도 있는데, KoGPT2를 동작 시키기 위한 환경 셋업이 잘 안되서 질문 드립니다.
Ubuntu 18.04, CUDA 10.2, Python 3.8이 설치되어 있는 환경인데요.

python pip, anaconda virtual env, docker img(https://github.com/Astro36/KoGPT2)
위 3가지를 활용해서 KoGPT2 package 설치 후, 테스트 코드를 실행하면 아래와 같이 import 부분에서 core dumped 되고 있습니다.

from kogpt2.pytorch_kogpt2 import get_pytorch_kogpt2_model
from gluonnlp.data import SentencepieceTokenizer
from kogpt2.utils import get_tokenizer

혹시 해당 패키지를 돌리기위한 환경 제약사항이 있을까요?

how to reproduce 93.3% accuracy for NMSC dataset using 'skt/kogpt2-base-v2'?

i had some experiments on NMSC dataset with 'skt/kogpt2-base-v2' model.

but just got 89.55% accuracy on it.

(in addition, i got same results with GPT2Model or GPT2LMHeadModel.
i think this is very natural since we are not using the lm head but using the output(hidden_states[-1]) of transformers. i.e.
the last token embedding of the last layer.)

could you share hyper-parameters(e.g. batch size, learning rate, etc) or some specific methods you took ?

model import error

다른 디렉토리에서 예제 코드를 실행시 아래와 같은 에러 발생

from kogpt2.pytorch_kogpt2 import get_pytorch_kogpt2_model
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/gogamza/miniconda3/lib/python3.7/site-packages/kogpt2/pytorch_kogpt2.py", line 23, in <module>
    from model.torch_gpt2 import GPT2Config, GPT2LMHeadModel
ModuleNotFoundError: No module named 'model'

연속적인 문장 생성에 관한 문의드립니다.

안녕하세요. 모델 사용에 관해 궁금한 점이 있어 문의를 드리게 되었습니다.

일전에 관련 내용에 대해 문의를 드렸었는데, 연속적인 문장 생성을 하기 위해서는 lm explorer 구현과 연관이 되며 </s>를 적절히 처리하면 된다는 답변을 받았습니다. 이 때 </s>를 적절히 처리한다는 의미는 구체적으로 어떤 것인지 궁금합니다. 문장이 생성될 때 </s>가 나오지 않도록 학습을 시키는 것인지, 혹은 </s>가 10개의 생성 후보에 나오더라도 무시를 하도록 구현하는 것인지, 아니면 다른 방법이 있는건가요??

또한, How to use 부분에서 문장을 생성할 때 10개 생성 후보에서 확률이 가장 높은 것을 argmax로 선택해서 생성하기 때문에 특정 input에 대해 항상 같은 문장이 생성되는 것을 확인했습니다. 그렇다면 매번 다른 문장을 생성하도록 하기 위해 랜덤성을 추가해줄 수 있는 부분이 있을까요??

모델 학습을 위한 train 코드도 공개하실 계획이 있으신지도 궁금합니다.

감사합니다!!

학습 epoch

혹시 koGPT-2 를 한국어 학습하는데에 몇 에폭 정도로 하셨는지 여쭤봐도 될까요?

checkpoint/pytorch_kogpt2_676e9bcfa7.params Error

Kogpt2 파인튜닝 예제파일을 학습중에
Invalid URL 'checkpoint/pytorch_kogpt2_676e9bcfa7.params': No schema supplied.
이 오류가 생겨났습니다.

찾아보니 Kogpt2 파일에서 utils.py 코드 부분에서
tokenizer = {
'url':'https://pypi.org/project/kogpt2-transformers/',
'fname':'kogpt2_news_wiki_ko_cased_818bfa919d.spiece',
'chksum':'818bfa919d'
}

여기 url 부분에서 오류가 났습니다. 이 오류에 해결방안이 없을까요?

링크 깨짐

한국어 Paraphrase Detection 데이터 링크가 깨져 있는데 못 찾겠습니다.

혹시 링크가 다른 곳에 있다면 연결시키면 좋을 듯합니다.

"멋진 프로젝트"였네요 고생 많으셨습니다.

개행 문제

안녕하세요. 주어진 정보를 가지고 스스로 문제를 해결해보려고 했지만 실패해서 다시 문의드립니다.

사전의 값을 바꾸고 .spiece 파일로 다시 저장하는 것은 어떻게 해야될까요?

google/sentencepiece#485

관련 이슈를 공유드립니다!

감사합니다.

eos token 관련 문의드립니다

안녕하세요.

번역모델을 만들기 위해 encoderdecodermodel 에서 skt/kogpt2-base-v2 를 decoder로 사용하고 있는데, 아래와 같이 번역이 끝난 후에도 단어, 문장을 추가로 생성하는 이슈가 있습니다.
image

PretrainedTokenizerFast class를 수정해서 eos 토큰을 추가했는데 tokenized 결과 샘플을 살펴보면 label 에 eos 토큰이 없습니다.
image

혹시 eos 토큰을 추가하려면 어떤 식으로 접근해야 할까요?
미리 감사드립니다.

Huggingface transformer: unable to load weights 이슈

안녕하세요 KoGPT2를 이용해서 실험을 해보려고하는 학생입니다.

Readme.md에 있는 예제 코드

model = GPT2LMHeadModel.from_pretrained('skt/kogpt2-base-v2')
를 실행하면 Unable to load weights from pytorch checkpoint file for 'skt/kogpt2-base-v2' 라는 에러가 뜨는데 KoGPT2가 더이상 공개 되어있지 않은건가요?

KoGPT2를 이용한 fine-tuning을 진행 하고 싶습니다.

안녕하세요. 공부중인 학부생입니다.

올려주신 KoGPT2 이전 모델을 보고 공부를 하다 오픈소스가 제공 중지 되었어서 계속 제자리 걸음을 걷고 있었습니다.

그러던 도중에 koGPT2-v2를 올리신 것을 확인하였습니다.

혹시 fine-tuning을 할 수 있는 방법이나, 오픈소스를 공유 받을 수 있을까요??

prediction 시 looping 문제

안녕하세요~ 좋은 모델 공개해 주셔서 감사합니다.
설치하여 예제를 돌려보던 중 다음과 같은 문구를 입력해 보았습니다.

"2029년에는, "
을 입력하면 "_그", "_후",","의 단어가 무한 반복됩니다.

이어질 문장을 예측하는것이 잘 되는것이 있는반면, 태그를 만나지 못하고 동일한 말이 반복되는 케이스가 있는것 같습니다. 예외처리를 할수는 있겠지만, 학습시에 방법을 바꾸면 나아질수 있는 문제일지 궁금합니다.

Training dataset/Model size 문의

Training dataset을 따로 공개할 계획이 있나요?

그리고, GPT-2 medium/large 이상의 모델 사이즈로 공개할 계획도 있나요?

pre-train 코드

안녕하세요.
배포해주신 모델을 기반으로 추가학습을 해보고자 하는데 pre-train 코드가 있다면 배우는 입장에서 참고가 많이 될 것 같습니다.
혹시 배포하신 KoGPT2모델에 대한 Pre-training 코드 공개 계획은 없으신가요..?
답변주시면 감사합니다.

Model checkpoint 저장 위치

안녕하세요, KoGPT2를 fine-tuning하는 실습을 하고자 합니다.
본 repo에는 model checkpoint가 없는 것 같은데, 모델을 사용하려면 HuggingFace 에 올라온 파일을 사용하는 방법밖에는 없는 걸까요?
원래 repo에 올라왔던 파일이 현재 HuggingFace에 올라간 모델과 동일한 것이 맞나요?

감사합니다

model tokenize (vocab_size) 관련 질문 사항

사전의 크기가 51,200라고 하셨는데 모델 받은 config가 52,003 이어서 여쭤보고 싶은것이 있습니다.
혹시 vocab size가 모델 parameter에 영향을 주나요?
아니면 tokenizer level 에서만 영향이 있고 모델은 어떤 vocab사이즈여도 상관없나요?

감사합니다

사용된 버전 문의

안녕하세요.

사용된 버전 문의드립니다.

readme에 있는 내용대로 인스톨하고
#2 해당 이슈에 있는 예시를 실행시켜보았는데
eos_token_ids가 지원되지 않는 인자로 나와 확인해보니 eos_token_id로 변경된걸로 확인하였습니다.
변경 후 실행해보니

RuntimeError: The size of tensor a (3) must match the size of tensor b (12) at non-singleton dimension 0

오류가 발생하고있습니다. 크기가 달라 발생하는문제같은데 혹시 예제에 사용된
PyTorch 및 transformers 버전을 알 수 있을까요?

KoGPT2 fine tuning 하는 방법

안녕하세요 :)
KoGPT2 fine tuning 하는 방법에 대해 질문 드립니다.
예제 코드에서는 pre-trained 모델의 parameter로 model.eval()하는 것만 나와있는데
model.train()으로 fine tuning하는 code는 어떤 식으로 작성해야 하는지 toy code 부탁드립니다.
감사합니다.

LDA를 이용한 리포트 생성 관련 문의드립니다

GPT2 모델을 참고하다 궁금한 부분이 생겨 질문드립니다.

현재 GPT2를 이용해 금융 상품 리포트를 생성하는 프로젝트를 진행하고 있습니다.

저희는 LDA로 10가지 단어를 추출해 해당 단어들을 입력했을 때 리포트를 생성하고자 합니다.

모델 파인튜닝을 위해 저희는 뉴스별 LDA를 추출해 뉴스를 결과값으로 학습을 시키고자 했습니다. 여기서 문제가 발생해 질문을 드립니다.

깃허브를 참고했을 때,

image

해당 부분에서 문서 전체를 data와 라벨로 지정한다고 이해했습니다.

이 부분에서 라벨을 LDA로 추출한 토픽 단어들로 설정한다면, 저희가 구현하고자 하는 결과값을 얻을 수 있을지를 문의드리고자 했습니다.

아직 자연어 처리를 배운지 얼마 시간이 되지 않아 부족한 부분이 많습니다. 이 점을 도와주시면 감사하겠습니다.

해당 프로젝트 Code : https://github.com/Dev-hottae/PINC/blob/master/Data_Analysis/Summarize_KoGPT2.ipynb

긴 메일 시간내서 읽어주셔서 감사합니다. 좋은 하루 되세요:)

현 버전 샘플코드 공백 발산

최근 커밋 이후로 how to use 샘플 코드를 실행시켰을때 공백( ▁ )만 발산하고 루프가 끊어지지 않네요.

transfer learning을 해보아도 현 버전으로는 여전히 잘 동작하지 않네요.

혹시 해결할 방법이 있을까요?

Using PreTrainedTokenizer instead of PreTrainedTokenizerFast

안녕하세요
먼저 ver2 모델을 공유해주셔서 감사합니다

공개하신 모델을 사용해보고 있는데, PreTrainedTokenizerFast 대신 PreTrainedTokenizer 로 변경이 가능한지 문의 드리고 싶습니다

제가 아는 한 add_prefix_space는 토크나이저에서 encoding 을 수행할 때 space 를 part of a token이라고 표현하는 방식입니다. 이로인해 공백 여부에 따라서 토큰 인덱스가 달라질 수 있고, 만약 그럴시 모델의 성능에 영향을 미칩니다.

관련하여 간단한 코드 실행 예시를 첨부합니다
image

현재 PreTrainedTokenizerFast 에선 _batch_encode_plus() 에서 **kwargs 가 없습니다. 따라서 GPT2Tokenizer 와 달리 add_prefix_space 인자를 넘겨주질 못하고 이와 같은 오류가 발생합니다.

  File "test.py", line 392, in <listcomp>
    [tokenizer.encode(word.strip(), add_prefix_space=True)]
  File "/root/.local/lib/python3.8/site-packages/transformers/tokenization_utils_base.py", line 2059, in encode
    encoded_inputs = self.encode_plus(
  File "/root/.local/lib/python3.8/site-packages/transformers/tokenization_utils_base.py", line 2378, in encode_plus
    return self._encode_plus(
  File "/root/.local/lib/python3.8/site-packages/transformers/tokenization_utils_fast.py", line 458, in _encode_plus
    batched_output = self._batch_encode_plus(
TypeError: _batch_encode_plus() got an unexpected keyword argument 'add_prefix_space'

제 생각에는 add_prefix_space 가 애초에 False 또는 애초에 없는 토크나이저(PreTrainedTokenizerFast)를 사용해 학습한 현재 모델 'skt/kogpt2-base-v2'가 나중에 특정 목적으로 토크나이저로 사용할 시 문제가 생기리라고 생각합니다.

예상되는 하나의 문제는 토크나이저를 encode 할때 가장 처음 오는 토큰은 이것이 하나의 단어인지 아니면 뒤에 어미가 붙는 형태의 동사인지를 알수 없다는 것입니다. 아래 예시를 첨부합니다

만약 제 생각이 맞다면 PreTrainedTokenizer또는 이를 상속받는 GPT2Tokenizer로 대체시킬 수 있을까요?

test

정정합니다. 실수로 잘못 올렸군요.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.