본문 바로가기

Research14

LoRA 이해하기(Low-Rank Adaptation of Large Language Models) 본 포스트는 2021년 Microsoft에서 발표한 "LoRA: Low-Rank Adaptation of Large Language Models" 논문을 이해하기 위해 작성하였습니다. 2021년에 발표한 시점에서 자연어처리 응용분야의 큰 패러다임은 Bert, Roberta와 같은 사전 훈련된 언어 모델을 Fine-tuning하는 것이었습니다. 파인튜닝은 사전 훈련 모델의 모든 weight을 업데이트하는 방법론입니다. 하지만 사전 훈련 모델, LLM의 크기가 점점 커지면서, 이 거대한 모델 전체를 매번 파인튜닝하고 배포해야하는 문제에 봉착하게 됩니다. 일부 weight만을 업데이트한다면 사전 훈련 모델 외에 특정 weight만 저장하고 불러오면 되기 때문에 배포 시 운영 효율성이 향상되지만, 이러한 시도를.. 2023. 7. 16.
Generation Configuration - 생성 인퍼런스에 사용되는 config 이해하기 ※ 본 포스트는 Coursera 강의인 "Generative AI with Large Language Models"의 Week 1의 내용의 일부를 정리하고 필요한 내용을 추가하여 작성한 글입니다. 이전 포스트에서는 사전 훈련 모델의 구조를 소개하며, LLM을 Encoder, Decoder, Encoder-Decoder 구조로 분류하였습니다. 이번 포스트에서는 훈련된 모델을 가지고 생성 Inference를 진행할 때, Configuration을 통해 생성되는 토큰을 제어하는 방법에 대하여 이야기합니다. 다음은 Flan-t5 모델에 "dialogue"를 입력으로 넣어 생성을 하는 코드입니다. 입력을 토크나이징 하고, 모델에 입력으로 넣어 다음 토큰을 예측하도록 하여, 결과를 다시 토크나이저로 디코딩하여 출력.. 2023. 7. 16.
Pre-training LLM 분류하기 (Encoder, Decoder, Encoder-Decoder) ※ 본 포스트는 Coursera 강의인 "Generative AI with Large Language Models"의 Week 1의 내용의 일부를 정리하고 필요한 내용을 추가하여 작성한 글입니다. 순환신경망(RNN)이 처음 등장하였을 때는 시간에 따른 데이터의 패턴을 학습하는 능력으로 인해 매우 유용하게 사용되었습니다. 하지만 RNN이 생성을 잘하기 위해서는 많은 연산량과 메모리를 필요로 한다는 단점이 있었으며, 단순히 이전 몇 개의 단어를 통해 다음 단어를 예측하는 방식은 생성 과제를 제대로 수행하기는 힘들었습니다. 모델은 몇 개의 단어만이 아니라, 전체 문장, 문단, 더 나아가 문서까지도 이해해야하며, 언어는 동음이의어, 구조적 중의성 등의 복잡한 요소들이 많았기 때문에 RNN으로는 한계가 존재하였습.. 2023. 7. 16.
[LLM 모음] Llama와 Alpaca Chinchilla scaling laws? Current LLMs are significantly undertrained. Given a fixed FLOPs budget,1 how should one trade-off model size and the number of training tokens? For compute-optimal training, the model size and the number of training tokens should be scaled equally. Chinchilla (70B, 4x data) > Gopher (280B) Llama The focus of this work is to train a series of language models that achieve.. 2023. 6. 11.
[LLM 모음] InstructGPT의 훈련 과정 알아보기 (feat. RLHF) 본 포스트에서는 ChatGPT가 현재처럼 인간과의 대화를 잘 수행하도록 해준 OpenAI의 InstructGPT가 어떻게 훈련되었는지 자세히 알아보도록 하겠습니다. InstructGPT 페이퍼(Training language models to follow instructions with human feedback)를 참고하여 작성하였습니다. OpenAI의 ChatGPT 소개글에 들어가면(Introducing ChatGPT), 다음과 같이 ChatGPT를 소개하고 있습니다. ChatGPT is a sibling model to InstructGPT, which is trained to follow an instruction in a prompt and provide a detailed response. 기.. 2023. 6. 4.
강화학습과 InstructGPT - part 1 강화학습 (Reinforcement Learning) 강화학습은 정답은 없지만, 특정 환경에서 자신이 한 행동에 대한 보상을 통해 학습하는 방법론입니다. 정답 데이터가 존재하거나(지도 학습) 데이터에 존재하는 규칙을 찾아내는(비지도 학습) 기존 머신러닝 방법론과 달리, ‘직접 해보면서 배운다’는 인간의 학습 방식과 닮아 있는 학습 방법입니다. 키워드: Agent, Environment(환경), Action(행동), Reward(보상), Policy(정책) 학습과정 Agent가 Environment을 관찰한다. Policy에 기반하여 Action을 선택한다. Action을 취한다. Reward을 받는다. (negative일 경우, penalty의 개념) 이에 따라 Policy를 업데이트한다. 최적의 Pol.. 2023. 5. 28.