반응형

머신러닝 및 딥러닝/자연어처리 11

QA with Phrase Retrieval

Phrase Retrieval in ODQA Error propagation: 5-10개의 문서만 reader에게 전달됨retrieval에 의존도가 높아짐Query-dependent encoding: query에 따라 정답이 되는 answer span에 대한 encoding이 달라짐query와 context를 concate해서 encoding을 하다보니 query가 달라지면 모두 다시 encoding을 해야함 Phrase search (document search) 문서 검색을 하듯이 phrase(절)을 바로 검색할 수는 없을까라는 아이디어에서 나옴Phrase indexing문장에서 각 phrase마다 나누어 key vectors를 생성해둔다면 query vector만 encoding하여서 Nearest..

Open-Book QA vs Closed-Book QA

Open-book QA대량의 지식소스를 특정 문서 단위로 나누어 dense / sparse 형태로 표현한 후, query가 들어오면 가장 그와 관련된 문서를 searchClosed-book QA대량의 지식소스(위키피디아)를 기반으로 사전학습된 언어 모델이 그 지식을 기억하고 있을 것이라 가정함Search 과정 없이 바로 정답을 생성함사전학습된 언어 모델이 얼마나 지식을 잘 기억하고 있는지가 매우 중요함 Closed-book QA as Text-to-Text formatClosed-book QA에 사용된 방법은 generation-based MRC와 유사함단, 입력에 지문(context)가 없이 질문만 들어감사전 학습된 언어 모델은 BART와 같은 seq-to-seq 형태의 transformer 모델을 사..

Fast Tokenizer

Slow Tokenizer와 Fast tokenizer'slow' tokenizer는 Transformers 라이브러리 내부에서 Python으로 작성된 것, 'fast' tokenizer는 Rust로 작성되어 Tokenizers에서 제공하는 것입니다. 단일 문장을 토큰화할 때 동일한 토크나이저의 느린 버전과 빠른 버전 간의 속도 차이가 항상 나는 것은 아닙니다. 사실, 빠른 버전은 실제로 더 느릴 수 있습니다. 많은 텍스트를 동시에 토큰화할 때만 차이를 명확하게 알 수 있습니다.   Batch Encoding토크나이저의 출력은 단순한 python 딕셔너리가 아닙니다. 우리가 얻는 것은 실제로 특별한 batch encoding 객체입니다. 빠른 토크나이저에서 주로 사용하는 추가 메서드가 있습니다. 병렬화(..

오토인코더(Auto Encoder) ・ Variational 오토인코더

오토인코더란 ? 오토인코더(AutoEncoder)란 입력이 들어왔을 때, 해당 입력 데이터를 최대한 compression 시킨 후, compressed data를 다시 본래의 입력 형태로 복원 시키는 신경망입니다. 이때, 데이터를 압축하는 부분을 Encoder라고 하고, 복원하는 부분을 Decoder라고 부릅니다. 압축 과정에서 추출한 의미 있는 데이터 Z를 보통 latent vector라고 부릅니다. 왜 이름이 오토인코더일까요 ? 다음 그림을 예시로 설명드리겠습니다. 위의 그림은 Auto Encoder의 결과를 시각화한 이미지입니다. 자세히보면 y축으로 두께가 변하고, x축으로는 기울기가 변하는 것을 확인할 수 있습니다. 이를 통해 이 모델의 latent vector는 두께, 회전, Class로 정의되..

난수 ・ random seed

Random seed 랜덤시드는 한국에서 난수 생성기라고 부르며, 랜덤한 값을 생성해낸다.마치 무작위 시드 값을 생성하는 것 같지만 반은 맞고 반은 틀린 말이다.임의의 값을 랜덤하게 생성해낸다는 점에서는 맞지만, 한번 정해진 시드 값은 다음 랜덤시드에서도 동일하게 산출된다.따라서 랜덤 시드란 랜덤하게 컴퓨터가 시드 값을 정하는 것을 의미하며랜덤하게 시드 값이 계속 바뀌는 것을 의미하지는 않는다. 또한 랜덤 시드값은 사실 무작위로 정해지는 것은 아니다.인간의 뇌에서 무작위 숫자를 선택해서 결정할 수 있지만, 컴퓨터는 자율적으로 생각해서 랜덤한 숫자를 선택하지 못한다.한마디로 랜덤한 숫자를 출력하도록 알고리즘화를 해줘야 하는데, 이것이 쉽지 않은 과정이다.왜냐하면 컴퓨터에게 랜덤이라는 것을 할 수 있도록 명..

In-Context Learning ・PEFT

최근 소개되는 언어 모델들은 긴 컨텍스트 윈도우(Long-Context Window)를 기본으로 지원한다. 이는 언어 모델이 한 번에 많은 양의 데이터를 처리할 수 있음을 의미한다. Many-Shot In-Context Learning이 가능해지면서 프롬프트 엔지니어링 전략만으로도 언어 모델의 성능을 향상시킬 수 있게 되었다.과거에는 특정 목적을 달성하기 위해서 사전 훈련된 언어모델에 Fine-tuning 과정이 필요했지만,이제는 더 적은 데이터로 많은 비용과 시간을 들이지 않고도 성능을 높일 수 있게 되었다. 따라서 이제는 fine-tuning의 필요성에 대한 의문을 제기하기 시작했다. 그렇다고 fine-tuning이 완전히 쓸모 없는 것은 아니다. 최근에는 규모가 큰 사전 훈련 모델의 전체 파라미터를..

Batch size와 Learning rate의 상관 관계

batch size는 그저 모든 데이터를 한 번에 학습하기에는 학습량이 너무 많기 떄문에 속도 측면으로 데이터를 쪼개어 학습한다고만 생각할 수 있다. 하지만 loss 수렴 측면에서도 batch size가 중요한 역할을 한다. batch size 작으면 learning rate도 작게 batch size 크면 learning rate도 크게 .... 1. Learning rate가 클 때, Learning rate가 크면, 한 번의 step에서 파라미터 학습이 크게 진행되기 때문에 보폭이 커진다. 보폭이 크기 때문에 조금 더 빨리 수렴이 가능하고, 그만큼 local minimum에 빠질 위험이 적다. 하지만 너무 크면, Loss가 전혀 줄지 않을 수도 있다. 수렴하지 않는 것이다. 2. Learning r..

Transfer Learning & Fine-tuning

개와 고양이 이미지를 분류하는 task를 수행한다고 할 때, 이미 학습된 pre-trained model을 불러와서 사전학습된 모델의 파라미터를 적용하는 transfer learning을 수행한다. 이 과정에서 개와 고양이에 대한 binary classification만 하면 되므로 불러온 모델이 현재 task에 좀 더 집중하도록 fine-tuning을 해주는 것이다. 새로운 데이터로 한 번 더 가중치(사전학습된 모델의 파라미터)를 조정해주는 것이다. 💥 Transfer Learning과 Fine-tuning의 개념 두 개의 용어가 혼동될 수 있지만, transfer learning과 fine-tuning을 같은 개념으로 이해해도 무방하다. 큰 데이터로 사전학습된 backbone 모델을 통해 featur..

Vision-Language Model | self-attention vs cross-attention

A Survey of Vision-Language Pre-Trained Models 📍 Summary Pre-training은 처음에 computer vision에서 유용하다고 밝혀졌는데, Transformer와 BERT의 등장 이후 NLP에서도 만연하게 사용되었다. 이는 Transformer가 long range dependency를 model하는 강력한 능력 덕분에 Pretrained Language Models (PLM)의 backbone이 되었다. 이후, vision과 language modalities를 모두 model하는 Vision-Language Pre-Trained Models이 연구되었다. 📍 VL-PTM의 3단계 1. image와 text의 의미를 유지한 채 latent represe..

Contrastive Learning

📍 Contrastive Learning의 목적 embedding space에서 유사한 positive pair는 거리가 가깝게, 그리고 유사하지 않은 negative pair는 거리가 멀게 학습하는 것이다. 유사한지, 유사하지 않은지에 대한 기준이 되는 현재 data point를 anchor(query)라고 한다. anchor와 유사한 sample을 positive point라고 하고, anchor와 유사하지 않은 sample을 negative point이라고 한다. - anchor: 현재 기준이 되는 데이터 샘플 - positive sample: 기준이 되는 데이터 샘플과 같은 class를 가지는 상관관계가 높은 샘플 - negative sample: 기준이 되는 데이터 샘플과 다른 class를 가지..

728x90
반응형