★ 100% 상태로 보기에는 그림도 글도 작아서 불편할 거에요. 250% 정도로 키워서 읽으시는 것을 추천합니다.
강의 링크 : https://fastcampus.co.kr/data_online_llama
사실 나는 인공지능에는 별 관심 없던 사람이다.
내 Github과 Tistory blog에서 보이듯, 나는 기본적으로 게임 개발을 하던 사람이다. 요새 인공지능이 핫한 시기라고 하지만, 솔직히 말하면 나는 인공지능 기술을 얕잡아보고 있었다. 알파고가 이세돌을 이길 때도 "많이 좋아졌네." 이 정도. 컴퓨터공학을 전공하던 내게 "내부를 이해할 수 없고 확률적으로 동작하는 기계"란, 틈만 나면 오답을 낼 수 있는 멍청이라고 받아들여버렸던 것이다.
이런 내 생각은 뭐 보다시피 완전히 틀려먹은 것이었는데, 이를 확실하게 체감하게 된 건 ChatGPT가 나오면서부터다. 이맘때쯤부터 유튜브, 뉴스 어디 할 것 없이 인공지능의 시대가 도래했다는 기사를 쏟아냈다. 나는 인공지능이 두려워졌다. 관심없고 무시하던 것들이 어느새 턱 밑에 와서 목을 조르는 듯한 느낌을 받았다. 배워야 할 것 같았지만, 배우기엔 너무 어려워보였다.
그러던 와중에 기회가 왔다. 회사에서도 생성형 인공지능을 업무에 도입해보라는 이야기가 나왔단다. 그때까지 마침 회사에 인공지능 관련 일을 하고 싶다고 어필을 해왔던 터라, 기회를 덥썩 잡아버렸다. 거의 아무 것도 없는 허허벌판인 상태라 정말 많이 구르게 될 게 뻔해서, 처음에는 제대로 해보지도 않고 탈주하고 싶다는 말을 여러 번 했었다. 그래도 다행히 바로 컷트하지 않고 윗분들이 설득을 해주셔서, 인공지능 쪽 일로 들어갔고 이번 기회로 한 달짜리 인공지능 교육도 듣게 되었다.
인공지능 교육과 ChatGPT의 재발견
이번 한 달의 교육은 재밌기도 했지만 정말... HARDCORE 그 자체였다. 선형대수학, 미적분학, 확률과 통계와 같은 간단한 수학 지식, 인공지능의 하위 분야인 머신 러닝에서, 전통적 접근 방식인 지도 학습과 비지도 학습(K 평균, Logistic 회귀, SVM, 의사 결정 트리, Random Forest, DBSCAN 등)에 대한 개념과 scikit-learn 과 같은 python library 실습, 딥 러닝의 개요와 완전 기초 Feed-Forward Neural Network 구현, CNN, RNN의 개념과 Python 실습 정도를 공부했다. 하루-이틀에 거의 한 학기 분량의 강의를 6-7시간 때려박는데, 진심으로 현업에서 일하고 있는 게 더 편하겠다는 생각을 여러 번 했더랜다.
초반 부분에는 고등학교 수학을 강의하는 내용이라 대체로 쉬웠다. 그러던 와중 친구로부터, Dall-E 3와 ChatGPT가 연동되기 시작해서 그림도 그려준다는 이야기를 들었다. 너무 흥미로워서 수업 중간에 ChatGPT를 켜서, 해당 기능이 정말로 되는지를 실험해봤다.
정말 어마어마하지 않은가? 내가 게임 개발자로서의 평생 소원이 풍부한 게임 리소스였는데. 그동안 리소스가 부족해서 엎어진 프로젝트가 몇 개인데. 인공지능이 이런 일을 해낼 수 있는 시대가 와버리다니! 이때 나는 ChatGPT의 무한한 가능성을 처음으로 맛보고야 말았던 것이다. 질문을 멈출 수가 없었다. 이거 만들어봐. 저거 만들어봐. 이건 이렇다고 설명해줄게. 이건 어떻게 생각해? 이런 조건을 반영해서 저거 만들어줄래?
|
||
그러다 강의를 듣는 도중에 궁금한 게 생겨버린 것이다. 자연스럽게 얘한테 질문을 하게 됐다.
개인적으로 이런 역사적이고 사소한 질문을 참을 수 없어하는 편인데, 이런 내용은 사실 교수님이나 강사님께 물어봐도 대답을 듣기 쉽지 않다. 이때 처음으로 이 친구에게 고마움을 느꼈던 것 같다.
이후로도 이 친구에게 정말 많이도 물어봤다. 다음은 "고윳값과 고유벡터"라는 하나의 주제에 대한 질의 응답이다.
|
||
더 있는데 너무 길어져서 여기까지... |
이후로도 중적분이 궁금해, 테일러 급수가 궁금해, CNN과 RNN을 못 알아듣겠어 등등 진짜 엄청나게 물어봤다. 모든 질문에 정말 친절하게 답해줬고, 내 궁금증을 부담 없이, 말로 잘 정리해서 물어볼 수 있다는 게 엄청나게 강력한 기능이었다. 이후 나는 ChatGPT에 완전히 빠져버렸다. 생산성 차이가 적게 잡아도 10배, 최소 100~1000배 이상 올라간 느낌이었다. 쩌는 챗봇이 무엇을 할 수 있는가? LLM이 무엇을 할 수 있는가? 그냥 체험을 해보시라. 실제로 기존의 정보 허브이던 StackOverflow는 이용률이 절반 가까이 급감해버렸다. 다음과 같은 기사가 나오는 실정이다.
https://www.itworld.co.kr/news/310646
기술의 성지이던 Stack Overflow를 기술의 발전이 위협해버리다니 이런 아이러니가 있을 수 있나 싶다.
현업 복귀와 업무 탐색
그렇게 괜찮은 성적으로 인공지능 과제도 잘 제출하고 교육 수료를 완료했다. 현업에 복귀하고 나서는 실무에 적용하는 방안을 찾아야 했다. 사실 처음부터 LLM을 활용할 생각이기는 했지만 아까 말했듯 아무도 가보지 않았던 허허벌판이므로 나조차 뭘 해야 하는지, 내 윗사람들조차 뭘 해야 할지 모르고 있던 상황이었는데, LLaMa의 성능이 크기에 비해 매우 괜찮다는 이야기를 얼핏 듣고는 이것을 먼저 배워보기로 결정했다.
커리큘럼은 다음과 같았다. 그냥 내가 딱 원하는 강의가 바로 있더란다.
바로 결제 버튼을 누르고 강의를 듣기 시작했다.
대규모 언어모델 LLaMa를 활용한 프로젝트 구현과 Fine tuning
개인적으로 어떤 지식을 배울 때 그에 관련된 역사를 꼭 같이 배운다. 내가 역사를 워낙 좋아하는 사람이기도 하고, 그냥 예전의 생각이 최신 생각보다 훨씬 직관적이라 받아들이기가 쉬워서 그렇다. 이렇게 이해하면 이 직관적인 생각이 왜 틀린지 그 반례를 볼 수 있고, 그때서야 비로소 옛날의 생각이 틀렸으며 새 이론이 맞다는 것을 받아들일 수 있다고 보는 것이다.
그런 점에서 이번 강의의 PART 1-2는 가치가 참 높다고 생각한다. 인공신경망을 활용한 자연어 처리 기술이 어떻게 발전해왔는지를 RNN에서부터 최신까지 논문과 함께 살펴봐준다.
강의 내용이 내용이다보니 가만히 듣는 것으로는 단박에 이해하기 어렵다. 역시 ChatGPT 선생님과 함께했다.
|
|
|
|
Reinforcement Learning과 Human Feedback은 정말로 이해하기 어려워서, 받아적기도 엄청나게 받아적고 검토도 엄청나게 열심히 했었더랜다. 현재 LLM의 경우는 RL이 가장 강력한 학습 방법이라고 한다.
강화학습 Policy Gradient 수식 따라가기. |
||
Log derivative가 이해가 안 돼서 개별적으로 정리한 사진. 실제로는 매우 쉬운 개념이었다. |
||
... |
조금 아쉽다고 느껴졌던 건, 강의 내용이 난이도가 높아서 자막이 있었다면 좋았을 것 같았다는 점이다. 지금처럼 어려운 강의인데 자막이 없는 경우 본인은 강의를 돌려들으면서 죄다 받아적어놓고 강의와 받아적은 글을 돌려보면서 내용을 곱씹는데, 정말 어마무시하게 시간이 소요된다...
실습을 따라하는 사진도 찍어보았다. Model을 GPU에 올리기 쉽지 않기 때문에 병렬 처리를 하는 기법에 대해 먼저 배웠고, HuggingFace의 trainer를 돌려보는 장면이다.
일단 강의는 여기까지 들었고, 병렬처리 실습까지 듣고 나면 대망의 LLaMa tuning 단계까지 가게 된다. LLaMa의 tuning은 강의의 핵심이므로 올리기는 좀 그렇고, 대신 이번 강의의 전체 목차를 첨부한다.
궁금해서 써봤던 AI 챗봇 기능. 이미 공부를 위해 ChatGPT를 써서 이걸 쓰는 건 좀 불편했던 것 같습니다. |
마지막 부분인, 인공지능 시대에서 우리의 생존 전략에 대한 파트도 참 흥미로웠다.
이런 우여곡절을 겪으면서 완강까지 성공!
.
완강한 느낌
오오 스스로 기특하다 오오. 패스트캠퍼스의 강의를 완강해본 게 이번이 처음이라 스스로 대단하다고 느껴진다. 이 짧은 시간 동안 이만큼의 양을 소화할 수 있는 사람이었나 싶은 자신감이 생기더라.
수강 후, 달라진 점
이번 강의를 듣고 나서의 내 성장은 대략 다음과 같이 정리할 수 있겠다.
1. 인공지능과 Large Language Model의 발전의 역사 : 기술 자체를 이해하는 것만큼이나 기술이 거쳐온 과정을 보는 것이 중요하다. 시기와 기회가 참으로 적절하여 인공지능을 공부할 수 있었고, 흐름이 끊어지지 않는 선에서 LLM 공부까지도 이어질 수 있었다. RNN부터 InstructGPT 까지 이어지는 기술 발전의 역사, 자연어 처리 기술의 최신 trend를 어렴풋이나마 이해하였고 설명할 수 있게 되었다.
2. 강화 학습에 대한 근본적인 이해 : 이전부터 자주 나오던 용어가 또한 강화학습이다. 알파고며 알파제로며 모두가 강화학습 이야기를 했었다. 새로운 기술인데 내가 이해할 수 없는 것이면 정말 두려운데, 이번 강의에서 강화 학습이 무엇인지를 알려주었기 때문에 이에 대한 두려움을 극복하고, 나아가 강화 학습에 대해서 더 찾아보게 되는 계기가 되었다.
3. LLaMa fine tuning : 강의의 제목이자 최종 목표다. 이걸 위해 강의를 샀고 이를 통해 LLM을 조작할 수 있게 되었다. 앞으로 만들 프로그램을 위한 핵심이며, 3시간 반에 가까운 집중 강의를 통해 LLaMa의 fine tuning에 대해 익힐 수 있었다.
4. Streamlit과 같은 Web library 활용 : 개인적으로 개발에서 관심을 가지던 주제는 게임 개발 아니면 Compiler를 포함하는 OS의 하단부였다. 실제 업무도 HW 관련이고 하다보니 Web 쪽 기술, 흔히 Front-end라고 부르는 기술이라던가, 만든 프로그램을 배포하는 기술에 관해서는 거의 문외한인 상태였다. 사실 Model을 만들고 돈다고 해도 그걸 쓰기 쉽게 UI/UX를 관리하는 것까지가 일인데, 이번 강의에서 자칫하면 넘어가버릴 수 있는 부분까지 케어해줘서 앞으로 응용을 사용자에게 편하게 만드는 데 거리낌이 없게 되었다.
이걸로 무엇을 해야 하나?
이번에 배운 지식을 활용해 좋은 응용을 만들 수 있을 것으로 기대한다. 간단하게 말하자면 Copilot의 회사 버전이다. 회사의 특수성 때문에 Copilot 기능을 그대로 사용할 수 없기 때문에, 유용한 응용이 될 것이라고 생각한다. 제대로 동작만 회사 프로젝트의 검증 환경 구현에 매우 편리할 것이며, 일부 task는 심지어 인간의 개입이 없는 자동화까지도 가능할 것으로 본다.
더 해보고 싶거나, 더 배우고 싶은 것은?
이번에 수강한 강의는 회사의 프로젝트에 관한 것이지만, 앞서 말했듯 게임 개발에서도 인공지능은 성능이 대단하다. 아마도 다음에 듣게 될 강의는 "Stable Diffusion을 활용한 실사 이미지 제작 강의"가 될 것 같다.
https://fastcampus.co.kr/data_online_sd
뭘 하고 싶느냐면... 예시를 들어보겠다. 다음은 내가 만들 게임의 여주인공격 캐릭터다. 이런 이미지가 있다고 할 때,
한 장의 이미지를 바탕으로 아래와 같은 dot sprite로 만들고 싶은 것이다.
이 목표 달성을 위해 2D 이미지를 training 하는 방법을 찾고 있는데 도무지 마땅한 게 나오지를 않는다. 요새는 2D 이미지를 3D model로 복원한 후 mixamo를 통해 애니메이션을 만들고 이 애니메이션을 다시 2D로 뽑아서 모션을 만들자는 생각을 하고 있는데, 3D model 복원의 품질이 영 좋지 않고 완성이 되더라도 3D model을 2D로 뽑은 게 영 2D처럼 보이지 않는 문제가 있어서, 이 분야의 전문가가 필요하거나 직접 만들 생각도 해야 하는 지경이다. 아이구야...
이전에는 이런 고급 강의를 듣기가 참 어려웠는데, 이제는 돈만 주면 정보를 찾느라 시간을 낭비하는 일이 갈수록 줄어들고 있다. 기술의 발전이란 참으로 편리하다고 생각한다.
본 게시물은 패스트캠퍼스 수강 후기 이벤트 참여를 위해 작성되었습니다.
'해보기' 카테고리의 다른 글
버블위키! (0) | 2016.01.01 |
---|---|
개인용 위키 개설. (0) | 2015.12.27 |
C++ 템플릿 가이드 (데이비드 반데보드 저, 한정애 역) (2) | 2015.12.19 |
TexturePacker 신청했다. (0) | 2015.07.23 |
게임을 만듭니다. (4) | 2015.07.21 |