텐서플로우, AI 모델링 전쟁에서 "한발 앞섰다"

InfoWorld
텐서플로우(TensorFlow)가 지배적인 AI 모델링 프레임워크의 지위를 유지하고 있다. 대다수 AI 개발자는 텐서플로우를 주 오픈소스 툴로 사용하거나 파이토치(PyTorch)와 함께 사용하면서 대부분의 머신러닝, 딥 러닝, NLP(Natural Language Processing) 모델을 개발하고 있다.
 
ⓒ Getty Images Bank

기업에서의 AI 도입에 관한 최근 오라일리(O’Reilly) 설문 결과, 참여한 데이터 과학자의 절반 이상이 주로 사용하는 툴로 텐서플로우를 꼽았다. 불과 지난달만 하더라도 필자는 현직 데이터 과학자 사이에서 텐서플로우의 입지가 약화될 수도 있다는 주장을 했지만, 오라일리의 설문 결과를 보니 그 생각은 틀린 것 같다. 파이토치는 두 번째 선택지로서의 지위를 공고히 하고 있다. 오라일리 설문에서 응답자의 36%가 파이토치를 사용한다고 답했는데 지난해 같은 설문에서 나타난 29%에 비해 더 늘어났다.


파이토치에 대한 텐서플로우 스택의 차별화 강화

10년이 지나면서 데이터 과학자와 다른 사용자가 강력한 기능 차별화보다 기능 동등성을 더 중요하게 생각함에 따라 이런 프레임워크 간의 차이가 줄어들 것이다. 그럼에도 불구하고 텐서플로우는 채택 및 성숙도뿐만 아니라, 상상할 수 있는 모든 AI 개발, 교육 및 배포 시나리오를 지원하면서 스택의 깊이와 양적인 측면에서 단연 최고의 AI 모델링 프레임워크의 위치를 고수하고 있다. 파이토치는 핵심 AI, 딥 러닝, 머신러닝 문제에 강점이 있지만, 기능 동등성에 도달하기까지는 아직 멀었다.   

지난주 구글의 텐서플로우 팀은 파이토치에서 한발 더 앞서나갔다. 이들은 라이브 스트림을 통해 연례 텐서플로우 데브 서밋(TensorFlow Dev Summit)을 개최했다. 직접 대면하는 일은 없었지만, 이 온라인 행사에서 중요한 뉴스와 분석이 많이 나왔다. 

이번 기사에서는 핵심 텐서플로우 및 생태계 시스템의 개선, 새로운 텐서플로우 데브옵스 도구, 전문화된 AI 개발 과제를 위한 새로운 텐서플로우 애드온의 3가지 범주로 구성된 발표에 대해 분석해본다.

 
코어 텐서플로우와 생태계의 향상

텐서플로우 팀이 코어 오픈소스 코드를 개선한 텐서플로우 2.2를 발표했다. 2.2 릴리스는 이전 텐서플로우 버전과 달리 전체 텐서플로우 생태계와 호환되며 코어 라이브러리의 성능과 안정성에 초점을 둔다. 또한 코어에 즉시 실행(eager execution), 넘파이(NumPy) 배열 지원, tf.data, 텐서플로우 데이터 집합 지원이 추가됐다.

텐서플로우 팀은 텐서플로우에서 구축된 모델의 크로스-디바이스 컴파일을 완벽하게 지원하기 위해 텐서플로우 런타임을 발표했다. 텐서플로우 런타임은 코어 오픈소스 코드와 함께 제공되며, 하드웨어 제조업체의 95%가 지원하는 다수준 중간 표현(Multi-Level Intermediate Representation) 표준에 따르는 다양한 디바이스와 플랫폼에서 머신러닝 모델의 작동을 보장한다.

또한 팀은 텐서플로우에서 개발된 모델이 구글의 자체 신경망 프로세서에서 실행되도록 보장하기 위해 이전 버전인 텐서플로우 2.1도 클라우드 텐서(Cloud Tensor) 처리 유닛을 지원한다고 발표했다.


새로운 텐서플로우 데브옵스 툴

많은 기업 AI 개발자는 텐서플로우를 사용해 복잡한 데브옵스 워크플로우 내에서 딥 러닝, 머신러닝, NLP 모델을 구축, 학습, 배포한다. 텐서플로우 팀은 이러한 요구사항에 대응하기 위해 텐서플로우 생태계 전반에서 팀 생산성을 높이기 위한 다음과 같은 새로운 기능을 발표했다.
  • 모델 검색 및 디스커버리: 1,000개 이상의 즉시 사용 가능한 모델과 코드 스니펫(code snippets)이 포함된 텐서플로우 허브(TensorFlow Hub)를 위한 새로운 기능을 공개했다.
  • 초매개변수 튜닝: 케라스 튜너(Keras Tuner)가 발표됐다. 케라스 튜너는 모델 초매개변수를 튜닝하는 과정을 간소화하며 케라스, 텐서플로우, 사이킷-런(scikit-learn)에서 사용 가능하다.
  • 간편해진 파이프라인 관리: 구글 클라우드 AI 파이프라인은 텐서플로우 익스텐디드(TensorFlow Extended)를 사용한 파이프라인 관리를 더 간편하고 쉽게 해준다.
  • 팀 기반 실험 공유: 데브(dev)라는 새로운 툴은 개발자와 연구자가 각자의 모델 기반 실험을 무료로 호스팅하고 공유할 수 있게 해준다. 모델 성능, 온디바이스 워크로드, 입력 파이프라인에 대한 정보와 분석을 제공한다.
  • 유연한 신경망 학습: 특성 입력 외에 구조적 신호를 사용해 신경망을 학습시키기 위한 툴인 신경 구조적 학습(Neural Structured Learning)이 공개됐다. 구조적 신호는 라벨링되거나 라벨링되지 않은 샘플 간의 관계 또는 유사성을 표현하는 데 자주 사용된다. 신경망 학습 중에 이런 신호를 활용하면 라벨링된 데이터와 라벨링되지 않은 데이터를 모두 흡수하고 모델 정확성을 개선할 수 있다. 특히 라벨링된 데이터의 양이 비교적 적을 때 효과적이다.


전문 AI 개발을 위한 새로운 텐서플로우 추가 기능

텐서플로우 사용자가 다루는 프로젝트의 범위는 놀라울 정도로 다양해, 모든 방향에서 AI의 한계를 넓히고 있다. 텐서플로우 팀은 이런 요구사항을 지원하기 위해 텐서플로우의 생태계에 연결되는 다음과 같은 새로운 툴, 확장, 추가 기능을 발표했다.
 
  • 그래픽 계층과 뷰어: 컴퓨터 비전(Computer vision)은 AI 기반 솔루션에서 가장 인기 있는 틈새 시장 가운데 하나다. 텐서플로우 팀은 이 분야의 개발자를 지원하기 위해 텐서플로우 그래픽스(TensorFlow Graphics)를 발표했다. 이 툴은 그래픽 기능을 구분 가능한 그래픽 계층 집합으로 제공해 더 효율적인 컴퓨터 비전 네트워크 아키텍처를 만들 수 있게 해준다. 공간 변형기, 그래픽 렌더링, 메시 컨볼루션이 포함된다. 또한 텐서보드(TensorBoard)에서 작동하는 3D 뷰어도 포함돼 있다. 효율적, 자율적인 방식으로 학습이 가능한 아키텍처를 구축하기 위해 기하학적 프라이어(geometric prior)와 제약을 신경망에 명시적으로 모델링할 수 있게 해준다.
  • NLP 프레임워크와 모델: 자연어 처리는 많은 실용 AI 애플리케이션의 핵심이다. 텐서플로우 팀은 자연어 처리에 전이 학습을 적용하는 T5(Text-to-Text Transfer Transformer)를 발표했다. 또한 주어진 대화 맥락에서 분별 있는 응답을 하도록 학습하는 신경 대화형 모델인 미나(Meena)도 출시했다.
  • 브라우저 기반 영역별 라이브러리: 브라우저와 다양한 클라이언트 및 서버 측 웹 애플리케이션 프레임워크에 배포하기 위한 AI 모델이 텐서플로우로 구축되는 경우가 증가하고 있다. 이런 프로젝트에서 개발자의 가치 창출 시간을 가속화하기 위해 텐서플로우 팀은 TensorFlow.js의 브라우저 기반 실행을 위한 새로운 영역 NPM 패키지를 발표했다. 여기에는 핸드포즈(HandPose: 포즈 추정을 사용해 손의 특징점 탐지), 페이스 메시(Face Mesh 사람의 얼굴에서 3D 얼굴 특징점 예측), 모바일 BERT(트랜스포머의 양방향 인코더 표현)(모바일 기기에서의 자연어 처리)가 포함된다. 텐서플로우 팀은 모델을 TensorFlow.js로 쉽게 변환할 수 있게 해주는 새로운 명령줄 변환기 마법사도 출시했다. 이 마법사는 CPU에서 빠른 실행을 지원하며 TensorFlow.js를 위한 새로운 웹어셈블리 백엔드를 실행한다. 또한 새로운 허깅 페이스(Hugging Face) NPM 패키지는 개발자가 NodeJS에서 질답을 할 수 있게 해준다.
  • 분산 딥러닝 언어: 여러 슈퍼컴퓨터와 메시, 다른 복잡한 컴퓨팅 패브릭에 걸쳐 병렬로 계산을 분산하는 AI 프로젝트가 늘고 있다. 텐서플로우 팀은 모델 병렬성과 분산 딥러닝을 위한 언어를 제공하는 메시(Mesh) 텐서플로우를 발표했다. 메시 텐서플로우는 네트워크로 연결된 프로세서의 n차원 배열이 사용되는 다양한 시나리오에 맞는 폭넓은 분산 텐서 계산 클래스를 지정한다. 이러한 시나리오에는 모델 매개변수가 너무 많아서 하나의 장치에 다 들어가지 않는 경우, 너무 커서 활성화 시 하나의 장치에 들어가지 않는 3D 이미지 모델이나 기타 데이터 예제, 또는 저지연 병렬 추론이 필요한 경우 등이 포함된다.
  • 확률적 프로그래밍 라이브러리: 확률적 프로그래밍 툴을 사용하면 복잡한 통계적 추론이 포함된 AI 애플리케이션을 더 쉽게 개발할 수 있다. 팀은 통계적 추론과 딥러닝을 결합하고 GPU(그래픽 처리 장치)와 TPU(텐서 처리 장치)에서 효율적으로 배포가 가능한 파이썬 모델을 통해 프로그램을 쉽게 해주는 라이브러리인 텐서플로우 프로버빌리티(Probability)를 발표했다. 이 라이브러리를 사용하면 데이터 과학자와 기타 개발자는 데이터를 이해하고 예측을 수행하기 위한 영역 지식을 인코딩할 수 있다. 폭넓은 확률 모델링, 계층, 배포판, 옵티마이저가 포함돼 있다.
  • 강화 학습(Reinforcement learning, RL) 개발 라이브러리: RL은 많은 엣지, 로봇, 자율 차량, 기타 AI의 새로운 전선에서 핵심 요소로 사용된다. 텐서플로우 팀은 텐서플로우에서 새로운 RL 알고리즘을 설계, 구현, 테스트, 벤치마킹하기 위한 라이브러리인 TF-에이전트(TF-Agents)를 발표했다.
  • 모델 공정성 지표 시각화 툴: 공정성, 윤리, 편견 감소는 AI 개발 팀이 모델을 구축하고 학습시키면서 달성해야 할 중요한 목표로 부상하고 있다. 텐서플로우 팀은 개발자가 모델의 공정성을 시각화할 수 있게 해주는 툴과 라이브러리를 발표했다. 페어네스 인디케이터(Fairness Indicators) 라이브러리는 텐서보드에서 시각화할 수 있는 이진 및 멀티클래스 분류를 위한 일반적인 공정성 지표를 계산할 수 있게 해준다.
  • 양자 컴퓨팅 환경을 위한 AI 모델링 툴: 양자 컴퓨팅은 경이로운 수준의 AI 애플리케이션을 위한 기반을 제공한다. 텐서플로우 팀은 하이브리드 양자-일반 머신러닝을 위한 라이브러리인 텐서플로우 퀀텀에 대해 논의했다. 이 새로운 소프트웨어 전용 스택은 텐서플로우를 확장해서 양자 컴퓨팅 플랫폼에서 처리되는 머신러닝 모델의 구축 및 학습을 지원한다. 구글의 X 연구개발 사업부에서 개발한 텐서플로우 퀀텀(TensorFlow Quantum)은 데이터 과학자가 파이썬 코드를 사용해 표준 케라스 함수를 통해 양자 ML 모델을 개발할 수 있게 해준다. 기존 텐서플로우 API와 호환되는 양자 회로 시뮬레이터 및 양자 컴퓨팅 프리미티브 라이브러리를 제공한다.


텐서플로우, 지배적 AI 모델링 프레임워크 지위 유지

이번 발표 내용은 이례적일 정도로 방대하다. 구글과 모회사 알파벳이 텐서플로우 생태계에 엄청난 자금과 인력을 투입하고 있음을 알 수 있다. 발표 내용을 종합적으로 보면 텐서플로우에 대한 AI 개발자들의 불평(혼란스러움, 사용하기 어려움, 무거움, 느림, 비효율적임, 지나치게 복잡함 등)을 잠재울 만큼은 아니다. 오히려 과도하게 쏟아지는 새로운 기능이 이런 문제를 더욱 심화시켜 더 간소한 AI 모델링 프레임워크를 향한 이탈을 유발할 가능성도 있다.

그러나 텐서플로우는 프로덕션 환경을 위한 미션 크리티컬 AI 프로젝트를 이끄는 전문 데이터 과학자의 관점에서 여전히 지배적인 프레임워크다. 이번 발표를 통해 텐서플로우가 고수준 AI 개발에 있어 가진 우위가 더욱 강화됐다. editor@itworld.co.kr