반응형 Bigdata56 LoRA(Low-Rank Adaptation) - Fine-Tuning 최적화 최근 모델이 거대해 지면이 이를 잘 활용할 수 있는 Fine-Tuning에 집중되고 있는 것 같다.Huggingface도 Parameter-Efficient Fine-Tuning(PEFT) 를 통해 거대 모델을 자신이 알맞게 사용할 수 있도록 Fine-Tuning을 지원해주고 있는데, Transformer 모델 관련하여 2021년 Microsoft에서 공개한 LoRA모델이 PEFT로 큰 인기를 끌고 있어 이를 조사한 내용을 정리해 본다.Row-Rank - rRank는 매트릭스의 기준이 되는 차원으로, 의미가 있는 정보/핵심 정보를 의미한다.여기에 Row를 붙여 Row-Rank, 적은 핵심 정보를 의미한다.LoRA모델은dxd 를 A(dxr) x B(rxd) = dxr 를 통해 배열 곱을 하여 를 통해 핵심.. 2024. 8. 11. NTP(Next Token Prediction) 모델 이해 NTP(Next Token Prediction)는 GPT에서 사용되는 방법으로 다음 단어를 예측하는 Transformer의 Decoder부분을 의미 한다.즉 다음 예측 단어가 기존에 주어진 단어와의 가중치를 계산해 가장 가중치가 높은 단어를 제공하는 방식을 의미한다.이 모델은 GPT에서 사용하는 모델로, 다음 단어를 생성하는 능력이 좋은 모델이라고 할 수 있다. 2024. 8. 11. Masked Language Modeling(MLM) 모델 이해 특정 단어를 Mask(숨김)후 이를 맞추는 모델로써, BERT모델에서 사용 가능한 사전 학습 모델로, MLM(Masked Language Modeling)은 [MASK] 이전, 이후 정보를 모두 활용하여 사전 학습을 하는 양방향 학습 구조를 가진다.입력된 문장에서 특정 단어를 [MASK] 한 후 맞추는 방식으로 학습을 진행하게 되는데, 입력된 문장에서 임의로 15% 단어를 선택하고 예측을 진행하게 된다. 이에 대해 다음과 같은 비율로 학습 규칙이 적용된다.신경망에서 학습 되는 비율은 80% 단어에 대해 [MASK]를 진행하고, 10% 단어는 무작위로 변경되며, 나머지 10%는 유지되는 방식이다.이렇게 전체를 [MASK] 하지 않으면, [MASK] 토큰이 파인 튜닝 단계에서는 나타나지 않으므로 사전 학습 .. 2024. 8. 11. 딥러닝 - 뉴런(Neuron)이란? 개념 이해 딥러닝하면 인공 신경망과 큰 관계가 있다.딥러닝은 기본적으로 기계가 인간 처럼 학습하기를 바라면서 기술이 발전한 것이라고 할 수 있다.즉 인간의 신경망의 입력에 따른 변화처럼 기계도 신경망을 가지고 입력에 따라서 변화하는 것을 재현한 것이 바로 뉴런(Neuron)이라고 할 수 있다. 인간의 신경과 같이 여러 입력에 따라서 변화하는 신경 조직을 뉴런이라고 할 수 있다.이러한 신경조직을 기계에게 적용해보고 싶다고 출발한 것이 바로 신경망인 Neuron Network 으로 기계에게 적용하기 위해 만들었기 때문에 인위적으로 만들었기 때문에 인공 신경망이라고 한다.즉 다양한 입력에 신경이라는 Neuron을 합하여, 신경을 업데이트하고, 이 결과를 출력해주는 것이다.아주 간단한 구조로 입력 부터 순차적으로 설명해 .. 2024. 8. 11. LLM - Pre-train과 Fine-tuning 기본 이해 Pre-train과 Fine-tuning 용어가 많이 나오는데, 여기에서 Pre-train과 Fine-tuning 용어와 왜 Pre-train과 Fine-tuning이 필요한지 이해를 해보도록 하자.언어 모델에서 사전 학습된 언어 모델(Pre-train Model)을 사용하는 이유언어 모델에서 기본적으로 kobert 2b를 썼다... kobert 5b를 썼다는 등의 이야기를 많이 들을 수 있는데,왜 내가 필요한 데이터만으로 넣지 않고, 많이 학습된 모델을 사용하는 것일까?이유는 언어는 말, 사람으로 비교하자면, 내가 얼마나 많은 지식, 상식을 알고 있다면, 보다 다채로운 말을 구사할 수 있기 때문이다.만약 10가지 문장을 학습하면, 10가지 문장내에서 선택이 이루어지게 되기 때문에, 다양한 말을 구사하기.. 2024. 8. 11. Transformers - 구조와 BERT, GPT 이해 Transformer는 현재 ChatGPT와 Bert, KoAlpaca등 대규모 언어모델(LLM, Large Language Model)분야에서 가장 크게 성장하고 있는 모델로써, 스스로 Transformer를 이해하기 위해 정리할 필요성이 있다고 느껴서 여기에 정리해 본다.TransformerTransformer는 영화 Transformers와 연관성이 전혀 없지만, 지금 보면 자유로이 입력을 출력으로 만들 수 있는 정의를 준것이 아닌가 라는 생각이 든다. Transformer 논문은 2017년 Attention Is All You Need 라는 이름으로 https://arxiv.org/abs/1706.03762 거제되었고, 기존 CNN, RNN등을 사용했을 때보다 높은 성능을 내면서 많은 관심을 받.. 2024. 8. 11. Python - Gaussian Error Linear Unit (GELU) 수식 - 코드 Gaussian Error Linear Unit (GELU)의 activation 수식Gaussian Distribution을 다음 수식으로 위 수식의 복잡도를 낮추어 아래와 같이 근사(Approximation) 수식을 활용한게 된다.근사(Approximation) 수식을 코드로 구현하면 다음과 같다.import mathimport tensorflow as tfcdf = 0.5 * (1.0 + tf.tanh( (math.sqrt (2 / math.pi) * (x + 0.044715 * tf.pow(x, 3))))) 2024. 8. 11. LLM - fine-tuning GPT 계열 공식 이해 LLM의 경우 확률 모델로 보통 GPT 계열인 경우 다음 단어를 맞추는 Autoregressive 한 모델이라고 할 수 있다.(순차적으로 계속적으로 다음 단어의 확률을 맞추기 때문에 점진적으로 연결되는 자동 회귀 같다고 하여 Autoregressive라고 한다.)그리고 아래 공식은 LLM의 Full fine-tuning 을 일반화한 공식이다.x,y 는 전체 데이터를 의미하며, t는 타임으로 단어 전, 후와 같은 순서를 의미한다. 는 단어별 예측을 할때 다음 단어 작은 앞쪽 단어에 대한 x, y와 예측을 하겠다는 의미로 보면 된다.P는 학습이 된 파라메터(Parameter)로 표현했다.log로 감싼 이유는 값의 표현의 간략화 하는 작업이라고 할 수 있다. 식의 계산 결과가 들어가며, 복잡한 단위의 계산을.. 2024. 8. 11. PEFT(Parameter Efficient Fine-Tuning) - LoRA, QLoRA LoRA는 GPT와 같은 Large Language Models(LLM)을 특정 task에 fine-tuning(미세조정)하는 데 있어서 time, resource cost가 너무 크다는 단점을 해결하기 위해 제안된 방법으로 기존 모델의 Pre-trained weights는 그대로 두고 Dense layer의 Weight을 Low rank로 Decomposition한 Matrices만을 Optimization하는 것이라고 할 수 있다.이를 통해 학습 시간과 하드웨어의 비용을 크게 절약할 수 있다.성능을 유지하면서 최소한의 인프라로 모델을 미세 조정할 수 있는 PEFT(Parameter Efficient Fine-Tuning)라는 효율적인 기술에 최근 관심이 깊어지고 있다. 특히 기존에는 기업에서만 LLM.. 2024. 8. 11. 이전 1 2 3 4 5 6 7 다음 반응형