음성인식하면 'Her'이라는 영화가 떠오른다. 국내에서는 2014년에 개봉한 영화인데, 시리나 알렉사와 같은 음성인식 서비스와 사랑에 빠진 남자 이야기다. 2019년 코미디 영화 '하이 젝시'도 상황은 다르지만 인공지능을 다룬 비슷한 영화다. 처음 'Her'를 봤을 때는 가능은 하겠지만, 그래도 설마 그런 마음이 있었지만, 지금은 그 '설마'라는 단어가 사라졌다. 그만큼 지금의 음성인식은 빠른 속도로 발전하고 있는 것이다.
우리는 이미 많은 인공지능 서비스를 사용하고 있다. 음성인식을 통해 각종 정보 검색도 하고, 어학도 배우고, 아이들 교육에도 쓴다. 스마트폰에 음성비서 기능은 이제 기본이며, 콜센터를 통한 제품 문의나 예약, A/S 관련한 부분도 음성인식과 문자인식을 통해 서비스가 진행되고 있다. 이와 함께 대표적인 서비스가 번역 일 것이다. 번역 부분은 오래전부터 계속 시도되어 왔는데, 최근엔 확실히 과거에 비해 좀 더 자연스러워졌고, 사진 찍어 바로 번역도 할 수 있고, 유튜브 동영상에 바로 자막으로 볼 수도 있다.
이처럼 언어를 다루는 인공지능 쪽은 사람과 가장 가깝게 만나는 분야이며, 정서적으로도 무척 민감한 분야인 것이다. 그만큼 활용할 곳도 아주 무궁무진한 분야이다. 인공지능에서 이걸 주로 하는 분야가 자연어 처리인데, 내 기준에 있어서 이게 다른 인공지능 분야에 비해 익히기가 쉽지 않다. 일반적인 기계학습이나 이미지 인식과 처리, 문자 인식까지는 그래도 쉬운 편이다. 언어 영역은 여기에 몇 곱절 어려운 거 같다. 그러다 보니 계속 미루고 있던 파트이기도 하다.
사실 자연어 처리 쪽은 어려운 것도 있지만, 다른 분야에 비해 접할 수 있는 책도 무척 적다. 그런데 최신 이론과 논문 등을 잘 정리해서 담은 책이 하나 있어서 이번에 시간을 들여서 집중적으로 봤다. 바로 델립 라오, 브라이언 맥머핸의 '파이토치로 배우는 자연어 처리'라는 한빛미디어 책이다.
이 책이 자연어 처리 입문 가이드북을 표명하는 책이지만, 어디까지나 자연어 처리 쪽 입문을 말한다고 생각한다. 인공지능이나 프로그래밍 입문을 대상을 하는 책이 아니다. 어느 정도 난이도가 있는 책이다. 최소 파이썬 프로그래밍은 알고 있어야 하고, 인공지능 관련한 지식도 좀 있어야 한다. 그리고 수학이 많이 나오는 것은 아니지만, 그래도 제대로 이해하려면 관련 수학 지식이 약간 필요하기도 하다.
입문 가이드북이라는 말에 가벼운 마음으로 봤는데, 솔직히 이 분야는 아직 내가 많이 준비가 안 되어 있다는 것을 새삼 느끼게 했다. 차라리 입문 가이드북이라는 생각을 버리고 자연어 처리 개론 정도로 생각하며 읽으면 오히려 보기 편할 수 있을 것이다.
아울러 인공지능 관련 책을 볼 때마다 느끼는 것이지만, 익숙하지 않은 전문용어들이 많이 등장하는 만큼, 노트 하나 마련해서 용어를 하나씩 적어가며, 정리하는 것이 이 책을 보다 쉽게 이해할 수 있는 길이 될 것이다. 물론 나중에 AI 관련 다른 책을 볼 때에도 많은 도움이 될 것이다.
그리고 '파이토치로 배우는 자연어 처리'는 파이썬을 위한 오픈소스 머신 러닝 라이브러리 PyTorch를 사용하므로 자연어 처리와 함께 파이토치 활용법을 잘 배울 수 있다. 파이토치는 엔비디아 GUP CUDA를 사용해서 보다 빠르게 처리할 수 있다. 텐서플로만 쓰다 처음 파이토치를 써보다 보니, 여러 가지로 색다르게 느껴졌다. 그러나 예제 코드에 설명도 잘되어 있고, 코드 자체가 간단하고 직관적으로 되어 있어 별다르게 어렵게 느껴지진 않는다.
책에서는 전체 9장에 걸쳐 자연어 처리 NLP 소개와 함께 파이토치도 나오고, 신경망 기본 요소, NLP에 쓰이는 MLP, CNN, 시퀀스 모델, 어텐션 기반 모델 등의 딥러닝 구조를 소개하고 있다. 특히 시퀸스 모델링은 초급, 중급, 고급으로 나눠 단계적으로 심화 학습을 한다. 각 장 끝에는 참고문헌들이 나오는데, 비교적 최신의 서적과 논문을 참고한 것을 알 수 있다.
자연어 처리 예제로 성씨 분류가 많이 나오는데, 이게 이렇게 복잡한 문제였다는 것을 처음 알았다. 이것도 그렇고 책을 다 보고 나서 예제 데이터인 말뭉치가 영어권 언어다 보니, 확실히 한글과는 처리가 많이 다를 수 밖에 없겠구나 크게 느껴졌다. 아울러 한글 자연어 처리에 대한 내용의 아쉬움이 좀 있었는데, 부록에 떡하니 pororo 뽀로로에 대한 내용이 들어 있었다. 번역자가 추가한 것이라 생각되는데, 이 책에서 돋보이는 부분이 옮긴이가 곳곳에 담은 각종 주석과 추가 설명이다. 책 내용 중에 팍팍 넘어가는 부분들이 있는데, 그것을 박해선 역자가 일일이 NOTE나 주석에 설명을 하고 있다. 수식을 어떻게 풀고, 어떤 책을 참고하라고 친절하게 담고 있다. 원래 책에 없는 설명까지도 담아 이해를 돕고 있다. 옮긴이가 인공지능, 특히 자연어 처리에 대한 이해가 없었다면 완전 불가능한 부분일 것이다. 워낙 곳곳에서 이런 노력이 보이다 보니, 고마움에 옮긴이 칭찬을 하지 않을 수 없다.
NPL 초보인 나에게 '파이토치로 배우는 자연어 처리'는 처음엔 만만한 책이 아니었다. 하지만, 포기하지 않고 읽다 보니, 자연어 처리라고 해서, 완전히 다른 것은 아니다. 그전에 알고 있던 것들과 함께 자연어 처리 부분이 결합되어 조금씩 이해되기 시작했다. 저자가 욕심이 많아서 그런지 참 많은 것을 담았다는 느낌인데, 덕분에 NLP에 관해, 전반적으로 많은 것을 얻고 이해하는데 큰 도움이 되었다. 특히 파이토치는 전혀 몰랐는데, 비교적 쉽게 활용법을 익힐 수 있었다.
자연어 처리 분야가 어렵긴 하지만, 음성인식, 번역뿐만 아니라, 인공지능 기사 작성, 보도, 아바타 등 쓰일 수 있는 곳이 워낙 많다 보니, 인공지능 딥러닝에 관심 있는 분들에겐 비즈니스적으로 좋은 블루오션 영역이라 생각한다. 자신의 IT 기술을 스킬업하거나 사업화하려는 분에게 이론적으로 도움이 될 것이다.