AI Introduction
Date Modified : 2023, Jul 19
인공신경망(AI) 학습
학습사이트
주요개념,단어 설명 : https://www.alsemy.com/post/loss-landscape를-여행하는-연구자를-위한-안내서
학습과정 개론(링크) (Blog : Kenny’s Mystery Box)
학습과정 개론(링크) (Youtube) 😕LoRA vs Dreambooth vs Textual Inversion vs Hypernetworks</strong>
Hugging Face : 최대규모의 AI모델 공유 사이트. 관련 내용 Docs제공
- Diffusers : https://huggingface.co/docs/diffusers/quicktour
- Accelerate : https://huggingface.co/docs/accelerate/usage_guides/deepspeed
- [Text2Img] Stable Diffusion v2.1(링크) / v1.5(링크)
Riffusion : Stable Diffusion → Audio생성 (링크)
폰트생성 ai ⇒ textual inversion (**font라는 단어 학습) ⇒ Dreambooth (font만 생성하는 ai로 전환)
모델이 다른 모양 생성을 못하면 ⇒ 과적합
LoRA가중치 줄이거나, Total Steps를 줄이거나, 학습률 낮추어 학습량을 줄임
Fine-Tuning (가중치 미세조정 = 추가학습)
이미 학습되어있는 모델의 파라미터를 조정하여, Loss를 줄임
보편화된 방법 : Dreambooth / Textual Inversion / LoRa / Hypernetworks
Dreambooth
Dreambooth는 단 몇 장의 이미지로 이미 학습된 모델에 새로운 개념을 추가하는 가장 효과적인 방법입니다.
모델 전체의 가중치를 미세 조정합니다.
하지만 모델 전체를 수정하기 때문에 새로운 ckpt 파일이 만들어 집니다.
stable diffusion의 ckpt 파일의 크기는 약 2~7GB로 디스크 용량을 많이 차지하는 단점이 있습니다.
Textual Inversion
Textual Inversion은 텍스트 임베딩 부분을 수정해서 새로운 키워드를 정의합니다.
< 오브젝트 추가 예 >
< 스타일 추가 예 >
모델을 변경하지 않고도 몇 장의 이미지 만으로 새로운 물체나 화풍을 추가 할 수 있습니다.
모델을 변경하지 않기 때문에 효과가 제한적 입니다.
임베딩 파일의 크기는 보통 100KB 미만으로 매우 작습니다.
LoRa
lora는 모델에서 가장 중요한 부분인 프롬프트와 이미지가 만나는 부분을 수정합니다.
모델 전체를 수정할 때 보다는 못하지만 작은 변화로 큰 효과를 볼 수 있습니다.
모델을 직접 수정하기 때문에 Textual Inversion보다 훨씬 뛰어납니다.
수정된 부분만 별도의 파일로 저장하며, ckpt 파일과 함께 사용해야 합니다.
파일의 크기는 2~200MB 입니다.
Hypernetworks
Hypernetworks는 모델의 노이즈 제거 U-Net에 연결되는 추가 네트워크입니다.
모델을 변경하지 않고 모델을 미세 조정하는 것이 목적입니다.
모델을 변경하지 않기 때문에 효과가 제한적입니다.
파일 크기는 일반적으로 약 5~200MB입니다.
FNN : 입력층 → 은닉층 → 출력층
LSTM : 입력게이트 → 삭제게이트 → 출력게이트 → (출력+새 입력) →입력게이트
신뢰도는 Softmax함수를 이용
데이터의 학습은 경사하강법으로 이루어짐
딥러닝 머신의 차이
근데 학습방법을 어떻게하는지 데이터를 존나늘렸다던지 강화학습을 추가로 적용했다든지 프롬프트엔지니어링을 얼마나 잘했는지 전처리를 얼마나 잘했는지
강화학습 vs 파인튜닝
파인튜닝 : 사전학습모델 - 트랜스포머
다른점 : 학습방법
트랜스포머 : 인코더 - 디코더
인코더 : NLU를 잘함 (기반 : BERT)
디코더 : NLG (기반 : GPT)
BERT : 트랜스포머(인코더기반) - MLM / NSP로 학습 (사전학습과정)
MLM : 빈칸추론
NSP : 다음문장추론
모델 : 사전학습 - input text + label로 학습
(내가 타겟으로 하는 task를 풀게 미세조정 → fine tuning)
GPT는 language modeling이라는 loss사용 (현재토큰 → 다음토큰 추론)
여기서 Loss함수는 이전토큰을 현재토큰으로 추론해서 실제현재토큰과 같은지 비교하여 점수로 학습시킴
GPT는 사람 답변을 HumanFeedback으로 쓰고 GPT가 그걸 다시 사용해서 학습
LSTM은 과거데이터를 잘 기억못함
RNN해결하려고 -LSTM나오고 - Attention나오고-Transformer나옴
NLP과정 학부생들 털림(OpenAI한테 돈으로)
모델 인퍼런스하는 과정이 힘듦(리소스)
3.1 참고자료
3.1.1 Font Generating
3.1.2 Diffusiers
3.1.3 기타 토론
DeepLerning for Strecth1
퍼셉트론 → nand → 인공신경망
신경망 구조(입력, 은닉 출력) 그림
(?) 활성화 되지않는 노드를 비활성화하고 다른 노드를 추가하여 모델의 크기를 줄이고 효율을 높임 = h()의 약할