TFDevSummit 2020 키노트 후기(2)
텐서플로우 생태계: 머신러닝 개발부터 배포까지 편은 재미있게 잘 읽으셨나요? 페이스북의 TensorFlow KR 그룹에 공유했는데 정말 폭발적으로 조회수 및 공유수들이 넘어가서 깜짝 놀랐습니다. 너무 글이 길어질까 봐 두 부분이 나누었습니다. 오늘은 계속해서 텐서플로우 생태계: 책임성 AI와 커뮤니티 부분에서 TF Dev Summit 2020 기조연설에서 발표한 새로운 소식을 정리하겠습니다.
구글이 현재 인공지능 윤리강령으로 이니셔티브를 가지는 데, 그것을 기반으로 하는 것이 Responsible AI입니다. 최근에 순다 피차이도 인공지능 규제에 대해 이야기한 적이 있는데, 구글 직원들 또한 중국의 무자비한 개인 프라이버시를 무시한 인공지능으로 얼굴 인식하는 것과, 다른 사람들을 살생 무기로 사용하는 미국 군사 프로젝트 참가하는 것에 대해서는 반대를 표명했습니다.
이러한 철학의 근간을 이루는 것도 어쩌면 텐서플로우 생태계 한 부분이므로 어떻게 사용자가 책임감 있게 인공지능 시스템을 구축하고 책임성 있는 AI 목표를 달성하기 위해 좀 더 사용자들이 사용할 수 있는 도구와 리소스 유형을 강화하는 방법에 대해 5가지 원칙을 TensorFlow 팀의 디렉터인 Manosi Josh 가 나와서 발표를 이어 갔습니다.
AI에 대한 일반적인 권장하는 프랙티스(General recommended practices for AI): 이것은 모델이 훈련 데이터에 비해 오버피팅이 되는지 아닌지를 확인하는 안정성에 관한 것입니다. 따라서 훈련 데이터의 한계를 알고 있어야 합니다. 예를 들어, Ski 분포에서 다른 Feature에 의하면, 모델 출력이 더 견고해야 합니다.
공정성(fairness): 공정성은 AI에서 상당히 진화하는 것입니다. 원치 않는 편견(bias)을 만들거나 자극에 강화하지 않는 것으로 공정성을 정의합니다. 공정성은 극도로 주관적일 수 있으며, 상황에 따라 달라질 수 있으며, 사회적인 기술 도전입니다.
이해 가능성(Interpretability): 이해 가능성은 역학 또는 모델 예측의 이해에 관한 것입니다. 중요한 특징이 무엇인지 최종 출력에 어떤 특징이 실제로 중요한지 이해하도록 보장합니다.
프라이버시(Privacy): 구글에게 이것은 훈련 데이터와 기능의 민감도를 고려하는 것입니다.
보안(Security): ML 보안과 관련하여 실제로 시스템의 취약성과 관련 위협 모델을 이해한다는 의미입니다.
그렇다면 여러분이 만일 AI 모델러로서 프로젝트를 진행할 때 궁금한 질문들이 많을 것입니다. 예를 들어, 머신러닝 모델의 대상은 누구입니까? 이해 관계자는 누구입니까? 이해 관계자가 데이터 측면에서 진행하는 개별 목표는 무엇입니까? 내 데이터가 실제로는 실제 편향(bias)이나 분포 왜곡을 나타내는지 이러한 제한을 이해하고 있습니까? 특정 기능을 개인정보 보호 방식으로 사용할 수 있습니까? 아니면 제약 때문에 단순히 사용할 수 없습니까? 그런 다음 훈련 측면에서 데이터의 의미를 이해합니까? 모델 출력 또는 마음에 들지 않는 경우 배포를 매우 맹목적으로 수행하고 있습니까, 아니면 신뢰할 수 있고 포괄적인 모델만 배포하는 데 약간의 주의를 기울이고 있습니까? 마지막으로 반복 작업 과정에 대해 이야기할 때 모델링 작업 과정에 나타날 수 있는 복잡한 피드백 루프를 이해합니까?
물론 이 질문들을 모두 답할 수 없지만, 몇 가지 실행할 수 있는 도구 등을 텐서플로우 생태계에서 지원한다고 설명을 이어 갔습니다. Fairness Indicators부터 시작하여, 신뢰도를 기반으로 여러 하위 그룹에서 모델의 성능을 평가할 수 있는 매우 효과적인 방법입니다.
모델은 단순하지만 효과적인 공정성 메트릭을 평가할 수 있도록 기능에 따라 모델의 출력을 해석하고 해당 기능을 변경하여 모델의 출력 변화를 확인하는 개념을 제공하는 What-if(WIT) 도구가 있습니다. What-if 도구는 여러분의 데이터와 관련된 시각적 정보뿐만 아니라 매우 매력적인 텍스트를 가지고 있습니다.
TensorFlow Fedreated는 데이터로 모델을 훈련시키는 데 도움이 되는 호환 라이브러리를 감지할 수 있다고 합니다. 참고로 TFF(TensorFlow Federated)는 분산 데이터에 대한 머신러닝 및 기타 계산을 위한 오픈 소스 프레임워크입니다.
주모~~! 일단 키노트에서 소개되었던 사진 한 장이 제가 요즘 전 세계적으로 바쁘게 움직이고 있는 주모를 안 부를 수가 없게 만들었습니다. 저의 페이스북 친구이자 머신러닝 분야의 구글 개발자 전문가로 활동하고 계신 박해선 님과 한국 분들이 자랑스러웠습니다. Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow:Concepts, Tools, and Techniques to Build Intelligent Systems, 2nd Edition 국내 번역 책도 나올 예정이므로 기대해도 좋을 것 같습니다.
텐서플로우 커뮤니티 같은 경우에는 정말 열정과 헌신을 다하는 친구들이 많은 것 같습니다. 물론 여러분들도 언제든지 참여할 수 있습니다. 키노트에서 발표한 내용들을 정리하자면 다음과 같습니다.
TensorFlow User Group 은 빠르게 성장하는 커뮤니티입니다! 구글이 소개한 지 불과 7개월 만에 전 세계에 73개의 사용자 그룹이 있으며, 이 그룹은 한국에서 가장 큰 46,000명 이상입니다. 앞에서 밝혔듯이 페이스북의 TensorFlow KR 그룹입니다. 참고로 링크를 누르면 바로 접속할 수 있도록 해 놓았습니다.
2019년 TensorFlow Roadshows가 끝난 후, 구글은 브라질과 아르헨티나의 LATAM에서 첫 2개의 TFUG를 시작했습니다. 혹시 이 글 보고 Feel(?) 받아 스터디 혹은 유저 그룹을 만들고 싶은 분들은 tfug-help@tensorflow.org로 연락하면 도움을 많이 주실 것입니다. 또한 다양한 주제에 전념하는 다수의 Special Interest Groups(SIG)가 있습니다. 그래픽으로 최신 내용을 3월 말에 추가될 예정이라고 합니다. SIG 및 운영 방식에 대한 자세한 내용은 플레이북을 확인해 달라고 합니다.
머신러닝 및 TensorFlow의 리더인 경우 이벤트에서 연설하고 콘텐츠를 게시하여 개발자, 회사 및 기술 커뮤니티를 적극적으로 지원하는 Google Developer Expert가 되어 보기를 권장합니다. 만일 과제에 관심이 있으시면 Responsible AI와 3개월간의 프로그래밍 프로젝트를 통해 오픈소스 조직과 협력할 수 있는 Google Summer of Code에서 새로운 Dev Post Challenge를 진행하고 있답니다. TensorFlow 팀은 참여 조직 중 하나이므로 자세한 내용은 Summer of Code 웹 사이트를 확인하십시오.
Kaggle competitions도 이제 텐서플로우 2.X 버전을 지원한다고 합니다. 어떤 셋업이나 프로비저닝도 필요 없다고 합니다. 또한 캐글에 맞게 DataSet Format 들을 지원하며, 사용자들에게 TPU 및 CPU를 사용하는데 어떠한 비용도 받지 않는다고 합니다.
이번 키노트를 보니 텐서플로우 자격증을 따는 법이 새롭게 소개되었습니다. 우선 텐서플로우 자격증을 습득하기 전에 어떻게 배우는지와 자격증 준비를 하는지에 알아보도록 하겠습니다. 또한 만일 여러분이 대학 또는 교육기관인 경우, TensorFlow를 사용하여 머신러닝을 가르치기 위한 교육 콘텐츠를 작성하는 데 도움이 되는 프로그램이 있습니다. 구글은 그러한 교육이 성공할 수 있도록 다양한 리소스를 제공해주는 데, TensorFlow를 배우려면 여러 가지 옵션을 사용할 수 있습니다.
Deeplearning.ai를 통해 Coursera의 TensorFlow: In Practice Specialization 코스를 만들었으며, 컴퓨터 비전, NLP, 시퀀스 모델링 등을 위한 모델을 작성하는 방법을 배울 수 있습니다.
TensorFlow: Data and Deployment 코스는 TensorFlow.js, TensorFlow Lite, TensorFlow Serving 등을 사용하는 방법을 배울 수 있습니다.
인기 있는 Machine Learning Crash Course을 TensorFlow 2.0으로 업데이트했습니다. 또한 Udacity에서 Intro to Deep Learning Course와 TensorFlow Lite Course을 발표했습니다.
참고로 제가 현재 Coursera Contents Advisor로 활동하고 있어서 위의 강의들을 공개되기 전에 모두 무료로 콘텐츠도 보고 관련된 실습을 따라 해 보고 피드백을 구글과 코세라에게 주었는데요, 로렌스 모로니의 TensorFlow: In Practice Specialization 코스부터 하시면 좋을 것 같습니다. 원래 키노트에서는 텐서플로우 개발자 자격증(TensorFlow Certificated Developer)만 짧게 설명했는 데, 관련된 웹 사이트와 블로그를 참조하여 좀 더 상세히 전달하고자 합니다.
이 시험은 TensorFlow 개발자로서 여러분의 능력을 공식 인증서를 얻을 수 있도록 TensorFlow Coding 및 Model Creation Skill 등을 평가하는 데, 무료는 아니고 한 번 볼 때마다 $100 시험 비용을 냅니다. 그러므로 컴퓨터 비전, NLP 및 시퀀스 모델링과 같은 고급 시나리오를 통해 간단한 선형 회귀 분석(Linear Regression Analysis)에서 모델을 완전히 생성할 수 있는지 테스트합니다.
deeplearning.ai의 TensorFlow: In Practice Specialization 코스가 시험 준비하는 데 많은 도움이 될 것이라고 합니다. 인증서를 획득하면 LinkedIn, GitHub 및 새로운 TensorFlow Certificate Network에서 인증서를 공유할 수 있다고 합니다. 더 자세한 내용은 tensorflow.org/certificate에서 보시기 바랍니다. 과연 국내 제1호는 누가 될까요? 현재 베타 테스트 한 인도 개발자 3명이 네트워크에 등록이 되어 있네요 :)
One more thing! 키노트를 모두 보셨다면 좀 더 심화된 테크니컬 학습을 하기 바랍니다. 아래는 Youtube Playlist에 나온 테크 세션이 어떤 내용이 들어 있는지 요점만 간추렸습니다. 테크 세션에는 코드와 좀 더 기술적인 상세한 내용들이 포함되어 있으므로 꼭 보시기 바랍니다.
참고로 이 글들을 작성하는 데 Tensorflow.org의 로렌스 모로니 블로그 글을 참고했습니다. 아울러 현재 저도 구글 AI 리서치 블로그를 영한 번역하고 있으니 관심 있는 분들은 링크를 누르시면 더 많은 구글 인공지능 사례와 기술들에 대해 알 수 있을 것입니다.
TensorFlow에 대해 자세히 알아보려면 tensorflow.org를 방문하시고, 블로그를 최신 소식들을 읽고, 소셜(트위터)을 팔로우하고, YouTube 채널을 구독하는 것을 잊지 말아 달라고 당부하네요! 그리고 한국 분이면 Facebook의 TensorFlow KR 그룹에 가입하시면 기술적인 토론과 정보들도 얻을 수 있습니다.
Keynote : TensorFlow Dev Summit 2020을 시작하면서 기조연설에는 TensorFlow 생태계를 위한 새로운 제품 업데이트가 포함됩니다.
Learning to read with TensorFlow and Keras : NLP(Natural Language Processing)는 변곡점에 도달했으며 이 강의에서는 TensorFlow와 Keras를 사용하여 텍스트 모델을 사전 처리, 학습 및 하이퍼 튜닝하는 방법을 쉽게 보여줍니다.
TensorFlow Hub: Making Model Discovery Easy: TF Hub는 ML 모델의 기본 저장소입니다. 이 강의에서는 모든 새로운 기능과 모델 탐색 과정에서 Hub를 사용하는 방법을 살펴봅니다.
Collaborative ML with TensorBoard.dev: 실험 결과 공유는 ML 프로세스의 중요한 부분입니다. 이 강의에서는 TensorBoard.dev가 논문, 블로그 게시물, 소셜 미디어 등에서 실험 결과를 쉽게 공유할 수 있도록 함으로써 협업 ML을 활성화하는 방법을 보여줍니다.
Performance Profiling in TensorFlow 2: 이 강의에서는 Google이 GPU, TPU 및 CPU를 포함한 플랫폼에서 TF 성능을 조사하기 위해 내부적으로 사용하는 텐서 보드 프로파일러를 제공합니다.
Research with TensorFlow: 이 강의에서 키노트에서 보았던 리서치 케이스들 뿐만 아니라 구글이 리서치를 할 때 유용한 TF의 흥미로운 기능들을 살펴볼 것입니다.
Differentiable convex optimization layers: 컨벡스 최적화 문제는 실제 세계의 많은 문제를 해결하는 데 사용됩니다. 지금까지는 TensorFlow 파이프라인에서 사용하기가 어려웠습니다. 이 강의에서는 컨벡스 최적화 문제를 TensorFlow에 쉽게 포함시킬 수 있는 패키지인 cvxpylayers를 소개합니다. 경사 하강법(gradient descent)을 사용하여 최적화 조정할 수 있습니다.
Scaling TensorFlow data processing with tf.data: 모델 훈련이 본질적으로 더 분산됨에 따라 tf.data는 더 많은 분산 인식 및 성능으로 진화했습니다. 이 강의에서는 TensorFlow 데이터 처리를 확장하기 위한 tf.data 도구를 제공합니다. 특히, tf.data 파이프라인을 시스템 클러스터에서 실행할 수 있는 tf.data 서비스 및 여러 호출에서 재사용할 수 있도록 결과를 디스크에 구체화하는 tf.data.snapshot 에 대한 기능들을 살펴볼 수 있습니다.
Scaling TensorFlow 2 models to multi-worker GPUs: 이 강의에서는 사용자의 ML 훈련 워크로드를 가속화하여 멀티 GPU에서 멀티 워커들로 확장하기 위해 TensorFlow 2.2의 여러 성능 향상을 보여줍니다. 구글은 TF 모델 가든에서 BERT fine-tuning 작업을 사용하여 최적화를 진행하며, 커스텀 훈련 루프를 사용하여 작성되었습니다.
Making the most of Colab: Colab 팀의 팁과 요령을 배웁니다. 이 강의에서는 TensorFlow 사용자가 Colab을 최대한 활용하는 방법을 설명하고 Colab의 동작 방식을 확인하기 위해 커튼 뒤를 들여다봅니다.
MLIR: Accelerating TF with compilers: 이 강의에서는 TensorFlow의 머신러닝 컴파일러 인프라인 MLIR에 대해 설명하고 빠르게 변화하는 머신러닝 소프트웨어 및 하드웨어의 요구를 충족시키기 위해 TensorFlow가 더 빠르게 확장되는 데 도움이 되는 방법을 설명합니다.
TFRT: A new TensorFlow Runtime: TFRT는 TensorFlow의 새로운 런타임입니다. MLIR을 활용하여 광범위한 도메인별 하드웨어에서 동급 최고의 성능을 제공하는 확장 가능한 통합 인프라 계층을 제공하는 것을 목표로 합니다. 이 방법은 멀티스레드 호스트 CPU를 효율적으로 사용하고 완전 비동기식 프로그래밍 모델을 지원하며 저수준 효율성에 중점을 둡니다.
TFX: Production ML with TensorFlow in 2020: 2020 년에 Google 프로덕션 ML 플랫폼인 TFX가 어떻게 바뀌고 있는지 알아보십시오. 참고로 TFX(TensorFlow Extended)는 프로덕션 ML 파이프라인을 배포하기 위한 엔드-투-엔드 플랫폼입니다
TensorFlow Enterprise: Productionizing TensorFlow with Google Cloud: 기업에서 ML 채택의 가장 어려운 부분은 제품화입니다. "ML Ops"에 대한 최근 논의에서 보았듯이 Data Scientists의 PoC Notebook과 Ops 팀이 관리할 수 있는 프로덕션 ML 시스템 간에는 많은 차이가 있습니다. 이 강의에서는 TensorFlow Enterprise가 미션 크리티컬 비즈니스 운영을 위해 TensorFlow 코드를 생산하기 위해 Google Cloud의 이러한 문제를 해결하는 방법을 보여줍니다.
TensorFlow.js: ML for the Web and beyond: TensorFlow.js는 브라우저 또는 모바일 장치, WeChat 미니 앱 플랫폼 및 Raspberry Pi와 같은 Javascript가 실행될 수 있는 곳에서 머신러닝 모델을 훈련 및 배포하기 위한 플랫폼입니다. CPU, GPU, 노드 및 WASM 백엔드를 포함한 여러 백엔드를 제공합니다. 또한 MobileBERT 및 FaceMesh의 두 가지 최신 추가 기능을 포함하여 사전 훈련된 모델 모음을 제공합니다.
TensorFlow Lite: ML for mobile and IoT devices: ML을 휴대폰 및 내장 장치에 배포하는 방법에 대해 알아봅니다. 현재 생산 중인 수십억 개의 장치에 배포되어 모바일 및 마이크로 컨트롤러를 위한 세계 최고의 크로스 플랫폼 ML 프레임워크입니다. 새롭고 흥미로운 발표를 기대하십시오.
TensorFlow and ML from the trenches: The innovation experience center at JPL: Chris Mattmann은 최고 정보 책임자 (CIO)의 사무실에서 JPL 혁신 경험 센터가 TensorFlow 용 Smarter Rovers, Smart Campus와 그 밖에 것들을 가지고 어떻게 데이터 고급 분석 및 AI, 머신러닝을 지원하는지 설명합니다.
Getting involved in the TF community: 성장하는 TensorFlow 생태계에 참여하고 코드, 문서, 교육 또는 커뮤니티 리더십을 통해 기여자가 되는 방법을 알아보십시오.
Responsible AI with TensorFlow: ML, 공정성 및 개인 정보 보호에 대해 생각할 수 있는 프레임워크를 소개합니다. 이 강의에서는 공정성 인식 ML 워크플로우를 제안하고, Fairness Indicators와 같은 TensorFlow 도구를 사용하여 편견(bias)을 감지하고 완화하는 방법을 설명한 다음, 참가자에게 몇 가지 인프라스트럭처 부분을 안내하는 개인 정보 보호와 관련된 특정 사례 연구로 전환합니다. 개인 정보 보호 방식으로 모델을 학습하는 데 도움이 될 것입니다.
TensorFlow Quantum: A software platform for hybrid quantum-classical ML: 우리는 새로운 하이브리드 퀀텀-클래식 ML 알고리즘의 빠른 프로토타이핑을 위한 오픈소스 라이브러리인 TensorFlow Quantum을 소개합니다. 이 라이브러리는 TensorFlow에서 현재 ML의 범위를 확장하고 양자 컴퓨팅 및 머신러닝 연구 커뮤니티를 통합하여 양자 데이터를 제어하고 모델링하는 데 필요한 도구 상자를 제공합니다.