반응형

transformers 7

RuntimeError: The expanded size of the tensor (1002) must match the existing size (512) at non-singleton dimension 1. Target sizes: [8, 1002]. Tensor sizes: [1, 512] 해결

Transformers token size error debugging transformers 모듈로 모델 학습 과정 중 너무 긴 토큰 사이즈로 인해 발생가능한 에러를 고치는 방법에 대하여 간략하게 다루어보도록 하겠습니다. 오류 원인 trainer로 bert 모델을 학습하는 과정 도중 학습이 잘 진행되다가 중간에 특정 데이터에 도달했을 때, 다음과 같은 오류 메시지가 발생하였습니다. (batch size = 8이었으며, batch 내 문제가 되는 데이터가 포함된 것으로 보입니다.) trainer.train() # RuntimeError: The expanded size of the tensor (1002) must match the existing size (512) at non-singleton dim..

Python/Debugging 2022.08.26

파이썬 BERT 모델 활용 IMDB 데이터셋 감성 분석 classification 예제

허깅페이스 BERT 영화 리뷰 감정 분류 튜토리얼 파이썬에서 transformers 라이브러리를 활용하여 BERT 구조 모델을 감성 분석 classification 과정에서 이용하는 예제에 대하여 다루어보도록 하겠습니다. (데이터셋으로는 IMDB 영화 감성 분석 데이터셋을 사용하겠습니다.) 참고로, 이 글은 아래 링크의 허깅페이스 공식 사이트 글의 내용을 기반으로 작성되었으며, 여기서는 해당 공식 글의 해설을 위주로 글을 전개하도록 하겠습니다. Text classification To fine-tune a model in TensorFlow, start by converting your datasets to the tf.data.Dataset format with to_tf_dataset. Specify..

Python/NLP Code 2022.06.18

transformers 모듈 model.generate() 과정 shape 관련 오류 해결

transformers generate 함수 RuntimeError, ValueError 디버깅 transformers 라이브러리의 generate 함수 사용 중 shape 미스매칭으로 인하여 발생할 수 있는 두 가지 오류에 대하여 정리해보도록 하겠습니다. 1. 추가 dimension을 가지는 경우 RuntimeError: The size of tensor a (100) must match the size of tensor b (10) at non-singleton dimension 1 2. 단일 sequence일 때, 추가 dimension이 필요한 경우 ValueError: not enough values to unpack (expected 2, got 1) 정상 실행 코드 예시 예를 들어, 100 ..

Python/Debugging 2022.05.24

BERT 모델 MLM 기반 pre-train 파이썬 코드 예제

Transformers 라이브러리 BERT corpus pre-train 실습 BERT 모델을 사전 학습하는 방법인 MLM(Masked Language Modeling) 기법을 적용하여 원하는 corpus로 학습된 pre-trained BERT를 생성하는 파이썬 코드 예시를 살펴보겠습니다. Transformers 라이브러리의 기능을 사용하여 진행한 예제이며, random word 토큰 선별 과정을 제외하고는 아래 사이트의 코드를 참조하였습니다. Masked-Language Modelling With BERT Transformer models like BERT are incredibly powerful when fine-tuned for specific tasks using masked-language m..

Python/NLP Code 2022.04.03

Transformers 모델 병렬화(Model Parallelism) 간단하게 하는 방법

Transformers T5, GPT2 등 Model Parallelism Transformers 라이브러리 내 T5, GPT-2 등 파라미터 사이즈가 큰 일부 모델에 대하여 모델 파라미터 병렬처리를 간단하게 할 수 있는 parallelize 함수와 device map의 사용 방법에 대해서 다루어보도록 하겠습니다. 이 글은 HuggingFace의 공식 document 내용을 바탕으로 작성되었습니다. T5 모델 병렬처리 예시 Transformers에서 제공하는 T5 모델 크기의 attention module의 개수에 따라 아래처럼 device마다 할당할 module의 번호를 지정해주시면 됩니다. t5-small은 6개, t5-base는 12개, t5-large, t5-3b 및 t5-11b는 24개의 att..

Python/NLP Code 2022.03.21

ModuleNotFoundError: No module named 'fused_layer_norm_cuda' 해결법

transformers apex 연동 오류 디버깅 transformers 라이브러리의 T5 모델을 불러오는 과정에서 아래와 같은 에러가 발생하였습니다. import transformers model = transformers.T5ForConditionalGeneration.from_pretrained("t5-base") Warning 메시지 : 'fused_weight_gradient_mlp_cuda' module not found. gradient accumulation fusion with weight gradient computation disabled. Error 메시지 : ModuleNotFoundError: No module named 'fused_layer_norm_cuda' 오류 원인 T5..

Python/Debugging 2022.03.21

Transformers 라이브러리에서 학습한 모델 저장, 불러오기 방법

Transformers model save, load Hugging Face에서 제공하는 Transformers 라이브러리의 모델들을 학습 뒤 저장하는 방법과, 저장된 모델을 불러오는 방법에 대해서 살펴보겠습니다. 모델 저장 방법 : save_pretrained(디렉토리) 예를 들어, Transformers의 BertForMaskedLM, TFAutoModelWithLMHead 모델을 불러와서 (BertForMaskedLM는 파이토치 기반, TFAutoModelWithLMHead는 텐서플로우 기반) fine-tune 과정을 수행한 이후 학습된 모델을 파일로 저장하고 싶은 상황을 가정해보겠습니다. from transformers import BertForMaskedLM, TFAutoModelWithLMHe..

Python/NLP Code 2022.03.10
반응형