|
생성형 AI 모델을 활용해 이미지를 생성할 때 특정 스타일을 부여하려면 LoRA 라는 모델의 개발이 필수적입니다. 하지만 모델 학습을 위한 데이터를 준비하는 데 개발자의 시간과 노력이 너무 많이 듭니다. 이러한 문제를 완화해주는 이미지 학습 데이터 증강 자동화 파이프라인, ‘Data Forge’를 소개합니다. |
Data Forge 개발 배경
2016년 알파고의 등장 이래로 AI 기술이 급속도로 발전하면서 이제는 AI가 전 세계적으로 가장 중요한 분야 중 하나로 자리매김하였습니다. AI 기술에서 가장 핵심적인 역할을 수행하는 것이 바로 데이터 전처리입니다. 데이터 전처리는 AI 작업 과정의 약 8할을 차지한다고 알려져 있을 정도로 많은 시간과 노력을 투입해야 하는 일입니다.
최근 미술전에서 생성형 AI가 생성한 이미지가 1등을 차지해서 큰 이슈가 된 적이 있습니다. ChatGPT를 시작으로 급격히 떠오르고 있는 생성형 AI는 이제 인간과의 대화를 넘어 예술 표현에도 널리 활용되고 있습니다. 예술에는 동양화나 카툰 등 여러 스타일이 존재하는데 이러한 특정 스타일을 더욱 효과적으로 표현하기 위해서는 생성형 AI 모델을 Fine-Tuning하는 과정이 필요합니다. 이 과정에서 모델별로 최소한 3천 개 이상의 이미지와 그에 상응하는 캡션이 필요합니다.
이전에는 개발자들이 정식 계약을 통해 라이선스를 취득한 Shutterstock 이미지 가운데 적절한 이미지를 모델 학습에 활용하였습니다. 그러나 대량의 데이터를 일일이 수작업으로 모으고 정렬하는 것은 매우 비효율적이므로 이를 자동화해줄 수 있는 파이프라인인 Data Forge를 기획하고 개발하게 되었습니다.
Data Forge 목표
모델 학습을 위해 필수적으로 수행해야 하는 데이터 전처리 과정 중 정성적인 작업을 제외한 정량적인 작업에는 프롬프트 확장, 이미지 데이터셋 확보, Signature 탐지를 위한 Object Detection, CLIP Score를 이용한 정량적 평가, Cloud에 최종 생성 이미지 적재 등이 있습니다. 이러한 주요 정량적 작업들을 작게 모듈화하여 Node의 형태로 표현하고 시나리오에 따라 각 Node를 선으로 이어 파이프라인을 구성할 수 있도록 했습니다.
위 그림은 Data Forge 기획 단계에서 만든 도식입니다. 사용자가 Node와 Edge로 구성된 Graph만을 조작해도 원하는 학습 데이터를 생성할 수 있도록 기획하였습니다. 또한 현존하는 시나리오에 필요한 모듈을 우선적으로 작성하고 이후 AI 트렌드에 따라 새로운 기능을 계속해서 추가할 수 있도록 했습니다.
현재는 프롬프트 확장을 위한 거대 언어 모델, 프롬프트에 알맞은 이미지를 생성해주는 이미지 생성 모델, 생성된 이미지가 입력 프롬프트에 얼마나 충실한지 여부를 검사하는 ClipScore 필터, 생성된 이미지 캡션에서 타겟 텍스트를 탐지하는 ClipInterrogate 필터, 아름다움이나 Alignment와 같은 지표를 정량적으로 평가하는 ImageReward 필터 등을 지원하고 있습니다. 이 외에도 이미지에 테두리, 알아보기 힘든 Text, Watermark 비슷한 모양이 생긴다든지 하여 원치 않는 이미지를 걸러내는 기능도 추가하였습니다.
Data Forge 활용 시나리오
사용자가 우측 바에서 사용하고자 하는 모듈을 선택하고 필수 파라미터를 입력한 다음 Create 버튼을 누르면 모듈이 왼쪽에 나타납니다. 각 모듈의 왼쪽에는 input handler, 오른쪽에는 output handler가 있는데요. 시나리오에 따라 여러 개의 모듈을 추가한 후에 선으로 연결하면 파이프라인을 완성할 수 있습니다.
우측에서 Run 버튼을 누르면 위상 순위로 각 모듈이 실행되며 생성된 이미지를 포함한 각 모듈의 상태를 실시간으로 확인할 수 있습니다. 파이프라인이 이상적으로 동작하는 모습을 확인했다면 설정 내용을 저장하고 이후에 불러와서 간편하게 사용할 수 있습니다.
3-1) 학습 이미지 데이터 생성
Data Forge는 학습 이미지 데이터를 생성하는 데 활용할 수 있습니다. 거대 언어 모델을 통해 프롬프트를 확장하고 이를 사용하여 이미지를 생성할 수 있죠. 이때 실시간으로 생성된 이미지와 개수를 확인하고 파일 시스템에 저장할 수 있습니다.
3-2) Fine-Tuning한 모델 성능 평가
Data Forge는 이미 Fine-Tuning한 모델의 성능을 평가하는 데도 사용할 수 있습니다. 위의 예시는 PaperCut 스타일의 이미지를 생성하도록 학습된 모델의 성능을 평가하기 위해 ‘Mountain’이라는 프롬프트를 확장하여 이미지를 생성한 결과입니다.
3-3) 적절하지 않은 이미지 Filtering
또한 Data Forge는 생성한 이미지 데이터 중에서 적절하지 않은 이미지를 Filtering하기 위한 목적으로 사용 가능합니다. 위의 예시는 ‘요리하는 고양이’가 생성 이미지에 포함되어 있는지 여부를 Object Detection 모듈을 사용해 판단하고 포함되어 있지 않은 이미지를 Filter Out한 것입니다.
Data Forge의 장점 및 주요 성과
Data Forge의 주요 장점은 확장성과 모듈화입니다. 생성 모델과 평가 모델은 계속해서 업데이트되며 상황에 따라 다른 모델을 사용해야 하기도 합니다. Data Forge의 경우 새로 나온 모델을 추가하기가 쉬워 개발자들이 목적에 맞게 여러 모델 중 선택하여 다양한 상황을 유연하게 커버할 수 있습니다. 또한 주요 기능을 작게 모듈화했기 때문에 데이터 수집뿐만 아니라 정제, 평가 등 다양한 시나리오에서 활발하게 사용 가능합니다.
Data Forge를 통해 프롬프트 확장, 데이터 생성, 필터링, 정량적 평가 등 일련의 데이터 전처리 작업을 자동화하여 모델 개발자들이 모델 개발에 더욱 집중할 수 있을 뿐만 아니라 환경 설정에 따른 시간 낭비를 최소화할 수 있게 되었습니다.
향후 계획
메모리 부담을 줄이기 위해 자주 사용하는 모델을 Quantization 기법으로 경량화하고자 합니다. 또한 지금은 Data Forge를 데이터 전처리 목적으로 주로 사용하고 있지만 LoRA 모델을 학습시키는 모듈을 도입해 Fine-Tuning까지 알아서 처리할 수 있도록 기능을 통합하는 것을 고려하고 있습니다.
시간이 흐름에 따라 AI 기술은 계속 진화하는데요. 이미 개발한 것에 안주하지 않고 기술 트렌드에 맞춰 향상된 기능의 모듈을 새롭게 제작하여 더 좋은 모델을 개발하는 데 도움이 되도록 Data Forge를 발전시켜 나가고자 합니다.
감사합니다.
|
|
