반응형

Python/NLP Code 19

NLP Question Answering 전처리, 학습 및 성능 평가 코드 예제

HuggingFace에서 제공하는 transformers 모듈을 활용하여 pre-train model을 불러와 자연어 처리의 대표 task 중 하나인 Question Answering에 대하여 학습하고 검증하는 과정들의 파이썬 실습 코드 예제를 다루어보도록 하겠습니다. Step 1. 데이터셋 로드 및 전처리 과정 먼저, 학습을 위하여 데이터셋을 불러오고 모델 학습을 위한 전처리 과정을 수행해주어야 합니다. 여기서는 QA task의 대표 벤치마크 데이터셋인 SQuAD를 사용해보도록 하겠습니다. 전처리 과정에 대해서는 아래 링크의 허깅페이스 공식 페이지를 참고하였으니, 상세한 내용이 필요하신 분들은 해당 글을 참고해주세요. Question answering - Hugging Face Course Time t..

Python/NLP Code 2022.10.19

CLS 토큰이란? / 파이썬 BERT CLS 임베딩 벡터 추출 예제

[CLS] 토큰이란? BERT, RoBERTa 등의 언어 모델에서 문장 토큰들이 인코딩된 결과를 활용하는 것이 유용한 경우가 많은데 가장 첫 위치에 문장 공통 토큰인 [CLS]를 두어 해당 위치의 임베딩 결과를 대표 임베딩으로 주로 사용하게 되었습니다. BERT-base 크기의 모델의 경우 토큰 길이는 512이고 각 토큰 위치에서의 임베딩 결과는 768 차원 벡터로, 문장 input 1개에 대한 총 output 텐서의 shape는 512 * 768이 됩니다. 이 중 가장 앞 위치의 768 차원 벡터를 가져와 해당 문장의 대표 임베딩 결과로 활용하는 것이고, 흔히 NLP 관련 논문에서 CLS 토큰 임베딩으로 일컫는 것이 바로 이것입니다. CLS 임베딩 벡터 추출 코드 예제 먼저, BERT-base 모델을 ..

Python/NLP Code 2022.09.03

트랜스포머 모델 텍스트 생성(Text Generation) 원리 설명, 코드 구현

Transformer text generation 원리, 코드 구현 예제 트랜스포머 구조의 모델에서 텍스트를 생성하는 원리를 간단히 정리해보고, 허깅페이스에서 지원하는 Transformers 모듈을 활용하여 텍스트를 생성하는 코드를 구현하는 과정에 대하여 다루어보도록 하겠습니다. 트랜스포머 모델 텍스트 생성 원리(인코더-디코더 기반) Transformer 구조 모델에서 텍스트를 생성하는 원리를 간단하게 먼저 정리해보겠습니다. Encoder-Decoder 기반 구조로 이루어져있는 트랜스포머 기반 모델의 특징을 활용하여 인코더에서 input text를 임베딩한 결과와 이전 단계까지에서 생성된 output token을 디코더에서 받아들여 예측된 토큰 확률 분포에서 가장 확률이 높은 토큰 or 확률에 따른 샘플..

Python/NLP Code 2022.07.03

파이썬 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

파이썬 텍스트 데이터 증강 모듈 : nlpaug

Text Augmentation 라이브러리 nlpaug 파이썬에서 텍스트 데이터를 augmentation해야할 때 유용하게 사용할 수 있는 nlpaug 모듈에 대해서 소개해보고 사용법을 간단하게 살펴보겠습니다. nlpaug에서 지원하는 텍스트 증강 종류 우선, nlpaug 라이브러리에 대한 내용이 정리된 공식 github 페이지의 링크는 아래와 같습니다. GitHub - makcedward/nlpaug: Data augmentation for NLP Data augmentation for NLP . Contribute to makcedward/nlpaug development by creating an account on GitHub. github.com 해당 페이지의 내용을 확인해보시면 텍스트 데이터뿐..

Python/NLP Code 2022.05.13

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

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

nltk 다운로드 방법, LookupError 해결

nltk package download manual 이번 글에서는 nltk 라이브러리에서 원하는 corpora, model을 골라서 설치하거나 collection 전체를 다운로드하는 방법을 설명하고, LookupError 오류가 등장할 경우 이를 콘솔 창을 통해 해결할 수 있는 법을 간략하게 다루어보도록 하겠습니다. 먼저, nltk 라이브러리가 설치되지 않은 경우 !pip install nltk 명령어를 통해 라이브러리를 설치해주시면 됩니다. nltk package collection 전체 다운로드 : all, popular 등 nltk에서 지원하는 모든 패키지를 다운로드 받고 싶다면 all 옵션을, 많이 사용되는 주요 패키지들의 목록들을 설치하고 싶다면 popular 옵션으로 아래 예시 코드처럼 지정해..

Python/NLP Code 2022.03.09
반응형