본문 바로가기

전체 글41

LLaMA: Open and Efficient Foundation Language Models 정리 1. Abstarct7B~65B 개의 Parameter로 구성된 LLM인 LLaMA를 공개함.누구나 사용할 수 있는 공개된 데이터셋을 이용하여 1T 개의 token으로 학습을 진행하였으며, 다양한 task에서 SOTA를 달성함.특히, LLaMA-13B 모델은 GPT-3(175B)와 비교하여 대부분의 benchmark 성능을 뛰어넘음.제시한 모델 중 가장 큰 모델인 LLaMA-65B은 Chinchilla-70B와 PaLM-540B와 경쟁력이 있음.2. Introduction엄청난 양의 텍스트로 학습된 Large Language Model(LLM)은 몇 개의 예제나 instruction으로부터 새로운 task를 수행하는 능력을 보여준다(Brown et al.,2020). 이러한 few-shot의 성질은 모델.. 2024. 6. 10.
[Pytorch] RuntimeError: Error(s) in loading state_dict for RobertaForSequenceClassification 1. 에러 발생 상황 학습된 모델을 저장하고 다시 불러오는(model.load_state_dict()) 상황에서 발생하였다.. 에러 메시지는 다음과 같다. 2. 해결 방법 찾아보니 버전차이가 원인이였다. fine-tuning을 진행한 pytorch의 버전은 2.2버전이고, inference하기 위해 불러온 환경에서의 pytorch 버전은 1.7 버전이였다. 아마 버전차이로 인해 에러가 발생하는것 같다. 해결방법은 의외로 간단하다. load_state_dict의 인자 중 strict를 False로 주면 바로 해결된다.(load할 수 있는 key값만 불러오는 방식인듯) model.load_state_dict(torch.load("./model/saved_model.pt"),strict = False) 위와 .. 2024. 4. 9.
RoBERTa : A Robustly Optimized BERT Pretraining Approach 정리 및 이해 1. RoBERTa란? RoBERTa는 기존 BERT 모델의 성능을 더욱 높인 모델로써 BERT모델의 구조는 그대로 유지한 채 약간의 training objective와 hyperparameter를 수정하여 모델의 성능을 향상했습니다. RoBERTa 연구진들은 BERT 모델은 상당히 '덜' 훈련되었다고 언급하며 몇 가지 개선사항을 추가한 RoBERTa 모델을 제안하였습니다. We find that BERT was significantly undertrained and propose an improved recipe for training BERT models, which we call RoBERTa, that can match or exceed the performance of all of the pos.. 2024. 3. 7.
BERT(Bidirectional Encoder Representations from Transformers) 개념 정리 및 이해 1. BERT란? BERT(Bidirectional Encoder Representation from Transformers)란, 2017년 구글에서 발표한 대규모 언어 모델(LLM)로 Transformer에서 영감을 받은 모델입니다. 기존 Transformer는 Encoder-Decoder구조로 되어있는 반면, BERT모델은 transformer의 encoder만을 활용한 모델입니다. transformer에서 encoder는 문장을 잠재 벡터로 표현해 주는 역할을 하고 있습니다. 그렇다면 BERT는 transformer의 encoder를 어떻게 활용하였을까요? BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.. 2024. 2. 17.
[자료구조] 재귀(Recursion) 정리 1. 재귀(Recursion) 이란? 자료구조에서 재귀(recursion)는 함수의 실행 과정에서 자기 자신을 호출하는 함수를 의미합니다. Example : Factorial Function 재귀의 간단한 예시는 팩토리얼(Factorial) 함수를 예로 들 수 있습니다. 팩토리얼 함수를 수식으로 표현하면 다음과 같습니다. $$ f(n) = \begin{cases} 1 & n = 0 \newline n \cdot f(n-1) & else \end{cases} \quad where \ n \in \mathbb{Z}^+$$ 위 수식을 Python으로 구현하면 다음과 같이 구현해 볼 수 있습니다. 2. 재귀 함수 구현 시 주의사항 다음으로는 재귀함수를 작성할 때 반드시 포함되어야 하는 부분은 (1) Base c.. 2024. 2. 16.
WordPiece Tokenizer 이해 및 정리 1. 워드피스(WordPiece) Tokenizer란? 워드피스(WordPiece) Tokenizer는 Subword Tokenization의 일종으로써 주어진 텍스트를 하위단어(subword)로 쪼개는 방식입니다. 하나의 단어는 접두사 혹은 접미사가 붙어서 여러 형태로 변화할 수 있기 때문에 기존에 단어를 그대로 토큰화하는 방법보다는 유연하게 Out of Vocabulary(모델이 처음 보는 단어를 마주한 경우)에 대처할 수 있습니다. Subword tokenizer에는 여러 종류가 있지만, 이번 포스트에서는 BERT에서 사전학습에 사용한 것으로 유명한 WordPiece tokenizer에 대해 정리해보고자 합니다. 2. BPE Tokenizer와의 차이점? Wordpiece tokenizer의 토크화.. 2023. 12. 18.
Byte Pair Encoding(BPE) tokenizer 정리 1. SubWord Tokenizer 일반적으로 토큰화(Tokenizer)는 의미를 가진 토큰(단어 등)으로 쪼개서 토큰을 만드는 작업을 말합니다. 토큰화의 목적은 텍스트를 모델이 이해할 수 있는 데이터로 만들어주는 것입니다. 텍스트를 토큰화하는 방법은 크게 3가지로 분류할 수 있습니다. 1. 단어 기반 토큰화(Word-based tokenization) 공백을 기준으로 토큰화하는 방법('나는 밥을 먹었다' -> '나는', '밥을', '먹었다') 매우 간단한 아이디어지만, 훈련에 사용하지 않은 새로운 단어에 대해 대처가 어려운 단점이 존재한다.(Out of Vocabulary) 2. 문자 기반 토큰화(Character-based tokenization) 텍스트의 구성요소인 문자 단위로 토큰화하는 방법('.. 2023. 12. 11.
Khaiii 형태소 분석기 설치 및 사용방법 1. 개요 Khaiii 형태소 분석기는 카카오에서 공개한 형태소 분석기입니다. 기존 Konlpy에서 제공하는 형태소 분석기의 공통적인 특징은 사전과 규칙기반(명사/형용사 등등)으로 형태소를 분석해 주는 반면, khaiii는 데이터 기반 알고리즘을 이용해서 분석하였다고 합니다. 사용한 데이터의 양은 85만 문장과 천만 어절의 코퍼스를 이용하였습니다. khaiii가 데이터를 가지고 형태소 분석기를 만들 때 사용한 기계학습 알고리즘은 CNN(Convolution Neural Network)입니다. 대규모 언어 모델을 학습하기 위해서는 엄청난 양의 문장을 전처리 해야 하기 때문에 속도가 빠른 CNN을 사용한 것으로 보입니다. Khaiii는 어떤 단어의 주변단어의 갯수(Window size)와 임베딩 차원(Emb.. 2023. 11. 15.
Positional encoding과 Relative position representation은 어떻게 동작하는가 Overview 이번 포스트에서는 Position encoding에 대해 정리합니다. 'Attention is all you need'에서 제시한 모델인 Transformer에서 사용된 Position encoding은 self-attention이 order independent하기 때문에 모델에게 input token간의 순서를 알려주기 위해 사용되었습니다. 이후 많은 연구에서 기존 position encoding과는 약간 다른 관점에서의 position encoding이 제안되었습니다. 우선, 기존 Transformer 모델에서 활용된 positional encoding의 필요성과 그 개념에 대해 간단히 살펴본 후, T5 저자들이 활용한 relative position encoding에 대해 정리하고.. 2023. 10. 11.