ml
FLOPS
FLOPS FLOPS FLoating point Opererations Per Second의 약자로, 초당 부동소수점 연산을 의미하는 단어 사칙연선, root, log, 지수 연산등이 모두 한 번의 연산으로 계산됨 하드웨어(컴퓨터) 성능을 알려주는 지표, 주로 슈퍼컴퓨터 등 큰 컴퓨터의 연산을 나타낼 때 사용 딥 러닝 등 머신 러닝에서는 FLOPs를 그냥 FLoating point OPerations라는 의미로도 사용함 이는 단위 시간당 연산량이 아닌, 총 연산량을 뜻함 References https://kimbg.tistory.com/26 https://ko.wikipedia.org/wiki/%ED%94%8C%EB%A1%AD%EC%8A%A4 https://hongl.tistory.com/31
read moreml
AdamW
AdamW AdamW Decoupled Weight Decay Regularization 이라는 논문에서 소개된 optimizer Adam의 변형으로, weight decay를 적용한 Adam gradient descent를 적용할 때, 이전 weight를 그대로 사용하지 않고 특정 비율로 감소된 값을 사용 즉, w_t = w_(t-1) - gradinet 식에서 w_(t-1) 앞에 1 미만의 계수를 붙이는 것 Adam보다 좋은 성능을 많이 보여줌 References https://www.google.com/search?q=adamw&sourceid=chrome&ie=UTF-8 https://arxiv.org/abs/1711.05101 https://wikidocs.net/195019
read moreml
KL Divergence
KL Divergence KL Divergence Kullback-Leibler Divergence의 약자로, 두 확률분포의 차이를 나타내는 함수 어떤 분포 P에 대해, P 대신 근사하는 다른 분포 Q를 사용해 샘플링을 할 때 나타나는 엔트로피 차이 non-symmetric하기 때문에, distance로 사용 불가능 References https://ko.wikipedia.org/wiki/%EC%BF%A8%EB%B0%B1-%EB%9D%BC%EC%9D%B4%EB%B8%94%EB%9F%AC_%EB%B0%9C%EC%82%B0 https://ddongwon.tistory.com/118
read moreml
Perplexity
Perplexity Perplexity 언어 모델의 성능을 평가하는 요소 생성된 문장이 나올 확률의 역수의 n제곱근 n은 문장의 길이 이 값은 문장이 단어를 선택할 때마다 평균 몇 개의 단어를 가지고 고민했는지를 나타내는 척도 낮은 perplexity를 가진다는 건 다음 단어를 더 확신하고 예측한다는 뜻이므로, 언어 모델의 성능이 좋을 확률이 높음 물론 이 지표는 절대적이지 않음 Perplexity가 낮다고 반드시 사람이 느끼기에 좋은 언어 모델이 아님 References https://wikidocs.net/21697
read moreml
Attention
Attention Attention Seq2Seq 모델은 멀리 떨어진 항목간의 관계가 잘 반영되지 못하는 Long-Term Dependency 문제 발생 어텐션 매커니즘은 input data에서 다른 데이터와의 상관관계를 반영한 데이터를 만드는 매커니즘 이 “데이터를 만든다” 라는 부분을 어디서도 설명해주지 않아서 진짜 처음 이해할때 너무 힘듦 결국 어텐션도 하나의 mlp다 입력으로 들어온 같은 문장 내에서 attention을 수행하는 것을 self-attention 이라고 함 이 과정에서 query, key, value 이용 References https://velog.io/@jhbale11/%EC%96%B4%ED%85%90%EC%85%98-%EB%A7%A4%EC%BB%A4%EB%8B%88%EC%A6%98Attention-Mechanism%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80 https://engineering-ladder.tistory.com/73 기타 다시 쓰기
read moreml
Positional Encoding
Positional Encoding Positional Encoding 트랜스포머에서는 순차적인 데이터를 입력받음 이 때 MLP로 한 번에 입력받기 때문에, 순서(위치) 정보가 유실됨 따라서 순서 정보를 별도로 넣어줘야 함 따라서 각 단어의 임베딩을 모델에 넣어 줄 때, 위치 정보 값을 더해서 넣어줌 이 위치 정보 값을 positional encoding이라고 함 Trnasformer는 사인/코사인 함수를 이용해 이 값을 계산 References https://wikidocs.net/31379
read moreml
LORA Tuning
LORA Tuning LORA Tuning Low-Rank Adaptaion의 약자로, LLM에 fine-tuning을 사용하기 위해 등장한 방법 Dense layer를 row-rank 행렬로 decomposition 해서 학습 이렇게 하면 full로 fine-tuning 하는 것에 비해 적은 parameter수, 및 메모리 소비량을 가지게 됨 References https://velog.io/@quasar529/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-LoRA-Low-Rank-Adaptation-of-Large-Language-Models
read moreml
RLHF
RLHF RLHF Reinforcement Learning from Human Feedback의 약자 OpenAI에서 chatGPT를 fine-tuning할 때 사용한 방법 다음과 같이 3단계로 구성됨 Supervised Fine Tuning(SFT): 적은 양의 샘플 training set으로 fine-tuning Reward Model: SFT 모델이 생성한 답변들을 인간 labeler들이 랭킹을 매김. 이를 이용해 reward model 학습 Proximal Policy Optimization(PPO): Reward model의 보상을 통해 SFT 모델을 마지막으로 학습 결국 인간이 개입해야 하고, 편향이 발생할 수 있다는 점은 단점 References https://moon-walker.medium.com/chatgpt%EC%97%90-%EC%A0%81%EC%9A%A9%EB%90%9C-rlhf-%EC%9D%B8%EA%B0%84-%ED%94%BC%EB%93%9C%EB%B0%B1-%EA%B8%B0%EB%B0%98-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5-%EC%9D%98-%EC%9B%90%EB%A6%AC-eb456c1b0a4a
read more