문제 이해하기

문제를 파악하려면 다음 작업을 실행하세요.

  • 개발 또는 리팩터링 중인 제품의 목표를 설명합니다.
  • 예측 ML, 생성형 AI, 비 ML 솔루션 중 무엇을 사용하여 목표를 가장 잘 해결할 수 있는지 결정합니다.
  • 예측 ML 접근 방식을 사용하는 경우 모델을 학습시키는 데 필요한 데이터가 있는지 확인합니다.

목표 명시

먼저 ML이 아닌 용어로 목표를 명시하세요. 목표는 '무엇을 달성하고자 하는가?'라는 질문에 대한 답입니다.

다음 표에는 가상의 앱의 목표가 명시되어 있습니다.

애플리케이션 목표
날씨 앱 지역의 강수량을 6시간 단위로 계산합니다.
패션 앱 다양한 셔츠 디자인을 만들어 보세요.
동영상 앱 유용한 동영상을 추천합니다.
메일 앱 스팸을 감지합니다.
금융 앱 여러 뉴스 매체의 금융 정보를 요약합니다.
지도 앱 이동 시간을 계산합니다.
뱅킹 앱 허위 거래를 식별합니다.
식당 앱 레스토랑의 메뉴로 요리를 식별합니다.
전자상거래 앱 유용한 답변으로 리뷰에 답글을 달아보세요.

명확한 ML 사용 사례

ML을 모든 문제에 적용할 수 있는 범용 도구로 보는 사람들도 있습니다. 실제로 ML은 특정 문제에만 적합한 특수 도구입니다. 간단한 비 ML 솔루션이 작동하는 경우 복잡한 ML 솔루션은 구현할 필요가 없습니다.

ML 시스템은 예측 ML생성형 AI라는 크게 두 가지 카테고리로 나눌 수 있습니다. 다음 표에는 이러한 특성을 정의하는 특성이 나와 있습니다.

입력 출력 교육 기법
예측 ML 텍스트
이미지
오디오
동영상
숫자
이메일을 스팸 또는 스팸 아님으로 분류하거나, 내일의 강우량을 추측하거나, 주식 가격을 예측하는 등 예측을 수행합니다. 일반적으로 출력은 실제로와 대조하여 확인할 수 있습니다. 일반적으로 많은 데이터를 사용하여 지도 학습, 비지도 학습 또는 강화 학습 모델을 학습시켜 특정 작업을 수행합니다.
생성형 AI 텍스트
이미지
오디오
동영상
숫자
기사를 요약하거나 오디오 클립 또는 짧은 동영상을 제작하는 등 사용자의 의도에 따라 출력을 생성합니다. 일반적으로 라벨이 지정되지 않은 많은 데이터를 사용하여 대규모 언어 모델 또는 이미지 생성기를 학습시켜 누락된 데이터를 채웁니다. 그런 다음 모델을 빈칸 채우기 작업으로 프레이밍할 수 있는 작업에 사용하거나 분류와 같은 특정 작업의 라벨이 지정된 데이터로 학습시켜 미세 조정할 수 있습니다.

ML이 올바른 접근 방식인지 확인하려면 먼저 현재 비 ML 솔루션이 최적화되었는지 확인합니다. 비 ML 솔루션을 구현하지 않은 경우 휴리스틱을 사용하여 수동으로 문제를 해결해 보세요.

비 ML 솔루션은 ML이 문제에 적합한 사용 사례인지 판단하는 데 사용할 벤치마크입니다. 비 ML 접근 방식과 ML 접근 방식을 비교할 때는 다음 질문을 고려하세요.

  • 품질. ML 솔루션이 얼마나 더 나을 수 있다고 생각하시나요? ML 솔루션이 사소한 개선 정도라고 생각한다면 현재 솔루션이 최상의 솔루션임을 의미할 수 있습니다.

  • 비용 및 유지관리. ML 솔루션은 단기 및 장기적으로 얼마나 비싼가요? 경우에 따라 ML을 구현하는 데 드는 컴퓨팅 리소스와 시간 측면에서 훨씬 더 많은 비용이 듭니다. 다음 질문을 고려하세요.

    • ML 솔루션이 비용 증가를 정당화할 수 있나요? 대규모 시스템에서의 작은 개선으로도 ML 솔루션 구현의 비용과 유지보수를 정당화할 수 있습니다.
    • 솔루션에 필요한 유지관리 수준 대부분의 경우 ML 구현에는 전용 장기 유지보수가 필요합니다.
    • 제품에 ML 전문 지식을 갖춘 인력의 교육 또는 채용을 지원하는 리소스가 포함되어 있나요?

이해도 확인

ML 솔루션을 분석하기 전에 비 ML 솔루션이나 휴리스틱을 마련하는 것이 중요한 이유는 무엇인가요?
비 ML 솔루션은 ML 솔루션을 측정하기 위한 벤치마크입니다.
ML 외 솔루션을 사용하면 ML 솔루션 비용을 판단하는 데 도움이 됩니다.

예측 ML 및 데이터

데이터는 예측 ML의 원동력입니다. 예측을 효과적으로 수행하려면 예측 성능을 갖춘 특성이 포함된 데이터가 필요합니다. 데이터에는 다음과 같은 특성이 있어야 합니다.

  • 풍부함. 데이터 세트에 관련성이 높고 유용한 예시가 많을수록 모델 품질이 개선됩니다.

  • 일관성 및 안정성. 일관되고 안정적으로 데이터를 수집하면 더 나은 모델을 만들 수 있습니다. 예를 들어 ML 기반 날씨 모델은 신뢰할 수 있는 동일한 계측 기기에서 수년간 수집된 데이터를 활용할 수 있습니다.

  • 신뢰할 수 있음. 데이터의 출처를 파악합니다. 데이터의 출처는 제품의 로그와 같이 내가 관리하는 신뢰할 수 있는 소스인가요, 아니면 다른 ML 시스템의 출력과 같이 유용한 정보가 많지 않은 소스의 데이터인가요?

  • 사용 가능. 예측 시점에 모든 입력이 올바른 형식으로 제공되는지 확인하세요. 예측 시 특정 특성 값을 얻는 것이 어려우면 데이터 세트에서 해당 특성을 생략하세요.

  • 정답입니다. 대규모 데이터 세트에서 일부 라벨의 값이 잘못될 수 있지만 잘못된 라벨의 비율이 적으면 모델의 예측이 정확하지 않게 됩니다.

  • 대표자. 데이터 세트는 가능한 한 현실 세계를 대표해야 합니다. 즉, 데이터 세트는 이벤트, 사용자 행동 또는 모델링되는 실제 세계의 현상을 정확하게 반영해야 합니다. 대표성이 없는 데이터 세트를 학습하면 모델이 실제 예측을 하도록 요청될 때 성능이 저하될 수 있습니다.

필요한 데이터를 필요한 형식으로 얻을 수 없으면 모델의 예측이 틀립니다.

예측 능력

모델이 제대로 예측하려면 데이터 세트의 특성에 예측 능력이 있어야 합니다. 특성이 라벨과 상관관계가 많을수록 예측할 가능성이 높아집니다.

일부 특성은 다른 특성보다 예측 능력이 더 뛰어납니다. 예를 들어 날씨 데이터 세트에서 cloud_coverage, temperature, dew_point 같은 특성은 moon_phase 또는 day_of_week보다 비 예측에 더 적합합니다. 동영상 앱 예에서는 video_description, length, views와 같은 기능이 사용자가 시청하고 싶어 할 동영상을 예측하는 좋은 지표가 될 수 있다는 가설을 세울 수 있습니다.

컨텍스트나 도메인이 변경되므로 특성의 예측 성능이 변경될 수 있습니다. 예를 들어 동영상 앱에서 upload_date와 같은 기능은 일반적으로 라벨과 약한 상관관계가 있을 수 있습니다. 그러나 게임 동영상의 하위 도메인에서 upload_date은 라벨과 밀접한 상관관계가 있을 수 있습니다.

예측 성능이 우수한 특성을 판단하는 데는 시간이 오래 걸릴 수 있습니다. 모델을 학습시키는 동안 특성을 삭제하고 추가하여 특성의 예측 성능을 수동으로 탐색할 수 있습니다. 특성의 예측 성능을 분석하기 위한 수치 평가를 제공하는 피어슨 상관, 조정된 상호 정보 (AMI), Shapley 값과 같은 알고리즘을 사용하여 특성의 예측 능력 찾기를 자동화할 수 있습니다.

이해도 확인

데이터 세트를 분석할 때 찾아야 할 주요 속성 3가지는 무엇인가요?
실제 세상을 나타냅니다.
올바른 값을 포함합니다.
특성은 라벨에 대한 예측 성능을 가집니다.
로컬 머신에 로드하기에 충분히 작습니다.
예측할 수 없는 다양한 출처에서 수집됩니다.

데이터 세트 분석 및 준비에 대한 자세한 내용은 머신러닝을 위한 데이터 준비 및 특성 추출을 참조하세요.

예측 vs. 액션

예측을 사용자에게 도움이 되는 작업으로 전환하지 못한다면 예측을 해도 아무 의미가 없습니다. 즉, 제품은 모델의 출력에서 작동해야 합니다.

예를 들어 사용자가 유용한 동영상을 찾을지 예측하는 모델은 유용한 동영상을 추천하는 앱에 피드해야 합니다. 비가 올지 여부를 예측하는 모델이 날씨 앱에 제공됩니다.

이해도 확인

다음 시나리오를 기반으로 ML을 사용하는 것이 문제에 가장 적합한 접근 방법인지 판단하세요.

대규모 조직의 엔지니어링팀이 수신 전화를 관리해야 합니다.

목표: 발신자에게 현재 통화 볼륨에 따라 얼마나 오래 대기해야 하는지 알립니다.

이 회사에는 해결책이 없지만 현재 대기 중인 고객 수를 전화를 받는 직원 수로 나눈 다음 10분을 곱하는 것이 휴리스틱이라고 생각합니다. 하지만 일부 고객은 2분 이내에 문제를 해결하지만 다른 고객은 최대 45분 이상 걸릴 수 있다는 사실을 알고 있습니다.

휴리스틱으로는 정확한 숫자를 얻지 못할 수 있습니다. number_of_callcenter_phones, user_issue, time_to_resolve, call_time, time_on_hold 열이 포함된 데이터 세트를 만들 수 있습니다.

ML 사용 엔지니어링팀의 목표가 명확하게 정의되어 있습니다. 휴리스틱은 사용 사례에 충분하지 않습니다. 데이터 세트에 time_on_hold 라벨의 예측 특성이 있는 것으로 보입니다.
ML을 사용하지 않음. 목표는 명확하게 정의되어 있지만 먼저 비 ML 솔루션을 구현하고 최적화해야 합니다. 또한 데이터 세트에 예측 전력을 제공하는 특성이 충분하지 않은 것으로 보입니다.