[편집자주 / '인공지능(AI)'은 더 이상 SF영화에서나 보던 상상의 기술이 아닙니다. 이미 현실과 실제가 되어, 알게 모르게 우리 일상에 스며들고 있습니다. 이에 인공지능에 관한 보편적 지식은 현대인이라면 누구라도 가볍게 알아 둘 만합니다. 이 연재에서는 인공지능의 역사부터 일상/산업 내 융합, 국내외 인공지능 산업 현황, 인공지능 관련 최신 트렌드, 근미래의 인공지능 융합기술 등, 필자가 오랜 동안 현업에서 얻은 다양한 경험과 지식을 하나씩 독자와 공유합니다.]
지난 1부에서 말한 대로, 인공지능은 이제 거의 모든 산업에 적용, 활용될 정도로 산업의 촉매제 역할을 하고 있다. 우리가 매일 사용하는 거의 모든 스마트폰에는 인공지능을 활용한 음성인식 기능이나, 각종 자료를 찾아 주는 기능 등이 탑재돼 있다. 최근 한 아파트에는 인공지능을 통해 자동차 번호판을 자동으로 인식, 입주자를 식별하고 관리하는 기능을 제공하고 있고, 주변 곳곳의 CCTV로 위험 상황을 인지하는 기능 등에도 인공지능이 적극 활용되고 있다.
이렇듯 인공지능 기술은 이미 일상 전반에 다양하게 적용돼 있지만, 이를 어떻게 배치, 적용, 활용하는 지에 관해서는 모르거나 관심 없는 이들이 많다. 심지어 전문가들까지 소프트웨어 개발과 인공지능 모델 개발을 같은 것으로 이야기하거나, '개발과정이 오픈소스 가져다 쓰면 된다'고 단순하게 말하는 이들도 적지 않다. (이런 오해가 생기는 이유는 아래에서 다시 설명하겠다.)
제공=곽재도
인공지능 관련 기술을 적용한 융합과 활용에 익숙하지 않은 건 어쩌면 당연한 건 지도 모르겠다. 지금은 당연하고 자연스러운 것이 불과 수십 년 전에는 전혀 그렇지 않았다. 지금은 수 많은 사람들이 노트북을 사용하지만, 애플이 1976년 처음으로 '애플(Apple I)'이라는 개인용 컴퓨터를 만든 이후, 1980년대 모델이 다양화되고 본격적으로 보급된 90년대 초반 까지만 해도, 컴퓨터는 집에 고이 모셔 두는 고급/고가 제품이었고, 행여나 누군가가 이 컴퓨터를 만져보려 하면, '컴퓨터 쓸 줄 알아?'라며 사전 확인도 철저히 했다.
마찬가지로, 우리나라에 핸드폰이 처음 출시된 1988년, 지금으로선 어마어마한 크기의 휴대폰을 다른 사람에게 잠시 빌려 줄 때도 '혹시 핸드폰 사용할 줄은 아세요?'라 물어야 한다. 그런데 지금은 그보다 훨씬 더 복잡하고 다양한 기능의 스마트폰과 노트북을 누구든 자유롭게, 말 그대로 '묻지도 따지지도 않고' 사용한다. 이때가 지금의 MZ세대들이 태어난 시기였으니 그리 먼 옛날의 일도 아니다. 아마도 지금의 알파세대(2010~2024년생)들이 MZ세대의 사회적 위치에 해당될 근미래에는 누구나 인공지능을 편하게 가지고 놀 게 되지 않을까.
제공=곽재도
이렇게 일상에 널리 활용되고 있고, 앞으로 누구에게든 익숙하게 될 인공지능을 활용하는 기술은 어떻게 개발되는 걸까? 일반적으로, 소프트웨어 개발을 중심으로 한 ICT(정보통신기술) 기업의 개발 과정에는 익숙한 편이다. 요즘은 초등학교 교육과정에도 컴퓨터 프로그래밍이 포함돼 있고, 코딩이 필요 없는 블록형 프로그램도 보급되고 있어, 누구나 쉽게 자신만의 논리(로직)를 만들어 컴퓨터에서 바로 실행 시킬 수 있다. 인공지능도 그런 개발 과정을 거쳐 만들어 지는 걸까? 그 차이점을 이제 하나씩 알아보자.
먼저, 인공지능 기술 개발과 소프트웨어 개발에는 가장 큰 두 가지 차이가 있다. 하나는 개발 과정의 콘텐츠다. 우리에게 익숙한 소프트웨어 개발 콘텐츠가 바로 '소스 코드(Source Code)'다. 컴퓨터가 이해할 수 있는 말은 사람이 알아볼 수 없기 때문에, 사람의 언어를 컴퓨터의 언어로 바꿔주는 역할을 한다. 그런데 인공지능기술을 활용하기 위해서는, 먼저 해결해야 할 문제(Problem)를 정의하고 이를 가장 잘 해결할 것 같은 '모델(Model)'과 이를 학습시킬 '데이터(Data)'가 필요하다. 이것이 인공지능 기술을 활용하기 위한 기본 콘텐츠다.
제공=곽재도
이렇게 소프트웨어를 개발하기 위한 소스 코드는 우리의 생각과 논리를 순차적으로 표현한다. 예를 들어, 집에 들어가서 이메일을 확인, 처리하고 잠자리에 들 때까지 그 내용을 정리한다면, 1)엘리베이터를 타고 2)현관문을 열고 들어가 3)옷을 갈아입고 3) 씻고 4)식사를 마치고 5)컴퓨터 앞에 앉아 메일을 확인하고 5)잠자리에 든다.
이 과정에서 한두 가지 순서가 바뀔 순 있으나, 이는 상황에 따른 변화일 뿐이다. 예를 들면, '퇴근 중인데 메일 답장을 재촉하는 연락이 왔다면' 위 과정에서 ‘식사 보다 메일 답변'의 우선 순위가 앞선다. 다만 이러한 상황 변화 역시 순서만 바뀔 뿐 내 자신이 예측 가능한 범위 내에서 발생한다.
여기에 인공지능기술 개발과 소프트웨어 개발의 중요한 두 번째 차이가 있다. 바로 '예측 가능한가, 그렇지 않는가'의 차이다.
소프트웨어 개발의 콘텐츠인 소스 코드는 인간의 자연어를 컴퓨터가 이해하는 말로 바꿔주는 것인데, 이를 컴퓨터가 제대로 알아 듣고 실행하는 모든 과정을 사람이 하나씩 점검하고 수정할 수 있다. 순차 단계와 상황 조건에 따른 내용으로 가능한데, 이러한 과정을 '디버깅(Debugging)'이라 한다.
즉 디버깅 과정을 거치면 개발자가 개발한 기본 내용을 순차적으로 실행시켜 결과를 만들 수 있다. 물론 여러 사용자의 상황을 충족하기 위해서는 테스트 단계는 물론이고 정식 출시 이후에도 지속적인 수정 과정을 통한 '패치(Patch)'라는 업데이트가 발생한다.
하지만 인공지능 기술 활용의 경우, '모델' 과 '학습용 가공 데이터'를 컴퓨터에게 전달하고, 대용량의 컴퓨팅 자원을 통해 학습을 하는 과정을 거친다. 그 결과는 '정답'이 아닌 '확률'로 나온다. 즉 인공지능은 정답이 아닌 '컴퓨가 학습한 결과를 토대로, 지금 입력한 내용은 몇 %의 확률로 이러하다'는 형식으로 알려 주는 것이다.
4차 산업혁명의 핵심 기술인 인공지능과 어마어마한 컴퓨팅 자원을 통해 학습을 시키는데, 역설적으로 인간의 경험적인 요소가 가장 중요하다는 이야기가 나온다. 요즘 인공지능 기술을 활용하는 기업들이 사업화 과정을 진행하면서, 대부분 '경험 있는 인력'을 빼놓지 않고 언급하는 이유가 여기에 있다.
지난 회에서, 인공지능의 발전 관점에서 이미 상용화된 기술 등을 설명한 바있다. 흔히 듣는 '머신러닝'과 '딥러닝'은 현재 가장 널리 상용화된 인공지능 기술이다. 딥러닝 활용이 많아 지면서 학습에 필요한 컴퓨팅 자원도 점점 커지고 있다. 그럼 머신러닝과 딥러닝은 어떤 차이가 있고, 딥러닝은 학습을 위해 왜 더 많은 컴퓨팅 자원을 필요로 할까?
아래 그림에서 보듯, 머신러닝과 딥러닝의 가장 큰 차이는 학습 데이터에서 주요 구분 요소(Feature)를 추출/선택하는 과정까지도 컴퓨터가 학습한다는 것이다.
제공=곽재도
좀더 쉽게 설명하자면, 개와 고양이를 사진 속에서 구분한다고 가정하자. 머신러닝의 경우는 데이터에서 고양이와 개와 다른 점(구분요소/Feature)들, 이를 테면 귀 모양, 입 모양 등을 일일이 찾아 레이블을 붙여 줘야 한다. 이를 라벨링 혹은 레이블링이라고 한다.
반면 딥러닝은 어노테이션(annotation: 일종의 색인 또는 주석)을 활용하는데, 사진 속에는 '고양이 한마리가 있다', '여기는 고양이 한마리와 개 한마리가 있다', 또는 '고양이 두 마리와 사람이 있다' 등과 같이 표시하고, 컴퓨터가 이를 구분하는 방법을 학습하게 된다.
다만, 이 학습법도 여러가지 툴을 활용해 단순 체크만 하는 경우가 많다. 그렇다 보니 구분 요소가 백 만개가 될 수도, 천 만개가 될 수도 있다. 이 때문에 딥러닝은 엄청난 컴퓨팅 자원이 필요하고, 학습에 걸리는 시간도 예측하기가 어렵다. 어쨌든 이렇게 학습이 완료되어 우리가 원하는 확률로 고양이와 개를 구분해 내면 추론모델이 완성된다.
이러한 추론이 시작되면 일반적으로 학습에 필요한 컴퓨팅 자원의 10% 이내로 하루에 수 억, 수 십억 장의 사진을 학습하며, 사진 속 고양이와 개를 구분해 낼 수 있다. 부가가치를 인공지능 학습을 통해 만들어 내는 것이다.
어노테이션 툴의 예(출처=구글 이미지 캡처) / 제공=곽재도
여기서 이런 질문이 나올 수 있다. '머신러닝과 딥러닝 중 딥러닝이 좋은 것 아닌가'하는... 각각의 장단점이 있다. 이 둘 중 어떤 것이 좋을 지는 그 목적에 따라 다르다. 일반적으로 신속성이 필요할 때는 머신러닝이 적합하고, 정확성이 요구될 때는 딥러닝이 적합하다고 알려져 있으나, 이는 사실 필자가 앞에서 말한 대로 그 누구도 예측이 불가능하다. 어떤 것을 해결할 문제(Problem)에 적용해야 할 지는 경험적인 측면이 많이 작용하기 때문이다.
다만 이를 사람이 모두 해결할 필요는 없다. 인공지능 기술 활용에는 일반적으로 '딥러닝 스택'이라고 하는, 데이터와 학습을 위한 컴퓨팅 자원, 그리고 이를 활용하도록 해주는 프레임워크와 알고리즘 등이 제공되고 있다.
딥러닝 스택의 예 / 제공=곽재도
우리나라는 대부분 구글이 제공하는 '텐서플로우'와 메타(구 페이스북)의 '파이토치'라는 프레임워크를 80% 이상의 기업이 사용하고 있다. 이러한 프레임워크는 간단한 데이터와 알고리즘의 조합을 활용해 학습과 추론이 가능하도록 구성되어 있다. 또한 이들은 또한 기본적인 컴퓨터 언어를 활용하면 되기 때문에, 기존 소프트웨어 개발자들도 어렵지 않게 사용할 수 있다.
인공지능을 활용한다고 하면, 대개 '파이썬'이라는 프로그래밍 언어를 배우라 한다. 즉 '파이썬 = 인공지능'이라 이야기하는 이들도 많다. 파이썬은 자바나 C++ 같은 소프트웨어 개발 언어 중 하나다. 그런데 왜 인공지능 활용에는 파이썬을 공부해야 하는 걸까?
파이썬이 가장 많은 인공지능 프레임워크를 활용할 수 있다 / 제공=곽재도
그 이유는 위 그림처럼, 다른 프로그래밍 언어보다 인공지능 프레임워크를 커버하는 폭이 넓기 때문이다. 파이썬이 인공지능을 만드는 건 아니지만, 인공지능 기술을 활용하기 위한 프레임워크에 파이썬이 가장 적합하다.
위에서, 머신러닝과 딥러닝의 차이와 학습용 데이터 가공의 차이, 그리고 이를 활용하는 프레임워크에 대해 간단히 설명했다. 그럼 이러한 프레임워크가 기본 지원하는 기능으로 우리가 정의한 문제를 해결하지 못하면 어떻게 할까?
아마도 이럴 경우는 스스로 모델을 다시 디자인하고 변형하여 딥러닝 스택을 통해 재학습시켜야 할 것이다. 앞서 설명한 대로, 딥러닝에는 많은 컴퓨팅 자원이 필요하고, 학습과 재학습에도 시간이 오래 걸린다. 이러한 컴퓨팅 자원을 제대로 갖추려면 수 천, 수 억원이 들 수도 있다. 인공지능 전용 클라우드 서비스를 활용한다고 해도, 최소 매월 수 백만 원 이상이 지출된다. 스타트업이나 초기 성장 기업에는 상당한 부담이다.
이들에겐 필자가 속한 인공지능산업융합사업단이 지원하는 '국가인공지능데이터센터 서비스'를 추천한다. 현재 전 세계 여러 국가가 우리나라와 비슷한 방식으로, 컴퓨팅 자원을 인공지능 활용 기업의 학습과 추론을 위해 제공하고 있다. 결과를 예측할 수 없고 초기에 고가의 컴퓨팅 자원에 투자할 여력이 없는 인공지능 활용 기업에겐 이와 같은 국가적 투자가 올바른 방향이라 생각한다.
다음 글에서는 인공지능 융합산업 동향과 인공지능 컴퓨팅 자원에 대해 조금 더 심도 있게 알아본다.
인공지능산업융합사업단 곽재도 본부장
미국 뉴욕 소재 로체스터 대학에서 인공지능 분야를 공부한 뒤, 문화체육관광부 문화기술 PD로 재직하며 연구개발 사업을 기획했다. 현재 대통령 소속 지식재산위원회 4,5,6기 전문위원으로 활동 중이며, 인공지능산업융합사업단 소속으로 국가 인공지능 데이터센터를 비롯해 인공지능 산업융합 생태계 조성을 위한 집적단지 조성사업을 추진하고 있다.
정리 / 동아닷컴 IT전문 이문규 기자 munch@itdonga.com