본문 바로가기
AI와 화학물질

[용어 정리] AI 신약개발 자체 도구/알고리즘 개발?

by Good.PhD 2025. 5. 8.

라이브러리 vs 오픈소스

딥러닝 모델을 개발할 때 반복되는 작업들이 많기 때문에, 자주 반복되는 연산들을 마치 레고 블럭처럼 정의해두고 다양한 블록들을 조립하면서 다양한 인공신경망 구조를 만들게 됩니다. 라이브러리는 이러한 반복 작업들을 레고 블록처럼 제공하기 때문에 딥러닝 모델 개발에 요구되는 수고를 많이 줄여주는 효과가 있습니다.

현재 딥러닝 모델 개발에 사용되는 라이브러리는 google에서 개발한 tensorflow (텐서플로우)나 페이스북 인공지능 연구소 (FAIR)에서 개발한 pytorch(파이토치)라는 라이브러리를 사용합니다. (참고로 현재 연구분야에서 가장 많이 사용하는 것은 파이토치입니다.) 딥러닝 연구가 가속화된 것은 딥러닝 모델 개발 라이브러리가 공개되면서부터입니다. 그전에는 모델 개발에 요구되는 모든 연산을 코딩해야 했습니다만, 이렇게 라이브러리가 공개되면서 개발 속도가 빨라졌습니다. 이러한 맥락에서 딥러닝 개발에 오픈소스를 사용한다고 말할 때는 보통 텐서플로우나 파이토치라는 라이브러리를 사용한다는 뜻입니다.

텐서플로우와 파이토치는 기본 레고 블록을 제공해주고, 모델을 개발하는 사람들은 라이브러리에 정의된 레고 블록을 조립해서 최종 결과물을 만들게 됩니다. 보통 오픈 소스는 깃허브(github)라는 곳을 통해서 공개되는데, 이런 곳에 공유된 결과물들을 보면 텐서플로우나 파이토치같은 라이브러리를 사용해서 어떤 방식으로 블록들을 조합해서 최종 인공신경망을 만들었는지를 확인해볼 수 있습니다. 딥러닝은 굉장히 많은 레고 블록들이 조립된 결과물이기 때문에 가능한 모든 조합을 확인해보는 것은 현실적으로 불가능합니다. 그러다 보니 다른 곳에서 사용한 신경망 구조를 가져와서 데이터만 바꿔서 훈련을 하는 경우도 많습니다. 다른 신경망 구조에 조립을 몇 개 더 추가하거나 제외시켜서 약간의 수정을 거친 후에 모델을 사용하는 경우도 많습니다. 이런 경우도 자체 개발이라고 볼 수 있습니다. 그래서 모델 자체 개발이라는 말의 의미가 그렇게 명확하지는 않다고 봅니다.

 

오픈소스 vs 오픈모델

AI 분야는 오픈소스 덕분에 빠르게 발전했습니다. 하지만 챗GPT가 등장한 후에는 모두 오픈소스로 풀지는 않습니다. 다만 오픈모델은 있습니다. 오픈소스라고 하면 모델 개발 과정에 사용된 코드를 모두 공개하는 것을 의미합니다. 최근에는 코드는 공개하지 않지만 모델은 공개하는 경우가 생기고 있습니다. 예를 들어 허깅페이스에는 다양한 AI 모델들이 업로드 되어 있습니다. 여기서 모델만 다운받으면 사용할 수 있는 경우가 있는데, 그렇다고 해서 모델 개발에 사용된 코드까지 공개되어 있지는 않습니다. 그래서 코드까지 공개한 경우와 모델만 공개한 경우로 구분할 수 있습니다. 공개된 모델은 어떤 블록들이 조합되어 있는지 확인 가능하기 때문에 오픈 모델의 구조를 확인해서 약간의 개량 후에 모델을 다시 훈련시키기도 합니다.

 

자체 도구 개발 vs 자체 알고리즘 개발

자체 도구 개발과 자체 알고리즘 개발은 서로 다른 의미입니다. 개발 도구는 기본 라이브러리를 의미합니다. 텐서플로우나 파이토치를 의미하는데, 이런 라이브러리를 다시 만드는 일은 의미가 없습니다. 텐서플로우와 파이토치가 지배적으로 사용되고 있고, 자체 라이브러리로 만든 결과물은 공유가 않되기 때문에 사용이 불가합니다. 그래서 이미 만들어진 라이브러리를 활용해야 합니다. 연구분야에서는 파이토치가 현재 대세가 되었기 때문에, 국내외 연구기관 대부분 파이토치를 기반으로 모델을 개발합니다.

자체 알고리즘이라고 하면 인공신경망의 구조라고 생각이 됩니다. 알고리즘이라는 표현자체가 모호하게 사용되고 있긴 한데, 딥러닝 분야에서는 보통 신규 신경망이라고 보면 됩니다. 라이브러리는 기초 블록만 제공하고, 어떻게 블록을 조립할 것인지는 다른 문제입니다. 연구자별로 다양한 방식으로 블록을 조립해서 테스트를 하기 때문에 자체 모델은 얼마든지 만들 수 있습니다. 새로운 도구를 만들 필요는 없고, 이미 있는 라이브러리들을 이용해서 각자의 알고리즘을 만들어낼 수 있습니다.

 

신규 알고리즘 개발에 대한 2가지 해석

신규 알고리즘 개발은 새로운 인공신경망을 개발한다는 의미가 되는데, 새로운 인공신경망 개발은 2가지로 해석될 수 있습니다.

현재 딥러닝에서 가장 많이 사용되는 인공신경망은 transformer입니다. transformer는 하나의 레고 블록처럼 생각할 수 있는데요. 이 블록을 다양하게 결합시켜서 쌓아감으로써 다양한 인공신경망을 만들게 됩니다. transformer 블록을 결합시키는 방법이 여러 가지 있는데, 다양한 방식으로 조립을 해서 여러 가지 다른 모델들이 만들어지게 됩니다. 예를 들어 챗GPTtransformer 기반이라고 알고는 있지만, 오픈AI에서 모델 공개를 하지 않았기 때문에 어떤 방식으로 블록들을 조립해서 챗GPT를 만들었는지는 알기 어렵습니다. 다양한 기업들에서 여러 가지 AI 모델을 내놓고 있는데, 각자 조금씩 다른 방식으로 블록을 결합시켜서 만듬으로써 조금씩 성능이 다른 모델들을 내놓고 있습니다.

또 다른 의미의 알고리즘 개발은 새로운 블록을 만드는 일입니다. transformer보다 더 뛰어난 새로운 블록을 만들기 위해 스탠포드에서는 mamba라는 새로운 구조의 블록을 제안했습니다.

정리하자면, 신규 알고리즘 개발을 할 때 1) 블록을 조립해서 만든 최종 결과물을 새롭게 만드는 경우가 있고, 2) 새로운 블록을 개발하는 경우가 있습니다.

 

신약 개발에서 사용되는 딥러닝

앞에서 언급한 2번처럼 새로운 블록을 개발하는 것은 AI 기본 연구에 해당합니다. AI 신약 개발 분야는 앞에서 언급한 1번에 해당되는 연구만 진행하고 있습니다. , AI 기본 연구에서 잘 개발한 여러 블록들을 가져와서 다양하게 조합해보면서 더 성능이 좋은 신경망을 찾는 연구를 수행하고 있습니다. 국내외 모두 1번에 집중되어 있습니다. 신약 개발은 AI 분야에서 개발한 성과물들을 활용하는 연구이기 때문에 그렇습니다.

그래서 자체 알고리즘을 개발한다고 말할 때, 신약개발 분야에서 패러다임을 바꿀만큼 영향력이 있는 새로운 블록을 만드는 연구를 하는 곳은 없습니다. 하지만 블록을 다양하게 조합하면서 만들어낸 여러 종류의 신경망을 테스트 해보면서 더 예측력이 좋은 블록의 조합을 만드는 연구는 하고 있습니다. 그래서 기존 블록만 조합하면 되기 때문에 누구나 새로운 모델은 쉽게 만들어낼 수 있습니다. 다만 그렇게 제안한 구조가 효율적인지 성능이 좋은지는 아무도 알 수 없기 때문에 여러 가지 조건을 바꿔가면서 실험을 합니다.

모델의 성능은 결국 데이터에서 나옵니다. 단순히 블록을 잘 조립했다고 해서 성능이 좋아지지는 않습니다. 글로벌 기관들에서 더 좋은 성과가 나오는 이유는 알고리즘이 좋다기 보다는 데이터의 질이 좋기 때문입니다. 글로벌 제약사 같은 경우 자체 보유하고 있는 대규모 데이터가 기본적으로 있기 때문에 더 많은 블록의 조합을 테스트해볼 수 있습니다. Ochem을 운영하고 있는 팀의 경우도 자체 보유하고 있는 데이터의 양이 상당하기 때문에 더 많은 조합의 신경망을 테스트해볼 수 있습니다. 국내에서는 대부분 공개데이터로 모델을 개발하는데, 확보할 수 있는 데이터의 한계 때문에 모델 개선에 한계가 있습니다.