본문 바로가기

AI

(33)
Quantization(양자화)란? Fixed-point, Floating-point 란? Quantization Mapping input values from a large set to output values in a smaller set신호 처리에서 Quantization은 어떤 입력 값(높은 해상도)을 더 작은 출력 값(낮은 해상도)으로 매핑하는 것을 의미한다. 위 예시를 보면, 0과 1 사이의 Signal이라고 가정, 파란색 선처럼 연속적인 값이 들어오면 빨간색 선처럼 Quantized 된 신호로 표현하고자 함. 여기서 빨간색 선은 4구간(-0.75, -0.25, 0.25, 0.75)으로 나뉘어져 있음. 구간 간격 0.5. 여기서 Quantization Error(Original-Quantized)는 최대 "구간 간격의 절반"이 됨 NN in Quantization AlexNet을 i..
[NLP] 룩업 테이블(lookup table)이란? NNLM, 워드 임베딩(word embedding) 룩업 테이블이란? 특정 단어와 맵핑되는 정수를 인덱스로 가지는 테이블로부터 임베딩 벡터 값을 가져오는 것 = 정수를 임베딩 벡터로 맵핑하는 것 피드 포워드 신경망 언어 모델(NNLM) 학습 과정 예시 NNLM이 언어 모델링을 학습하는 과정 예문 : "what will the fat cat sit on" 예를 들어 위와 같은 문장이 있다. 언어 모델은 주어진 단어 시퀀스로부터 다음 단어를 예측. 훈련 과정에서는 'what will the fat cat'이라는 단어 시퀀스가 입력으로 주어지면, 다음 단어 'sit'을 예측하는 방식으로 훈련. 훈련 코퍼스에 7개의 단어만 존재한다고 가정했을 때 다음과 같이 원-핫 인코딩 할 수 있음. what = [1, 0, 0, 0, 0, 0, 0] will = [0, 1,..
[논문리뷰] LoRA: Low-Rank Adaptation of Large Language Models // LoRA 이론 https://arxiv.org/abs/2106.09685 LoRA: Low-Rank Adaptation of Large Language Models Abstract - LLM이 계속 커지면서 Full fine-tuning으로 모델을 학습하는 것이 less feasible 해지고 있다 - GPT-3 같은 모델을 Full fine-tuning 하는 것은 엄두도 못낼 정도로 비쌈 - LoRA는 LLM의 weight는 고정하고 추가적인 trainable 파라미터를 각 트랜스포머 레이어에 inject함 - LoRA는 학습 파라미터를 10,000배 줄여줌 - Full finetuning에 비견되거나 더 나은 성능 - Adapter류의 PEFT 기법과 inference 속도가 느려지지 않음 (LoRA는 병렬로 연산..
[논문리뷰] GPT Understands, Too // P-tuning 이론 https://arxiv.org/abs/2103.10385 GPT Understands, Too Abstract - 전통적인 GPT finetuning으로는 NLU task에서 낮은 성능을 보임 - P-tuning을 이용하여 GPT를 튜닝하면, NLU task에서 비슷한 사이즈의 BERT에 비견되는 성능을 보임 - 지식 탐색 벤치마크 LAMA에서 20% 성능 향상 - SuperGlue 벤치마크에서 비슷한 사이즈의 BERT에 비견되거나 outperform한 결과를 냄 - P-tuning은 BERT의 fewshot setting, supervised setting에서도 성능을 향상시킴 - few-shot SuperGlue benchmark에서 Sota 성능을 냄 - large scale로 갈 수록 BERT보..
[논문리뷰] Prefix-tuning: Optimizing Continuous Prompts for Generation // Prefix-tuning 이론 https://arxiv.org/abs/2101.00190 Prefix-Tuning: Optimizing Continuous Prompts for Generation Fine-tuning is the de facto way to leverage large pretrained language models to perform downstream tasks. However, it modifies all the language model parameters and therefore necessitates storing a full copy for each task. In this paper, we propose prefix- arxiv.org Prefix-Tuning: Optimizing Continuous P..
InstructGPT란? ChatGPT와 InstructGPT 차이점 ChatGPT의 전신 : InstructGPT - Training language models to follow instructions with human feedback, Open AI 2022.03 - GPT3 논문 공개 20년 5월, InstructGPT 논문 공개 22년 3월 - 언어 모델을 더 크게 만든다고 본질적으로 사용자의 의도를 잘 따르는 것은 아님. ex) untruthful, toxic 등 사용자에게 도움이 되지 않는 출력을 생성할 수 있음 - 이 논문에서는 사람의 피드백을 통해 미세 조정하여 다양한 작업에 대한 사용자 의도에 맞게 언어 모델을 정렬하는 방법을 보여줌 InstructGPT - OpenAI API를 통해 제출된 프롬프트와 labeler-written prompts로 sup..
PPO란? Proximal Policy Optimization Algorithms https://arxiv.org/abs/1707.06347 Proximal Policy Optimization Algorithms We propose a new family of policy gradient methods for reinforcement learning, which alternate between sampling data through interaction with the environment, and optimizing a "surrogate" objective function using stochastic gradient ascent. Whereas standar arxiv.org PPO PPO는 에이전트가 순차적인 의사 결정 작업에서 최적의 정책을 학습하도록 훈련하는 데 사용되는 강..
Pytorch collate_fn 이란? DataLoader에는 여러 파라미터가 있어 필요시 적절한 파라미터를 활용해 여러 설정을 줄 수 있다. 그 중에서도 collate_fn은 variable length가 달라서, 패딩해줄 때 사용한다. from torch.utils.data import Dataset, DataLoader import torch class ExampleDataset(Dataset): def __init__(self, num): self.num = num def __len__(self): return self.num def __getitem__(self, idx): return {"X":torch.tensor([idx] * (idx+1), dtype=torch.float32), "y": torch.tensor(idx, dty..