사용자 경험

ML 시스템은 전통적 시스템과 달리 다음 특성을 가지고 있으니 이를 고려해서 좋은 사용자 경험을 주려고 해야함:

  • 결정론적이 아닌 확률론적. (비슷한 데이터 때로는 같은 입력 데이터를 주더라도 다른 결과를 얻을 수 있음)
  • 규모가 큰 ML 시스템의 경우에는 레이턴시가 크다.

 

사용자 경험에 일관성을 제공하는 방법

매번 ML 시스템이 예측이 확 달라지면 사용자 경험이 좋지 않다. 사용자 경험에 불편함은 주지 않도록 최소한 일관성을 줄 수 있는 ML 시스템이어야 함.

  • 넷플릭스나 유튜브를 생각해보면 됨. 들어갈 때마다 새로고침할 때마다 추천하는 영상이 계속해서 달라진다면 산만하다는 느낌을 줄 수 있음.
  • 링크드인 같은 경우가 새로 고침할 때마다 게시물이 완전 리프래쉬 되던데, 이전에 놓쳤던 게시물이 사라져서 안타깝다는 느낌을 주긴 했음.
  • 사람들은 일관성이 있는 걸 사용자 경험이 좋다라고 생각하기도 한다. 예로 늘 같은 자리에 물건을 두기도 하니까. 이를 고려해야함.

 

예시: 부킹 닷컴

  • 부킹 닷컴은 숙박 시설을 제안할 때 여러가지 필터를 ML 시스템을 이용해서 제안한다. (e.g 조식 포함, 반려동물 동반 가능, 금연 객실 등)
  • 근데 이런 필터가 사용자 세션 내에서 특정 행동을 할 때마다 바뀌면 답답함을 느낄거임. 그래서 부킹 닷컴은 시스템일 동일한 필터 추천 사항을 반복해야 하는 경우의 조건과 시스템이 새로운 필터를 반환해야 하는 조건을 규칙으로 만들어서 적용했다.

 

 

'대부분 맞는' 예측에 맞서기

대부분의 확률론적 ML 시스템에서 사용되는 방법 중 하나는 GPT 와 같은 모델이 제시한 답을 사람이 보고 고쳐서 쓰는 방식이다:

  • 예시로들면 프롬포트를 주었을 때 리액트 코드를 생성하는 GPT 가 있다고 생각해보면 된다. 항상 올바른 코드를 주지는 않으니, GPT 가 내준 코드를 보고 개발자가 보고 고쳐서 사용하는 방식인거지.
  • 그러나 이 방식의 단점은 그 분야의 지식을 모르는 사람은 사용할 수 없는 방식이라는 거임. 그래서 사용자 경험을 낮출 수 있다는 것.

 

이 방식의 예측에서 사용자 경험을 올리려면 원하는 결과를 얻을 수 있도록 해줘야한다:

  • 리액트 예시의 경우에는 코드를 직접 렌더링해서 사용자에게 보여줘서 너가 원하는게 이거야? 라고 말해주는거지.
  • 법률 상담을 제시하는 경우에는 근거를 제공할 수 있어야겠다. 최소한.
  • 이렇게 인간이 개입해서 모델의 성능을 개선하거나 예측을 더 낫게 만드는 방법을 휴먼 인 더 루프 (Human in ther loop) 라고 한다.

 

 

원만한 실패

ML 모델에서 레이턴시(Latency) 는 사용자 경험에 크게 기여한다. 특히 모델이 더 클수록 답변 속도가 느리기도 함.

 

레이턴시 문제를 개선하는 방법으로는 백업 시스템을 사용하는 방법이 있다:

  • 답변이 일전 시간 지나도 느린 경우에는 단순한 모델 또는 휴리스틱한 방법을 이용해서 예측을 생성하도록 하는 방법:
    • 아니면 병렬로 질의하는 것도 방법일 것 같다. 더 빠른 모델을 백업용으로 두고 동시에 쿼리를 날리는거지. 백업용은 정확도가 더 낮긴할거임.
  • 아니면 모델의 예측 질문을 캐싱해두는 것도 방법이다.

 

 

Q) LLM 에서는 캐싱을 어떻게 적용할 수 있을까? 항상 같은 쿼리가 들어오는 것도 아닐텐데.

 

유사성 기반 캐싱 (Similarity-based Caching) 이 있음.

 

LangChain 에서는 MongoDBAtlasSemanticCache 를 이용해서 이 기능을 제공할 수 있다.

 

사용해보진 않았지만 유사성 기반 캐싱은 질문을 벡터로 바꾸고 캐시에서 비교하는 작업을 수행해서 답변이 나갈텐데 이런 연산 비용이 얼마나 클 지 잘 모르겠다.

 

 

팀 구조

ML 시스템을 효과적으로 개발하는 다양한 팀 구조에 대해 살펴보자.

 

크로스 펑셔널 팀 협업 (cross-functional)

ML 시스템을 개발할 때 SME (Subject Matter Experts, e.g 의사, 변호사 등) 을 전체 프로세스 과정에 참여시키면 상당한 이점이 있다.

  • 현재 회사들은 레이블링에서만 참여 시키고 있다고 함.

 

SME 를 전체 프로세스 과정에 참여시키면 얻을 수 있는 이점은 다음과 같다:

  • 데이터 이해 및 품질 향상:
    • 정확한 데이터 수집: SME들은 어떤 데이터가 중요하고, 어떤 데이터가 불필요하거나 오해의 소지가 있는지를 잘 알고 있다. 그들의 지식을 활용하면 더 정확하고 관련성 높은 데이터를 수집할 수 있다.
    • 데이터 품질 보증: 데이터의 질이 ML 모델의 성능을 직접적으로 결정한다. SME들은 데이터의 정확성과 일관성을 확인하는 데 중요한 역할을 한다.
  • 특징 엔지니어링 및 선택:
    • 중요 특징 식별: ML 모델에서 중요할 수 있는 특징들을 식별하는 데 SME의 전문 지식이 필수적이다. 그들은 어떤 변수들이 실제 세계의 프로세스에 영향을 미치는지 잘 알고 있으며, 이를 바탕으로 효과적인 특징을 선택할 수 있다.
    • 복잡한 관계 모델링: 특정 산업이나 분야에서 발견되는 복잡한 관계나 패턴을 이해하는 데 SME가 큰 도움을 준다.
  • 모델 설계 및 유효성 검사:
    • 모델 설계: SME들은 모델이 실제 세계의 복잡성을 어떻게 모델링해야 하는지에 대한 통찰력을 제공할 수 있다. 이는 모델 설계 초기 단계에서 중요하다.
    • 모델 유효성 검사: 모델의 예측이 실제 상황에 어떻게 적용될지 평가하는 데 SME의 경험이 중요하다. 그들은 모델의 예측이 실제 응용 분야에서 실현 가능한지 여부를 판단할 수 있다.
  • 모델 해석 및 피드백:
    • 지속적인 피드백: 개발 과정에서 지속적으로 피드백을 제공함으로써, 모델이 점차 개선되고 더 정확하게 최적화될 수 있다.
  • 윤리적 고려 및 규정 준수:
    • 윤리적 지침: 특정 분야의 전문가는 그 분야에서 윤리적으로 허용되는 행동의 기준을 잘 알고 있다. 이는 데이터 사용 및 모델 응용에 있어 중요한 가이드라인을 제공한다.

 

엔드 투 엔드 데이터 과학자

크게 두 종류의 팀이 있다:

  • ML 모델을 개발하는 팀과 운영을 관리하는 팀으로 구별하는 것.
  • 전체 프로세스를 하나의 팀이 관리하는 것.

 

저자는 전체 프로세스를 하나의 팀이 관리하는 것을 원한다고 함:

  • 물론 저수준의 인프라를 아는 것은 기대하지 않는다고도 한다.
  • 저수준의 인프라를 아는 것보다는 효과적인 도구들을 아는 것을 원한다고 함.
    • AWS S3 와 같은 기능들이나, K8s, Airflow 등

 

운영 팀을 별도로 구축하는 것은 장단점이 명확함:

  • 장점:
    • 고용이 쉽다.
  • 단점:
    • 사람을 많이 채용해야한다. 프레더릭 브루스는 한 명의 프로그래머가 한 달이면 할 일을 두 팀으로 나누면 두 명의 프로그래머가 두 달 걸린다고도 말한다.
    • 책임 회피가 쉽다.
    • 디버깅이 난해하다.

 

 

책임 있는 AI

사회에 긍정적인 영향을 주는 AI 를 개발하는 것이 중요하다. 아니면 너무 많은 사람들에게 피해를 줄 수 있으니까.

 

책임 있는 AI (Responsible AI) 는 다음과 같은 요소가 있을 것:

  • 공정성:
    • 공정성은 모든 사용자에게 차별 없이 서비스를 제공하는 것을 목표로 한다. AI 시스템은 종종 데이터의 편향 때문에 부정확한 결과를 초래할 수 있으며, 이는 특정 인구 집단에 대한 차별로 이어질 수 있다. 공정성을 확보하기 위해, 개발자들은 데이터 세트의 다양성을 증가시키고, 편향을 식별 및 수정하는 기법을 사용해야한다.
  • 개인 정보 보호:
    • AI 시스템은 대량의 개인 데이터를 수집하고 처리할 수 있다. 이런 시스템에서 개인정보보호는 사용자의 데이터를 안전하게 관리하고 보호하는 것을 의미한다. 데이터 암호화, 익명화 기술, 사용자 동의 관리 등을 통해 개인정보를 보호해야하고 또한, GDPR과 같은 데이터 보호 규정을 준수하는 것이 중요하다.
  • 투명성:
    • 투명성은 AI 시스템의 작동 방식과 결정 과정이 명확하고 이해하기 쉬워야 함을 의미한다. 이는 사용자가 AI의 결정에 대해 신뢰를 갖고, 필요한 경우 이의를 제기하거나 피드백을 줄 수 있도록 한다. 모델의 작동 방식을 설명할 수 있는 문서화, 오픈 소스 코드 공개 등이 포함된다.
  • 책임감:
    • 책임감 있는 AI는 시스템의 결정에 대해 책임을 질 수 있는 프로세스와 메커니즘을 포함한다. 이는 AI 시스템의 결정 과정을 이해하고, 잘못된 결정이나 실패가 발생했을 때 그 책임을 명확히 할 수 있도록 돕는다. 이를 위해 AI 시스템의 결정 로직을 기록하고, 필요한 경우 사람이 개입할 수 있도록 한다.
  • 안정성:
    • AI 시스템은 사용자와 환경에 해를 끼치지 않도록 설계되어야 한다. 안전성은 시스템이 예상치 못한 상황에서도 안정적으로 작동하며, 위험을 최소화하도록 보장하는 것을 포함한다. 이를 위해 로버스트한 테스트, 위험 평가 및 지속적인 모니터링이 필요하다.

 

여기서는 AI 개발의 실패 사례에 대해 알아보자.

 

 

사례 연구 1: 자동 채점기의 편향

영국에서는 코로나 때 시험을 치지 않고 성적을 채점해주는 ML 시스템을 도입했음.

 

문제는 정확도가 낮아서 공감하기 어려운 성적을 학생들이 받았다는 거임.

 

문제의 원인:

  • ML 모델의 목표가 채점을 정확하게 하는게 아니라 학교간의 서열을 두는 것이었음. 좋은 학교일수록 좋은 학점을 받도록 한거지. 그러니까 학생간의 공정성보다는 학교간의 공정성을 더 우선으로 둔 것.
  • 교사의 평가가 학생의 성적에 영향을 주지만, 교사의 평가 자체가 올바르지 않을 수 있다는 가정은 하지 못했음. 교사의 낮은 기대치와 교사의 인종 차별 성향은 성적이 반영될 수 있는 거임. 그리고 인원이 적은 학교에서는 교사가 더 큰 영향을 미치게 되었음.
  • ML 모델의 알고리즘을 교사나 학생들에게 알려주지 않았음. 이걸 알게 되면 악용할까봐 그런거긴함. 그치만 독립적인 외부 기관에서의 조사는 받았어야 함. 어떻든 투명성을 검토할 수 있는 프로세스는 있어야한다.

 

 

사례 연구 2: 익명화된 데이터의 위험성

이 문제는 개인 정보와 관련된 문제임. 스트리버라는 앱은 사용자의 달리기, 조깅, 수영과 같은 데이터를 기록해서 익명으로 공개적으로 공유함.

 

데이터를 익명이라고 하더라도 데이터 자체를 조사해보면 많은 추론을 할 수 있다. 해당 데이터는 군인도 사용했는데 이를 바탕으로 미군의 기지를 추론할 수 있었음.

 

문제의 원인:

  • 개인 정보 수집을 기본적으로 자동으로 앱이 설정했던 것. 기본적으로는 수집하면 안된다. 항상 사용자에게 물어보도록 해야함. 이런 방식을 데이터 옵트인이라고 함.

 

 

책임 있는 AI 프레임워크

모델 편향의 출처 알아내기

모델의 편향은 어디서든 발생할 수 있다는 사실을 알아야한다.

 

훈련 데이터:

  • 해당 데이터가 실제 세계의 데이터를 모두 나타낼만큼 충분한가? 아니라면 적은 데이터에 대해서는 편향을 나타낼 수 있게 될거다.

 

레이블링:

  • 레이블링이 인간의 주관에 의해 판단된다면 편향이 발생할거다. 데이터 품질을 관리하는 방법을 생각해봐야 할거임.

 

피처 엔지니어링:

  • 모델의 결정이 민족, 성별, 종교, 우편 번호, 고등학교 등의 정보에 의존할 때 편향은 발생한다.
  • 피처 엔지니어링에서 편향을 제거하고 완화하는 기법은 펠드만이 제안한 기법이나 AIF360 (AI Faireness 360) 에서 구현한 DisparateImpactRemover 함수나 H20 에서 구현한 Infogram 메소드를 이용해서 편향을 발견할 수 있다.

 

모델의 목표:

  • 모든 사용자에게 공평하게 적용할 수 있는 목표인지 검토해야한다.

 

평가:

  • 다양한 사용자 그룹에 대한 모델의 성능을 평가할 수 있는 지표가 있는가?

 

 

모델 카드 작성하기

모델 설명과 평가 지표 뿐 아니라 윤리적인 기준도 충족했는지 살펴보기 위해 모델 카드를 작성하는 단계를 시스템 적으로 넣을 수 있다.

 

텐서플로우나 파이토치에서는 모델 카드를 생성하는 기능을 제공하기도 한다.

 

모델 카드에 들어가야 하는 정보:

  • 모델 세부 정보: 모델에 대한 기본 정보
    • 모델을 개발하는 개인 혹은 조직
    • 모델 날짜
    • 모델 버전
    • 모델 유형
    • 훈련 알고리즘, 매개변수, 공정성 제약 및 그 외에 적용된 접근법과 피처에 대한 정보
    • 추가 정보를 위한 논문과 기타 자료
    • 인용 세부 정보
    • 특허
    • 모델에 대한 질문이나 의견을 보낼 곳
  • 사용 목적: 유스 케이스를 말한다.
    • 주요 용도
    • 주요 사용처
    • 범위 위 유스 케이스
  • 요인: AI 모델이 개발될 때, 테스트될 때 고려해야하는 요인을 말함. 이 변수들은 모델의 성능과 일반화 능력에 중요한 영향을 미칠 수 있으며, 모델의 설계와 평가 과정에서 중요한 역할을 한다.
    • 관련 요인
    • 평가 요인
    • 예시:
      • 인구통계학적 요인:
        • 인구통계학적 요인은 사용자나 데이터가 속하는 인구 집단의 특성을 의미한다. 이는 성별, 연령, 인종, 국가 등의 변수를 포함할 수 있다. 예를 들어, 의료 이미지 분석 모델을 개발할 때 다양한 인종과 연령대의 데이터를 고려하지 않으면, 특정 인구 집단에서는 성능이 저하될 수 있다.
      • Phenotypic Group:
        • Phenotypic group은 생물학적, 신체적, 또는 건강 상태와 관련된 특성을 의미한다. 예를 들어, 특정 유형의 질병을 가진 사람들 또는 특정 신체적 특성을 가진 사람들이 이 그룹에 속할 수 있다. 이런 특성들은 특히 의료 관련 모델에서 중요하게 고려된다.
      • 환경 조건:
        • 환경 조건은 모델이 사용될 실제 환경의 특성을 의미한다. 이는 조명, 기후, 장소 등 외부 환경 요소를 포함할 수 있다. 예를 들어, 자율 주행 차량의 AI 모델은 다양한 기후 조건(눈, 비, 안개 등)에서도 잘 작동해야 한다.
      • 기술적 속성:
        • 기술적 속성은 모델의 설계, 구현, 테스트에 사용된 기술적 세부 사항을 포함한다. 이는 사용된 알고리즘, 하드웨어 요구 사항, 소프트웨어 버전, 데이터 처리 방법 등을 포함할 수 있다. 이 정보는 모델의 성능과 효율성을 이해하는 데 중요하다.
  • 지표: AI 모델의 성능을 측정하고 평가하는 데 사용되는 여러 통계적 수치와 평가 방법을 의미.
    • 모델 성능
    • 결정 임곗값 (Decision Threshold):
      • 결정 임계값은 특히 분류 문제에서 사용되는 모델의 파라미터로, 어떤 클래스에 속하는지를 결정하기 위한 기준점을 설정한다. 예를 들어, 이메일 스팸 필터가 있는 경우, 모델은 각 이메일이 스팸일 확률을 계산하고, 이 확률이 특정 임계값(예를 들어 0.5) 이상이면 이메일을 스팸으로 분류한다. 임계값을 조정함으로써 모델의 민감도(진짜 양성 비율)와 특이도(진짜 음성 비율) 사이의 균형을 조절할 수 있다.
    • 변형 접근법 (Perturbation Approach):
      • 변형 접근법은 모델의 견고성과 오류에 대한 민감도를 평가하는 데 사용된다. 이 방법은 입력 데이터에 작은 변화(변형)를 주고, 이 변화가 모델의 출력에 어떤 영향을 미치는지를 관찰하여 모델의 안정성을 평가한다. 예를 들어, 이미지 인식 모델의 경우 이미지에 노이즈를 추가하거나, 이미지를 약간 회전시키는 등의 변형을 적용해볼 수 있다. 변형 접근법을 통해 모델이 이러한 작은 변화에 얼마나 강건한지 평가할 수 있으며, 이는 실제 세계에서의 모델 사용성을 더 잘 이해하는 데 도움을 준다.
  • 평가 데이터:
    • 데이터 셋
    • 동기
    • 전처리
  • 훈련 데이터: 최소 훈련 데이터셋에 대한 분포 정보등을 제공해야함
  • 정량적 분석: 모델의 성능을 수치적으로 평가하고 이해하는 데 사용되는 절차와 결과를 의미한다.
    • 단일 결과:
      • 단일 결과는 모델의 성능을 특정 한 시나리오나 데이터 세트에 대해 평가한 결과이다. 이는 일반적으로 특정 데이터 세트에서 모델의 정확도, 정밀도, 재현율, F1 점수 등과 같은 통계적 지표를 사용하여 모델의 성능을 측정한다. 단일 결과는 모델이 한 번의 실험에서 어떻게 수행되는지를 보여주며, 특정 조건에서의 모델 성능에 대한 직접적인 통찰을 제공한다.
    • 교차 결과:
      • 교차 결과는 다양한 시나리오, 데이터 세트 또는 모델 구성을 걸쳐 모델의 성능을 평가한 결과이다. 이 방법은 일반적으로 교차 검증을 포함하며, 모델이 다양한 환경이나 조건에서 일관되게 성능을 발휘하는지를 검토한다. 예를 들어, 다양한 인구통계학적 그룹이나 여러 환경 설정에서 모델의 성능을 평가하여 모델의 견고성과 일반화 능력을 파악할 수 있다.
  • 윤리적 고려사항: 이는 모델이 사회적, 문화적, 윤리적 기준을 어떻게 준수하고 있는지를 평가하는 중요한 부분이다.
    • 데이터의 공정성 및 편향:
      • 데이터 소스의 투명성: 사용된 데이터의 출처, 수집 방법 및 그 데이터가 대표하는 인구 집단의 설명.
      • 데이터 편향의 식별 및 완화: 데이터에서 발견된 편향과 이를 해결하기 위한 조치들. 모델이 어떻게 다양성과 포괄성을 확보하려고 노력하는지 설명.
    • 모델의 책임 있는 사용:
      • 사용 케이스 및 제한: 모델이 의도된 목적과 사용을 위해 설계된 방식, 그리고 모델 사용시 고려해야 할 제한 사항.
      • 가능한 오용 방지 조치: 모델이 오용될 가능성을 어떻게 관리하고 있는지, 예를 들어 접근 제어, 사용자 교육 및 감독 메커니즘.
    • 개인정보 보호 및 데이터 보안
      • 개인 정보 보호: 모델이 개인 정보를 처리하는 방법과 개인 정보 보호를 위한 기술적, 법적 조치들.
      • 안전한 데이터 관리: 데이터 저장, 전송 및 접근의 보안을 유지하는 방법.
    • 모델의 투명성 및 해석 가능성
      • 모델의 설명 가능성: 모델 결정에 대한 해석성 및 투명성 수준. 사용자가 모델의 결정을 이해하고 검증할 수 있는 정보 제공.
      • 감사 및 모니터링: 모델의 성능과 윤리적 기준 준수를 지속적으로 감시하는 절차.
    • 규제 준수 및 법적 요구사항
      • 규제 준수: 특정 지역 또는 산업에 적용되는 법적 및 규제 요구사항 준수 여부.
      • 윤리적 기준 준수: 연구 및 개발 과정에서 적용된 윤리적 가이드라인과 기준.
  • 주의 사항과 권장 사항:

'Machine Learning' 카테고리의 다른 글

실전 MLOps 가이드  (0) 2024.05.07
MLOps 를 위한 인프라와 도구  (0) 2024.05.02
연속 학습과 프로덕션 테스트  (0) 2024.04.30
데이터 분포 시프트와 모니터링  (0) 2024.04.25
모델 배포와 예측 서비스  (0) 2024.04.21

+ Recent posts