AI/Projects

Project Joing - Outro: 마무리 및 회고

문괜 2025. 5. 16. 18:00
반응형

*주의!* 작년에 정리하지 못했던 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에 적용(사진 첨부)

 

 

결과적으로 초기 목표했던 기능들은 전부 구현을 완료했다. 물론 완벽하지는 않은 부분에 있어서는 계획을 변경해서라도 완료했다. 그리고 추가적으로 아래의 성과들이 있었다.

  1. AI-Toolkit config.yaml 한국어 버전 생성
    • config.yaml 주석의 한국어 번역본
  2. jwywoo/storyboard-scene-generation-model-flux-v3-FLH(콘티 이미지 생성모델)
    • 전체 fine-tunned adapter중 사위 5%로의 사용량을 달성했다.(28540개 중 상위 5%로)
    • 한 달간 최대 사용량이 900회 이상도 있었다.(물론 Hugging Face의 정책 변경으로 더 이상 불가능하다.)

개선사항 및 추후 계획

생각보다 많은 목표를 달성했으나 하지만 여전히 부족한 부분들이 존재한다. 특히 Fine-tuning에 많은 시간이 들어 신경 쓰지 못한 부분들이면서 동시에 추후 프로젝트에서 적용할 내용들은 아래와 같다.

  1. 비동기 처리 - FastAPI  async와 LangChain의 ainvoke 등 LLM Application Server에서의 효율 극대화 
  2. Debugging - LLM Application의 작동시 log와 작동과정 확인
  3.  부하테스트 -  Service Grade에서의 상황을 가정한 부하테스트
  4. Service Grade System Prompt - Foundation Model의 성능은 강력하고 강력한 성능을 끓어 올리지 못한 건 Application 내에서 LLM의 구성과 Prompt의 퀄리티에 달렸다고 생각됐다.

특히, Debugging의 경우 단순히 Debugging 목적 뿐만이 아닌 InMemoryStore 기능을 활용한 생성과정의 state 관리도 포함된다.

 

3달간의 프로젝트를 너무 늦게 정리했으나 지금이라도 정리하여 좀 더 나은 방향으로 갈 수 있을 거 같다는 생각이 든다.

 

조잡하지만 긴글 읽어 주셔서 정말 감사합니다.

반응형