본문 바로가기

NLP 자연어 처리, Natural Language Processing

부트스트랩, Bootstrap in ML Bootstrap : (부츠 뒤의) '가죽 손잡이', 혹은 (비유적으로) '혼자의 힘'을 뜻한다고 합니다. 부츠를 신을 때 손잡이를 이용하면 다른 사람의 힘을 빌리지 않고 신을 수 있듯이 Bootstrap sampling이란 비용과 시간이 많이 드는 데이터 수집을 스스로 해결할 수 있는 샘플링 방법이라고 간단히 말할 수 있다고 합니다. [출처: www.statisticshowto.com/bootstrap-sample]/] 통계학 - Bootstrap 통계학에서는 "Bootstrap"이란 용어를 사용합니다. 부트스트랩은 무작위 표본 추출에 의존하는 어떤 시험이나 계측이라고 설명됩니다. 표본 추정치들의 (편향, 분포, 신뢰 구간, 오차 예측 또는 기타 추정치들로 정의 되는) 정확도를 할당할 수 있도록 합니다.. 더보기
나만의 Tokenizer, vocab 만들기 해당 코드를 실행하면 지정한 텍스트 파일을 기준으로 Vocabulary를 생성합니다. from tokenizers import BertWordPieceTokenizer # Initialize a tokenizer tokenizer = BertWordPieceTokenizer(clean_text=False, handle_chinese_chars=False) vocab_size = 50000 ## 임의 지정 min_frequency = 5 ## 단어의 최소 발생 빈도 limit_alphabet= 6000 ## 알파벳 제한 trainer = tokenizer.train( files=['가지고 있는 텍스트 파일'], vocab_size=vocab_size, min_frequency=min_frequency, s.. 더보기
RealFormer: Transformer Likes Residual Attention RealFormer: Transformer Likes Residual Attention Ruining He, Anirudh Ravula, Bhargav Kanagal, Joshua Ainslie arxiv.org/abs/2012.11747 RealFormer: Transformer Likes Residual Attention Transformer is the backbone of modern NLP models. In this paper, we propose RealFormer, a simple Residual Attention Layer Transformer architecture that significantly outperforms canonical Transformers on a spectrum .. 더보기
ELECTRA : Pre-training Text Encoders as Discriminators Rather Than Generators ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators Kevin Clark, Minh-Thang Luong, Quoc V. Le, Christopher D. Manning https://openreview.net/forum?id=r1xMH1BtvB ELECTRA: Pre-training Text Encoders as Discriminators Rather Than... A text encoder trained to distinguish real input tokens from plausible fakes efficiently learns effective language representations. openreview... 더보기
네이버 개발자센터(NAVER Developers), 번역 API 사용해보기 먼저 네이버 개발자 홈페이지에 네이버 아이디로 로그인을 하게 되면 사용하겠다는 동의서가 나오게 된다. 이부분은 휴대폰 인증을 통해 진행해주시면 됩니다. 1. 먼저 API를 사용하기 위해서는 애플케이션 등록을 진행해야 합니다. 네이버 개발자 홈페이지에 접속하면 다음과 같은 화면이 뜨는데 여기에서 상단 Application - 애플리케이션 등록을 눌러줍니다. 그렇게하면 아래와 같은 내용이 나타납니다. 애플리케이션 이름은 닉네임과 같으며 사용자가 애플리케이션에 이름을 지정하여 관리하기 편하게 사용하기 위한 것 같습니다. 다음으로 사용 API는 항목을 누르게되면 다음과 같은 항목이 나타납니다. 저는 당연히 번역을 위한 API를 사용을 하기 위해 Papago 번역을 클릭해줍니다. 그 다음 자신이 통신할 어플리케이.. 더보기
BLEU score (Bilingual Evaluation Understudy score) 언어 모델(Language Model)의 성능 측정을 위한 평가 방법 중 하나입니다. BLEU스코어 BLEU(Bilingual Evaluation Understudy) score로 불립니다. 기계 번역 Task에서 결과와 사람이 직접 번역한 결과가 얼마나 유사한지 비교하여 번역에 대한 성능을 측정하는 방법입니다. 측정 기준은 n-gram에 기반합니다. 들어가기 앞서 먼저 Candidate, Reference가 있습니다. Candidate : Output, 예측된 문장 Reference : Target, 실제 문장 번역에서는 ex)영어 -> 한국어 번역된 문장을 Candidate라고 하며, 한국인이 직접 영어를 번역한 문장을 Reference라고 합니다. 1. 정밀도(Precision) 측정 먼저, Can.. 더보기
BART 학습 및 예측 다음은 Fairseq를 이용하여 학습을 하는 방법입니다. 먼저 저는 Fairseq의 2번째 방법을 이용합니다. 다음 코드를 이용합니다. # Download bart.large model wget https://dl.fbaipublicfiles.com/fairseq/models/bart.large.tar.gz tar -xzvf bart.large.tar.gz # Load the model in fairseq from fairseq.models.bart import BARTModel bart = BARTModel.from_pretrained('/path/to/bart.large', checkpoint_file='model.pt') bart.eval() # disable dropout (or leave in .. 더보기
BART - Transformer Encoder-Decoder Model (Sequence-to-Sequence) BART는 Facebook AI 에서 발표한 모델입니다. Encoder는 Bidirectional Encoder를 이용하고, Decoder는 Autoregressive Decoder를 이용합니다. 다음 사진은 바트모델입니다. Sequence-to-Sequence 방식을 이용합니다. Sequence-to-Sequence는 입력된 시퀀스로부터 다른 도멘의 시퀀스를 출력하는 다양한 분야에서 사용되는 모델입니다. 예를 들어 챗봇(Chatbot)과 기계 번역(Machine Translation)이 그러한 대표적인 예인데, 입력 시퀀스와 출력 시퀀스를 각각 질문과 대답으로 구성하면 챗봇으로 만들 수 있고, 입력 시퀀스와 출력 시퀀스를 각각 입력 문장과 번역 문장으로 만들면 번역기로 만들 수 있습니다. 그 외에도 다.. 더보기