가중치(weight)는 모델마다 다르며, 그것이 바로 모델의 핵심 요소입니다. Transformer 모델을 포함한 모든 신경망 모델의 가중치는 학습 과정에서 최적화되는 파라미터들이며, 가중치가 어떻게 학습되는지에 따라 모델의 성능과 예측이 결정됩니다.1. 모델의 가중치는 입력 데이터를 처리하고, 최종 출력(예측)을 만들어내는 데 중요한 역할을 합니다. 가중치가 학습되면서 모델은 점차 데이터를 더 잘 이해하고, 특정 작업(번역, 요약, 분류 등)을 잘 수행할 수 있도록 최적화됩니다.2. Transformer 모델에서는 가중치가 여러 곳에서 학습됩니다. 특히, Self-Attention 메커니즘과 Feed-Forward 네트워크의 가중치가 중요한 역할을 합니다.a. Self-Attention에서 각 단어의 ..
Transformer 모델에서 선형 변환(linear transformation)을 사용하는 이유는 입력 임베딩을 Query, Key, Value로 변환하여 Self-Attention 메커니즘을 적용하기 위해서입니다. 그럼 왜 이 선형 변환이 필요한지, 그리고 변환이 어떻게 이루어지는지 단계적으로 설명하겠습니다.1. 왜 선형 변환을 사용하는가?Transformer에서 입력 임베딩 벡터를 그대로 Query, Key, Value로 사용할 수 없기 때문에, 선형 변환을 통해 서로 다른 표현 공간으로 변환합니다. 각 역할에 따라 다르게 학습된 변환을 적용함으로써, Self-Attention 메커니즘이 더 효과적으로 작동할 수 있습니다.이유 1: 역할의 분리Query: 각 단어가 "내가 어떤 정보를 찾고 있는가?..
자연어 문장을 Transformer 모델에 입력하려면 먼저 문장을 숫자로 변환하는 과정이 필요합니다. 이 과정을 토크나이저(tokenizer)가 수행합니다. Transformer 모델은 텍스트 데이터를 처리할 수 없고, 숫자로 이루어진 벡터만 처리할 수 있기 때문에, 텍스트 문장을 숫자로 변환하는 과정이 필수적입니다. 이 변환 과정은 일반적으로 다음 단계를 따릅니다:1. 토큰화(Tokenization)문장을 토큰(token)이라는 작은 단위로 나눕니다. 토큰은 단어 단위일 수도 있고, 서브워드(subword) 단위일 수도 있습니다. 예를 들어:문장: "안녕하세요 저는 ChatGPT입니다"토큰화 결과 (서브워드 기준): ["안녕하세요", "저", "는", "chat", "gp", "t", "입니다"]2. ..
Transformers는 Attention is All You Need 논문에서 제안된 구조로, 기본적으로 인코더-디코더 구조를 가지고 있습니다. 아래는 Transformer의 주요 부분을 코드로 구현한 예시와 함께 설명입니다. 예시 코드는 PyTorch로 작성된 Transformer의 일부 구성 요소입니다. 1. tokenization 먼저 "안녕하세요 저는 chatGPT입니다." 라는 문장을 transformer 모델에 넣으려면 단어들을 tokenization해서 숫자로 바꿔주는 작업이 필요합니다. tokenization 살펴보기 [LLM] Tokenization, 문장을 숫자로 변환하는 과정자연어 문장을 Transformer 모델에 입력하려면 먼저 문장을 숫자로 변환하는 과정이 필요합니다. 이 과정..
float16과 bfloat16은 두 가지 다른 형식의 16비트 부동 소수점 데이터 형식입니다. 이들 각각은 메모리 사용을 줄이고, 처리 속도를 높이며, 딥러닝과 같은 고성능 계산 작업에서 사용됩니다. 그러나 두 형식은 서로 다른 방식으로 비트를 배치하여 정밀도와 범위에서 차이를 보입니다.float16정밀도: float16은 1비트의 부호, 5비트의 지수, 그리고 10비트의 유효 숫자(가수)로 구성됩니다.범위: 대략 -65504에서 +65504까지의 값을 표현할 수 있으며, 작은 값의 표현에는 정밀도가 낮습니다.사용처: 주로 딥러닝에서 GPU를 사용한 계산에 널리 사용되며, NVIDIA의 최신 GPU 아키텍처에서는 float16 계산을 가속화합니다.bfloat16정밀도: bfloat16은 float16과..
LoRA 외에도 PEFT(Parameterized Efficient Fine-Tuning) 기술로 사용할 수 있는 여러 가지 방법이 있습니다. 각 방법은 LoRA와 마찬가지로 대규모 모델의 효율적인 파인튜닝을 목표로 하며, 메모리와 계산 비용을 줄이면서 성능을 유지하거나 개선할 수 있습니다. 아래에서 다른 주요 PEFT 기술들을 소개합니다.1. Prefix Tuning설명: 입력 시퀀스에 모델 학습 중 추가적인 "프리픽스" 벡터를 삽입하여 모델을 미세 조정하는 방식입니다. 모델의 기존 파라미터는 고정된 상태에서 추가된 프리픽스 벡터만 학습됩니다.장점:모델 파라미터를 수정하지 않고, 효율적으로 미세 조정이 가능합니다.원래 모델의 성능을 유지하면서도 특정 작업에 맞게 빠르게 조정할 수 있습니다.적용 시점: ..
LoRA(Low-Rank Adaptation)와 같은 PEFT(Parameterized Efficient Fine-Tuning) 기술을 적용할 때, 파라미터 설정은 주로 모델의 특성과 작업 목적에 따라 다릅니다. 각각의 파라미터는 LoRA가 어떤 방식으로 모델에 적용될지를 조정하며, 적절하게 설정하면 모델의 성능과 효율성을 최적화할 수 있습니다.아래는 각 파라미터의 의미와 적용 시 고려해야 할 사항입니다.1. r (저랭크 행렬의 차원)설명: r 값은 LoRA에서 학습할 저랭크 행렬의 크기를 결정합니다. 일반적으로 낮은 차원(r)으로 압축된 표현을 학습하면서 메모리와 계산 비용을 절감합니다.적용 기준: 작은 r 값은 메모리 사용량을 줄이지만, 학습 성능에 악영향을 미칠 수 있습니다.큰 r 값은 더 많은 학..
Tokenizer는 NLP 모델에서 텍스트 데이터를 처리하고 모델이 이해할 수 있는 형태(주로 숫자 시퀀스)로 변환하는 중요한 도구입니다. 직접 토크나이저를 만들려면 몇 가지 방법이 있지만, 보통 아래의 단계를 따릅니다.1. 토크나이저 정의 방식 선택토크나이저를 만드는 방식은 크게 세 가지로 나뉩니다:Word-level Tokenization: 단어 단위로 텍스트를 쪼갭니다. 예: "안녕하세요." -> ["안녕하세요", "."]Subword-level Tokenization: 자주 사용되는 서브워드를 추출하여 작은 단위로 쪼갭니다. Byte-Pair Encoding(BPE), WordPiece, SentencePiece 등이 이 방식을 따릅니다. 예: "안녕하세요" -> ["안", "녕", "하세요"]C..
- Total
- Today
- Yesterday
- Python
- #패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #무료교육 #국비지원 #국비지원취업 #데이터분석취업 등
- #패스트캠퍼스 #패스트캠퍼스ai부트캠프 #업스테이지패스트캠퍼스 #upstageailab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- 오블완
- t5
- LLM
- 티스토리챌린지
- 리스트
- Array
- English
- 코딩테스트
- git
- Lora
- LIST
- 해시
- Hugging Face
- cnn
- PEFT
- 손실함수
- classification
- recursion #재귀 #자료구조 # 알고리즘
- Github
- nlp
- Numpy
- RAG
- Transformer
- speaking
- clustering
- 파이썬
- #패스트캠퍼스 #패스트캠퍼스AI부트캠프 #업스테이지패스트캠퍼스 #UpstageAILab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |