SoftlyAI

We help people focus on what matters the most

데이터 5개만 있어도 우리 서비스에 AI 도입이 가능해진 이유

ChatGPT, PaLM2와 같은 초거대 언어모델(Instruction-following Large Language Models, 이하 ‘LLM’)의 등장 이후, AI는 더 이상 자원과 전문성이 풍부한 기업들의 전유물이 아니라, 보다 많은 기업들이 접근할 수 있는 기술이 되었습니다. AI 솔루션을 적용하는 데 있어서 주요한 경제적, 기술적 진입장벽으로 작용했던 대량의 고품질 데이터셋 확보의 필요성이 줄어들었기 때문인데요.

이번 포스트를 통해, LLM을 활용하게 되면 기업이 AI를 비즈니스에 활용하기 위해 필요한 데이터셋을 확보하는 과정이 어떻게 간소화될 수 있는지를 살펴보도록 하겠습니다.

AI를 우리 회사/서비스에 도입하는 과정:
Before and After LLM

상용화된 LLM의 등장 이전

LLM이 상용화되기 전, 기업들은 주로 자체 구축한 데이터셋으로 직접 모델을 학습하거나 use case와 유사한 태스크를 수행하는 상용 AI API를 활용했습니다. 그러나 상용 API는 우리 회사의 비즈니스 도메인과 use case에서 등장하는 데이터를 반영하지 않기 때문에 우리 회사 제품/서비스에 활용했을 때 성능이 기대에 못 미치는 경우가 많았습니다.

결과적으로 준수한 성능을 기대하는 기업들은 주로 데이터를 직접 수집하고 이를 기반으로 자체 모델을 학습시켰습니다. 활용 목적에 적합한 데이터를 수집하기 위해서는 데이터 구조 설계부터 원시 데이터 수집, 잘 정의된 어노테이션 가이드라인 구축, 레이블링 작업자 선별, 고품질 레이블 수집까지 모두 수행해야 했습니다.

예를 들어, 제품 리뷰에서 만족 요인과 불만족 요인을 지시하는 키워드를 추출하고자 하는 경우, 기업들은 텍스트 분석 및 키워드 추출 기능을 가진 기본 모델을 만들기 위해 시중의 키워드 추출 API와 감정 분석 API를 활용하거나, 자체적으로 데이터를 수집하여 모델을 학습시키곤 했습니다. 전자의 방식은 상대적으로 빠르고 저렴하나, 원하는 성능을 기대하기 어렵고, 후자의 방식은 우리 회사 비즈니스 특성에 맞춰서 개발할 수 있으나, 데이터셋 구축 및 모델 학습에 상당한 시간과 노력이 필요합니다.

자체 구축한 데이터셋으로 모델을 학습하는 방법은 다음과 같습니다:

  1. 태스크 정의: AI 모델을 통해 해결하고자 하는 문제와 원하는 결과 및 목표를 구체적으로 정의합니다. 모델에 입력될 내용(Input)과 모델이 달성해야 하는 결과(Output)를 구체화하는 과정이기도 합니다.
  2. 모델링 방법 설계: 작업(Task, 이하 ‘태스크’)에 가장 적합한 모델링 방법을 설계합니다. 하나의 모델로 해결할 수 있는지, 아니면 여러 모델을 종합적으로 활용해야 하는지 판단하고, 단위 모델이 수행해야 하는 과제가 분류 과제인지, 생성 과제인지, 스팬(Span) 예측 과제인지 등을 결정합니다.
  3. 데이터 구조 설계: 태스크에 적합한 데이터 구조를 설계합니다. 모델이 수행해야 하는 작업에 맞는 어노테이션 스키마(Schema)를 정의하고, 필요한 레이블의 정보, 그리고 개수와 분포도를 지정합니다.
  4. 대량의 원시 데이터 수집: 레이블링 되어야 하는 원시 데이터(Source corpus)를 수집합니다. 3번에서 정한 데이터의 특성과 분포를 고려해 수집하는 것이 중요합니다.
  5. 어노테이션 가이드라인 설계: 3번에서 정한 레이블을 잘 정의하는 설명과 예시, 그리고 어노테이션 방식을 정합니다. 데이터셋의 품질은 모델 성능에 직접적인 영향을 주기 때문에 가이드라인을 잘 설계해야 좋은 모델을 만들 수 있습니다. 또한, 주어진 예산 내에서 최대한의 품질을 보장하는 어노테이션 가이드라인을 설계하는 것도 중요합니다.
  6. 레이블링 작업자 선별: 가이드라인에 명시된 내용뿐만 아니라 데이터 구조 설계자의 의도까지도 파악하여 edge-case를 잘 수행하고, 틀리지 않으면서 레이블링 작업을 잘할 수 있는 분들을 선별합니다.
  7. 대량의 고품질 레이블 수집: 선별된 레이블링 작업자들과 함께 대량의 고품질 데이터를 수집합니다. 작업 속도를 높이고 품질을 보장하기 위해 별도의 툴을 사용하기도 합니다.
  8. 모델 학습: 모델에 데이터를 학습시키고 관련된 가중치와 특징을 학습합니다. 이를 통해 모델은 입력된 데이터에서 패턴을 학습합니다.
  9. 모델 평가: 학습된 모델의 성능을 평가합니다. 2번과 3번에서 정한 설계에 맞는 지표를 선정하고, 7번에서 수집한 데이터셋 중 일부를 테스트셋으로 활용하여 모델의 성능을 평가합니다.
  10. 원하는 목적에 맞게 활용: 훈련된 모델을 실제 환경에서 원하는 목적에 맞게 활용합니다.
  11. 데이터 분포 변동: 모델을 실제 환경에서 활용하는 중에 모델에 입력된 데이터 분포가 변하는(Data Distribution Shift) 경우 다시 1번 ‘태스크 정의’로 돌아가 전체 과정을 되풀이합니다.

이 과정에서 3번에서 7번까지의 작업이 가장 중요하고 비용이 많이 드는 일이었는데요. 데이터셋과 관련된 주된 직접 비용과 간접 비용의 예시들입니다:

1) 직접 비용

1-1) 데이터 수집 및 가공: 노동집약적 작업

과거, 기업들은 데이터 레이블링을 위해 주로 외주 혹은 내부 전문인력을 채용하거나 레이블링 된 데이터를 구매하곤 했습니다. 데이터를 일일이 어노테이션 하는 작업이 노동집약적인 탓에 상당한 시간과 비용이 소요되었습니다. 최소한의 모델 성능을 보장하기 위해 필요한 데이터의 개수는 최소 1만 개였으며, 레이블의 신뢰도를 높이기 위해 하나의 데이터 당 최소 3명의 작업자가 필요했습니다.

이 과정에서 특정 분야의 전문 지식이 필요한 경우, 도메인 전문가(예: 언어학 전공자, 프랑스어 전문가, 의학 전문가, 법률 전문가 등)를 직접 레이블링 작업에 고용해야 해서 더 많은 비용이 발생했습니다. 이런 모든 과정은 모델을 활용하고자 하는 회사의 비용 부담을 증가시켰습니다.

1-2) 데이터 어노테이션을 위한 팀 구성: 높은 이해도와 전문성을 지닌 인력 필요

이상적으로, 데이터 어노테이션은 다음의 역량을 가진 사람 한 명으로도 가능합니다. 언어학에 대한 이해가 있는 동시에 머신러닝 데이터셋 및 모델 아키텍쳐에 대한 이해가 있어야 하고, 기초적인 통계학 지식을 바탕으로 결과물을 정성적, 정량적으로 평가할 수 있어야 하며, 데이터가 사용되는 비즈니스 맥락까지 이해해야 합니다. 또한, 레이블링 작업자들을 진두지휘할 수 있어야 합니다.

이 모든 역량을 갖춘 인재는 유니콘과도 같은 존재이기 때문에 주로 언어학 전공자, 머신러닝 전공자, 서비스 기획자, 어노테이션 프로젝트 매니저 등이 협업하여 진행했습니다. 모델 학습 과정을 나타내는 위 그림에서 1번에서 5번, 8번에서 10번 단계는 머신러닝 전공자가, 3, 5번, 7번은 언어학 전공자가, 1번 11번은 서비스 기획자가, 5번에서 7번은 어노테이션 PM이 관여합니다. 이러한 팀을 구성하기 위한 인건비는 매우 높고, 특히 머신러닝 전공자는 수요에 비해 공급이 부족하여 채용에 어려움이 있습니다.

2) 간접 비용

2-1) 커뮤니케이션 비효율: 레이블링 작업자들과 어노테이션 프로젝트 매니저(PM), AI 엔지니어, 서비스 기획자 간의 Expectation Misalignment

제품/서비스의 요구사항을 AI 엔지니어가 AI 태스크로 전환하고, AI 엔지니어의 요구사항(expectation)이 반영된 가이드라인과 데이터 수집 방식을 결정하고, PM은 이 내용을 레이블링 작업자들에게 명확하게 전달하고 관리해야 합니다. 하지만 각자의 전문 영역이 다르기 때문에 소통의 오류가 빈번할 수밖에 없습니다.

이 과정이 효과적이려면 AI 엔지니어는 서비스 맥락을 서비스 기획자만큼 잘 이해하고 있어야 하고, 서비스 기획자도 머신러닝에 대한 이해도가 있어야 합니다. PM도 AI 엔지니어와의 커뮤니케이션을 통해 모델이 달성하려는 성능 및 목표를 이해하고, 이를 바탕으로 레이블링 작업자들에게 명확한 가이드라인과 피드백을 제공해야 합니다. 이 과정은 중요하지만, 동시에 매우 어렵고 복잡하기 때문에 비효율의 주요 원인으로 작용합니다.

2-2) 머신러닝 모델 목표 성능 달성 리스크: 데이터셋 품질로 인해 모델의 목표 성능 달성 불가

데이터가 부족하거나, 태스크 정의 혹은 모델링 방식이 틀렸거나, AI 엔지니어의 요구사항이 가이드라인에 제대로 반영이 되지 않았거나, PM이 가이드라인을 제대로 전달하지 못했거나, 레이블링 작업자들이 미숙한 경우 등, 모델 성능에 영향을 주는 요소가 다양한 탓에 목표 성능 달성을 항상 보장하기 어려웠습니다. 최소 3개월 최대 1년 정도의 시간과 비용이 투자되는 데이터 제작의 결과가 좋지 않으면 그동안의 비용은 매몰비용이 되어버리는 것이죠.

2-3) 동일 과정 반복 수행: 데이터 분포 변경에 따른 전체 과정의 재수행

모델이 배포된 이후 실제 환경에서 유입되는 데이터의 분포가 학습 데이터 제작 시점의 분포와 달라지는 경우, 모델의 성능이 낮아지게 됩니다. 데이터 분포는 학습 데이터에 포함된 텍스트들의 특징과 통계적 특성을 나타내는데요. 성능 저하가 발생하면 새로운 데이터를 수집하고 모델을 다시 훈련하고 평가하는 전체 과정을 반복해야 합니다

출처: nannyML

💡 AI 모델 자체 구축을 위한 최소 요건

  • 최소 10,000개의 데이터 제작이 필요
  • 가장 간단한 문장 분류 태스크를 예시로, 여기에 레이블 1개를 다는 데에 약 20원
  • 레이블의 정확도 보장을 위해 한 문장 당 레이블링 작업자 2명과 검수자 1명 필요
  • 태스크 정의부터 어노테이션 데이터 확보까지 평균 6개월 소요

LLM이 상용화된 지금

LLM은 다양한 분야에 대한 방대한 양의 데이터와 지식을 사전학습(Pre-training)한 이후, 자연어 명령(Instruction)에 부합하는 결과(output)를 반환할 수 있게 학습된 상태로 제공됩니다. 이러한 특징 덕분에 상용 LLM을 활용하는 기업들은 AI를 통해 달성하고 싶은 태스크에 대한 설명과 소량의 데이터셋만 가지고도 그들의 비즈니스 도메인과 use case에 적합한 AI를 도입할 수 있게 되었습니다.

LLM을 우리 회사 제품/서비스 목적에 맞게 steering 하는 가장 간단한 방법으로 Zero-shot 방식과 Few-shot 방식이 있습니다. Zero-shot은 태스크를 AI 관점에서 잘 정의한 자연어 명령(Instruction)만으로 LLM이 원하는 결과를 반환할 수 있게 하는 방식입니다. 그에 더해 Few-shot은 LLM에 태스크 예시 몇 가지를 추가하는 방법으로 보다 구체적인 맥락과 예시를 제공하여 비즈니스에 더 적합하고 좋은 결과를 내는 방식입니다. 일반적으로 Few-shot의 결과가 더 좋지만 예시로 입력한 텍스트의 토큰 길이만큼 비용이 높아집니다.

따라서 이제는 많은 양의 데이터를 확보하는 것보다 다양한 use case 시나리오를 반영할 수 있는 데이터셋을 소량이라도 확보하는 것이 더 중요해졌습니다. 그 덕에 우리 회사 비즈니스에 맞는 AI를 도입하는 비용이 전과 비교하여 매우 저렴해진 것입니다. 과거에는 많은 자원과 시간을 투자하여 데이터셋을 잘 구축하는 것이 핵심이었다면, 이제는 데이터가 아니라 “비즈니스에 맥락에 맞는 AI 관점에서의 문제 정의”와 “LLM의 강점과 한계”를 제대로 파악하는 것이 훨씬 중요해졌습니다.

자연어 기반의 프롬프트 엔지니어링으로 AI를 도입하는 방법은 아래와 같습니다:

  1. 태스크 정의: AI 모델을 통해 해결하고자 하는 문제와 원하는 결과 및 목표를 구체적으로 정의합니다. 모델에 입력될 내용(Input)과 모델이 달성해야 하는 결과(Output)를 구체화하는 과정이기도 합니다. 이 과정은 모델 개발 방식이 아무리 간소화되어도 가장 중요하게 수행되어야 하는 작업입니다.
  2. 소량의 고품질 데이터셋 수집: 1번의 태스크 정의를 바탕으로 예시 입력 문장과 예시 결과를 소량이지만 최대한 다양하게 준비합니다. 트로스트의 리뷰 분석 케이스에서 리뷰 텍스트 별로 추출되어야 하는 키워드와 만족도 점수를 준비하는 것이 이 과정에 해당합니다.
  3. 명령 프롬프트 엔지니어링: 1번에서 정의한 태스크를 LLM이 잘 수행할 수 있도록 명확한 자연어로 표현합니다. 어떤 표현을 사용하는지, 어떤 언어를 사용하는지, 태스크를 작은 단위로 쪼개서 순차적으로 명령하는지 큰 단위로 한 번에 처리하도록 명령하는지, 2번에서 작업한 예시 일부를 제공하는지, 제공하지 않는지 등에 따라서 결과가 달라집니다. AI 모델에 대한 이해도가 높을수록 시행착오가 많이 줄고, 좋은 성능을 내는 프롬프트를 설계할 수 있습니다.
  4. 모델 평가: 1번에서 정한 목표 달성 여부를 판단하기 위한 모델 평가 지표를 선정하고, 2번에서 수집한 데이터셋 중 일부를 테스트셋으로 활용하여 모델의 성능을 평가합니다.
  5. 원하는 목적에 맞게 활용: 튜닝한 모델을 실제 환경에서 활용합니다.

주의할 점은, 활용하는 데이터가 적은 만큼 프롬프트를 디자인하는 일이 더 중요해졌다는 것입니다. LLM에 대한 이해와 다양한 use case 시나리오를 충분히 고려하지 못한 태스크 정의는 모델 성능에 상당한 영향을 미칠 수 있습니다. 아직 이 작업에는 AI에 대한 전문성이 필요하기 때문에, 직접 프롬프트 엔지니어링을 시도했을 때 문제를 해결하기 어렵다면 LLM 아키텍쳐에 대한 이해도가 높은 전문 인력의 자문 혹은 외부 솔루션을 탐색하는 것을 추천합니다.

필요한 데이터셋이 줄어들면 무엇이 좋나요?

1. 초기 도입 비용과 투자 리스크가 줄었어요

고품질의 데이터셋을 마련하기 위한 직간접 비용이 대폭 줄었기 때문에 초기에 들어가야 하는 현금 지출이 전처럼 크지 않습니다. 미흡한 데이터셋으로 인해 모델 성능이 기대에 못 미칠 리스크 역시 줄었습니다.

또한, LLM들은 큰 초기 투자 비용 없이 사용량에 따른 Pay-as-you-go 비즈니스 모델을 적용하고 있어서 리스크 헷징(Hedging)이 가능합니다. 우리 회사 제품/서비스에 적용해보고, 사용한 만큼 지불하며, 유연하게 ROI(Return on Investment)를 모니터링할 수 있기 때문입니다. AI 도입을 결정할 때 감수해야 하는 매몰비용 리스크가 줄어든다는 의미이기도 합니다.

다만 특정 태스크를 구현하기 위해 입력해야 하는 프롬프트(Prompt)가 지나치게 길면, LLM이 처리할 수 있는 토큰 수를 초과하여 아예 처리할 수 없거나, 그만큼 토큰 수가 늘어나 비용이 증가하기 때문에 주의가 필요합니다.

2. 유연하게 테스트 해볼 수 있어요

복잡한 코드 없이 자연어로 표현된 명령(Instruction)과 소량의 데이터셋으로 목표하는 태스크 구현이 가능하기 때문에 해결하고자 하는 비즈니스 문제에 맞게 유연하게 실험해 보는 것이 가능해졌습니다.

정의된 비즈니스 문제에 맞게 AI를 제품/서비스에 적용해 보고, 태스크를 재정의해야 하는 경우 프롬프트를 변경하는 과정만 다시 거치면 됩니다. 과거 대량의 고품질 데이터셋으로 학습된 모델의 결과를 향상시키기 위해서는 지난한 과정이 필요했습니다. 현상태의 모델이 잘 다루지 못하는 케이스를 보완하는 방향으로 추가 어노테이션을 하는 비싸고 지난한 과정을 거치거나, 학습 방식을 조금씩 바꾸며 최소 1시간 이상 소요되는 모델 학습 과정을 반복해야 했습니다. 또한, AI 학습 과정에서 코드 작업이 필수적이었기 때문에 모든 사람이 쉽게 수정하기는 어려웠습니다.

3. 데이터셋을 매번 새로 만들 필요가 없어요

LLM을 활용하게 되면 태스크가 바뀌어도 손쉽게 모델을 업데이트 할 수 있습니다. 기존에는 가이드라인 A에 맞춰 답변을 생성하도록 모델을 학습시켰다고 가정해 보겠습니다. 그런데 태스크가 변경되어 가이드라인 B로 전환해야 한다면, 새로운 가이드라인 B에 맞는 어노테이션 된 데이터셋을 수집하고 모델을 다시 학습시켜야 했습니다. 가이드라인이 계속 바뀌는 작업이라면 현실적으로 AI 활용을 기대하기 어려웠죠.

하지만 LLM을 사용하면, 가이드라인 B에 대한 프롬프트를 새로 설정하고 반영하면 됩니다. 매번 가이드라인이 변경되는 상황에서도 AI를 활용할 수 있으며, 빠르게 대응할 수 있습니다.

마무리하며,

우리 회사 제품/서비스에 AI를 활용하고 싶었지만 데이터가 부족해서, 돈이 너무 많이 들어서, 불확실성이 높아서 선뜻 실행에 옮기지 못하셨나요? 그런 분들이 새로운 비즈니스 기회를 발견하고 고민할 수 있게 돕는 글이었기를 바랍니다.

SoftlyAI는 고객사가 AI 엔지니어를 고용하지 않아도 쉽고 빠르게 AI를 도입할 수 있도록 AI 도입 과정에서 발생하는 고민을 함께 나누고 논의하며 시너지를 도모하고 있습니다. LLM 활용방식에 대한 막연한 그림은 있으나 구체적으로 어떻게 실행해야 할지 고민되거나, LLM으로 실험을 해봤지만 원하는 결과를 얻기 어려웠던 분들은 SoftlyAI와 함께 새로운 비즈니스 기회를 발견해보세요.

cta-banner
mobile cta banner
SoftlyAI Logo

회사명: 주식회사 소프트리에이아이 | 대표자: 박성준 | 사업자등록번호: 843-81-02613

2023 © SoftlyAI. All Rights Reserved
contact@softly.ai