태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

월간기술동향 | AI와 대화를? 소오-름


아이언맨의 인공지능 비서 ‘자비스’를 아시나요? 아이언맨이 자비스에게 지시를 하면, 자비스는 그의 말을 정확히 인지하고 지시를 수행합니다. 자비스가 실제로 나의 비서가 된다면 얼마나 좋을까요? 현실에서도 자비스와 같은 인공지능 비서를 사용하게 될 날이 멀지 않은 것 같습니다. 

지난 5월, 구글 I/O 컨퍼런스에서는 놀라운 시연이 펼쳐졌습니다. 인공지능 비서 구글 어시스턴트가 직접 미용실에 전화해 직원과 대화하여 예약을 해주고 쉬는 날을 확인하는 시연을 보였습니다. 아마 아래 영상을 보시면 깜짝 놀라실 겁니다.


<영상 출처: YouTube, Jeffrey Grubb>


첫 번째 시연 중 미용실 직원의 기다려 달라는 말에 사람처럼 ‘으-흠’하고 반응하는 인공지능의 모습. 정말 놀랍지 않나요? 이 놀라운 광경은 구글 어시스턴트가 실제로 대화의 뉘앙스를 이해한다는 것이며, 이 기술을 “구글 듀플렉스”라 부른다고 구글 순다 피차이 CEO가 말했습니다. 


그래서 이번 시간에는 구글 듀플렉스와 그 중심 기술에 대해 알아보도록 하겠습니다.


Google Duplex

구글 듀플렉스는 기존 대화형 AI보다 더 진화된 모습을 보여줍니다. 사람을 대하는 것처럼 자연스러운 대화 경험을 제공하며, 대화가 예상대로 흘러가지 않을 때도 지능적으로 반응할 수 있습니다. 음성도 아주 자연스럽고요.

듀플렉스의 중심에는 TFX(TensorFlow Extended)를 사용하여 설계된 순환 신경망(RNN, Recurrent Neural Network)가 있습니다. 높은 정밀도를 얻기 위해 구글에서는 익명 처리된 수십만 건의 온라인 예약 음성 녹음 데이터를 반복 학습시켰다고 합니다. 

<출처: Google AI Blog, Google Duplex: An AI System for Accomplishing Real-World Tasks Over the Phone>


RNN이란?

그렇다면, 위에서 언급한 순환 신경망(RNN, Recurrent Neural Network)에 대해 간단하게 알아봅시다. 음악, 동영상, 에세이, 시... 이것들의 공통점은 무엇일까요? 바로 시퀀스라는 점입니다. 음악은 음계들의 시퀀스, 동영상은 이미지의 시퀀스, 에세이는 단어들의 시퀀스로 볼 수 있습니다. 시퀀스의 길이는 가변적입니다. 소설에는 단편소설도 있고 장편소설도 있는 것과 같죠. 

RNN은 시퀀스 데이터를 모델링 하기 위해 등장했습니다. RNN이 기존의 뉴럴 네트워크와 다른 점은 ‘기억’을 갖고 있다는 점입니다. 네트워크의 기억은 지금까지의 입력 데이터를 요약한 정보라고 볼 수 있습니다. 새로운 입력이 들어올 때마다 네트워크는 자신의 기억을 조금씩 수정합니다. 결국 입력을 모두 처리하고 난 후 네트워크에게 남겨진 기억은 시퀀스 전체를 요약하는 정보가 됩니다. 이는 사람이 시퀀스를 처리하는 방식과 비슷합니다. 이 글을 읽을 때도 우리는 이전까지의 단어에 대한 기억을 바탕으로 새로운 단어를 이해합니다. 이 과정은 새로운 단어마다 계속해서 반복되기 때문에 RNN에는 Recurrent, 즉 순환적이라는 이름이 붙습니다. RNN은 이런 반복을 통해 아무리 긴 시퀀스라도 처리할 수 있는 것입니다.

<출처: Dreamgonfly’s github, RNN 다이어그램 >


위 다이어그램에서 빨간색 사각형은 입력, 노란색 사각형은 기억, 파란색 사각형은 출력을 나타냅니다. 첫번째 입력이 들어오면 첫번째 기억이 만들어집니다. 두번째 입력이 들어오면 기존의 기억과 새로운 입력을 참고하여 새 기억을 만듭니다. 입력의 길이만큼 이 과정을 얼마든지 반복할 수 있습니다. 각각의 기억은 그때까지의 입력을 요약해서 갖고 있는 정보입니다. RNN은 이 요약된 정보를 바탕으로 출력을 만들어 냅니다.


RNN의 활용
이젠 RNN을 활용한 쉬운 예들을 보여 드릴게요. 한번에 이해하실 수 있을 것 같습니다.

1.연관 검색어
우리가 단어를 입력하면 다음 단어를 예상해서 연관 검색어를 알려주죠.

<구글에서 엑셈을 검색하면..?>


2.자동 번역
구글 번역기와 네이버 파파고는 RNN을 응용한 모델로 만들어 졌다는 사실! 



이번 시간에 구글 듀플렉스를 통해 구글의 자연어 처리 기술이 얼마나 향상되었는지 알 수 있었고, RNN에 대해서도 간단하게 알아보았습니다. 구글은 스타벅스ㆍ도미노피자ㆍ파네라브레드 등과 파트너십 계약을 맺고 듀플렉스를 통한 주문 기능을 활용할 예정이라고 하며, 올해 안에 인공지능 비서 서비스 ‘구글 어시스턴트’에 듀플렉스가 추가될 것이라고 밝혔습니다.
인공지능 기술의 가능성과 잠재력에 대해 더욱 기대가 되는데요, 다음 시간에도 흥미로운 내용으로 찾아 뵙도록 하겠습니다.

Reference
https://youtu.be/D5VN56jQMWM 
https://ai.googleblog.com/2018/05/duplex-ai-system-for-natural-conversation.html 
https://dreamgonfly.github.io/rnn/2017/09/04/understanding-rnn.html
http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/ 



기획 및 글 | 사업기획팀 박예영


파란만장 ASK.엑셈 탄생기

엑셈 사람들 2009.04.15 17:44



2008.10.9일 조동욱 팀장님으로부터 한 통의 메일을 받았다.
약 한달 ~ 두 달 정도의 시간 동안 APEX(Oracle Application Express)에 대한 스터디를 할 예정임.
이를 위해 단기적으로 해야 할 일은 다음과 같음.



팀장님은 메일과 함께 20개의 chapter로 구성된, 약 900 페이지가 조금 넘는 영문 APEX 매뉴얼을 주셨다. 그리고 덧붙여서 우리나라에는 apex 관련 자료가 거의 없다는 말씀도 함께 해 주셨다. 매주 1~2개 주제에 대해 공부하고 이를 팀장님께 발표하는 것으로 2달 정도 APEX skill을 익혔다.
처음엔 매뉴얼이 영어라 기술을 이해하는데 애를 많이 먹었다.

그리고 팀장님 앞에서 1주간 배운 APEX 기술을 발표하면서 에피소드가 참 많았다. 한가지 들자면, Form 내에 PL/SQL 코드 삽입하는 방법을 잘 모르겠다고 팀장님한테 말씀 드리면, 팀장님은 “apex 화면을 1분 정도 유심히 보시다가 메뉴를 몇 번 클릭하면 코드가 삽입이 된다. 이러한 일이 여러 번 있었다. “ 하시면서 내가 일주일 내내 고민한 일을 1분만에 해결하시는 모습을 보면서 무섭다라는 생각을 한 적도 있다.
이렇게 처음 2달 동안 Web page를 만들고 button, textfield, textarea 등의 item을 배치하거나, session, cookie 생성, 로그인과 로그아웃 절차, 예외처리 방법, css, javascript 등 기본적인 APEX의 웹 기술을 익혔다.
그렇게 설치나 기본적인 게시판 제작, 화면 설계 등 처음에는 모든 일이 순조로운 듯 보였으나...
나중에 나의 퇴근에 발목을 잡을 줄이야! 그 당시는 전혀 상상조차 하지 못했다.

우리나라에도 asktom.oracle.com 과 같은 사이트가 있어야 한다는 사명을 가지고 개발하기로 결정하였다. 그래서 12월부터 asktom.oracle.com 사이트를 벤치마킹 하면서 부분별 로직을 구현해 보았다.
매일 asktom.oracle.com 이나 apex.oracle.com 에 접속해서 어떠한 로직과 정책으로 구현되어 있는지 확인하고, ask.엑셈도 어떻게 구현하면 좋을지 기획했다. 하나하나 로직과 정책을 확인하면서 몰려오는 두려움과 부담감.
과연 내가 이러한 사이트를 만들어 낼 수 있을까?
매 주마다 벤치마킹한 부분 로직들을 개발해 보고, 또 개발된 화면을 보면서 팀장님과 많은 회의를 가졌다. 구현하고 싶은데 기술적으로 잘 모르는 부분이 있으면, http://apex.oracle.com에 있는 forum을 이용했다. 질문을 올리면 1시간 이내로 답변이 꼭 온다. 외국은 온라인 활용이 대단하다는 생각을 했다. 나의 짧은 영어 질문의 요지를 파악해서 친절하게 답변을 달아주는 사람들이 있다는 게 너무 신기했다.



개발을 하기에 어느 정도 skill을 익혔다고 느낀 때가 12월 중순이었다. 1월 1일부터 실제적인 개발일정을 새우고, 프로젝트에 착수했다.
그 동안의 skill로 충분히 개발일정을 지킬 수 있다고 판단했다. 하지만 이는 엄청난 판단 착오임을 깨닫는 데에는 그리 오래 걸리지 않았다.
개발일정에 맞추어 요구사항 명세서, 유스케이스 다이어그램 및 시나리오도 작성하고 테이블을 설계했다. 여기까지는 좋았다.
 하지만, 문제는 지금부터였다.
 



1월 23일에 그 동안 기획했던 로직들을 개발해서 팀 내에서 시연하기로 했다. 여기서 기획적인 로직이라는 것은 질문을 “질문하기-답변하기-댓글달기-댓글에 답변달기”의 형식으로 작성할 수 있도록 한 로직이다. 처음에 쉽게 구현될 줄 알았는데, 전혀 그러지 못했다. 정렬의 문제를 생각하지 못한 것이다.
데이터베이스 설계 시에, 검색의 편의성과 효율성을 위해 질문 관련된 테이블은 1개 테이블에서 모든 데이터를 저장하기로 했다. 질문, 답변, 댓글, 댓글의 답변을 각각 테이블로 나누면 나중에 검색할 때 여러 번 조인을 해야 되기 때문에 번거로울 것 같아, 질문 관련 테이블을 1개로 통합해서 만들어서 검색의 효율을 높이기로 했다. 하지만 이것 때문에 질문, 답변, 댓글, 댓글의 답변을 입력 받고 나서 정렬을 하려고 하니, 쉽게 구현이 되지 않았다. 질문이랑 답변은 하나씩 밖에 없으니 그냥 정렬하면 되는데, 댓글 이랑 댓글의 답변이 문제였다. 어떤 댓글은 댓글의 답변이 달려있는데, 어떤 댓글은 댓글의 답변이 없으니 그냥 순서대로 정렬하면 안되고… (<= 이건 APEX 구현 방식 때문에 발생한 문제이다. 물론 제가 실력이 없어서 못했을 수도 있지만ㅎ) ‘아, 어떻게 해야 하지?’ 고민하다가 어쩔 수 없이 포기하고, 이 부분은 정책을 변경하기로 하였다. 즉, 댓글의 답변은 하지 않는 것으로 결론 내었다. 이 로직의 구현 때문에 1월 21일, 22일 이틀을 근처 찜질방에서 잤다. 그 때의 비참함이란… 하지만 지금 생각해보면 웃음만 나는 추억이다.



팀내 시연을 통해 그 동안 개발한 프로그램에 대해 ok 사인을 받았다. 그리고 이 날 회의에서 Ask.엑셈을 WIKI 서버와 같은 서버에서 서비스하기로 결정하였다. Wiki 서버에는 oracle standard edition 10g가 설치되어 있는데, 난~ 11g에만 설치해 봤을 뿐이고, install manual은 없고…
1월 26일부터 아무것도 안하고 oracle 10g에 apex를 설치하는 것에만 몰입했다. 정말 아무것도 안하고 설치만 했는데, 하루가 지나고 이틀이 지나고 3일이 지나도 설치에 실패했다. 아, 내가 이렇게 실력이 없는 놈 이었구나…
인터넷을 뒤져 설치 매뉴얼을 찾았다. 10g에 설치하는 3가지 방법이 나와 있었다. 1번대로 해보고 2번대로 해 보고 3번대로 해 보고 해 보고 또 해 봐도 안되었다. 목요일이 되자 정말 짜증이 극에 달했다. ‘오늘은 절대! 절대 설치하고 간다!’ 그날 새벽이 되었다. ‘아, 오늘도 찜질방인가?’ 이제 나의 오기와 인내와 본래 저질인 체력도 바닥을 드러냈다. 아무 생각이 들지 않았다. ‘그래, 한 번만 더 해보자.’ 그리고… 성공했다! 그냥 웃음만 나왔다. 지금 생각해 보면 내가 왜 그렇게 했는지는 모르겠는데, 근본적인 원인은 설치 매뉴얼 순서대로 하나하나 하지 않은 것이 문제였다. ‘내가 왜 그랬을까? 실력이 없으면 시키는 대로라도 했어야 되는데…’라는 자책도 들었다



사내 시연 일정이 2월 16일로 잡혔다. 이제 프로그램만 잘 짜면 되는데, 마음 한편이 어딘가 허전했다. 내가 만든 프로그램은 어딘지 모르게 부실하다는 느낌을 많이 받았다. ‘asktom.oracle.com.의 개발 source를 알면 좀 더 잘 만들 수 있을 텐데…’ 이런 생각을 많이 했고, 어느 날인가 인터넷으로 검색해 보았다. ‘세상에 이럴 수가?’ asktom.oracle.com 개발 source가 오라클 공식 홈페이지에 올라와 있었다. APEX로 구현한 예제를 오라클에서 30여 개 정도 제공해 주고 있었는데, 그 중에 asktom.oracle.com도 들어가 있었다.
바로 다운로드 받아서 소스를 확인해 보았다. 내가 만든 프로그램과 전혀 다른 고급 쿼리와 세부 로직들이 모두 다 구현되어 있었다. ‘아, 이럴 수가, 이런 게 있었다니…’
이 소스의 화면 인터페이스를 일부 수정하고 나서 팀장님께 보여드렸다.



기존에 개발중인 프로그램을 보완하기 보다는 찾아낸 asktom.oracle.com 구현 source를 수정해서 다시 구현하고 싶었다. 내가 구현한 기술이랑 너무나 수준차이가 나고, 또 구현하려고 했던 기능들이 이미 다 들어가 있었으니깐. 하지만 팀에서 이런 이야기가 나왔다. ‘소스도 정확히 모르면서 갖다 쓰면 나중에 문제 생겼을 때 어떻게 대처할 것 이냐고.’ ‘이정도 로직이면 분석하는 데에만 3달은 걸리겠다고, 당장 코앞이 오픈인데…’
정확히 모르는 소스. 맞는 말이다. 정확히 모르는 소스는 쓰면 절대 안 된다. 하지만 APEX는 자신있었다. 모든 것이 PL/SQL과 SQL 문로 구현되어 있고, 인터페이스만 자유자재로 바꾸고 apex package만 어느 정도 알고 있으면 문제될 것이 없다고 판단했다.
하지만, 우선은 2월 16일에 사내 시연이 계획되어 있었기에 기존 프로그램을 asktom.oracle.com 구현 소스를 보면서 보완했다.



그렇게 내가 만든 프로그램을 가지고 사내 시연을 하였다. 화면 인터페이스도 신경 쓰고 해서 나쁘지 않았던 시연이었다. 무엇보다 시연 때 많은 분들이 관심 가져 주셔서 너무 고마웠다. 
 



asktom.oracle.com 개발 source에 미련을 버리지 못하고 1주일 정도 asktom.oracle.com 개발 source의 구현 로직을 확인하고, 인터페이스를 수정하고, 한글화 작업하고 테스트를 했다. 그리고 팀장님께 보고를 드렸다. 팀장님께서 직접 테스트해 보시고 asktom.oracle.com 구현 소스로 구현하는데 문제가 없을 것 같다고 한 번 해 보라고 결정해 주셨다.
Asktom.oracle.com 소스를 정확히 확인하고, 인터페이스를 내가 만든 프로그램과 거의 동일하게 바꿔서 입히고, 한글화 작업을 한 이후에 여러 번 테스트를 해 보았다. 역시 전문가가 만든 프로그램은 확연히 다름이 느껴졌다.
소스를 수정한 이후에 3월 2일부터는 실제 서비스와 동일한 환경에서 테스트를 했다. 이 때부터는 발생했던 문제에 대해서는 조동욱 팀장님의 도움을 많이 받았다. 나에게는 팀장님은 ‘마이더스의 손’이었다. 이번 개발을 통해 내가 교육컨텐츠 팀원이라는 것에 대한 무한한 자긍심을 느낄 수 있었다.
(Ask.엑셈 메인화면 하단을 보면, 구글 메인 화면에서나 볼 수 있는 아이콘이 7가지로 변하는 모습을 볼 수 있는데, 이것 또한 우리 팀장님의 작품이다.)



3월 16일 서비스를 시작한 이후, 일주일에 3~4개 정도의 질문이 올라오고 있다. 올라오는 답변을 볼 때마다 뿌듯하고, 내가 엑셈의 일원으로서 이러한 사이트를 만드는데 주역이 되었다는 것에 놀라울 뿐이다.
Ask.엑셈 사이트를 오픈할 수 있게 도와주신 사장님, 본부장님, 팀장님, 디자인을 담당해 주신 김혜림 대리님을 포함한 모든 엑셈 여러분들께 진심으로 감사할 따름이다. 나 혼자의 힘으로는 결코 해 낼 수 없었을 것이다.
 Ask.엑셈이 우리 엑셈의 대표적인 온라인 컨텐츠가 되는 그날까지 안정적으로 운영되도록 최선을 다 할 것이다. 또한 많은 DBA에게 높은 질의 서비스를 제공하는 싸이트가 되길 바란다.

이 곳에 올라오는 질문들에 최적의 답변을 제공할 수 있는 컨설턴트를 꿈꾸며 난 오늘도 오라클을 쉬지 않는다.

  • 나우리너 2009.04.20 17:59 신고 ADDR 수정/삭제 답글

    고생많았습니다. ASK EXEM이 사용자들에게 성능관리에 도움을 줄 뿐아니라, 엑셈의 컨텐츠에 현장감을 더욱 살릴 수 있는 좋은 통로가 되길 바랍니다.

  • Favicon of http://maumwrite.tistory.com K*N**B*** 2009.04.22 00:32 신고 ADDR 수정/삭제 답글

    Ask Exem을 기다린 1인인데.. 사실 요즘 도통 시간이 나질 않아서 공부하고 있던 것들도 잠깐 손을 놓은 상태입니다. 하루빨리 정리되고, 여유가 생기면.. 저도 글 올리겠습니다~

    • Favicon of http://thebeauty.tistory.com 이명진 2009.04.23 15:00 신고 수정/삭제

      많은 이용 부탁드립니다. 감사합니다^^