Gaussian, Bernoulli로 이해하는 머신러닝
·
머신러닝/약간 덜매운맛
확률론적 관점으로 데이터를 파악하는 머신러닝에선 probability distribution에 대해서 알아야 한다. 필수라고 생각되는 개념은 bernoulli, gaussian 정도가 되겠다. 조금 더 나아가면 beta, gamma, laplacian distribution까지는 알면 좋지 않을까 싶다.   따라서 이번 글은  필수 / 선택으로 글을 나눠 진행해보고자 한다. 참고: murphy machine learning 1(book)    필수 - gaussian, bernoulli Gaussian Distribution  가우시안 분포는 Normal Distribution(정규분포)으로도 불린다. 그 이유는 자연상(아무 인위적인 것을 집어넣지 않은 상태)의 확률 분포가 gaussian과 가장 유사한..
왕초보용 langchain 코드 튜토리얼 (w. RAG)
·
머신러닝/약간 덜매운맛
llm 프로그램을 작성하기 위해 크게 두 개의 오픈소스 라이브러리가 있다. 바로 langchain과 llamaindex이다.한 블로그에서 이 두 라이브러리 중 하나를 택하는 기준을 다음과 같이 제시한 적이 있다. (참고:  https://datasciencedojo.com/blog/llamaindex-vs-langchain/ )  - langchain : llm query 자주 바꾸고 계속해서 바뀌는 실험을 해볼 때 추천. performance tuning 할 때. - llamaindex : 검색이 중요한 application을 만들 고 싶을 때 추천. 큰 규모의 데이터셋을 처리하고 throughput이 중요할 때.     내 식대로 번역하자면 프롬프트 엔지니어링 이것저것 해보고 그냥 이렇게 했다 저렇게..
[paper] Meta Imagine Flash 논문 리뷰
·
논문리뷰
오늘은 24년 4월에 나온 메타의 Imagine Flash 논문을 리뷰한다. 메타의 diffusion 모델인 Emu를 베이스라인으로 잡고, Emu의 성능을 끌어올리는 후속 논문이다. Emu 외 다른 모델에도 범용적으로 쓸 수 있다고 한다.  참고로 Emu는 latent diffusion model로 latent embedding은 오토인코더(AE. Auto Encoder) 방식으로 2.8B 크기의 U-Net을 사용했다.   1. Introduction이미지 생성 분야인 Denoising Diffusion Models(DMs)에서 문제점은 시간과 cost가 많이 드는 과정이란 거다. '시간' 측면에서, denoising 스텝 수와 스텝별 latency가 시간을 많이 걸리게 하는 두 주범이다. 그렇기에 sa..
LLM 학습 개요 - pretrain vs finetuning
·
머신러닝/약간 덜매운맛
오늘은 Large Language Model(LLM)을 어떻게 학습하는지 정리해 본다.  0. 짧은 요약 LLM을 학습하는 핵심만 짚어보면 다음과 같다.  1. LLM의 학습단계는 크게 pretrain과 finetuning으로 나뉜다.2. finetuning에서도 크게 supervised fine tuning (SFT)와 reward modeling을 통한 RLHF 계열(PPO, DPO 등)로 나뉜다.3. 그리고 학습이 아닌 프롬프트에 내가 원하는 대로 답변을 잘할 수 있도록 Prompt engineering을 하게 된다.    1. Pretrain 한국어로 사전학습이라는 뜻을 가진 pretrain 단계에서는 LLM이 가능한 한 많은 문서를 학습하게 된다. 자연어 처리(NLP) 분야에서 BERT와 같은 ..
transformer의 모든 것
·
머신러닝/아맞다
딥러닝 모델 구조는 transformer의 등장 이전과 이후로 나뉜다고 해도 과언이 아닌 것 같다. RNN의 단점을 지우고 attention encoder와 decoder를 사용하는 구조로 자연어에서 변혁을 일으키며 나중에는 다른 도메인에서도 transformer를 안 쓰는 모델을 찾기가 힘들어졌다. MAMBA가 이제 판을 뒤집을지도 모르지만, 오늘은 transformer에 대해 기본을 탄탄히 잡아보자.  1. self attention attention은 Query, Key, Value 3가지가 주어졌을 때 Query와 유사한 Key를 찾고, 이에 대한 Value 중 뭘 채택할지 retrival하는 과정이라 볼 수 있겠다. 단순하게 한국어 영여 번역 태스크를 수행하는 모델을 만든다고 가정할 때,  Qu..
구현체를 통해 PEFT lora 를 알아보자
·
머신러닝/약간 덜매운맛
기존에 썼던 짧은 lora config글과 통합하여, Lora를 근본적으로 이해하기 위해서 새로운 글을 시작한다. lora가 어떤 원리인지 구현체를 통해서 이해해 보고, huggingface peft lora를 사용할 때 어떤 config를 "왜" 조정해야 하는지 알아보자. 0. 정말 간단한 요약 모델이 너무 무겁다. 이걸 어떻게 다 학습하나. 그래서 학습할 때 일부 layer들에 대해서(transformer에선 주로 attention block에 대해서만 적용하고 있다) weight를 따로 똑 떼어내서 학습하고자 한다. 아래 그림을 보면, 기존 모델을 그대로 학습한다면 모든 weight를 다 학습에 사용한다. 반면에 lora를 학습에 이용한다면 기존 weight는 학습에서 freeze시키고 lora a..
lu.na
lu의 머신러닝 개발자로 살아남기