ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AI] Stable Diffusion fine-tuning(LoRA)
    프로젝트/당일 2024. 5. 28. 01:27

    Stable Diffusion fine-tuning(LoRA) 왜 궁금했을까❓

    "당일" 서비스는 사용자가 입력한 일기를 기반으로 4가지 화풍을 가진 대표 이미지를 생성해준다. 이를 위해서는 Fine-Tuning과정이 필요한데 Stable Diffusion에 Lora를 이용하면 쉽게 적용할 수 있어서 학습해보려고 한다.

     

    Fine-Tuning이란?

    사전 학습된 AI 모델의 가중치를 새로운 데이터에 맞게 세밀하게 조정하는 것

     

    "당일" 서비스에 Fine-Tuning이 필요한 이유?

    당일 서비스는 사용자가 입력한 일기를 바탕으로 4가지 그림을 보여주게 된다. 사진은 각기 다른 화풍을 가지게 되고 사용자는 여기서 마음에 드는 화풍의 그림을 선택하여 그 날을 대표하면 되는 것이다. 4가지 화풍을 만들기 위해서는 기존 모델에 Fine-Tuning이 필요했다.

     

    fine-tuning을 하기 위해 LoRA를 선택한 이유?

    Stable Diffusion에 Fine-Tuning을 하기 위한 방법이 여러 개가 존재하는 것으로 알고 있다. Dreambooth, ,LoRA, Textual Inversion, Hypernetworks 등이 존재하는데 HuggingFace 공식 문서에서도 지원, 제한된 프로젝트 시간, 충분하지 않은 메모리 등을 고려했을 때 LoRA가 가장 프로젝트에 적합한 방식이었다.

     

    LoRA의 원리

    LoRA는 Low-Rank Adaptation의 약자로 UNet과 같은 언어 모델(LLM)을 미세 조정하기 위한 기술

     

    • 이전 포스팅에서 본 것처럼 UNet은 데이터가 입력되면 일련의 계산 과정을 거쳐 이미지를 추론한다.
    • 단계마다 매개변수 가중치를 조정하여 출력 결과를 변경함으로써 원하는 이미지 효과를 만들 수 있는데 실질적으로 변경하는 것은 불가능하다.

    • 그래서, 원본 모델을 손상시키지 않고 각 단계 사이에 단계를 하나 더 추가함으로써 원하는 결과를 만들 수 있는 것이다.

    LoRA 적용 예시

    • 왼쪽이 기존 AI 모델에서 뽑아낸 사진이고 오른쪽이 실제 사진처럼 나오게 하는 LoRA를 적용한 사진이다.
    • 이처럼 당일 서비스에서도 4가지 화풍을 변화시키려고 한다.
Designed by Tistory.