top of page
33.jpg
55.jpg

KAIST부설 한국과학영재학교 온라인 과학매거진 코스모스

  • 블랙 페이스 북 아이콘
  • 블랙 인스 타 그램 아이콘

시리야, 자연 언어 처리가 뭐야?

최종 수정일: 2020년 9월 12일

“100011110101001” 우리는 모두 컴퓨터가 2진법을 사용하여 데이터를 분석하고 계산한다고 알고 있습니다. 그리고 인간과 컴퓨터는 프로그래밍 언어라는 약속을 통해 서로 소통을 할 수 있게 되었습니다. 그러나 과연 컴퓨터와 소통을 하기 위해서는 프로그램을 작성할 수 있어야 할까요? 여러분들은 문자를 2가지의 방법을 통해 보낼 수 있습니다. 첫 번째 방법은 문자 어플리케이션을 켜서 문자 텍스트를 입력하는 방식입니다. 하지만 더 간단한 방법이 있습니다. “OK Google, 코스모스한테 한국과학영재학교 최고라고 보내줘”라고 말하면 끝입니다. 이처럼 요즘은 기계 장치와 직접 소통하는 것이 가능해지고 있습니다. 이렇게 인간의 언어 현상을 컴퓨터와 같은 기계를 이용해서 모사 할 수 있도록 연구하고 이를 구현하는 인공지능의 주요 분야를 자연 언어 처리, 영어로는 Natural Language Processing이라 하며 줄여서 NLP이라고 부르기도 합니다. 그럼 NLP이 어떻게 세상에서 활용되고 있는지와 이런 기술을 접목하여 사용한 여러 기술들을 알아보도록 하겠습니다.

[그림1]

Google Assistant

NLP의 작동 원리

NLP는 사실 엄청 복잡한 수학적 원리를 바탕으로 하고 있는 전산 언어입니다. 하지만 이런 복잡성을 제거하고 가장 기본적인 원리를 알아보도록 합시다. 고전적인 NLP에서는 모든 단어를 독립적인 토큰으로 인지합니다. 예를 들어 “고양이”와 “사자”는 연관성이 없는 토큰으로 취급하는 것입니다. 하지만 딥 러닝 덕분에 많은 것이 달라졌습니다. 컴퓨터 과학자들은 딥러닝을 통해 각 단어들을 하나의 벡터 공간으로 매핑할 수 있게 되었습니다. 따라서 여러 단어 토큰을 벡터 공간에 펼쳐 놓을 수 있다면 “고양이”와 “사자”의 거리는 “고양이”와 “비행기”의 거리보다 훨씬 가까운 거리에 배치됨으로 써, 모든 단어들을 같은 벡터 공간에 매핑할 수 있게 되었습니다. 이러한 매핑을 통해 우리는 여러 데이터 처리가 가능해 집니다. 예를 들어보면 한국과 서울의 관계는 일본과 도교의 벡터 공간에서의 위치와 매우 유사합니다. 이는 나라와 수도라는 밀접한 연관성을 벡터 공간에 반영시킬 수 있다는 뜻을 의미합니다.

[그림2]

NLP의 대략적인 개요도

이런 기능 덕분에 NLP는 다양한 분야에서 사용되기 시작했습니다. 그 대표적인 예시로는 마케팅이 있습니다. 과거 NLP가 나오기 이전에는 마케팅 담당자가 타겟 키워드를 일일이 나열해 방대한 목록을 만들어야 했습니다. 하지만 지금은 AI에게 몇 가지의 “씨앗(seed)“을 입력하면 각 씨앗이 벡터 공간에서 유사한 키워드를 찾아내고 자동으로 활용하게 됩니다. 이 뿐만 아니라 정서, 감정의 분석 측면에서도 성과가 크게 개선되었습니다. 다시 말해 각각의 사용자가 해당 키워드에 관해 느끼는 긍정적인 감정과 부정적인 감정을 알아차릴 수 있다는 뜻입니다.

AI와 NLP

AI를 개발하기 위해서 가장 중요한 것이 데이터입니다. AI는 방대한 양의 데이터를 통해 학습하고 자신이 학습한 내용을 바탕으로 다른 여러 명령을 실행시킵니다. 그러면 데이터는 어디서 구할까요? 사실 이 부분이 문제입니다. 컴퓨터가 알아들을 수 있는 데이터를 넣어 주어야하는데, 이는 대기업도 오랜 시간을 들이지 않는 이상 만들어 내기 힘듭니다. 그러나 데이터를 인식하는 방법을 바꾸면 어떤일이 벌어질까요? 과거 우리가 사용할 수 있는 엑셀, CSV와 같은 데이터 파일은 고작 20%의 정보만 답고 있습니다. 나머지 80%는 여러분이 읽고 있는 이 잡지와 같이 줄글 형식으로 되어 있죠. 그렇다면 컴퓨터가 NLP를 통해 이런 80%의 데이터에 접근할 수 있다면 AI는 놀라운 발전 속도를 보여 줄 것입니다.

[그림3]

과거에는 레이블된 자료만 사용이 가능했다면 이제는 레이블 되지 않은 자료도 컴퓨터가 알아서 이해하고 사용할 수 있다.

마이크로소프트 빌드 2020

매년 개발자들을 대상으로 하는 컨퍼런스인 ‘빌드 2020’은 이번 코로나 사태로 인해 안타깝게도 온라인으로 열리게 되었습니다. MS는 이 자리에서 개발자들을 위한 애저, AI(인공지능), 마이크로소프트365 기반의 새로운 기술과 서비스를 공개했습니다. 이때 공개된 여러 기능들 중에서 사람들의 이목을 가장 많이 끌었던 기술이 있었습니다. 바로 자동으로 프로그래밍을 해주는 기술인데요, 해당 기술을 살펴 보기 이전에 OpenAI라는 것을 먼저 알아보겠습니다.

[그림4]

Microsoft사의 Build 2020

OpenAI는 일론 머스크와 샘 알트만이 공동으로 설립한 비영리 인공지능 연구 기업입니다. 이 기업에서는 텍스트를 생성하는 인공지능을 만들었습니다. 이 프로그램은 성능이 매우 뛰어나 정말 사람이 텍스트를 작성한 것과 같은 높은 정확성과 정밀성을 바탕으로 하고 있었기 때문에, “너무 위험한 도구”라는 별명을 얻고 기업이 공개하기를 꺼릴 정도였다고 합니다.

이런 AI 모델을 이번 컨퍼런스에서 마이크로소프트가 공개한 전 세계의 TOP급의 슈퍼컴퓨터를 이용하여 마이크로소프트가 이전에 인수한 깃허브 (영어로는 Github로 사람들이 프로젝트를 진행할 때 여러 사람들과의 협업을 하거나, 방대한 양의 코드 데이터를 저장하는 프렛폼이다. 이는 오픈리소스로 코드를 사람들과 나눌 수 있는 기능도 있다.)에 있는 엄청난 양의 오픈 소스들을 NLP를 사용하여 학습시켰습니다. 그랬더니 마이크로소프트에서 공개한 AI 모델이 사람의 언어를 받아들여 사람이 원하는 코드를 작성해주는 현상이 발생하였습니다. 아래의 영상을 보면 어것이 얼마나 대단한 일인지를 여러분들이 직접 확인할 수 있을 것입니다.

[동영상1]

https://www.youtube.com/watch?v=fZSFNUT6iY8&t=130s

OpenAI로 파이썬 코드를 생성하는 모습

[동영상2]

https://www.youtube.com/watch?v=eNhYTLWQFeg

전체 회의를 보고 싶은 사람들은 이 영상을 보면 된다.

세상은 빠른 속도로 변화하고 있고 우리가 거부감이 들 정도로 많은 기술들이 나오고 있습니다. 이런 급변의 세상에서 우리 인간은 무엇을 할 수 있는지, 고민하는 것이 중요할 것 같습니다. 정보와 물리의 융합은 무궁한 발전을 이룰 수 있으며 AI는 더 이상 인간이 필요 없는 경지에 도달 할 수 있습니다. d이때 우리가 전공자처럼 알지는 못하더라고 이런 기술을 잘 알고 있으면 미래에 언젠가는 사용할 일이 있을 것으로 기대합니다.

조회수 421회댓글 0개

최근 게시물

전체 보기
bottom of page