페이지

2020년 9월 28일 월요일

A.I가 시(poetry)를 이해할 수 있을까?

최첨단 AI 자연어 처리 모델의 등장

818일자 포춘 지 블로그에 “AI가 시를 이해할 수 있을까라는 기사가 눈에 띈다. 최근에 AI 중에 눈에 띄는 발전을 보이는 분야는 자연어 처리 분야이다. 정확히는 언어 모델이라는 분야인데 이전까지는 불가능하다고 생각되던 부분이 최근 몇 년간에 눈부신 기술의 발전으로 인해, 이제 보다 커다란 그림으로 우리 앞에 성큼 다가오고 있다.

그동안 인공지능(AI) 자연어 처리(NLP)에서 가장 화제가 되고 있는 플랫폼으로는 구글의 양방향 언어모델 버트(Bert), OpenAI의 단방향 언어모델 GPT-2, 기계신경망 번역(Transformer) 모델 등이었는데 올해 528일에 개방형 arXiv 31명의 OpenAI 연구자들이 GPT-3 라는 3세대 언어예측모델을 발표하면서 세간의 주목을 끌기 시작했다. 주변에서 개발자들만 이러한 용어에 익숙해왔는데 GPT-3 라는 용어를 최근 뜻하지 않은 주변 인물들로부터 듣고있다.

OpenAI 2015년 테슬라 CEO 엘론 머스크와 전 Y콤비네이터 대표였던 샘 앨트만이 설립한 비영리 및 영리 기업이다. 엘론머스크는 2018년 이사회에서 탈퇴하고 기증자로 남아있고 2019년에는 마이크로소프트가 1조원을 투자한 바 있다. 구글이 인수한 DeepMind 와 경쟁하고 있다고 볼 수 있다.


새로운 언어 모델의 특징

  GPT-3 Generative Pre-trained Transformer 3 의 약자로 그 근간은 transformer 라는 언어 모델에 근거하고 있다. 이는 지난해 초에 공개한 소설 쓰는 인공지능 GPT-2 보다 훨씬 크고 혁신적인 모델이다. 이 모델은 4990( 499 Billion) 개의 단어(토큰)를 대상으로 웹과 책 등으로부터의 가중치에 따른 선택으로 3000(300 Billion)개 단어를 샘플링하여 사전 훈련을 받았다. 그리고 1750 (175 billion) 개의 매개변수(parameter)가 사용되었다고 한다. 여기서 매개변수는 심층신경망의 층(layer)과 층 속의 뉴론(unit) 사이의 연산에서 생겨나는 매개변수 숫자인데 많을수록 복잡하다는 것을 의미한다. 이는 작년 초 GPT-2 대비 116배의 크기를 나타낸다.

GPT-3의 특징은 사람이 한 두 줄 정도의 문장을 던져주면, 사람이 적은 것인지 분간이 안 될 정도의 논리 정연한 장문을 만들어 낸다는 점이다.

사전 학습된 변역 (Pre-trained Transformer), 이게 무슨 말인고 하니, 예전에는 입력되는 순차적인 언어들을 차례로 훈련시켜 어떤 단어가 신경망에 입력되었을 때, 그 다음에 어떤 단어가 올 것인가 등등을 예측했다면, 번역(transformer)모델이라는 것은 통째로 책이나 웹에 있는 초대형의 문장 세트를 엄청난 컴퓨터용량에 한꺼번에 훈련시켜서 사전에 만들어 놓은 것을 말한다. 이 모델 에다가 API(응용 프로그램 인터페이스)를 제공하여 사용자들이 거의 모든 영어와 관련된 작업을 범용적으로 문자를 입력하면 이 훈련된 모델의 성능을 그대로 사용한 결과를 얻을 수 있게 만들었다는 것을 뜻한다. 뒤에 몇가지 예제를 살펴보겠다.


전이 학습 (Transfer Learning)

  전이 학습이란 심층신경망의 최고 성능이 입증된 모델의 가중치(weight) 모델을 그대로 가져와 비교적 작은 데이터세트에 적용하여 사용하는 것을 말한다. 예들 들어 2014년 이미지넷 인식대회에서 옥스포드대학 연구팀VGG 가 개발한 모델로서 16개의 심층신경망 층(layer)이 사용된 VGG16 사전 훈련 모델을 사용한다고 하자. VGG16 사전 훈련 모델을 사용하면 2014년 이미지넷 인식대회에서 준우승을 차지한 성능의 가중치가 그대로 소규모 데이터세트를 다루는 심층신경망에 적용되어 VGG16 에서의 장점을 누릴 수 있다.

우선 Keras from keras.applications.vgg16 import VGG16 문을 선언해 줌으로써 VGG16 모델이 로드 되고 아래 그림 1과 같이 입력 shape 를 맞춰주고 모델을 로드하면 된다.


(그림 1. Keras 를 이용한 Pre-trained 모델 사용 예)


그동안 이미지 분류 분야는 이러한 전이 학습이 고성능으로 사전 훈련된 모델의 가중치모델을 가져다가 적용하여 발전할 수 있는 계기가 되어왔지만 자연어처리분야는 이러한 사전 훈련 모델이 부진했는데 이제 이런 사전 훈련 모델을 통해 상용화를 가속화할 수 있는 단계로 접어들었음을 의미한다.

AI 자연어처리의 발전

  자연어처리를 이해하는데 기초적으로 알아야하는 워드임베딩, skip gram 등의 기본적 지식을 30분을 투자해서 참을성 있게 들어 보실 분은 여기 를 눌러 50분 분량의 유튜브 초기 30분을 들어보자. 초보자들은 조금 어려울 수 있지만 더 알고 싶으면 이러한 단어들을 유튜브나 구글에 검색하면 적지 않은 정보를 얻을 수 있다.

AI를 이용한 자연어처리를 이해하기 위해 Word2vec, Skip Gram, RNN, Bi-LSTM, GRU 같은 선행 기술들을 알고 있으면 좋지만, 빠르게 진화하고 있는 기술은 어쩌면 과거와의 단절을 통해 패러다임을 변화하는 지도 모른다. 그 변화의 신호탄이 이 논문 이었고 이전의 recurrent neural network모델을 쓰지 않고 encoder-decoder 기반의 attention 만으로 이전의 문제점들을 극복해 낸다는 논문을 발표한다. 아래 그림2Transformer 의 구조이고 Bert Transformer 의 인코더-디코더 모델 중에 인코더 만을 사용한다

(그림2. Transformer 구조)


GPT-3 적용 예

  아래는 GPT-3 가 코로나19에 대해서 상대방과 대화를 나누는 내용이다. 신기한 것은 GPT-3 의 데이터세트가 201910월이어서 코로나를 모른다. 그러나 상황을 설명해주고 대화를 이어가면 할 수 있다. 아래 굵은 글씨가 GPT-3 가 생성한 결과이다

(그림 3. GPT-3의 코로나 관련 대화)


  미 버클리 대학생 리암 포어가 GPT-3를 사용해 작성한 블로그 게시물이 IT뉴스 큐레이팅 플랫폼인 해커뉴스에서 1위를 차지했다고 한다. 819일 뉴스.

(그림 4. GPT-3 가 생성한 뉴스)


Casetext 라는 법률회사는 소송이 있을 때, 미국의 관습법 전체를 훈련 받은 GPT-3 가 일반 문장으로 질의를 던졌을 때, 예를 들어, 같은 개념에 대하여 다른 언급이 있었던 결과를 찾고자 할 때 사용한다고 한다

(그림 5. Casetext 사의 GPT-3을 이용한 검색 창)


꽤 전문적인 의학 지식도 답을 할 수 있다. 아래 굵은 글씨가 GPT-3 가 생성한 결과이다

 (그림 6. GPT-3의 의학 관련 문제의 답)


  자 이제 GPT-3 가 시를 작성한 예를 보자. AI 로 시를 생성하는 결과를 실험을 하는 사이트에 있는 T.S. Eliot Hollow Man 이라는 시에 대한 GPT-3 가 생성한 시 에 대한 평가는 다음과 같다.

원작의 변형에 불과하다. 원작의 서정성과 음률이 없어 이 시의 영혼을 잃어버렸다. 아름다움은 비논리적인 영역으로 정보로서 코딩 될 수 없다. 대상에 대한 지향성의 경험은 컴퓨터 정보에는 획득될 수 없지만, 우리의 마음은 완벽하게 우리 자신들을 위해 코딩할 수 있다.

아래는 T.S Eliot 의 원작과 GPT-3 가 생성한 시를 비교해서 표시하였다. 오른쪽의 GPT-3 의 경우, 굵은 글씨로 표시한 원작의 4줄 정도를 GPT-3 에 알려주면 나머지 시를 GPT-3 가 생성하는 것을 볼 수 있다. 
      ( 1. T.S 엘리옷의 Hollow Man 원작 과 GPT-3 생성 본 비교)


결언


앞의 예에서 살펴본 데로, 무엇보다도 GPT-3의 장점은 영어로 되는 모든 작업에 적용할 수 있고 인공지능 전문 지식이 없어도 문자를 인공지능에 입력할 수만 있다면 처리 결과를 받아 볼 수 있다는 놀라운 범용성이다, 다양한 작업에 GPT-3 모델을 사용하기 위해 경사도 / 매개 변수 업데이트를 수행 할 필요가 없다고 한다. 무슨 말인가 하면, 작업 별 모델 아키텍처가 필요하지 않을 뿐만 아니라 대규모 사용자 지정 작업 별 데이터 집합 이 필요하지 않다는 개념이다. 이점은 최첨단 NLP 로 나아가는 큰 단계로 생각된다.

그러나 전작 GPT-2 가 소설 작성과 더불어 가짜 뉴스 생성의 이슈로 인해 모든 사람에게 개방하는 것에 조심스러운 입장인 OpenAI 의 입장을 생각하면, 누구나가 쉽게 접근할 수 있을지는 아직 모르겠다. OpenAI는 비영리법인인 OpenAI inc 와 영리법인인 OpenAI LP를 따로 가지고 있다. 아마도 영리법인을 통해 기업 고객들에게 서비스하지 않을 까 하는 관측이 나오고 있다.

한글이 전세계가 사용하는 영어에 비해 규모의 경제에서 열세인 상황에서 GPT-3 에 필적할 성능을 구가하는 언어 모델의 탄생을 기대할 수 있을까 하는 생각이 들었다. 점점 AI가 국가별 패권주의로 치닫는 환경에서 우리도 대비를 해야겠다.

복수의 GPU가 있다면 분산 훈련을 실행해보자

 4개의 GPU로 분산 훈련(Distributed Training)을 시행하면 1개의 GPU로 훈련하는 것보다 4배로 성능이 빨라질까?

  결론부터 이야기하면, 4배로 빨라진다. 물론 복수 기계 간의 네트워크 속도나 어떤 병렬 학습 전략을 채택 하느냐에 따라 차이가 있겠지만, 자체 테스트결과는 GPU 증가에 따라 이미지 분류의 경우 선형적으로 초당 이미지 처리 성능이 증가했다. 이 설명은 뒷부분에서 다루겠다.

처음 머신러닝 모델을 만들고 학습용 데이터로 하나의 서버에서 훈련을 실행할 경우에는 별다른 속도의 병목 현상을 느끼지 못할 수도 있지만, 딥러닝의 특성상 데이터와 모델이 커지면 피할 수 없이 직면하는 문제는 훈련 시간의 증가다. 만약 단일 서버에 4개의 GPU가 있다면, 4개모두의 GPU를 대상으로 병렬 훈련을 실행하면 그렇다, 훈련에 4시간이 소요되던 것이 1시간에 끝난다.  만약 3대의 서버에 각각 4개의 GPU가 장착되어 있다면 이 모두를 연결하여 12개의 GPU에 분산 훈련을 시행할 수 있다. 각각의  경우에, 적용할 수 있는 병렬 학습 전략을 고려해야 한다.


(그림1. 각각의 노드 상의 장치와 GPU)


훈련의 과정은 여러분들이 아시는 바와 같이, 먼저 모델이 학습데이터를 읽어서 1) 초기화한 weight와 모델이 feed forward 를 통해 예측한 값을 내고, 2) 예측 값과 실제 값의 차이로 나타나는 손실 함수, 3)  손실을 weight 로 편미분한 경사도(gradient)를 구하는 과정이 반복되어 결국 weight 가 변경되는 과정이다. 분산 훈련은 각 GPU 1개의 작업 프로세스(worker process)가 위치하여 각 GPU의 경사도 값을 서로 주고 받고 각자의 worker는 모아진 경사도(gradients)들의 평균을 이용하여 모델을 변경한다. 이처럼 worker 는 한번의 반복 마다 경사도를 모두 모아서 변경하므로 모든 worker 는 언제나 같은 파라미터(weight)를 갖는다. 이를 동기(synchronous)방식이라고 하며 비동기 방식도 있으나 설명은 생략한다.

MultiWorkerMirroredStrategy 도 있는데 이는 복수의 노드(서버)에 장착된 GPU를 대상으로 한다. 기본적으로 동기 방식의 MirroredStrategy 와 같은 방식이다. 다만 복수의 노드에 소속된 GPU에 데이터가 배치되고 각 GPU worker 에서 훈련된 경사도(gradient)로부터 계산 된weight all-reduce 방식으로 전체 GPU 가 모두 같은 weight를 갖도록 실행되는 점이 다르다.

(그림2. MultiWorkerMirroedStrategy 작동 방식)


텐서플로로 분산 훈련하기

  텐서플로우 가이드(https://www.tensorflow.org/guide/distributed_training)에 명시된 분산 훈련부분에는 tf.distributed.Strategy tf,keras tf.estimator 와 함께 사용할 수 있다고 설명하고 있다. 아울러 지원하는 5가지 분산 훈련 전략도 아래와 같이 설명하고 있다

(1. 분산 훈련 전략)


  TF2.0 베타 버전에서는 케라스와 함께 Mirrored Strategy를 사용할 수 있고 CentralStoreStrategy MultiWorkerMIrroedStrategy는 아직 실험 기능이므로 추후 바뀔 수 있다고 나와있다


동일 서버 내의 복수의 GPU를 통한 분산 훈련

  
이 경우는 텐서플로의 동기화방식인 MirroredStrategy를 사용하기위해 케라스의 경우 몇 줄의 코드를 기존 머신러닝 코드 위에 추가하면 된다.

예를 들면, 모델과 옵티마이저를 만들기 전에 with mirrored_strategy.scope() 를 정의한다 던지, 입력데이터를 각 GPU worker 에 배분하는 부분과  경사도 계산을 위한 정의 등이다. 케라스를 사용한 MNIST 사용 예는 https://www.tensorflow.org/tutorials/distribute/keras 를 참고하면 된다.


복수 서버 내의 복수의 GPU를 통한 분산 훈련

  앞에 살펴본 텐서플로 분산 훈련 tf.distributed.Strategy는 텐서플로 가이드에 따르면, TF2.0 베타 버전에서는 현재 API를 개선 중에 있다고 하지만, 케라스와 함께 MirroredStrategy만 지원하고 있는 상태이다. 복수의 기계에 장착된 복수의 GPU를 통한 분산 훈련을 시행하기 위해서 호로보드 방식을 적용해보았다. 호로보드는 우버(Uber)에서 분산 훈련으로 MPI 모델과 ring-allreduce worker 간 경사도 교환 방식을 사용한 복수 GPU를 장착한 복수 서버 간의 분산 훈련에 탁월하다.

호로보드(Horovod)를 통한 복수 서버 내의 복수의 GPU 분산 훈련

  호로보드는 리눅스재단 산하의 LF AI 재단이 주최하는 머신러닝 표준으로 특히 우버 내부에서는 MPI 모델이 훨씬 간단하고 텐서플로우보다 분산 훈련을 위해 휠씬 적은 코드 변경이 필요하고 속도도 빨라서 호로보드 방식을 사용한다고 한다. 우리 회사 자체적으로 엔디비아사의 고성능 AI연구용 시스템인 DGX-1(V100 8GPU), DGX-2(V100 16 GPU)를 대상으로 tf_cnn_benchmark 수행 시 이미지 처리량을 비교한 결과, 아래와 같이 GPU 노드가 증가함에 따라 이미지 처리 성능도 일정하게 증가하는 결과를 확인하였다. Infinity band 100GPS에서 복수의 노드(서버) 테스트 수행 시, 단일 노드(서버) 수행보다 단지 1.3% 감소한 이미지 처리량을 보였다.

(그림 3. DGX-1. DGX-2를 사용한 복수 노드, DGX-1 단일 노드 수행 시 이미지 처리량)


호로보드를 통하여 복수 서버상의 복수 GPU 대상으로 분산 훈련을 하기 위해서는 기존 프로그램에 import horovod.tensorflow as hvd 를 포함한 7~8 라인 정도의 프로그램의 코드 추가가 필요하다. 이러한 코드 추가에 대해서는 여기를 참조하면 된다

AI플랫폼 치타에서의 분산 훈련 

  치타에서 분산 훈련을 사용하기위해서는 우선 프로젝트관리에서 작업추가를 선택한 후에 분산 트레이닝 타입 선택을 통해 단일노드내의 분산 GPU (Distributed GPU)를 사용할 지, 복수 노드의 분산 GPU(Horovod)를 사용할 지를 선택한다. 당연한 얘기지만, Distributed GPU 를 선택하면 단일 노드에서 사용할 수 있는 최대 GPU 개수까지 할당이 가능하다

(그림 4. 치타의 단일 서버 내의 복수 GPU 분산 훈련 선택 화면)


만약 Horovod 를 선택했다면, 복수 노드에서 사용할 수 있는 최대 GPU 개수까지 할당이 가능하다

(그림 5. 치타의 복수 서버 내의 복수 GPU 분산 훈련 선택 화면)


 이 경우, 팀들이 그룹별로 GPU 를 공유하고 있는 상태에서 한 사용자가 복수 노드의 전체 GPU를 점유하여 분산 훈련을 하려는 시도 일 수 있기 때문에 프로젝트 관리의 스케쥴링 관리로 진입하여 잡스케쥴링을 등록하게 한다. 이를 통하여 전체 관련 팀원들이 언제 얼마만큼의 GPU 작업이 예약되어 있는지 알고 대비하게 한다. 이러한 잡스케쥴링 기능이 분산 훈련이 잘 끝났는지 여부도 모니터링 할 수 있도록 기능을 제공하고 있다.

 

결언

  단일 서버의 GPU 분산 훈련은 현재 시점에서 텐서플로우의 케라스API를 통해 분산 훈련이 가능하며 기존 프로그램에 3~4 라인의 프로그램을 추가 하면 된다. 이 상태에서 치타의 Distributed GPU의 작업관리에서 테스트 버튼을 누르는 것으로 아주 쉽게 실행을 할 수 있다.

복수 서버의 GPU 분산 훈련은 호로보드를 선택하고 위와 똑 같은 경로로 실행하면 된다. 기본 프로그램에 6 라인 정도의 호로보드를 위한 코드 추가만 하면 된다. 나머지는 치타가 알아서 분산 훈련을 처리해 준다.

초보자도 사용설명서를 보고 기존 프로그램에 이러한 코드를 추가하고 치타의 자동 분산 훈련 수행 기능을 사용해보자. 어렵게 느껴졌던 복수 서버의 분산 훈련을 몸소 체험해보자.


AI는 데이터가 늘어나면 성능이 증가하기만 할까?

 

쉽지 않은 AI 성능 최적화

  만약에 스마트폰에서 찍은 사진을 웹사이트에 전송하면 고양이 인지 아닌지를 머신러닝으로 판별해주는 프로젝트를 시작한다고 하자. 훈련 및 테스트 데이터는 웹사이트의 고양이 사진을 사용한다고 할 때, 실제 프로젝트의 성능은 기대에 못 미칠 확률이 높다. 사용자의 스마트폰에서 업로드 되는 사진은 웹사이트의 고양이 사진에 비해 조명이나 선명도, 해상도 등이 다르다, 이 경우에 성능을 높인다고 웹사이트의 고양이 사진을 다운로드 받아 만든 훈련 세트를 늘리면 성능은 높아질까


데이터, 모델의 크기와 성능과의 상관관계

일반적으로 심층신경망의 규모를 늘리거나, 데이터를 늘리는 방법이 알고리즘의 성능을 높이는 보다 신뢰할 수 있는 방법으로 거론되고 있다. 그러나 위와 같은 실제 프로젝트에서는 고려해야 할 사항이 좀 더 복잡하다.

이 경우, 훈련 데이터와 다르게 개발/테스트 세트 데이터로 분리하고 가능하면 동일한 분포 데이터에서 개발 및 테스트 세트를 취득하고, 이와 더불어 단일 측정 지표를 가지는 등의 일이 필요하다. 예를 들어 정확도 혹은 F1 score 같은 하나의 지표 말이다. 이 것을 가지고 분류기 A 와 분류기 B 의 개발 세트에서의 지표를 비교하며 경우의 수를 판별해야 0.1%의 성능 향상이 어디에서 언제 일어났는지 혹은 개발 테스트 세트에서 과대적합(overfitting) 이 일어났는지 등의 평가를 할 수 있다. 이와 더불어 주기적으로 테스트 세트 평가를 같이 병행하는 것이 필요하다.

편향 과 편차

만약 알고리즘의 성능이 훈련 세트 오류 1%(99% 정확도), 개발 세트 오류 11%(89% 정확도)라고 하자. 이 경우 편향(bias)1% 그리고 편차(variance)10%( = 11% - 1%) 이다. 즉 편향은 훈련 세트 알고리즘의 오류률이다. 이는 분류기가 훈련 세트에서는 매우 작은 오류를 갖지만, 개발 세트에 적용하기에는 오류가 높은 것이다. 즉 범용적으로 일반화 하기에는 부적합한 상태, 우리는 이것을 과대적합(ovefitting)이라고 부른다.

또 다른 예를 살펴보자.

만약 알고리즘의 성능이 훈련 세트 오류 15%(85% 정확도), 개발 세트 오류 16%(84% 정확도)라고 하자. 이 경우 앞에서 배운 바와 같이 편향(bias)15% 그리고 편차(variance)1%(= 16% - 15%)이다. 이 경우 분류기가 훈련 세트에는 15% 오류로 썩 좋지 않은 성능이고 개발 세트에서의 오류율은 훈련 세트 오류율보다 약간 높다. 이 분류기는 높은 편향과 낮은 편차 이다. 우리는 이 알고리즘이 과소적합(underfitting) 되었다고 한다.

이론적으로는, 편차(variance)는 대용량의 훈련 세트를 훈련함으로써 줄일 수 있다. 그리고 편향(bias)은 심층신경망의 층(layer)과 뉴론(unit)을 증가시키는 것과 같은 모델의 크기 증가를 통해 줄일 수 있다. 그러나 이는 또한 편차를 증가시켜 과대적합의 위험을 불러온다. 이런 경우, 잘 설계된 정규화(regularization) 방식을 사용하여 과대적합 문제를 피해가는 방법을 모색한다.


홈 그라운드와 호주 원정 경기

지금까지 살펴본 내용을 국가 대항 양궁 시합에 비유해 본다면 이럴 것 같다. 양궁 선수들이 실내체육관의 환경에서 과녁에 명중시키는 훈련을 10,000번의 활시위를 당겨 거의 과녁의 중심에 맞추게 되었다면 이는 국내 훈련 환경에 과대적합 되었다고 말할 수 있다. 원정 경기에서는 일정한 방향으로 바람이 불어 한국에서는 정가운데 명중하던 활시위가 호주 원정 경기장에서는 과녁의 우상향에 일정하게 몰려있다면 이는 피할 수 없는 편향이라고 볼 수 있다. 원정 경기장의 소음에 놀라 표적 위아래로 산발적으로 펼쳐서 활시위가 퍼져있다면 이는 국내 연습 대비 편차이다.  원정 경기의 상태가 바람이 심하게 불고 소음도 무척 심한 상태인 것에 대비해서 국내에서 훈련하면서 바람이 불어 대며 소음이 있는 환경을 만들어 훈련에 대비했다면 이는 테스트 세트 평가를 같이 병행하여 데이터 변화에 대비했다고도 볼 수 있다.

  비유가 적절했는지 모르지만, 불특정 다수의 사용자로부터 이미지 입력을 받는 것과 같은 상태의 프로젝트에서는 머신러닝 알고리즘이 훈련한 데이터와, 개발 및 테스트로 나뉜 데이터의 이질성을 염두에 두는 것과 같이 성능 최적화는 여러 변수를 염두에 두고 전략을 생각해 볼 필요가 있다는 점이다.


텐서보드(TensorBoard)
  

통상 모델을 개발하고 훈련 중간에 정확도와 손실률들을 출력하여 학습의 진행과정을 모니터하거나, matplot 시각화도구등을 통해서 정확도와 손실률을 훈련이 끝나고 난 후에 시각화하여 보곤 한다. 모델을 이해하고 디버깅 및 최적화를 돕기위해 시각화도구인 텐서보드(Tensorboard)가 제공됨을 알고 있을 것이다. Pytorch 를 사용하시는 분들은 Torch.utils.tensorboard 라이브러리를 사용하여 텐서보드를 사용할 수 있다.

주위에 보면 텐서보드를 잘 쓰는 분들도 있지만 노트북 프로그램안에 몇가지 추가하는 내용이 불편해서인지 사용하지 않는 분들도 많은 것 같다. 만약 훈련 손실률과 정확도 그리고 개발용 손실률과 정확도를 비교한다면 텐서보드가 무척 깔끔하게 처리된 시각화 화면을 제공한다. 즉 여러 시도들을 비교하여 epoch 증가에 따른 변화를 관측하기에 편리하다.

예를들어, 텐서플로우 2.0 버전이 지원되는 이미지/커널환경에서는 엔쓰리엔클라우드의 Cheetah Notebook Extension 을 이용하여 별도의 어려운 처리 과정없이 쥬피터 노트북내에서 바로 임포트하여 사용할 수 있다.


간편한 텐서보드 실행

  

텐서보드를 시작하기 위하여 쥬피터 노트북이나 랩에서 Cheetah Notebook Extension을 로드하고





만약 Keras 를 사용하는 프로그램의 경우 model compile 다음에 로그 지정 디렉토리와 tensorboard_callback 을 지정하고




model.fit 에서 callbacks=[tesorboard_callback]) 을 정의한다



그리고 아래와 같이 tensorboard 를 실행하면



화면에 텐서보드가 뜬다.



2020년 8월 21일 금요일

확산되는 클라우드 환경과 AI 개발 플랫폼의 부상

 http://itbiznews.com/news/newsview.php?ncode=1065573055544649

아래 내용은 필자가 ITBIZ 뉴스에 2020년 8월20일 개재된 내용을 옮긴 것임.

확산되는 클라우드 환경과 AI 개발 플랫폼의 부상

 

쉽지 않은 AI 개발 환경 설정


AI 프로그램을 처음 시작할 때 매뉴얼을 따라 설치했는데도 실패해서 처음부터 다시 설치해 본 경험들이 있을 것이다.
게다가 학습이나 연구에서 github 이라는 오픈소스 저장소에 있는 프로그램을 내려 받아 테스트하려고 할 때에도 이러한 운영체제 환경과 라이브러리 간에 버전을 맞추고 환경을 완성하는데 또 같은 시행착오를 반복하게 된다. 굳이 AI 부분이 아니더라도 오픈소스의 여러 프로그램들을 사용하는 현실에서는 이러한 정합성의 문제가 언제나 대두된다.
 학습 데이터가 커지고 프로그램의 복잡도가 증가하면 이제는 컴퓨터에게 요청한 작업이 왜 이렇게 하염없이 돌고 끝날 생각을 안하는지 궁금해진다.


AI 개발 전체 업무 흐름 중에 모델 개발이 차지하는 비중이 전체의 5%에 불과하다는 점을 감안하면, 개발자가 핵심 업무에 집중하고 나머지의 도전적 작업으로부터 자유로워질 필요가 있다.


확산되는 클라우드 환경과 신속하고 용이한 AI 모델 제공


AI 특성상 대용량의 데이터에 복잡한 연산 처리를 요구하는 경우 서버를 가상화 하여 복수의 GPU (그래픽 연산 프로세서)로 구성하여 사용한다. 30명 정원의 학생들이 AI 수업의 실습을 하는 경우에 어느 한 사용자가 GPU를 독점적으로 점유하면 수업에 지장이 생긴다.


그동안 기존 환경을 애플리케이션을 수정없이 클라우드 서비스 인프라로 이전하는데 유용했던 VMware 같은 가상 머신(VM)은 그림 1에서 보는 바와 같이, 기존 서버의 OS 위에 응용프로그램 별로 GuestOS 를 올리는 구조로, 오른쪽에 있는 Docker 라는 구조에 비해 자원 효율화에서 뒤진다. Google 이 클라우드상의 신규서비스를 대규모로 확장하기 위해 개발한 컨테이너를 기반으로 하는 오픈소스 가상화 플랫폼이 도커(Docker)다.  


컨테이너라 하면 배에 싫는 네모난 화물 수송용 박스를 생각할 수 있는데, 말 그대로 내가 원하는 프로그램과 실행 환경의 묶음을 컨테이너라는 추상화된 박스 안에 함께 담아서 사용할 수 있게 제공하는 오픈소스 플랫폼이다. 이 컨테이너를 실행시킴으로써 내가 개발하는 AI 모델 개발을 기존 환경에 구애 받지 않고 독립적으로 실행 할 수 있다.



그림 1. VM Docker

 

예를 들어 Ubuntu 리눅스 환경에 Tansorflow 와 Keras 를 사용해 작성된 프로그램을 도커에 담으면, 이 도커는 이제 조립PC, AWS, Azure, Google cloud등 어디에서든 실행할 수 있다. 즉 한 곳에서 개발하고 여러 클라우드 환경에서 실행하는 멀티 클라우드 환경에서 운영되는 것이다. 


인공지능을 활용하여 산업별 영향을 미치는 모델을 만드는 일들이 앞으로 마주하게 될 도전 중에 하나는, AI 모델을 빠르고 용이하게 제공하는 것이며 실험 단계에서 프로덕션 단계로 나아갈 때 직면하는 문제다. 프로덕션에서 서비스 제공 시, 환경이 재현가능하고 격리를 강제 적용하며 안전을 보장하는 이러한 컨테이너 기반이 산업계 표준으로 정착되고있다.


최근의 어플리케이션 개발 환경은 첫째, 구조를 한가지 서비스에 특화된 단위로 개발(마이크로 서비스)하고, 둘째, (컨테이너)와 같은 경량화 된 가상화 환경에서 구동하는 단위로 구성하며, 셋째, 이러한 다수의 마이크로서비스와 통신하는 컨테이너들을 관리할 수 있는 환경(쿠버네티스) 으로 진화하고 있다. AI 개발도 이러한 마이크로 서비스, 컨테이너, 쿠버네티스(컨테이너들을 자동으로 통합 관리하는 소프트웨어) 와 같은 오픈소스 프레임워크 기반 아키텍처들의 장점들과 더불어 발전할 것으로 예상되고 있다.


부상하는 AI 개발 플랫폼


최근에는 다 나아가서 이러한 AI를 개발하는 일련의 작업 흐름 즉, 컨테이너 등 환경 자동화 관리, GPU 및 볼륨관리, GPU 성능모니터링, 멀티GPU 클러스터링, 잡스케쥴링, 멀티 클라우드등의 일련의 작업을 자동화 하는 AI 개발 플랫폼이 선을 보이고 있다.



그림 2. 컨테이너 관리

 

위의 그림 2와 같이 N3N 클라우드사의 치타 AI 개발 플랫폼은  머신러닝 라이브러리 설치, 사용자 설정, GPU 할당을 클릭만으로 1분안에 마칠 수 있는 개발환경 자동화 기능을 제공한다.


또한 직관적인 프로젝트 대시보드를 통해 할당 받은 GPU 와 그의 사용현황을 바로 확인 할 수 있으며 복수의 서버 환경인 경우, 할당 받은 GPU 의 용량을 넘어 사용할 경우 자동으로 복수의 GPU 구성을 설정하여 실행한다. 이 경우, 전체 사용자의 환경에 영향을 줄 수 있으므로, 스케쥴관리의 작업 추가를 통해 예정된 일정에 할당 받은 복수의 GPU 를 사용하도록 하고있다.


이러한 AI 개발 플랫폼들은 이러한 클라우드 기반 오픈소스 프레임워크 표준을 준수하면서 당분간 급속히 발전할 것으로 전망되는데, 일련의 AI 개발 작업 흐름 상의 훈련, 모델 제공, 모델 관리 등의 영역을 이러한 AI 플랫폼 내부에 포함해가면서 사용자들을 인공지능 모델 개발 이외의 업무에서 보다 자유로워지게 지원할 수 있을지 향후 귀추가 주목된다.


2018년 4월 16일 월요일

인공지능((AI) 기반 신약개발: 패러다임 변화 - Part 2


신약개발 패러다임 변화: 가설기반에서 인공지능 기반으로


n  임상시험



  머신러닝 기반의 모델을 통해 최적의 결과를 도출하는 정밀한 임상시험을 설계하거나 최적의 임상대상을 예측하는데 AI 가 사용된다. trials.ai 는 임상실험 최적화에 딥러닝을 이용하여 FDA20179월부터 요구하는 임상시험보고서를 디지털로 전환하는데 착안하여 수백만 데이터 포인트들로부터 발생하는 복잡한 질문에 인공지능 봇이 실시간 대답하고 임상시험의 전과정을 디지털화 했으며 예측분석을 통하여 대시보드형태의 클릭으로 임상시험을 자동화하도록 지원한다. 임상대상 예측에서는 deep6AI 의 경우, 정형, 비정형 데이터를 실시간 취득하여 자연어처리, 지식그래프 등을 통해 수천가지의 임상데이터가 임상프로파일 지식그래프로 통합되어 실시간으로 코호트, 환자군들을 발견하고 비교하도록 지원한다. Mendel.ai 는 암환자의 치료기록을 mendel.ai 웹사이트에 업로드하면 인공지능을 이용하여 그 질병과 매치되는 임상실험기관들을 보여주어 질병과 환자대상을 신속하게 연관시켜주는 솔루션을 제공한다.







n  스마트 약물감시


AICure 는 아직도 전세계 50%가 의사가 처방한데로 복용준수가 이루어지지 않는 점에 착안, 인공지능의 이미지인식을 통해 정해진 시간에 환자에게 복용을 스마트폰으로 통지하고 스마트폰을 통해 입안에 약이 삼켜지는 영상을 촬영하게 함으로써 약이 복용되었는지를 감시하는데 AI를 적용하는 회사이다.







n  계량약리학(Pharmacometrics)


계량약리학이란 IoT, 센서, 스마트폰 및 AI를 통한 시뮬레이션을 통해 약물간 의 상호작용에서의 약물동태학(PK)과 약력학(PD)의 진단을 수행하는 것으로, 아스트라제네카의 경우 임상시험에서 환자의 상태에 따른 적응형 임상시험 디자인과 바이오마커의 임상시험통합을 통해 실시간 데이터획득 및 분석을 꾀하고 있으며 조기임상시험의 혁신을 리드하고 있다. 아스트라제니카는 인공지능 기반의 iDecide 플랫폼을 통해 1,2 상 환자 효용성 내약성 데이터를 실시간 분석하며 허용오차에 대해 환자가 스마트폰을 통해 오디오/문자/비디오등을 통해 실시간 피드백을 할 수 있도록 하였다. AI 가 이러한 임상데이터와 환자의 피드백 그리고 문헌데이터등을 실시간 모니터링하여 안전신호를 환자에게 경고하도록 설계되었다. 또한 AI 가 이와 관련된 임상연구자료의 최신상태를 추적하도록 하고있다. 이와 같이 환자 침대머리에 바이오마커테스트, 웨어러블 기기, 원격 모니터링을 도입하여 환자 곁에 다가가서 실시간으로 데이터 획득 및 분석으로 계량약리학의 선구적 역할을 하고 있다.



IBM과 화이자는 파킨슨환자의 신체나 일상생활 환경에 센서등의 IoT 환경을 구축하여 환자의 일상의 모든 데이터 예컨데 신체온도, 몸의 움직임, 냉장고의 문이 얼렸는지 와 같은 데이터들을 지속적으로 측정하여 딥러닝을 통해 분석하여 어떤 변화가 어떤 신경체와 어떤 화합물의 변화로 야기되는가 와 같은 연구에 돌입했다. 파킨슨 같은 뇌질환은 매 분마다 상태가 달라지기 때문에 병원의 탐문검진보다는 24시간 일상에서 발생하는 데이터로부터 치료의 실마리를 AI를 통해 찾고자 하는 노력이 진행되고 있다.






n  AI가 신약개발 전주기에 걸쳐 패러다임 변화를 선


이상에서 살펴보았듯이 AI는 이미 신약개발 전주기에 적용되어 전통적 패러다임을 파괴적으로 바꾸고 있다. 아톰와이즈는 신약개발에 평균 15년 이상이 소요되고 평균 개발비용이 2.5조원이 소요되는 이유는 제약사가 모든 약물을 물리적으로 테스트하기전에 잠재적 신약을 만들어 놔야 하기 때문이라고 말한다. 아톰와이즈는 딥러닝을 이용하여 PC에서 만년이상 걸리는 수백만의 잠재적 화합물을 하루만에 테스트할 수 있었고 이를 통하여 기존 신약들 로부터 2개의 에볼라 바이러스 치료제를 발견할 수 있는 재목적화를 이뤘다. 베네볼런트AI의 경우 신약물질 대상 선정에서 통상 1~2 년의 검증기간을 AI를 통해 1달만에 마쳤다고 한다.




n  에필로그


소프트웨어와 AI를 통한 전산업의 디지털화에 대처하는 기존 산업들이 혁신가의 딜레마에 빠지는 이유는 전통적 미덕을 부정(cannibalize)하기 어렵기 때문이다. 이것이 패러다임 변화기에 변곡점을 간과하게 한다. 하지만 영웅은 이러한 패러다임 변화기에 나타난다. 새로운 기술로 무장한 새로운 종(breed)은 소리없이 전혀 새로운 비즈니스모델과 고객을 만들어 기존 산업을 무력화 시킨다. 우리도 영민하게 준비하고 신속하게 움직이면 이러한 변화의 파고를 기회로 만들 수 있다. 국가별로 인공지능을 국가과제의 1순위로 추진하는 상황 하에서 앞으로의 3년이 중요한 이유이다.




인공지능((AI) 기반 신약개발: 패러다임 변화 - Part 1

신약개발 패러다임 변화: 가설기반에서 인공지능 기반으로


‘      n  전통적 신약개발의 위기

 일간지에서 본 한 제약회사의 기사가 눈에 들어온다. 다국적 제약회사보다 임상 빨랐지만 자금력에 밀려 신약꿈이 좌절되었다는 내용이다. 매출의 20%를 R&D에 쏟아도 글로벌 기업의 3% 수준으로 다국적 제약사가 막대한 자금력으로 대규모 글로벌 임상을 시작하면서 상황이 역전되었다는 것이다. 전통적 신약개발은 신약개발 시작에서 출시까지 평균 12~15년이 소요되며 2조6천억원이라는 막대한 비용이 소요된다. 아울러 이미 40%이상의 알려진 질병들이 이미 치료가 가능하다. 반면 전세계적으로 97%가 신약프로그램에 실패하는 대표적 high risk high return 산업이다.  해외 AI신약개발 컨퍼런스에서 들은 얘기는 무어의 법칙을 거꾸로 읽는 Eroom 의 법칙 즉, 18개월마다 생산성이 2배로 떨어지는 대표적 산업이 제약산업이라는 자조적 주장을 하기도 하는 대표적 고위험 고비용 산업인 것이다.


      n  과학적 방식의 재정의

  200325세의 마이애미 약학대학의 암 연구 과학자 Narain CoQ10 (미토콘드리아내에 위치해서 세포에 영양을 공급하는 엔자임)이 포함된 크림을 흑색종(melanoma) 세포에 실험하고 있었다. 놀랍게도 다음날 보니, 페트리 접시의 모든 암세포가 죽어 있었다. 이후 행한 쥐실험에서는 종양이 55% 줄었다. Narain 은 왠지 몰랐다. 그는 노벨수상자와 연구중인 지도교수 Hsia 에게 이러한 사실을 알렸다. 80세의 지도교수는 나는 이런 유전학 기술을 믿지 않으며 생화학이 건강의 연속과 질병의 시작을 관장하는 신체의 기반이다. 지질체, 엔자임과 미토콘드리아가 특히나 흑색종 같은 암을 죽이다니, 너는 실험을 망친 거다라고 말한다. 그 당시는 휴먼게놈프로젝트가 발표된 지 2년이 지난해라 암은 주로 유전자에 의해 영향을 받는 다라고 믿던 시기였다.

Narain 은 가설을 수립하고, 테스트하고 데이터 수집하고 분석했다. 그런데 이해가 안되었다. Narain 은 제약회사가 암치료약을 생산하는 방법에 회의가 들었다. 어떤 과학자가 특이한 단백질이 특정 암에 관계가 있다고 생각되면, 제약회사는 이 단백질을 수백만의 화합물과 스크리닝하여 이중 아주 소수가 화학적으로 반응하여 잠재적으로 신약후보가 된다. 이것이 소위 교과서에서 얘기하는 과학적 방법인 것이다. Narain 는 이를 hit and miss 라고 부른다. 질병 치유 접근을 다트보드 놀이 같은 방법으로 접근한다는 것이다.  
이후 Narain 이 근무하던 피부과에 썬탠 브랜드권리를 의논하러 방문한 사모펀드 사장 Gray 에게 우연히 CoQ10 크림 얘기를 하게 되고 실리콘밸리의 부동산재벌 Carl Berg 를 소개받아 이 3명이 향후 Berg 라는 회사를 설립하게 된다.

201311Berg 100명의 췌장암, 유방암, 간암, 뇌암 환자들에게 BPM31510 이라는 AI 알고리즘에 의해 탄생한 신약 임상시험에 돌입하였다. 이는 대학병원에서 수집된 1000명의 환자로부터의 건강하거나 질병이 있는 세포조직의 추출 로부터 시작되었다. 이는 과학적 방법을 정반대로 접근하는 것으로, 실험을 하고 특별한 유형의 데이터를 생성하도록 유도하는 사전에 각인된 가설 대신에, 환자 들로부터의 데이터가 가설에 이르도록 하는 것이다. 이는 신약개발 패러다임이 가설 후 탐색에서, 데이터에 기반한 AI 기반의 탐색 후 추론으로 패러다임이 변하는 것을 뜻한다.






n  ‘a-ha’ 모멘트


이를 위하여 Berg1000명의 환자로부터 40가지 암조직을 수집하여 배양세포에 in-vitro test 로 체내환경과 같은 당분, 산소를 주입하여 지방, 대사물질, 단백질, 엔자임 배출 등을 측정했다. 이렇게 하면 유전체 정보와 함께 한조직에서 140억개의 데이터가 수집되고 이를 AI로 하여금 정상세포와 질병세포에 대해 데이터를 비교하게 훈련시키면, AI 알고리즘이 어떻게 정상세포가 궤멸하는지 어떻게 질병으로 발전하는지 잠재적 치료법은 뭘 지에 대해 그전에 몰랐던 통찰력을 제공받게 된다. Berg 는 이를 탐문적(interrogative) 시스템이라 부르는 것으로, 이러한 결과, 세포에서 발생하는 유전자, 단백질, 지질, 대사물질등의 분자 작용 케스케이드를 작성할 수 있었으며 이는 마치 항공지도를 보듯이 허브와 바퀴살 같은 구조로 나타난다. 이는 정상에서 암세포로 이끄는 생리학적 사건들을 전례 없는 자세한 묘사로 보여주어 허브는 정상조직에 비해 암조직이 풍부하거나 혹은 부족한 분자들을 표시함을 알게해준다. 즉 허브에 있는 분자들이 Berg 의 신약후보가 되는 것이다.   





  이러한 묘사에서 5개의 커다란 허브를 볼 수 있었는데, 가장 큰 허브는 미토콘드리아 내부에 사는 엔자임 그룹으로 이루어져 있다. 그 중에 하나가 CoQ10 였다. 이것을 본 순간 Narain 을 엄청난 ‘a-ha’ 모멘트를 가졌다고 한다. 이제 인공지능 AI 가 암의 지렛대 역할을 하는 것은 미토콘드리아라고 알려주는 순간이었던 것이다. 암세포는 미토콘드리아를 끄고 산소대신 젖산(lactate)으로부터 에너지를 생산할 수 있었던 것이었다. CoQ10을 주입한 것이 미토콘드리아의 생존을 도와 결국 암 진행 효과를 뒤집어서 암세포를 정상세포로 변환시킬 수 있었던 것이다


n  신약 전 개발주기에서의 인공지능 적용


2016년 인공지능 학회 NIPS에서 얀리쿤 교수는 머신러닝을 크게 강화학습, 지도학습, 비지도학습으로 분류했다. 강화학습은 알파고에서 보듯이 일련의 보상(reward)을 극대화하기위해 움직이도록 학습되고 예측한다. 이는 게임이론에서 발전한 것으로 2014Atari 벽돌깨기를 아무 사전지식없이 화면만 보고 2시간 학습해서 완벽하게 승리했으며 2017년에는 온라인 비디오 게임분야 Dota 에서 bot를 통해 우승자에게서 승리하였다






지도학습은 고양이 사진을 고양이라고 라벨을 입력해서 학습시키면 수백만 이미지 중에 고양이만을 정확히 찾아낼 수 있다. 반면 비지도학습은 이미지에 라벨 데이터가 없이 많은 데이터를 학습하여 머신이 관측된 부분의 입력에 대해 어떠한 부분도 예측 한다.


인공지능이라고 하는 커다란 범주에 머신러닝이 속하고 그 중에 딥 러닝(deep learning)이라고하는 신경망(Neural Network)을 이용하는 머신러닝이 있다. 이러한 딥러닝은 정보탐색, 신약설계, 표적발견, 전임상 실험설계, 임상시험, 스마트 약물감시, 계량 약리학, 신약개발 의사결정까지의 전 주기의 신약개발에 적용되고 있으며 미국의 경우 기존 제약회사와 AI벤처와의 연합이나 지역별 거점 대학과 제약기업 그리고 AI 벤처등이 활발한 협업을 통해 특정 분야에 성과를 거두고 있는 사례가 나오고있다. 이는 in-vitro 실험, 화합물 in silico 합성, 데이터 분석을 통한 알고리즘 개선, 임상시험을 위한 대학의 역할 등이 필요한 신약개발의 특성에서 기인한 것이 아닌가 한다.


n  표적발견


표적발견은 머신러닝기반의 모델링을 통해 분자, 이미지, 환자데이터를 분석하여 질병을 일으키는 난해한 바이오마커 패턴을 발견하기위한 예측모델을 구축하는 것을 뜻한다. 그러나 최신 기술의 발전은 이보다 더 진화하여 젊은 환자와 나이 든 환자, 건강한 환자, 질병에 걸린 환자들로부터 추출한 장기나 조직의 세포에 대한 유전자, 혈액, 단백질, 대사물질, 지질 등의 omics 정보와 함께 경로(pathway) 정보도 함께 비교하고 점수화 하여 암과 노화(aging)에 대한 개개인의 전체 신체의 시뮬레이션을 통한 개인 맞춤 노화관련 신약후보물질과 파이프라인 개발을 제공하는 것을 목적으로 하는 회사도 있다.


인실리코 메디신은 수천가지의 질병 그리고 10억가지의 분자구조 데이터베이스로부터 신호체(signalome)단계의 프로파일과 전사반응(transcriptional response)에 대한 연관관계를 딥러닝의 GAN(Generative Adversarial Network) 알고리즘을 사용하여 그래프로 생성하고 이를 이용하여 원하는 약물동력학(pharmacokinetics)과 약물역학(pharmacodynamic)적 특성을 가진 새로운 화합물을 딥러닝의 강화학습을 활용하여 생성한다. 




GAN 알고리즘은 게임이론에서 진화한 머신러닝 알고리즘으로, 수많은 사진을 훈련시킨 원래 신경망에 이를 위조하는 적대적 신경망을 함께 연결하면 이 위조목적의 신경망의 산출물이 원래 훈련된 이미지와 구별할 수 없는 이미지를 생성하는 머신러닝 알고리즘이다







n  재목적화


  
만약 딥러닝이 9천만개의 특허, 3천만개의 과학저널, 매년 수만건의 논문, 수천가지 질병, 10억가지의 분자구조등의 데이터들을 실시간으로 읽어 들여 딥러닝을 통해 질병과 영향을 줄 개체(entity)로서의 생물학적 타겟에 대한 관계 탐색으로 전통적 방식에서 판별하지 못한 새로운 통찰력을 제공한다면 이미 임상시험이 끝난 약들을 알려진 질병-타겟 관계에 재목적화(repurpose)하여 사용할 수 있음으로써 상당부분 속도, 비용, 효율성 측면에서 최적화할 수 있음을 뜻한다.





베네볼런트AI는 이러한 방대한 정형, 비정형 데이터들을 실시간으로 읽어 들여 신경망의 딥러닝을 통한 자연어처리, 이미지처리(OCRNLP를 소화 처리 검색하여 개체와 관계를 추출), 개체명 인식(Named Entity Recognition), 관계추출의 수순으로 데이트 들로부터의 연관된 관계속에서의 통찰력을 찾아 지식그래프라는 입체적 트리구조의 연관 그래프를 보여준다. 여기서 개체명인식이란, 우선 자연어처리분류기를 통해 문자, 단어, , 행 혹은 문장과 같은 정보가 음소, 단어 단위의 토큰화라는 것을 거치고나서 명사, 동사 등의 품사 결정이후에 인명, 조직명, 시간 등과 같은 개체(entity)를 인식하는 것을 뜻한다. 이러한 개체들은 생체의학(biomedical)도메인에 관련된 단어와 관계로 구성된 사전 즉 온톨로지에 의해 서로 다른 데이터안의 특정 개체들을 인식하고 관련 짓는데 사용된다. 80%이상의 획득된 정보가 일반 텍스트와 같은 비정형 데이터인데, 예를 들어 cb2 가 칸나비노이드 수용체라는 것도 이러한 온톨로지를 통해 이해된다. 아울러 유전체 X 는 알츠하이머 질병의 세포에서 발견된다유전체 X 는 알츠하이머 질병의 세포에서 조절되지 않는다는 이 두 문장에서는 후자가 유전체 X 와 알츠하이머 질병 이 두 개체사이에 유의미한 관계가 있다고 개체명인식기가 판별한다



AI를 이용하여 이렇게 취합된 정보들은 지식그래프(knowledge graph)를 통해 개체간의 관계가 그래프로 표시되어 시각적으로 여러 각도에서 탐색해볼 수 있도록 가시화된다. 아래 그림은 지식그래프중에 하나인 IBM 왓슨연구소에서 특허를 가지고있는 지식그래프이다. 이 그래프는 3차원으로 질병과 부작용간의 관계를 그래프로 보여준다. 왼쪽에 있는 3차원 구(sphere)의 질병에 대해 줌인(zoom in)하면 오른쪽과 같은 관계가 자세히 보여진다.






AI 가 이들 간에 관계를 추론하도록 훈련시키면 현존하는 관계에 대해 모르고 있던 관계를 찾아낸다. 이는 마치 주기율표가 처음에 구성되었을 때, 빈 자리에 있어야 할 주기율표가 결국 발견되는 것과 같다

베네볼런트AI 의 경우 신약물질 대상 선정에 있어 제한적인 정보 환경에서 통상 1~2년의 검증 기간이 소요되는데 반해 인공지능을 통하여 1달여만에 우선 검증을 시작할지에 대한 결정을 끝내고 다음 단계로 넘길 수 있었다고 한다. 의료화학에도 통상2~3년의 최적화가 소요되는데, 베네볼런트 AI4~6천개의 화합물로부터 1년안에 125개의 화합물 타겟을 선정하는 것을 성취했다. 또한 루게릭병의 운동신경에 대해 2015년 말에 가설을 세우고 변역신경과학 외부연구소와 1년반동안 이러한 가설을 검증한 끝에, 5개를 선정하여 3주안에 ALS 질병 성인의 수명을 2~3 개월 연장할 수 있는 3개의 대상을 발견하고 1개의 화합물을 찾은 경험이 있다고 한다. 베네볼런트AI 의 사례에서 보듯이 모든 정보를 바탕으로 하나의 신약에서 실패한 약을 재목적 신약으로 다른 곳에 적용하여 시간과 비용에서 오는 위험을 줄이고 최적화를 앞당기는 것을 재목적화라 한다.




-- Part 2 에서 계속 --