반응형
*주의!* 작년에 정리하지 못했던 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: 학습과정 및 결과 비교
- 마무리 및 회고
작년 9월 말에 시작한 프로젝트가 12월 말에 드디어 끝났었고 이 포스팅은 그에 대한 회고다.
프로젝트 Joing 초기 목표 달성 결과
기능 단위 개발 목표
LLM Application: 기획안 평가 및 요약, 피드백 생성
| 목표 | 결과 |
| 총 3차의 평가를 진행하는 기능 개발 - 1차 정량평가: 평가 기능 악용을 방지와 AI 사용 기능의 정확성을 위해 양이 적을경우 평가를 하지 않는다. - 2차 내용평가: 내용의 논리적 전개를 중심으로 평가 - 3차 영상 심의 평가: 성인물 혹은 폭력적인 내용도 논릭적일 수 있기에 평가 진행 평가 통과시에는 요약을 생성, 불통과시에는 Feedback을 생성 기능 개발 |
3차 평가 기능 개발 완료 MVP 단계: 간단한 LLM API로 구성 - 평가 정확성 70% 1차 고도화: Few Shot Prompting으로 LLM API 재구성 - 평가 정확성 90% Feedback 및 요약 생성기능 갤발 완료 |
LLM Application: 크리에이터 프로필 평가
| 목표 | 결과 |
| 크리에이터의 프로필을 전체 스크린샷으로 촬영 혹은 업로드를 통해 OCR과 Image Validation을 활용 하여 유해성 평가 기능 개발 | Selenium을 도입 -> Chronium 크기로 인한 컴퓨팅 리소스 재한 문제 발생 및 Image기반 평가로 인한 리소스 부족 및 정확성 저하 문제 발생 단순 이미지 기반 평가가 아닌 Youtube API를 통해 Thumbnail과 영상설명 및 제목과 같은 텍스트를 복합적으로 활용하여 평가 진행하여 개발 완료 |
그래서 위의 기능들은 아래와 같이 구성돼 있다.

Generation Model Fine-tuning: 콘티생성기
| 목표 | 결과 |
| 우수 기획안을 대상으로한 콘티 생성 기능 개발 - 콘티생성 모델 - 콘티생성 API |
콘티 생성 모델 구현 완료 - Flux.1 dev 모델을 Fine-tuning - 데이터 수집 및 전처리 - AI Toolkit을 활용한 Fine-tuning 완료 콘티 생성 API 개발 - 콘티 생성 API의 경우 컴퓨팅 리소스가 너무 많이 드는 관계로 보류 - 대신 기획안을 바탕으로 콘티를 작성하고 작성된 콘티를 이미지로 전환하는 로직 개발 완료 - 생성된 예시 콘티의 경우 웹사이트 Client에 적용(사진 첨부) |

결과적으로 초기 목표했던 기능들은 전부 구현을 완료했다. 물론 완벽하지는 않은 부분에 있어서는 계획을 변경해서라도 완료했다. 그리고 추가적으로 아래의 성과들이 있었다.
- AI-Toolkit config.yaml 한국어 버전 생성
- config.yaml 주석의 한국어 번역본
- jwywoo/storyboard-scene-generation-model-flux-v3-FLH(콘티 이미지 생성모델)
- 전체 fine-tunned adapter중 사위 5%로의 사용량을 달성했다.(28540개 중 상위 5%로)
- 한 달간 최대 사용량이 900회 이상도 있었다.(물론 Hugging Face의 정책 변경으로 더 이상 불가능하다.)
개선사항 및 추후 계획
생각보다 많은 목표를 달성했으나 하지만 여전히 부족한 부분들이 존재한다. 특히 Fine-tuning에 많은 시간이 들어 신경 쓰지 못한 부분들이면서 동시에 추후 프로젝트에서 적용할 내용들은 아래와 같다.
- 비동기 처리 - FastAPI async와 LangChain의 ainvoke 등 LLM Application Server에서의 효율 극대화
- Debugging - LLM Application의 작동시 log와 작동과정 확인
- 부하테스트 - Service Grade에서의 상황을 가정한 부하테스트
- Service Grade System Prompt - Foundation Model의 성능은 강력하고 강력한 성능을 끓어 올리지 못한 건 Application 내에서 LLM의 구성과 Prompt의 퀄리티에 달렸다고 생각됐다.
특히, Debugging의 경우 단순히 Debugging 목적 뿐만이 아닌 InMemoryStore 기능을 활용한 생성과정의 state 관리도 포함된다.
3달간의 프로젝트를 너무 늦게 정리했으나 지금이라도 정리하여 좀 더 나은 방향으로 갈 수 있을 거 같다는 생각이 든다.
조잡하지만 긴글 읽어 주셔서 정말 감사합니다.
반응형