반응형

머신러닝 및 딥러닝 14

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

[혼자 공부하는 데이터분석] 데이터 분석 기초 강의 모음

데이터 분석 과정  1. 데이터 분석이란 ?구글 코랩 알아보기데이터 찾기 2. 데이터 수집하기파이썬으로 JSON과 XML 데이터 다루기 API 사용하기 웹 스크래핑 하기뷰티플수프 사용하기 3. 데이터 정제하기pandas 기반 불필요한 데이터 삭제하기잘못된 데이터 수정하기4. 데이터 요약하기 기술통계 구하기 분포 그래프 그리기 5. 데이터 시각화하기matplotlib으로 그래프 그리기 6. 복잡한 데이터 표현하기 matplotib 고급 기능 배우기7. 통계적으로 추정하고 머신러닝 예측하기 1강. 데이터 분석이란 ?데이터 과학 4가지 요소 통계학, 머신러닝, 데이터 분석, 데이터 마이닝 데이터 과학자 '지 리'의 답변 데이터 과학은 데이터 세계와 비즈니스 세계를 잇는 다리입니다. 데이터 과학을 활용해서 소프..

In-Context Learning ・PEFT

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

ColumnTransformer (Encoding)

데이터를 처리하다보면, categorical 데이터를 numerical 데이터로 변환해야 할 필요성을 느낍니다. 이러한 변환을 encoding이라고 합니다.다양한 목적과 자료의 특징에 맞추어, 올바르게 인코딩한 categorical 데이터는모델의 퍼포먼스와 효율에 상당한 영향을 끼칩니다. 그러나, categorical 데이터의 인코딩은 생각보다 단순하지 않습니다.  One Hot Encoding, Ordinal Encoding, Label Encoding, Target Encoding 등종류도 다양하고 비슷한 인코딩도 library에 따라 크고 작은 차이가 있습니다. ColumnTransformer는 make_column_transformer과 거의 동일한 기능을 제공합니다.그럼 make_column_t..

train_test_split의 random_state 의미

scikit-learn의 model_selection 패키지 안에, train_test_split 모듈을 활용하여쉽게 train set과 test set을 분리할 수 있습니다.  from sklearn.model_selection import train_test_splitx_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0)  그렇다면 train, test set을 분리하는 이유는 무엇일까요 ? 학습과 검증을 위한 데이터셋을 분리하는 목적을 정확히 알아야 합니다. 머신러닝 모델에 train 데이터를 모두 학습시킨 후, test 데이터를 통해 예측율을 확인해보면성능이 생각보다 안나오거나 학습 시보다 떨어지는 경우가 많습니다.  이..

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..

728x90
반응형