*주의!* 작년에 정리하지 못했던 Project Joing의 문서입니다. 포스팅은 아래의 순서로 진행될 예정입니다.
- 이미지 생성 모델 선정 3 - Flux.1 Schnell vs Flux.1 Dev
- Flux.1 Dev Fine-tuning: LoRa & PEFT
- Flux.1 Dev Fine-tuning: AI-Toolkit
- Flux.1 Dev Fine-tuning:
학습데이터 수집학습 데이터 확보와 학습 계획 - Flux.1 Dev Fine-tuning: 학습과정 및 결과 비교
- 마무리 및 회고
저번 포스팅에서 잠시 언급했듯이 LoRa Fine-tuning을 통해 우리는 기존 모델의 weight를 조정하는 adapter를 만들어야 한다.
구체적인 LoRa가 Adapter를 만드는 과정은 아래의 포스팅을 확인하면 된다.
도대체 LoRa와 PEFT는 뭐지?
그리고 여기서는 AI-Toolkit이 어떻게 구성돼 있고 어떻게 사용했는지에 대해 정리할 예정이다.
먼저 AI-Toolkit은 공식 툴이 아니다. 하지만, Flux 모델을 트레이닝하기 위한 유일한 수단이다.(사용하기 간편한)
AI-Toolkit Github 저장소: 저장소에 있는 사용방법을 따라해도 좋다.
GitHub - ostris/ai-toolkit: The ultimate training toolkit for finetuning diffusion models
The ultimate training toolkit for finetuning diffusion models - ostris/ai-toolkit
github.com
AI-Toolkit에는 3가지의 사용 방식이 있는데 나의 경우 두 가지 방식을 비교해 봤다.
- AI-Toolkit UI: 2024년의 경우 BETA였다.
- Gradio UI: Florence-2로 이미지에 대한 Caption을 자동생성해 준다. 그리고 수정가능한 설정을 GUI 형태로 조정할 수 있다.
- config.yaml 데이터(이미지-Caption)를 직접 준비해야 하고 config.yaml을 직접 수정해야 한다.
그리고 3가지 방법 중에서 나는 config.yaml을 선택했다.
Gradio UI의 경우 사용이 간편하나 불안정했다. Training과정에서 갑자기 꺼지는 현상이 발생하고 의미 없는 UI요소로 인해 되려 보기 불편했다. 그리고 현재 사용환경이 Colab이었기 설정이 부분에 있어 사용하기 어려웠다. 또한 수정가능한 설정이 config.yaml 직접수정에 비해 적었기에 config.yaml 방식을 사용하기로 했다.
그리고 가장 중요한 점은 Florence로 생성된 Caption에 대한 전처리가 불가능했다. Gradio UI를 통해서 생성된 Caption의 경우 수동으로 직접 수정해야 했다. 또한 Caption 생성결과가 일관적이지 못한 부분이 있었고 그 차이가 너무 컸다. 그리고 이러한 부분에 있어 추후 문제가 발생할 수 있을 거라 예상했다.(실제로 문제가 발생했다.)
그래서 config.yaml 직접 수정 방식을 선택했고 아래와 같은 순서로 진행하였다.
- 학습 데이터 확보
- Image - Caption
- 학습 계획
- 확보된 데이터 - Image & Caption
- learning rate 등 config.yaml 수정 가능 요소
- Fine-tuning 진행 및 결과 비교
다음 포스트에서는 구체적인 데이터 확보 및 학습 계획 선정과 문제상황에 대해 정리할 예정이다.
Flux.1 Dev Fine-tuning: 학습 데이터 확보와 학습 계획
Project Joing: StoryBoard Generator(콘티 생성기) Flux.1 Dev Fine-tuning: 학습 데이터 확보와 학습 계획
*주의!* 작년에 정리하지 못했던 Project Joing의 문서입니다. 포스팅은 아래의 순서로 진행될 예정입니다.이미지 생성 모델 선정 3 - Flux.1 Schnell vs Flux.1 DevFlux.1 Dev Fine-tuning: LoRa & PEFTFlux.1 Dev Fine-tuning
youcanbeable.tistory.com