|
딥러닝을 다루는 책 치고는 이 책은 책의 두께가 비교적 얇은 편에 속한다.(본문 페이지가 270여 페이지다) 이러한 적은 분량이 이 책의 단점이자 장점이라면 이론에 치중하기 보다는 코드를 이용한 실습에 치중하고 있다는 점이다. 즉 알아야 만 하는 내용만 알차게 다루고 있는 것이다. 이 책의 제1장에서는 딥러닝에 대한 개요와 BERT에 대한 개요를 다루고 있다. 2장은 개발환경에 대한 내용이다.(꼭 필요했을까 하는 의문이 드는 장이다. 이 장을 빼고 다른 유용한 내용을 추가했더라면 하는 아쉬움이 남는다.) 이 책의 저자는 일본인이다. 그러다보니 BERT의 언어모델은 일본어 언어모델(일본뉴스 등)을 주로 다루고 있다. 그리고 끝에 적은 분량이나마 한국어 언어모델을 적용하는 방법을 다루고 있다. 아마도 이 부분은 작게나마 도움이 되지 않을까 싶다. 보통 다른 서적들을 보면 영어 모델로 시작해서 영어 모델로 끝나기 때문에 초보자의 입장에서는 그래서 한글(한국어 모델)은 어떻게 다뤄야 하지 하고 당혹스러울 때도 있다. 분명한 것은 이 책 한 권으로 BERT를 다 익힐 수는 없고, 단지 처음 접할 때 매우 유용하다는 것이다. 그리고 좀 더 어려운 내용을 다루고 있는 것들을 접한다면 크게 실력이 향상될 것이다.
|
|
들어가며...
바야흐로 인공지능의 시대, 딥러닝의 시대가 활짝 도래했다. 하지만 딥러닝은 어떻게 작동하는지, 어떻게 구현하여 프로그램을 돌리는지를 알려면 막막하기만 하다. 이 책은 어떻게 이러한 문제를 극복할 수 있을까
BERT는 Bidirectional Encorder Representation from Technology의 약자로서 2018년 후반 구글에서 발표한 새로운 딥 러닝 모델이다. 이러한 모델이 필요한 가장 큰 이유는 바로 자연어 처리(NLP, Natural Language Processing)를 위해서이다.
파이토치(PyTorch)는 딥러닝과 인공 지능 분야에서 주로 활용되는 오픈 소스 소프트웨어 라이브러리로, Facebook AI 연구소(FAIR)에서 개발하였다. 파이토치는 이름에서 짐작할 수 있듯이 Python을 바탕으로 제작되었고, 주로 Python에서 사용되나, C++과 같은 언어에서도 작동한다. (AI 용어사전 인용)
구글 코랩(Google Colaboratory)은 구글 드라이브에서 Jupyter Notebook으로 작성된 Python 코드를 실행시켜주는 온라인 에디터를 말한다. 기본적인 기능은 무료 사용이 가능하나 더 좋은 환경, 다양한 기능 활용을 위해서는 유료 결제가 필요하다. 기본적인 기능만으로도 Python으로 가능한 작업은 거의 대부분 사용할 수 있다. 작업 결과물은 Jupyter Notebook의 형식(.ipynb)으로 저장이 된다. (AI 용어사전 인용)
이 책은 구글 코랩에서 파이토치를 이용하여 BERT를 통해 인공지능 언어 학습을 위한 프로그램을 개발하는 것을 목표로 하고 있다. 어떤 사람들이 봐야 하는가?...
저자는 일본에서 SAI-Lab 주식회사의 대표이다. AI 관련 교육과 연구 개발에 종사하고 있다. 세계 최대 교육 동영상 플랫폼 Udemy에서 다양한 강연을 진행하고 있으며 유튜브를 통해서도 그의 강의를 만나볼 수 있다. 이 책 후반부에도 관련 사이트들을 소개하고 있다.
저자가 말하는 이 책을 읽어야 하는 대상은 다음과 같다.
한 걸음 진보한 자연어 처리 기술을 익히고 싶은 분 BERT 구현을 효율적으로 간단하게 학습하고 싶은 분 BERT 개요를 구현을 통해 파악하고 싶은 분 인공지능/머신러닝에 많은 관심이 있는 분 실무에서 자연어 처리를 다루고 싶은 분 전문 분야에서 BERT를 응용하고 싶은 연구자, 엔지니어 유용한 자연어 처리 모델을 찾는 분
저자는 주로 이 책을 인공지능/머신러닝 또는 자연어 처리에 관심이 있거나 이 분야에 막 종사하고자 하는 자에게 추천하고 있다.
이 책을 읽게 된다면...
우선 자연어 처리를 위한 개념과 신경망 회로의 구성에 대해서 알아가는 것이 필요하다.
그 후에 BERT의 개요에 대해 간단히 살핀 후 구글 코랩의 사용법을 간단하게 살필 것이다.
PyTorch에서 가장 기본이 되는 데이터 구조인 텐서(Tensor)와 텐서의 연산에 대해서도 알고 있으면 심화 학습을 한결 수월하게 할 수 있다.
이제 프로그램의 개요에 대해서는 어느 정도 알게 되었으니 이제 뉴런 활성화를 위한 기초적인 이론에 대해서 공부하게 될 것이다. 활성화 함수, 손실 함수, 최적화를 위한 다양한 알고리즘 등 많은 수학적 개념을 만나게 될 것이다.
이렇게 사전 지식을 쌓은 다음에 BERT 구조에 대해 실제로 구현하게 될 것이다. 단순히 BERT 구조만 구현하는 것이 아니라 Transformers와 Attention의 개념을 직접 배우면서 코딩을 진행하게 될 것이다.
이제 실제로 BERT에서 주요한 개념인 전이 학습(Transfer)과 파인 튜닝(Fine Tuning)의 개념을 배우고 실제로 코딩해 볼 것이다.
마지막으로 일본어와 한국어 데이터를 위의 개념을 통해 실제로 인공지능으로 학습시키도록 프로그래밍을 직접 해볼 것이다. 그것도 세 번의 사례를 통해서 말이다.
이 책의 특징...
위에 서술된 것과 같이 이 책은 차근차근 단계를 밟으면서 봐야 한다. 이 책에 나오는 Attention처럼 이것저것 관심 있과 쉬운 곳부터 보려면 초심자는 매우 힘들 것이다.
또한 사전 지식이 있어야 한다.
우선 파이썬과 코랩 사용법에 대해 알아야 한다. 챕터 1부터 2까지 자세히 나와 있다.
그뿐만이 아니다. 챕터 3의 경우 수학 공식도 많이 나온다.
우선 기초 지식으로 네이피어 수, 로그와 e에 대한 개념을 알아야 한다. 이를 토대로 활성화 함수에 속하는 시그모이드, tanh(Hyperbolic TANgent, 하이퍼볼릭 탄젠트), ReLU(REctified Linear Unit), 항등함수 손실 함수 중 평균 제곱 오차, 교차 엔트로피 오차에 대해서 알게 된다.
최적화를 위한 기울기와 경사 알고리즘 - 기울기(편미분), 최적화 알고리즘으로 사용되는 SGD(Stochastic Gradient Descent, 확률적 경사 하강 알고리즘), 모멘텀, AdaGrad(Adaptive Gradient), RMSprop (Root Mean Square PROPagation), 그리고 이 책에서 많이 언급될 Adam(ADAptive Momemt estimation) 도 배워야 할 지식 중 하나이다. 이 책에서는 특히 Adam에서 기능이 추가된 AdamW를 이용해 프로그램을 구현하게 된다.
이 책의 주요 개념을 배우기 위해서는 사전에 알아야 할 지식과 사전 준비 작업이 많이 필요하고 어렵기 때문에, 저자는 이 책의 학습 방향과 대상을 명확하게 잡아주었다.
또한 이 책에서는 알아야 할 핵심 개념과 코드만 알려준다. 그래서 다른 데이터 또는 컴퓨터공학 관련 책보다 책의 구조는 단순하고 깔끔하다. 그러면서도 코딩한 결과물과 그에 대한 설명도 친절하게 잘 되어 있어 배우기에 한결 편하다.
그리고 챕터 맨 마지막 부분에 ‘연습’ 부분을 따로 만들어 앞에서 배웠던 코딩과 지식을 다시 상기하면서 부분적으로 자신이 코딩을 직접 짜게 한다. 이 책을 한번 정독하면서 직접 코딩 실습을 한다면 하나의 챕터에서 최소 두 번은 코딩 연습을 할 수 있다. 즉 반복 학습을 어느 정도 구현한 셈이다.
다만 단순하다는 것은 다른 관점에서 보면 설명이 자세하지 않다는 말이 될 수도 있다. 이 때문에 독자의 능력에 따라서는 약간 막막하다는 생각이 들 수도 있다. 하지만 저자는 책 곳곳에 참고 사이트들을 많이 소개해 놓았으니 꼭 확인하기를 바란다. 참고 사이트를 통해 더 많은 고급 정보와 지식을 확보할 수 있을 것이다. 단 몇몇 사이트는 외국어 기반이라 번역이 필요할 것이다.
또한 저자가 일본인이라 그런지 관련 사이트들이 일본 기반인 경우가 한국 기반인 것보다 훨씬 많다. 일본어가 능숙하면 관련 사이트를 방문하여 많은 도움을 받을 수 있을 것이다. 하지만 일본어에 능숙하지 않다면 구글 번역 등의 도움을 받아야 하기 때문에 번거로울 수는 있다. 그나마 한국어 모델로 직접 프로그래밍할 수 있는 사례가 있어서 도움이 될 수 있을 것 같다.
마치며... 인공지능은 우리가 살아가는 데 있어서 반복적이면서 힘든 작업을 사람 대신 진행하면서 서서히 직업의 형태를 바꾸고 우리 삶을 바꿔놓았다. 인공지능과 딥러닝에 대해 알고 프로그래밍하기 위해서 가장 기본이 되는 신경망의 구조와 형태, 자연어 처리를 위한 많은 개념을 될 수 있으면 깔끔하고 쉽게 알려준다. 이 책을 통해 자연어 처리와 딥러닝에 대한 기초 개념을 습득할 수 있으면 이를 통해 다양하게 인공지능에 대하여 접하고 때로는 관련 과제를 진행하면서 미래 사회의 발전에 한결 다가갈 수 있는 초석이 될 수 있을 것이다. [이 서평은 출판사 리뷰 이벤트에서 도서를 제공 받았으며, 작성자의 주관적인 견해를 토대로 작성하였습니다.] |
|
챗GPT가 재작년에 출시되고 자연어처리분야가 매우 핫하죠. 구글도 챗GPT에 뒤지지 않기위해 BARD를 출시했습니다. 물론 현재 챗GPT가 앞서가고는 있지만 현시점에서는 BARD도 무시하면 안되죠. 챗GPT와 BARD는 모두 트랜스포머기반 LLM입니다. 크기만 다를뿐이죠. 챗GPT는 GPT-3.5아키텍쳐를 쓰는데 비해, 구글의 BARD는 <파이토치와 구글코랩으로 배우는 BERT입문>에서 배울 BERT를 사용해서 트렌스포머 아키텍터를 사용하여 단어의 앞뒤문맥을 고려해서 학습하는 모델이죠. 챗GPT와 구글 BARD를 언급하는 이유는 그만큼 현재 LLM의 핵심이고 이를 익히는 것이 텍스트를 이해하고 익히는 데 매우 중요한 방법이기 때문입니다. 더우기 파이토치는 최근논문에 많이 사용되는 머신러닝 프레임워크로 텐서플로에 비해 간결하고 사용하기 쉽고 빠르고 효율적인 계산, 다양한 딥러닝을 지원하기에 최근 많은 개발자들이 공부하는 방식입니다. 거기다 개인들은 비용이 비싼 GPU를 개인컴퓨터로 돌릴 수가 없기에 구글코랩을 이용해서 GPT를 지원받아 머신러닝을 활용할 수있는 기반을 만들래서 BERT를 효율적으로 학습할 수있게 교육환경을 잡았습니다. 저자는 아즈마 유키나가 SAI-LAB 대표십니다. AI교육과 연구개발을 하는 기업이라고 합니다. 학력은 도호쿠대 이학박사십니다. 도호쿠대는 일본의 명문대중에 하나이죠. Udemy에서 ai관련강의도 하시고 다양한 앱도 개발했다고 합니다. 한국에 이미 <파이토치 딥러닝 모델 AI앱개발입문>,<인공지능기술><처음만나는 AI수학 WITH PYTHON>등의 다수의 책이 소개된 인기 저자십니다.
이 책의 장점은 점층적 설명입니다. 챗터에 요약으로 시작해서 개념설명, 구성설명, 마지막은 요약정리로 마무리를 합니다. 이는 반복의 효과를 볼 수있고 여러번 학습하여 기억하게 했습니다. 그리고 컴퓨터 프로그램 용어는 매우 개념이 어럽고 복잡하고 설명이 길수가 있는데 대도록이면 짧고 그림을 이용해서 핵심만을 설명하고 구현순서를 먼저 알려주고 코드를 이용한 파이썬 코드를 IN,OUT형식으로 설명합니다. 다만 IN코드가 너무 길어서 OUT코드를 보는데 에로점은 있지만 이점도 2챕터정도 따라하다보면 불편하지 않게 됩니다. 여기에 필요한 부분은 공식문서로 URL링크를 해서 추가공부를 할 수있게 배려했습니다. 프로그램책이라 코드를 공부하는 것이 매우 중요한데 그것을 연습장을 마려해서 다시 학습을 합니다.
본 도서는 출판사로부터 무상으로 제공받아 주관적인 리뷰를 했습니다. |