해당 게시물은 ML 프로덕션 환경 속에 있는 내가 모델 개발에만 열중하고 전반적인 시스템 설계에 대한 배경지식이 없었던 와중에 옆자리 팀원한테 추천 받아서 읽게된 한빛미디어의 "머신러닝 시스템 설계"를 공부하면서 요약한 게시물로, 저작권은 한빛미디어에게 있겠습니다.
=> ML 시스템이 사용자 경험에 기존과 다른 방식으로 영향을 미치고 있음
사용자가 전통적인 소프트웨어에 익숙하다면 더욱 그런데, ML이 도입된 기간이 상대적으로 짧아 ML 시스템이 사용자 경험에 어떤 영향을 미치는지 아직 충분히 연구되지 않았음
2020년 부킹닷컴에서는 숙박 시설 예약시, 사용자가 세션에서 사용한 필터를 기반으로 원하는 필터를 자동으로 제안하자고 했으나 난제로 'ML 모델이 매번 다른 필터를 제안하면 사용자가 혼란스러워 할 수 있다' 였음
이 난제를 시스템이 동일한 필터 추천 사항을 반환해야 하는 조건(예 : 사용자가 필터를 적용한 경우) 와 시스템이 신규 추천 사항을 반환하는 조건 (예: 사용자가 목적지를 변경한 경우)을 지정하는 규칙을 만들었음
이를 일관성-정확도 트레이드오프(consistency-accuracy trade-off)
라고 하는데, 시스템에서 가장 정확하다고 간주하는 추천 사항이 사용자에게 일관성을 제공하는 추천 사항이 아닐 수도 있음
=> 이를 극복하기 위한 접근법은 동일한 입력에 대한 여러 예측 결과를 사용자에게 표시해 적어도 하나 이상이 맞을 가능성을 높이는 것이고, 이 예측 결과들이 비전문가 사용자도 평가할 수 있는 방식으로 렌더링돼야 한다는 점임
사용자가 입력한 일련의 요구사항이 주어질 때 모델은 리액트 코드 스니펫을 여러 개 생성하고, 코드 스니펫은 시각적 웹페이지로 렌더링되고, 엔지니어가 아닌 사용자가 자신에게 가장 적합한 것을 평가할 수 있음
=> 이 접근법은 매우 일반적으로 휴먼 인 더 루프(human-in-the-loop
AI 라고 함.
인간이 개입해 최상의 예측을 선택하거나 기계가 생성한 예측을 개선함
=> 일부 회사들은 '백업 시스템' 을 사용하는데, 주 시스템에 비해 최적은 아니지만 빠른 예측이 가능함
휴리스틱이나 단순 모델일수 있으며, 미리 계산된 예측을 캐싱할 수 있음
주 모델이 예측을 생성하는데 X밀리초보다 오래 걸리면 대신 백업 모델을 사용하세요' 와 같은 규칙을 지정해서, 주 모델이 주어진 쿼리에 대한 예측을 생성하는데 걸리는 시간을 예측하고 해당 예측을 주 모델 혹은 백업 모델에 적절히 라우팅함
=> 추가된 모델로 인해 ML 시스템 추론 레이턴시가 증가함
속도-정확도 트레이드오프가 있긴 하는데, 어떤 모델은 다른 모델보다 성능이 낮지만 추론을 훨씬 더 빨리 수행해서 최적은 아니지만 빠른 모델은 사용자에게 좀 덜 좋은 예측을 제공하지만 레이턴시가 중요한 사황에서는 선호됨
두 모델 중 하나를 선택해야 하지만, 백업 시스템을 사용하면 추론 속도가 빠른 모델과 정확도가 높은 모델을 모두 사용할 수 있음
(1) 별도의 팀을 구성해 프로덕션 관리
데이터 과학 및 ML 팀은 개발 환경에서 모델을 개발하고, 별도의 팀(운영/플랫폼/ML 엔지니어링 팀)이 프로덕션 환경에 모델을 배포함
이 접근은 인력고용이 용이한고 개개인이 한 가지에만 집중하면 되지만 단점이 존재함
단점 [1] 커뮤니케이션 및 조정 오버 헤드
단점 [2] 디버깅 난제
단점 [3] 책임 미루기
단점 [4] 좁은 맥락
(2) 데이터 과학자가 전체 프로세스를 담당하도록 함
이 접근법 사용 시 데이터 과학 팀은 모델의 프로덕션 적용 또한 고려해야 함
-데이터 과학자는 프로세스에 모든 것을 알고 있어야 해서, 데이터 과학보다 상용 코드를 더 작성하게 될 수도 있음
저수준 인프라를 알게될수록 데이터 과학자가 이를 알기를 기대하기 비합리적일 수 있는데, 인프라에 필요한 기술은 데이터 과학과는 매우 다르기 때문임
데이터 과학자가 전체 프로세스를 담당하려면 좋은 도구가 필요하고, 좋은 인프라가 필요하기 때문에 인프라 걱정 없이 프로세스를 엔드-투-엔드로 담당할 수 있는 추상화가 필요함
예를 들어 도구에
'여기 데이터를 저장하는 곳(S3), 코드를 실행하는 단계(피처링, 모델링), 여기서 코드를 실행해야하고(EC2 인스턴스, AWS 배치, AWS 람다와 같은 서버리스 서비스), 각 단계에서 코드를 실행하는데 필요한 것들(종속성, dependencies)' 라고 이 도구가 모든 인프라를 관리한다면 ?
=> 풀스택 데이터 과학자의 성공은 어떤 도구를 갖췄는지에 달려있음. '컨테이너화, 분산 처리, 자동 장애 조치 및 기타 고급 컴퓨터 과학 개념의 복잡성으로 부터 데이터 과학자를 추상화' 하는 도구가 필요함
[ 사례 연구 1 : 자동 채점기 편향 ]
영국이 코로19로 인해 대학 배치를 결정하는 중요한 시험 A-레벨을 취소하고, 시험을 치르지 않고 학생들에게 최종 A-레벨 성적을 할당하는 자동화 시스템을 사용했음.
교사 평가에 근거에 학생에게 점수를 부여하는 방식을 거부해서, 특정 통계 모델 '알고리즘'을 사용해 이전 성적 데이터와 교사 평가를 결합해 성적을 할당하는 편이 공정하다고 추측했음
그러나, 이 알고리즘에 따른 결과가 부당하고 신뢰할 수 없는 것으로 밝혀졌는데, 2019년 데이터로 테스트한 모델이 A-레벨 응시자들에 대해 60%의 평균 정확도를 보였기 때문임. 모델이 배정한 성적 중 40%는 학생들의 실제 성적과 다를 것으로 예상된 것임
모델 정확도가 낮지만 알고리즘 정확도가 인간 채점자의 정확도와 대체로 비슷하다고 옹호 했는데, 채점관의 점수를 선임 채점관이 작성한 점수와 비교했을 때 약 60%만 일치했고, 인간 채점관과 알고리즘의 낮은 정확도가 단일 시점에서 학생을 평가할 때 근본적인 불확실성이 있음을 보여줘 불만을 부추겼음
위의 자동 채점 시스템은
(1) 올바른 목표를 설정하지 못함
(2) 잠재 편향을 발견하기 위한 세분화된 평가를 수행하지 못함
(3) 모델을 투명하게 만들지 못함
이라는 세 가지 실패가 있었음
실패 (1) 잘못된 목표 설정
- 학생들에게 점수를 매기는 자동 채점 시스템을 개발할 때 시스템 목표는 '채점 정확도' 였을 것임
- 그러나, 위에서 최적화 하는 것처럼 모이는 목표는 학교 간의 '기준 유지' 였음
즉, 모델이 예측한 성적을 각 학교의 과거 성적 분포에 맞추는 것임
예를 들어 A 학교의 과거 입시 실적이 B 학교를 능가했다면, 평균적으로 A 학교 학생들에게 B 학교 학생들보다 더 높은 점수를 주는 알고리즘을 원했고, 학생 간의 공정성보다 학교 간의 공정성을 우선시했음
즉, 개인의 성적을 올바르게 매기는 모델보다 학교 수준의 결과를 올바르게 매기는 모델을 선호 했음
이 목표에 따라 모델이 과거 입시 실적이 저조한 학교에서 성적이 우수한 집단을 불균형적으로 강등했음.
=> 자원이 많은 학교가 자원이 적은 학교를 능가하는 경향이 있다는 사실을 고려하지 않았고, 알고리즘 자동 채점기는 학생의 현재 성적보다 학교의 과거 입시 실적을 우선시함으로써, 소외 계층 학생이 많이 재학하는 자원 부족 학교의 학생들에게 불이익을 줌
실패 (2) 편향을 발견하는 세분화된 모델 평가 부족
- 과거 입시 실적이 저조한 학교의 학생들에 대한 편향은 이 모델에서 발견된 많은 편향 중 하나일 뿐으로, 자동 채점 시스템은 교사의 평가를 입력으로 고려했지만, 인구통계학적 그룹에서 교사의 평가 불일치를 해결하지는 못함
- 모델이 각 학교의 과거 입시 실적을 고려해서, 모델에 소규모 학교에 대한 데이터가 충분하지 않았고, 소규모 학교의 경우 최종 등급을 매기는 대신 교사가 평가한 등급만 사용하였음
=> 인원이 적은 경향이 있는 사립 학교의 학생들에게 더 나은 등급을 줌
- 모델이 예측한 성적을 공개하고 다양한 데이터 샘플로 세분화된 평가를 수행했다면 편향을 발견할 수 있었을 것임
예를 들면, 다양한 규모의 학교와 다양한 배경을 가진 학생들에 대한 모델 정확도를 평가하는 것!
실패 (3) 투명성 부족
=> 이 사례 연구는 많은 사람들의 삶에 직접적인 영향을 미치는 모델을 구축할 때 투명성이 얼마나 중요한지 보여주며, 모델의 중요한 측면을 적시에 공개하지 않으면 어떤 결과를 얻게 되는지 알 수 있음
최적화할 목표를 올바르게 선택하는 일의 중요성 또한 보여주며, 잘못된 목표(학교 간의 공정성 우선시)를 설정하면 올바른 목표에 대해서는 성능이 저조한 모델을 선택하게 될 뿐 아니라 편견을 영속화 할 수 있음
[ 사례 연구 2 : 익명화된 데이터의 위험성 ]
(1) 모델 편향의 출처 찾아내기
ML 시스템 설계에 관한 논의에서 편향이 워크플로 전체에서 발생한다는 점을 알게됨
이러한 편향이 어떻게 반영되는지 알아내야 하는데, 데이터 소스의 예시이며 이 목록 외에 많은 소스가 있음
편향을 해결하기 어려운 이유 중 하나는 편향이 프로젝트 수명 주기 내 어느 단계에서 발생할 수 있기 때문임
[1] 훈련 데이터
모델 개발에 사용한 데이터가 모델이 실제로 처리할 데이터를 대표하는가?
그렇지 않으면 모델은 훈련 데이터에 표시되는 데이터가 적은 사용자 그룹에 대해 편향적이 될 수 있음
[2] 레이블링
인간 어노테이터(human annotator)가 데이터를 레이블링한다면 레이블 품질을 어떻게 측정할까?
어노테이터가 레이블링할 때 주관적인 경험이 아닌 표준 지침을 따르게 하려면?
이노테이터가 주관적 경험에 의존할수록 인간의 편향이 개입할 여지가 커짐
[3] 피처 엔지니어링
모델이 민감한 정보가 포함된 피처를 사용하는지?
모델이 일부 집단 사람들에게 이질적인 영향을 끼치는지?
이질 적인 영향은 선택 프로세스가 중립적인 것처럼 보여도 서로 다른 그룹 간에 매우 다른 결과를 가져올 때 발생함
모델의 결정이 민족/성별/종교 등 법적으로 보호되는 계층과 상관관계가 있는 정보에 의존할 때, 이 정보가 모델을 직접 훈련하는데 사용되지 않더라도 발생할 수 있음
예를 들어 채용 과정에서 우편 번호, 고등학교 졸업장처럼 인종과 상관관계가 있는 변수를 활용하면 인종별로 이질적인 영향을 미치게 됨
[4] 모델의 목표
모든 사용자에게 공평하게 적용될 수 있는 목표로 모델을 최적화하고 있는지?
모델 성능을 우선시해서 대사수 사용자 그룹에 대해 모델을 왜곡하고 있지는 않은지?
[5] 평가
다양한 사용자 그룹에 대한 모델 성능을 이해하기 위해 적절하고 세분화된 평가를 수행하고 있는지?
공정하고 적절한 평가는 공정하고 적절한 평가 데이터가 존재하는지에 달려 있음
(2) 데이터 기반 접근법의 한계 이해하기
=> 공정한 자동 채점 시스템 구축을 위해 반드시 도메인 전문가와 협력해 학생들의 인류통계학적 분포와 사회경제적 요인이 과거 성적 데이터에 어떻게 반영되는지 이해해야 함
(3) 서로 다른 요구 사항 간의 트레이드오프 이해하기
<대표적인 트레이드오프 두 가지 예>
[1] 개인 정보 보호와 정확도 간의 트레이드오프
[2] 간결함과 공정성 간의 트레이드오프
정확도 손실을 최소한으로 억제하면서도 모델 매개변수를 90% 줄일 수 잇는데, 최소한으로 억제된 손실이 모든 클래스에 균일하게 분산돼 있다면?
소수의 클래스에만 정확도 손실이 집중된다면?
한 연구에서는 서로 다른 개수의 가중치를 가진 모델이 비슷한 최상위 성능 지표를 갖지만, 데이터셋 샘플 데이터 집합에서는 추론 결과가 매우 다르다는 것을 발견함
예를 들어, 성별/인종/장애 등 보호된 피처가 데이터 분포의 롱테일 클래스 일때 ,저빈도 클래스 일때 압축 기술이 정확도 손실을 증폭함
이는 압축이 제대로 표현되지 않은 피처에 불균형적으로 영향을 미침을 의미함
연구에서 얻은 또다른 중요한 발견은 평가한 압축 기법이 모두 불균일한 영향을 미치지만, 모든 기법이 동일한 수준으로 영향을 미치지 않는 다는 점으로, 가지치기는 양자화 기법보다 더 이질적인 영향을 미침
유사한 트레이드오프가 계속 발견되고 있는데 ML 시스템을 설계할 때 정보에 입각한 결정을 내리려면 이러한 트레이드오프를 인식하는 것이 중요함
(4) 사전 대응하기
(5) 모델 카드 생성하기
<모델에 대해 보고 할 수 있는 정보>
모델 세부 정보 : 모델에 대한 기본 정보
- 모델을 개발하는 개인 혹은 조직
- 모델 날짜
- 모델 버전
- 모델 유형
- 훈련 알고리즘, 매개변수, 공정성 제약 및 그 외에 적용된 접근법과 피처에 대한 정보
- 추가 정보를 위한 논문과 기타 자료
- 인용 세부 정보
- 특허
- 모델에 대한 질문이나 의견을 보낼 곳
사용 목적 : 개발 중에 구상한 유스 케이스
- 주요 용도
- 주요 사용자
- 범위 외 유스케이스
요인 : 요인에는 인구통계학적 또는 표현형 그룹, 환경 조건, 기술적 속성 등이 포함
- 관련 요인
- 평가 요인
지표 : 모델의 잠재 영향을 반영하는 지표 선택
- 모델 성능
- 결정 임곗값
- 변형 접근법
평가 데이터 : 카드의 정량 분석에 사용한 데이터셋에 대한 세부 정보
- 데이터 셋
- 동기
- 전처리
훈련데이터 : 실제로는 훈련 데이터를 제공하지 못할 수 있기에 가능하면, 이 섹션은 평가 데이터를 반영해야함. 이러한 세부 정보가 가능하지 않다면 훈련 데이터셋의 다양한 요인에 대한 분포 세부 정보 등 최소한의 정보를 모델 카드에 제공
정량적 분석
- 단일 결과
- 교차 결과
윤리적 고려 사항
주의 사항과 권장 사항
=> 모델 카드는 ML 모델 개발의 투명성을 높여줌
모델 사용자가 해당 모델을 개발한 사람이 아닐 경우 특히 중요함
=> 모델이 업데이트 될 때마다 모델 카드를 업데이트 해야 하는데, 자주 업데이트 되는 모델의 경우 모델 카드를 수동으로 생성하면 데이터 과학자에게 상당한 오버헤드가 발생함
(6) 편향 완화를 위한 프로세스 수립하기
(7) 책임 있는 AI에 관한 최신 정보 파악하기