brunch

You can make anything
by writing

C.S.Lewis

by 서진호 Mar 05. 2020

ML 프레임워크를 위한 인간 중심 디자인을 향하여

2020년 3월 3일 (화) 구글 AI 리서치 블로그

머신러닝(ML)이 다양한 이해 관계자 및 사회단체에 점점 더 많은 영향을 미치면서, 공식적인 ML 교육을 받지 않은 개발자들조차도 자신의 문제에 ML을 적용하고 적용할 수 있는 광범위한 개발자들이 필요해졌습니다. 최근에는 복잡한 모델 작동 상태를 더 높은 수준의 API들로 추상화하여 머신러닝의 장벽을 낮추려는 많은 노력이 있었습니다. 예를 들어 Google은 개발자가 웹 브라우저에서 직접 실행할 수 있도록 ML 코드를 JavaScript로 작성할 수 있는 오픈소스 프레임워크인 TensorFlow.js를 개발하고 있습니다. API를 개선하기 위한 풍부한 엔지니어링 작업에도 불구하고 ML 이외의 소프트웨어 개발자가 실제로 ML을 일상적인 업무 관행에 채택하는 데 필요한 것은 거의 알려져 있지 않습니다. 특히 새로운 ML 프레임워크를 시도할 때 어떤 어려움을 겪고 있으며 이러한 프레임워크가 무엇을 제공하기를 원합니까?


IEEE VL/HCC(Visual Languages and Human-Centric Computing) 콘퍼런스에서 최우수 논문상을 수상한 “머신러닝을 배우는 소프트웨어 개발자들: 동기 부여들, 장애물들 및 바라는 점들 (Software Developers Learning Machine Learning: Motivations, Hurdles, and Desires)”에서 이러한 질문에 대한 연구를 공유하고 TensorFlow.js를 사용한 645명의 대규모 설문 조사 결과입니다. 대다수의 응답자들은 소프트웨어 또는 웹 개발자로, 머신러닝에 익숙하지 않았으며 일반적으로 기본 작업의 일부로 ML을 사용하지 않았습니다. ML 프레임워크를 사용할 때 개발자들이 경험한 장애물을 살펴보고 프로그래밍 워크플로에 이러한 프레임워크를 채택하는 데 가장 도움이 되는 기능과 도구를 탐색했습니다.


ML 프레임워크를 사용할 때 개발자가 가장 어려움을 겪는 것은 무엇입니까?

흥미롭게도 개발자들이 보고한 가장 일반적인 과제들은 명확한 API가 아니라 ML에 대한 개념적 이해가 부족하여 ML 프레임워크를 성공적으로 사용할 수 없었습니다. 이러한 장애들은 TensorFlow.js를 적용할 수 있는 좋은 문제를 고르는 초기 단계부터 시작했습니다 (예: 설문 응답자들은 "ML을 적용할 대상, ML이 성공한 곳, 어디에서 지식을 흡수하는지"에 대해 아는 것이 없다고 보고함). 신경망(예: “모델에 레이어를 추가할 때 얼마나 많은 단위를 입력해야 합니까?”) 및 모델 훈련 중 파라미터 설정 및 조정 방법(예 :“옵티마이저 결정, 사용할 손실(loss) 함수 결정”) ”). 서로 다른 파라미터들이 결과에 어떤 영향을 미치는지에 대한 개념적인 이해가 없다면, 개발자들은 ML 모델을 디버깅 할 때 튜닝할 매개 변수의 무한한 공간으로 인해 종종 압도감을 느꼈습니다.


충분한 개념적 지원이 없으면 개발자는 “hello world” API 자습서에서 배운 교훈을 실제 문제로 옮기기가 어렵다는 것을 알게 되었습니다. API 자습서는 특정 모델 (예 : MNIST 숫자 분류)을 구현하기 위한 구문을 제공하지만 일반적으로 해당 특정 문제를 넘어 일반화하는 데 필요한 기본 개념의 발판(scaffolding)은 제공하지 않습니다.


개발자들은 종종 이러한 과제를 고급 수학에 대한 경험이 부족하다고 생각했습니다. 아이러니하게도, 오늘날 ML 프레임워크를 사용하는 비전문가의 풍부함에도 불구하고 많은 사람들은 ML 프레임 워크가 선형 대수 및 미적분에 대한 고급 교육을 받은 전문가를 위 한 것이라고 생각했으며, 따라서 일반 소프트웨어 개발_나 제품 관리자에게는 적합하지 않습니다. 이러한 임포스터 증후군의 유사성은 API 문서에서 비법을 이어받은 수학적 용어의 유행에 의해 촉진될 수 있으며, 이는 ML을 소프트웨어 프로젝트에 실제로 통합하는 데에도 고급 수학 학위가 필요하다는 인상을 줄 수 있습니다. 수학 교육은 실제로 유익하지만 실제 개념(예: 모델의 학습률)을 파악하고 실제 문제에 적용하는 기능에는 고급 수학 학위가 필요하지 않습니다.


ML 프레임워크에서 개발자가 원하는 것은 무엇입니까?

설문 조사에 응답한 개발자는 ML 프레임워크가 API 사용법뿐만 아니라 프레임워크를 자신의 문제에 효과적으로 적용하는 데 도움이 되는 무언의 관용구들을 가르쳐주기를 원했습니다.


명시적 수정 지원 기능을 갖춘 사전 제작 모델

일반적인 바라는 점들은 표준 ML 모델 라이브러리에 액세스 하여 새로운 템플릿을 처음부터 새로 작성하지 않고 기존 템플릿을 수정할 수 있도록 하는 것이었습니다. 현재 사전 훈련된 모델은 TensorFlow.js를 포함한 많은 ML 플랫폼에서 더 널리 제공되고 있습니다. 그러나 현재 모델에서 이 모델은 무경험자의 소모량을 명시적으로 지원하지 않습니다. 예를 들어 설문 조사에서 개발자는 기존 모델 예제를 자신의 유스 케이스로 전송하고 수정하는 데 상당한 장애물이 있다고 보고했습니다. 따라서 사전 제작된 ML 모델의 제공은 수정에 대한 명시적인 지원과 결합되어야 합니다.


ML 베스트 프랙티스를 적시에 힌트로 합성

개발자들은 프레임워크가 ML 모범 사례, 즉 모델을 설계하거나 디버깅할 때 사용할 수 있는 실용적인 팁과 요령을 제공하기를 원했습니다. ML 전문가는 수년간의 시행착오를 통해 휴리스틱 및 전략을 습득할 수 있지만 "어떤 파라미터를 먼저 조정해야 합니까?"라는 단순한 결정의 오버헤드가 있습니다. ML 전문가가 아닌 개발자에게는 압도적 일 수 있습니다. ML 프레임워크는 이러한 광범위한 의사 결정 가능성을 좁히기 위해 모범 사례에 대한 팁을 프로그래밍 워크플로에 직접 포함할 수 있습니다. 현재 TensorBoard 및 tfjs-vis와 같은 시각화를 통해 모델 내부에서 진행되는 작업을 확인할 수 있습니다.


사전 훈련된 모델을 적용할 것인지, 처음부터 새로 만들 것인지, 또는 모델이 수렴하지 않는 경우 “학습 속도를 낮추는” 실용적인 팁과 같은 진단 점검과 같은 적시 전략적 포인터와 이를 결합하면 도움이 될 수 있습니다. 사용자는 실용적인 전략을 습득하고 활용합니다. 이 팁은 ML의 기초가 되는 수학 이론을 개발자에게 친숙한 용어로 해석하는 데 도움이 되는 중간 스캐폴딩 레이어 역할을 합니다.


실행함으로써 배우기 지원

마지막으로 ML 프레임워크는 기존의 학습 플랫폼이 아니지만 소프트웨어 개발자는 실제 학습 기반의 경량 수단으로 취급하고 있습니다. 예를 들어, 한 설문 조사 응답자는 개념적 지원이 별도의 리소스가 아니라 프레임워크에 긴밀하게 연결되어 있을 때 감사했습니다. “... 여기서 바로 편집하고 실행할 수 있는 작은 코드 데모로 기본적인 이해를 돕습니다.” 


또 다른 사람은 “저는 학습을 선호하므로 ML 프레임워크에 포함된 더 많은 자습서, 예제를 보고 싶습니다."  어떤 사람들은 공식적인 온라인 과정을 수강하기가 어려웠으며, 실습을 통한 땜질을 통해 한입 크기의 조각으로 배우기를 원했습니다. "일하고나서 쉴 때, 5분에서 15분 정도 작은 학습에 적용해야 합니다." 라고 대답을 했습니다.


이러한 학습에 대한 욕구를 감안할 때 ML 프레임워크는 다양한 수준의 전문 지식을 목표로 하는 다양한 리소스를 보다 명확하게 구별해야 할 수도 있습니다. 많은 프레임 워크에 이미 "hello world" 자습서가 있지만 기대치를 올바르게 설정하기 위해 이러한 프레임워크는 API (구문 별, syntax-specific) 적응력과 ML(개념적) 적응력을 보다 명확하게 구분할 수 있습니다.


기대

궁극적으로 ML의 경계가 계속 발전함에 따라 소프트웨어 개발자에게 실용적이고 개념적인 팁을 제공하고 커뮤니티에서 관리하는 모범 사례의 공유 저장소를 만들면 ML 전문가와 초보자 모두에게 도움이 될 수 있습니다. 이러한 연구 결과가 향후 ML 프레임워크를 보다 사용자 중심적으로 설계할 수 있는 길을 열었습니다.


감사의 말

이 작업은 Yannick Assogba, Sandeep Gupta, Lauren Hannah-Murphy, Michael Terry, Ann Yuan, Nikhil Thorat, Daniel Smilkov, Martin Wattenberg, Fernanda Viegas 및 PAIR 및 TensorFlow.js의 멤버 없이는 불가능했을 것입니다.


원본 제목: ML 프레임워크를 위한 인간 중심 디자인을 향하여(Toward Human-Centered Design for ML Frameworks)
원본 링크: https://ai.googleblog.com/2020/03/toward-human-centered-design-for-ml.html 
게시자 : Google Research의 선임 연구 과학자 Carrie J. Cai, UC San Diego의 조교수 인 Philip J. Guo
tfjs-vis Open Source: https://github.com/tensorflow/tfjs/blob/master/tfjs-vis/README.md
이  블로그는 2020년 3월 3일(화), Google AI Research Blog 기사를 영어에서 우리나라 말로 번역한   것입니다. 또한 이 번역 글은 정보 공유 목적으로만 작성했으므로 어떠한 상업용으로 사용할 수 없으며, 원본 저작물 모두 구글에게   저작권이 있음을 알려 드립니다. (First Draft Version)
매거진의 이전글 메시-텐서플로우를 이용한 초 고해상도 이미지 분석
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari