skt-ai / kobart Goto Github PK
View Code? Open in Web Editor NEWKorean BART
License: Other
Korean BART
License: Other
주어진 원문에서 요약문을 생성하는 예제 코드를 알려주실 수 있나요?
안녕하세요.
우선 좋은 자료 공유해주셔서 감사드립니다.
현재 KoBART를 사용하여 QA task를 구현하기 위해서, Transformer에서 KoBART Tokenizer와 AutoModelForQuestionAnswering 모델을 사용하여 KorQuAD 1.0 Dataset을 Training 하고 있습니다.
하지만 Training 과정에서 model save를 할 때 다음과 같은 오류가 발생하여 질문 드립니다.
[INFO|configuration_utils.py:329] 2021-04-28 16:20:12,610 >> Configuration saved in models/checkpoint-45000/config.json44998/56471 [5:26:32<1:22:42, 2.31it/s]
[INFO|modeling_utils.py:848] 2021-04-28 16:20:13,520 >> Model weights saved in models/checkpoint-45000/pytorch_model.bin
[INFO|tokenization_utils_base.py:1918] 2021-04-28 16:20:13,521 >> tokenizer config file saved in models/checkpoint-45000/tokenizer_config.json
[INFO|tokenization_utils_base.py:1924] 2021-04-28 16:20:13,521 >> Special tokens file saved in models/checkpoint-45000/special_tokens_map.json
[WARNING|tokenization_gpt2.py:288] 2021-04-28 16:20:13,619 >> Saving vocabulary to models/checkpoint-45000/merges.txt: BPE merge indices are not consecutive. Please check that the tokenizer is not corrupted!
[WARNING|tokenization_gpt2.py:288] 2021-04-28 16:20:13,620 >> Saving vocabulary to models/checkpoint-45000/merges.txt: BPE merge indices are not consecutive. Please check that the tokenizer is not corrupted!
...
model save를 담당하는 코드를 살펴보니 merge.txt를 작성할 때에 bpe_tokens를 뽑아내게 되는데, 이 때에 index와 token_index가 같은 value가 아니게 되는 문제가 발생하는 것 같습니다. 이 오류가 Tokenization 오류인지 혹은 model 자체의 오류인지 혹시 확인 가능할까요?
Training은 이 코드를 통해서 이루어졌습니다.
감사합니다!
안녕하세요.
소개페이지에는 Text Infilling에 대한 설명만 있어서 확인차 질문 드립니다.
BART논문에서와 같이
Pre-training objective를 Text Infilling + Sentence Shuffling 조합으로 training 시킨게 맞는지요?
그리고 혹시 데이터 중 Other corpus(0.27B)에 해당하는 데이터에 대한
조금 더 자세한 항목이나 비율 정보를 알려주실 수 있으실까요?
모두의 말뭉치에서 대화, 뉴스 외에 어떤 데이터를 이용하셨는지, 각 데이터의 개략적인 비율은 어떻게 되는지 궁금합니다.
좋은 모델 공개해주셔서 정말 감사합니다.
아래와 같이 토큰을 누락시키는 버그가 존재함.
>>> from kobart import get_kobart_tokenizer
>>> kobart_tokenizer = get_kobart_tokenizer()
>>> kobart_tokenizer.tokenize("ab헣㉿cde")
['▁', 'ab', 'c', 'd', 'e']
$ pip install git+https://github.com/SKT-AI/KoBART#egg=kobart --no-cache-dir -U turicreate
과 같이 설치 시도 시 아래와 같이 나타납니다(어느 OS에서든 비슷). 도움을 주실 수 있을까요?
WARNING: Discarding git+https://github.com/SKT-AI/KoBART#egg=kobart. Command errored out with exit status 128: git clone -q https://github.com/SKT-AI/KoBART /private/var/folders/7d/8j9vj0c541z7y9gs0_3hdsrr0000gn/T/pip-install-89_v3_4e/kobart_aa1496bd8fd04a869d9a9e1e3fbe5782 Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement kobart (unavailable)
ERROR: No matching distribution found for kobart (unavailable)
안녕하세요!!
우선 좋은 코드 제공해 주셔서 감사합니다 :)
ValueError: The highest label in `target` should be smaller than the size of the `C` dimension of `preds`.
nsmc.py 코드로 7가지 클래스 분류를 하려고 합니다. validation step에서 위와 같은 오류가 발생합니다. 다중 클래스 분류를 위한 모델의 output 차원을 변경할 수 있는 방법이 궁금합니다.
감사합니다.
안녕하세요! 우선 KoBART를 공개해주셔서 감사합니다! 덕분에 편하게 프로젝트를 진행할 수 있게 되었습니다!
친구들과 함께 KoBART를 이용하여 pegasus를 개발하려 하는데, KoBART pretrain 시 구체적인 입력값을 찾지 못해 질문드리게 되었습니다.
물론 이전에도 #2 처럼 이슈를 제기해주신 분이 계신데, 제가 지식이 부족한 탓에 잘 이해가 가지 않아 다시 질문드리게 되었습니다.
제가 이해한 바로는 다음과 같이 여러 문장을 인코더나 디코더에 싣고 계신데 혹시 맞나요?
안녕하세요 좋은 모델 배포해주셔서 감사합니다.
KoBART summarization을 이용하기 위해 설치 후 fine tuning을 하기 위해 Read.me에 안내된 아래의 코드를 실행했습니다.
[use cpu]
python train.py --gradient_clip_val 1.0 --max_epochs 50 --default_root_dir logs --batch_size 4 --num_workers 4
하지만 Validation sanity check 과정에서 다음과 같은 에러가 발생하였습니다.
INFO:root:Namespace(accelerator=None, accumulate_grad_batches=1, amp_backend='native', amp_level='O2', auto_lr_find=False, auto_scale_batch_size=False, auto_select_gpus=False, batch_size=4, benchmark=False, check_val_every_n_epoch=1, checkpoint_callback=True, checkpoint_path=None, default_root_dir='logs', deterministic=False, distributed_backend=None, fast_dev_run=False, flush_logs_every_n_steps=100, gpus=None, gradient_clip_algorithm='norm', gradient_clip_val=1.0, limit_predict_batches=1.0, limit_test_batches=1.0, limit_train_batches=1.0, limit_val_batches=1.0, log_every_n_steps=50, log_gpu_memory=None, logger=True, lr=3e-05, max_epochs=50, max_len=512, max_steps=None, max_time=None, min_epochs=None, min_steps=None, model_path=None, move_metrics_to_cpu=False, multiple_trainloader_mode='max_size_cycle', num_nodes=1, num_processes=1, num_sanity_val_steps=2, num_workers=4, overfit_batches=0.0, plugins=None, precision=32, prepare_data_per_node=True, process_position=0, profiler=None, progress_bar_refresh_rate=None, reload_dataloaders_every_epoch=False, replace_sampler_ddp=True, resume_from_checkpoint=None, stochastic_weight_avg=False, sync_batchnorm=False, terminate_on_nan=False, test_file='data/test.tsv', tpu_cores=None, track_grad_norm=-1, train_file='data/train.tsv', truncated_bptt_steps=None, val_check_interval=1.0, warmup_ratio=0.1, weights_save_path=None, weights_summary='top')
using cached model
using cached model
using cached model
GPU available: False, used: False
TPU available: False, using: 0 TPU cores
INFO:root:number of workers 4, data length 34242
INFO:root:num_train_steps : 107006
INFO:root:num_warmup_steps : 10700
2021-11-05 10:27:55.060417: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
2021-11-05 10:27:55.069132: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
| Name | Type | Params
-------------------------------------------------------
0 | model | BartForConditionalGeneration | 123 M
-------------------------------------------------------
123 M Trainable params
0 Non-trainable params
123 M Total params
495.440 Total estimated model params size (MB)
Validation sanity check: 0%| | 0/2 [00:00<?, ?it/s]Traceback (most recent call last):
File "train.py", line 233, in <module>
trainer.fit(model, dm)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytorch_lightning\trainer\trainer.py", line 460, in fit
self._run(model)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytorch_lightning\trainer\trainer.py", line 758, in _run
self.dispatch()
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytorch_lightning\trainer\trainer.py", line 799, in dispatch
self.accelerator.start_training(self)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytorch_lightning\accelerators\accelerator.py", line 96, in start_training
self.training_type_plugin.start_training(trainer)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytorch_lightning\plugins\training_type\training_type_plugin.py", line 144, in start_training
self._results = trainer.run_stage()
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytorch_lightning\trainer\trainer.py", line 809, in run_stage
return self.run_train()
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytorch_lightning\trainer\trainer.py", line 844, in run_train
self.run_sanity_check(self.lightning_module)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytorch_lightning\trainer\trainer.py", line 1112, in run_sanity_check
self.run_evaluation()
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytorch_lightning\trainer\trainer.py", line 967, in run_evaluation
output = self.evaluation_loop.evaluation_step(batch, batch_idx, dataloader_idx)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytorch_lightning\trainer\evaluation_loop.py", line 174, in evaluation_step
output = self.trainer.accelerator.validation_step(args)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytorch_lightning\accelerators\accelerator.py", line 226, in validation_step
return self.training_type_plugin.validation_step(*args)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytorch_lightning\plugins\training_type\training_type_plugin.py", line 161, in validation_step
return self.lightning_module.validation_step(*args, **kwargs)
File "train.py", line 195, in validation_step
outs = self(batch)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\torch\nn\modules\module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "train.py", line 185, in forward
labels=inputs['labels'], return_dict=True)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\torch\nn\modules\module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\transformers\models\bart\modeling_bart.py", line 1295, in forward
return_dict=return_dict,
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\torch\nn\modules\module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\transformers\models\bart\modeling_bart.py", line 1157, in forward
return_dict=return_dict,
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\torch\nn\modules\module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\transformers\models\bart\modeling_bart.py", line 748, in forward
inputs_embeds = self.embed_tokens(input_ids) * self.embed_scale
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\torch\nn\modules\module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\torch\nn\modules\sparse.py", line 126, in forward
self.norm_type, self.scale_grad_by_freq, self.sparse)
File "C:\Users\Newrun\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\torch\nn\functional.py", line 1852, in embedding
return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)
RuntimeError: Expected tensor for argument #1 'indices' to have scalar type Long; but got torch.IntTensor instead (while checking arguments for embedding)
정상적으로 작동하게 하기 위해서는 어떻게 해야할까요??ㅜㅜ
감사합니다
BartForSequenceClassification 이 제대로 동작하지 않습니다. Tutorial에서 model만 살짝 바꿨는데 에러가 나네요.
Original(English) Bart는 잘 동작하는데, KoBART는 안 되네요.. eos token 관련 문제인 것 같은데, 확인 부탁드립니다.
from transformers import BartTokenizer, BartForSequenceClassification
from kobart import get_pytorch_kobart_model, get_kobart_tokenizer
from transformers.models.bart.modeling_bart import *
tokenizer = BartTokenizer.from_pretrained("facebook/bart-base")
model = BartForSequenceClassification.from_pretrained("facebook/bart-base")
inputs = tokenizer(["Hello, my dog is cute"], return_tensors="pt")
labels = torch.tensor([1]).unsqueeze(0) # Batch size 1
outputs = model(inputs['input_ids'], labels=labels)
print(outputs.logits)
kobart_tokenizer = get_kobart_tokenizer()
ko_model = BartForSequenceClassification.from_pretrained(get_pytorch_kobart_model())
inputs = kobart_tokenizer(['안녕하세요.'], return_tensors='pt')
labels = torch.tensor([1]).unsqueeze(0) # Batch size 1
ko_model(inputs['input_ids'], labels=labels)
버그를 재현하기 위한 재현절차를 작성해주세요.
정상적으로 outputs에 해당하는 값이 나와야 하는데...안 나오네요
Colab과 Local 모두에서 테스트
Local 환경
Package Version
absl-py 1.0.0
cachetools 5.0.0
certifi 2021.10.8
charset-normalizer 2.0.11
click 8.0.3
colorama 0.4.4
cycler 0.11.0
filelock 3.4.2
fonttools 4.29.1
google-auth 2.6.0
google-auth-oauthlib 0.4.6
grpcio 1.43.0
huggingface-hub 0.4.0
idna 3.3
importlib-metadata 4.10.1
joblib 1.1.0
kiwisolver 1.3.2
Markdown 3.3.6
matplotlib 3.5.1
mkl-fft 1.3.1
mkl-random 1.2.2
mkl-service 2.4.0
nltk 3.6.7
numpy 1.21.2
oauthlib 3.2.0
olefile 0.46
packaging 21.3
Pillow 8.4.0
pip 21.2.2
protobuf 3.19.4
pyasn1 0.4.8
pyasn1-modules 0.2.8
pyparsing 3.0.7
python-dateutil 2.8.2
PyYAML 6.0
regex 2022.1.18
requests 2.27.1
requests-oauthlib 1.3.1
rouge-score 0.0.4
rsa 4.8
sacremoses 0.0.47
setuptools 58.0.4
six 1.16.0
tensorboard 2.8.0
tensorboard-data-server 0.6.1
tensorboard-plugin-wit 1.8.1
tokenizers 0.11.4
torch 1.10.2
torchaudio 0.10.2
torchvision 0.11.3
tqdm 4.62.3
transformers 4.16.2
typing-extensions 3.10.0.2
urllib3 1.26.8
Werkzeug 2.0.2
wheel 0.37.1
wincertstore 0.2
zipp 3.7.0
안녕하세요!
https://github.com/seujung/KoBART-translation 관련 내용이 부족하여 문의하러 오게 되었습니다.
https://github.com/seujung/KoBART-translation 에 따라 train 진행 후 데모를 위해
python get_model_binary.py --hparams ./logs/tb_logs/default/version_0/hparams.yaml --model_binary ./logs/kobart_translation-model_chp/epoch=49-val_loss=9.253.ckpt
까지 한 상황인데요,
해당 명령어의 output으로 ./translation_binary
이 나와야한다고 생각했는데, config.json
과 pytorch_model.bin
이 나왔습니다.
이후 streamlit run infer.py를 실행하여 Demo page를 열면
OSError: Can't load the configuration of './translation_binary'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure './translation_binary' is the correct path to a directory containing a config.json file Traceback: File "/home/lib/python3.8/site-packages/streamlit/script_runner.py", line 332, in _run_script exec(code, module.__dict__) File "/home/KoBART-translation/infer.py", line 12, in <module> model = load_model() File "/home/lib/python3.8/site-packages/streamlit/caching.py", line 604, in wrapped_func return get_or_create_cached_value() File "/home/lib/python3.8/site-packages/streamlit/caching.py", line 588, in get_or_create_cached_value return_value = func(*args, **kwargs) File "/home/KoBART-translation/infer.py", line 8, in load_model model = BartForConditionalGeneration.from_pretrained('./translation_binary') File "/home/lib/python3.8/site-packages/transformers/modeling_utils.py", line 2175, in from_pretrained config, model_kwargs = cls.config_class.from_pretrained( File "/home/lib/python3.8/site-packages/transformers/configuration_utils.py", line 546, in from_pretrained config_dict, kwargs = cls.get_config_dict(pretrained_model_name_or_path, **kwargs) File "/home/lib/python3.8/site-packages/transformers/configuration_utils.py", line 573, in get_config_dict config_dict, kwargs = cls._get_config_dict(pretrained_model_name_or_path, **kwargs) File "/home/lib/python3.8/site-packages/transformers/configuration_utils.py", line 649, in _get_config_dict raise EnvironmentError(
이와 같이 연결됩니다.
이후로 부터 어떻게 해결해야할지 갈피를 잡지 못해, 도움을 얻고자 문의드립니다. 감사합니다.
from kobart import get_kobart_tokenizer
kobart_tokenizer = get_kobart_tokenizer()
kobart_tokenizer.tokenize("안녕하세요. 한국어 BART 입니다.🤣:)l^o")
['▁안녕하', '세요.', '▁한국어', '▁B', 'A', 'R', 'T', '▁입', '니다.', '🤣', ':)', 'l^o']
도무지 이해가 안되네요
3줄까지 작성하고
4줄에 print(kobart_tokenizer) 를 하면 괄호 [] 보기와 같이 나오는게 아닌가요;;
안녕하세요! 좋은 모델 공개해주셔서 감사합니다!
pretrain 및 finetune 당시 사용하셨던 gpu 스펙을 혹시 공유해주실 수 있으신가요?
감사합니다 :)
example 에 있는 nsmc.py 를 활용해서 8개 클래스를 분류하는 모델을 파인튜닝 했습니다.
학습 결과로 ckpt 파일과 hparams.yaml 파일을 얻었습니다.
요약 task 할 때는 KoBart summarization git 에서 예제 코드를 얻어서 파인튜닝한 모델을 사용했었는데요.
nsmc 쪽은 사용 예제가 없어서 어떻게 사용해야 하는지 모르겠어서 문의드립니다.
사용 예제나 참고할만한 링크라도 공유해주시면 감사하겠습니다.
koBART-large 배포
현재 릴리즈는 BART-base 기반인것으로 보입니다. BART의 경우 base 뿐만 아닌 large 모델도 있는 것으로 알고 있습니다.
한국어 데이터셋에 대해 pretrain된 large 크기 모델 또한 가능하다면 공개해주신다면 성능 향상에 도움이 될 것으로 생각합니다.
BART-large 모델 구현 혹은 huggingface에서 불러 온 다음 한국어 데이터 셋에 대해 학습
model, tokenizer, dataset 저장소 변경
안정적인 관리, 다운로드 속도 보장을 위해, 스토리지를 변경합니다.
download
함수를 aws 용으로 변경안녕하세요
좋은소스 공유해주셔서 감사합니다
kobart translator 사용중에 해당 이슈가 발생합니다
원인을 찾던중 kobart install 이후에 해당 이슈가 발생하기 시작함을 확인했습니다
Torch == 1.7.1
pytorch-lightning == 1.1.0
python == 3.7.0
>>> import torch
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ubuntu/anaconda3/envs/test_env/lib/python3.7/site-packages/torch/__init__.py", line 500, in <module>
_C._initExtension(manager_path())
AttributeError: module 'torch' has no attribute 'QUInt4x2Storage'
어떤 오류인지 확인가능할까요??
좋은 자료 공유해주셔서 감사합니다!
안녕하세요! 😄
좋은 코드 정말 감사합니다 덕분에 한국어 large-scale model에 대해 열심히 공부하고 있습니다ㅎㅎ
혹시 NSMC benchmark classification task 코드인 nsmc.py 코드에서
multi-gpu 사용 세팅은 어떻게 해야되는지 여쭤볼 수 있을까요?
--gpus의 숫자를 단순히 바꾸면 오류가 나고,
(AttributeError: Can't pickle local object 'get_cosine_schedule_with_warmup..lr_lambda')
pytorch에서 일반적으로 사용하는 방법으로 수정하고 싶은데 디버거 모드로 찍어봐도 어려움이 있어서 이슈 남깁니다
감사합니다!
안녕하세요. 먼저 좋은 모델을 공개해주셔서 감사합니다.
모델의 토크나이저를 사용하는 도중 에러가 발생하여 이슈를 남깁니다.
git+https://github.com/SKT-AI/KoBART#egg=kobart
로 pip install 진행)(일부 불필요한 내용은 생략하였습니다)
import kobart
from transformers import AutoTokenizer
if not os.path.exists("./kobart_tokenizer"):
os.makedirs("./kobart_tokenizer")
dummy_tokenizer = kobart.get_kobart_tokenizer()
dummy_tokenizer.save_pretrained("./kobart_tokenizer/") # 이곳에서 에러 발생
tokenizer = AutoTokenizer.from_pretrained("./kobart_tokenizer")
Traceback (most recent call last):
File "misc.py", line 23, in <module>
dummy_tokenizer.save_pretrained("./kobart_tokenizer/")
File ".../venv/lib/python3.6/site-packages/transformers/tokenization_utils_base.py", line 1992, in save_pretrained
filename_prefix=filename_prefix,
File ".../venv/lib/python3.6/site-packages/transformers/tokenization_utils_fast.py", line 535, in _save_pretrained
vocab_files = self.save_vocabulary(save_directory, filename_prefix=filename_prefix)
File ".../venv/lib/python3.6/site-packages/transformers/tokenization_utils_base.py", line 2044, in save_vocabulary
raise NotImplementedError
NotImplementedError
이 오류는 다음과 같은 코드에서 발생한 pickle 에러를 해결하려던 도중 발견하였습니다.
tokenizer = kobart.get_kobart_tokenizer()
def preprocess(sample):
global tokenizer
return tokenizer(sample)
# 생략
def main():
# 생략
dataset = dataset.map(preprocess, batched=True)
를 진행할 시, map 이 있는 라인에서 pickling Error가 발생합니다. (에러 내용이 너무 길어 일부 생략하고 마지막 부분만 기입합니다)
File ".../venv/lib/python3.6/pickle.py", line 927, in save_global
(obj, module_name, name))
_pickle.PicklingError: Can't pickle <class 'transformers.tokenization_utils_fast.PreTrainedTokenizerFast'>: it's not the same object as transformers.tokenization_utils_fast.PreTrainedTokenizerFast
이 문제를 회피하는 방법 중에 하나로, preprocess(sample)
안에서 get_kobart_tokenizer()
를 하는 방법이 있었습니다만 매번 토크나이저를 불러오게 되어 굉장히 느리고 비효율적이라고 판단되었습니다.
huggingface에서 제공하는 다른 tokenizer의 경우, 위와 같이 하나의 토크나이저를 미리 선언해둔 후 map에서 사용하여도 아무런 문제가 발생하지 않았습니다.
이를 해결하려고 tokenizer를 일단 불러온 후, save_pretrained()
를 하고 다시 AutoTokenizer.from_pretrained()
로 가져와서 실행해보려던 중 NotImplementedError
가 발생하였습니다.
맥락이 다를 수는 있지만 아무래도 not the same object as ...PreTrainedTokenizerFast
부분이, 토크나이저의 일부가 구현되지 않아 생기는 오류일 수 있다는 생각에 이슈에 같이 기입하였습니다.
데모페이지처럼 기사를 넣으면 요약된 줄거리가 나오는 메소드는 무엇을 써야하나요?
현재 가상환경 설정 및 install은 되어 있는 상태입니다.
`from transformers import BartModel
from kobart import get_pytorch_kobart_model, get_kobart_tokenizer
if name == 'main' :
kobart_tokenizer = get_kobart_tokenizer()
kobart_tokenizer.tokenize("안녕하세요. 한국어 BART 입니다.🤣:)l^o")
model = BartModel.from_pretrained(get_pytorch_kobart_model())
inputs = kobart_tokenizer(['여권에서 서울시장 보선 출마를 공식화한 것은 우 의원이 처음이다. 차기 총선에 불출마하고 모든 것을 걸겠다며 배수진을 쳤다.우 의원은 13일 국회 소통관에서 출마 기자회견을 하고 "이번 선거는 대단히 중요한 선거"라며 "문재인 대통령이 성공한 대통령으로 평가받느냐, 야당의 흠집내기, 발목잡기로 혼란스러운 국정 후반기를 보내야 하느냐를 결정하는 선거"라고 말했다.\
'], return_tensors='pt')
model(inputs['input_ids'])
`
Huggingface의 KoBART 모델쪽을 보니, decoder_input_ids
가 입력값을 받지 않을 때는 아래와 같이 구성하는 것으로 확인했는데,
labels: t1, t2, t3,..., tn, eos, pad, pad
decoder_input_ids: eos, t1, t2, t3,
혹시 pretrain시 decoder_input_ids
를 직접 input넣어줄때 넣었는지, 혹은 input_ids
, labels
만 넣었는지 알 수 있을까요?
추가로 입력시 input_ids
와 labels
의 구조에 대해서 정확히 알 수 있을까요
ex)
input_ids = bos, t1, ..., tn, eos, pad, ...(mask포함)
labels = bos, t1, t2, ..., tn, eos, pad, ...
decoder_input_ids(직접 넣어줬다면) = bos, t1, t2, ..., tn, eos
마지막으로, 모델을 공유해주셔서 감사합니다.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.