AI 에 대한 글
들어가며
저는 어떤 현상을 볼 때 역사적인 맥락도 같이 보는 것을 좋아합니다. 어떤 의미에서는 미시적으로 보는 것은 포기를 많이 하고 거시적으로 보려고 노력을 하는데, 게으른 면이 있어서 미시적으로 보는 것이 피곤하다고 생각해서 입니다. 논쟁을 피하려는 측면도 있고...
글이 깁니다.
Artificial Intelligence
농담으로 조류독감(Aviation Influenza)이나 조류지능(Aviation Intelligence)도 가능합니다만, 1950년대에 MIT 에서 AI 라는 용어를 처음 만든 분들 중에 인간의 지능을 고기지능(Meat Intelligence)이라고 표현한 분도 있었다고 합니다. 정확히 누구인지 기억은 안나지만 두 분 중 한 분이었을 겁니다. 존 매카시와 마빈 민스키가 MIT 에서 AI 에 대한 이론에 토대를 쌓았습니다.
Artificial Neural Network
마빈 민스키가 기호나 상징과 같은 고차원적인 사고를 기반으로 점점 저차원으로 구현하는 방법(Top-Down)을 택했다면 프랭크 로젠블랫은 인공신경망 이론을 직접 구현한 퍼셉트론을 만듭니다.(1958) 인공신경망이란 뇌세포인 시냅스를 모방해서 프로그램으로 만는 것입니다. 시냅스들을 연결한 것을 신경망이라고 부르기 때문에 컴퓨터로 모방한 신경망을 인공 신경망이라고 부릅니다. 작은 단위를 쌓아서 크게 만들려고 했기 때문에 Buttom-Up 방식으로 볼 수 있습니다.
로젠블랫이 만든 퍼셉트론은 간단한 덧셈과 뺄셈을 할 수 있는 모델이었습니다. 이후 퍼셉트론의 규모를 키우는 노력을 했지만 오차역전법(1975)이라는 기법이 적용되기 전까지는 복잡도를 키우는 것이 힘들었다고 합니다.
AI 겨울(Winter)
핵겨울이라는 표현에서 비롯된 것이라고 하는데, AI 에 대한 연구가 지속됨에도 실제 성과가 잘 나지 않던 시기를 말합니다. 1974~1980년하고 1987~2000년정도를 가리킨다고 하는데 사실 첫번째 겨울은 민스키로 대표되는 기호학적 접근법이나 로젠블랫으로 대표되는 인공신경망쪽 모두 진척사항이 없었기 때문입니다.
그러다가 1980년대 초중반까지 전문가 시스템(Expert System)하고 지식 기반 시스템(Knowledge based system) 이라는 트랜드가 뜹니다. 1차 AI 겨울을 경험했던 학자들이 당시의 저 열풍이 빨리 식을 수 있다고 경고하려고 AI 겨울이라는 표현을 썼다고 합니다. 그리고 2차 겨울이 옵니다. 전문가 시스템이 망하고 지식 기반 시스템은 쑥 들어갔다가 2000년대 초에 시맨틱 검색 등으로 살아나서 온톨로지로 다시 살아나긴 합니다.
AI 겨울이 온 이유는 사실 현재 AI 의 발전을 보시면 알 수 있겠지만 당시 컴퓨터의 용량(처리용량이건 저장용량이건)이 AI의 기능을 동작시키기에는 턱없이 부족했던 것이죠.
Machine Learning
기계학습으로도 번역되는데, Running Machine은 왜 기계가 안 뛰고 사람이 뛰는지... 아무튼...
두 번의 AI 겨울을 보낸 후에 다시 인공신경망으로 돌아옵니다. 오차역전법을 적용하여 다층 퍼셉트론 모델을 앞먹임 신경망(Feed-forward Neural Network)이라고 합니다. 과적합이라는 이상한 문제가 있고 이를 해결하기 위해 합성곱신경망(Convolutional Neural Network, CNN)이 등장합니다. CNN을 사용한 기계학습이 자리를 잡던 시점에 딥 러닝(Deep Learning) 이란 개념도 같이 나옵니다. 이후 딥 러닝의 대상이 RNN(나중에 언급) 으로 옮겨가긴 합니다. 여하간 기존 모델보다 좀 더 깊어젔다는 뜻으로 쓰인 모양입니다. 학술적으로 머신 러닝 중에 딥 러닝이 어느 정도부터인지는 잘 모르겠습니다. 참고로 앞먹임신경망은 CPU에 들어가서 분기예측하는데 사용됩니다. 분기예측이 무언지는 따로 찾아보시고 그런게 있다고 넘어갑니다.
CNN 기술은 이미지 인식에 주로 사용됩니다. 사람 얼굴 인식해서 누구인지 아는 것이나 동물 종류 인식 등등에 사용되고 지금 카메라에 사람 얼굴 인식하는 것을 생각하면 이제는 많이 대중화된 기술이기도 합니다. CNN 기술부터 GPU 가 적극적으로 활용되기 시작하고 CNN 기술의 승자인 Google 의 경우 한 술 더 떠서 Tensor 라는 개념과 행렬을 빠르게 계산하기 위한 전용 프로세싱 유닛을 만듭니다.(TPU)
정지된 영상은 그렇다고 치고 번역이나 동영상 분석과 같이 앞뒤 맥락(Context)를 가지는 데이터는 어떻게 할까 해서 재귀신경망(Recurrent Neural Network, RNN)도 연구됩니다. 그 중에 가장 성과가 있었던 것이 LSTM(Long short-term memory) 였고 seq-to-seq 방식과 결합하여 주로 번역이나 음성인식 기술에 많이 사용됩니다. 그리고 LSTM 보다 context 를 더 길게 보기 위해 attention 기법이 등장하고 seq-to-seq 에 attention을 엄청 많이 결합해서 Transformer 기술이 등장합니다.
"Attention is All You Need" (Google, 2017)
2017년에 구글에서 발요한 논문이고 이후 소개할 생성형 AI 의 초석이 됩니다. 그래서 자주 인용됩니다.
Generative AI의 시작
OpenAI에서 transformer 를 사용한 GPT-1이 2018년에 발표됩니다. GPT(Generative Pre-trained Transformer) 이름에 transformer 가 포함되어 있습니다. 그렇다면 논문을 낸 Google 은 뭐하고 있었냐 하면 당시 google 은 번역 쪽에 중점을 두고 있어서 ELMo(2018, LSTM 기반)라던가 BERT(2018, transformer 기반)와 같이 번역에 필요한 언어 모델을 만들어서 발표했습니다. 참고로 엘모나 버트는 새서미스트리트에 나오는 캐릭터입니다.
BERT와 GPT는 둘 다 attention 과 transformer를 쓴 언어모델이지만 BERT가 입력된 내용에 대해 attention 을 쓴 반면에 GPT는 모델이 생성하는 내용에 대해서도 attention 을 사용합니다. 즉, 모델이 생성하는 쪽에 신경을 더 많이 쓴 셈입니다. 그리고 google 이 검색엔진 수입에 대한 감소를 우려해 팀킬 방지를 위해 이 분야에 대한 투자를 적극적으로 하지 않습니다. 그러다가 나중에 정신차리고 만든 것이 Gemini 입니다. 솔직히 google이 기반 기술이 있어서 따라잡았지 다른 회사면 못했을 것 같습니다.
OpenAI 가 GPT-1 보다 덩치를 키운 GPT-2를 2019년에 발표합니다. 그리고 2020년에 파라미터 숫자가 175B (1750억)개인 그야말로 거대언어모델(Large Language Model)을 발표하는데 OpenAI 라는 말이 무색하게 GPT-3 부터 상업용 라이선스로 전환합니다. 이후 gpt-oss 버전이 나오기 전까지 OpenAI 가 오픈소스로 공개한 모델은 GPT-2 가 마지막이었습니다.
GPT-3는 그 동안 오픈소스였던 것이 상용으로 바뀐 것과 뛰어난 성능으로 많은 비판과 관심을 동시에 받았습니다만 일반 대중이 이 생성형 AI 를 알게 된 것은 아무래도 중간 버전으로 발표된 GPT-3.5 를 기반으로 한 챗봇 서비스였을 것입니다. (ChatGPT, 2022) ChatGPT 에 대한 설명은 생략하겠습니다. 설마 모르시지는 않겠죠?
nVidia CUDA
nVidia에서 GPU 를 활용한 병렬연산을 지원하기 위한 Hardware/Software 결합 기술입니다. 2004년부터 개발이 시작되었고 CUDA 라는 이름을 쓴 것이 2007년이라고 합니다. 경쟁사(?)의 경쟁제품(?)인 AMD 의 ROCm 이 2016년에 등장한 것을 생각하면... 아무튼 CNN 에 GPU 를 도입할 때에도 CUDA 를 사용했고 GPT 도 CUDA 를 사용할 수 밖에 없었을 것이 현재도 그렇지만 대부분의 인공지능 개발을 위한 python 라이브러리는 GPU 를 쓴다면 CUDA 가 기본입니다.
nVidia 에서 GPU 아키텍처 이름을 언제부터인가 과학자의 이름을 따서 짓기 시작했는데, CUDA 를 지원하기 시작한 것이 Tesla 부터입니다. 아래는 그냥 읽고 지나가시면 될 듯...
- Tesla (니콜라 테슬라) : 발명가, 물리학자. 무선통신 고안, 교류 시스템을 고안. Current war 의 승자 중 한 명
- Fermi (엔니코 페르미) : 물리학자. 핵분열로 새로운 원자로 쪼개진다는 것을 밝혀내 노벨상 수상. 최초의 원자로 개발 및 맨하튼 프로젝트 참여
- Kepler (요하네스 케플러) : 수학자, 천문학자. 태양계의 천체가 타원궤도로 돌고 있음을 밝혀냄. 면적속도 일정의 법칙
- Maxwell (제임스 클러크 맥스웰): 이론물리학자, 수학자. 전자기학 이론을 정리. 맥스웰 방정식
- Pascal (블레즈 파스칼) : 철학자, 수학자, 과학자 등등. 그냥 "천재". 파스칼의 삼각형, 파스칼의 정리, "팡세"
- Volta (알레산드로 볼타) : 물리학자. 전압의 발견. 볼타 전지 발명. 전압 단위인 Volt 의 어원.
- Turing (앨런 튜링) : 수학자. 현대 컴퓨터의 이론적 토대인 튜링 머신 고안. 암호학에 공헌(에니그마 해독)
- Ampere (앙드레마리 앙페르) : 물리학자. 앙페르의 왼손 법칙. 전류 단위인 Ampere 의 어원.
- Ada Lovelace(에이다 러브레이스) : 수학자. 찰스 배비지의 후원자로 해석기관용 프로그램을 만든 인류 최초의 컴퓨터 프로그래머. 조지 바이런 경의 딸. 러브레이스 공작부인. 프로그래밍 언어 Ada 의 어원.
- Hopper (그레이스 호퍼) : 수학자. 해군제독(추서). 미 해군 장교로 임관해서 하버드 대학교에 파견근무 당함. Mark 컴퓨터 개발에 참여. 현존하는 최초의 디버그 리포트를 작성한 개발팀 소속 또는 그 작성자(불확실). COBOL 의 어머니. 이름인 Grace 는 nVidia 의 CPU 코드명으로 사용.
- Blackwell (데이비드 블랙웰) : 통계학자, 수학자. 위상수학과 게임이론을 연계.
- Rubin (베라 루빈) : 천체관측원. 여성이라는 이유로 하버드나 프린스턴 대학원 진학이 거부당한 뒤 코넬대학교에서 천체관측원으로 활동. 관측 결과를 정리하여 은하가 케플러가 예측한 타원운동 궤도와 다르다는 것을 밝혀내고 훗날 암훅물질 이론으로 발전하는데 공헌. 이름인 Vera는 nVidia 의 차세대 CPU 코드명으로 사용 예정.
Diffusion Model
확산 모델이라고 하고 이미지, 동영상, 오디오 생성에 사용됩니다. 확산모델이라고 하는 이유는 전체를 먼저 잡고 서서히 구체화하는 방식으로 확산한다는 의미입니다. 이쪽도 Transformer를 사용합니다. OpenAI 의 Dall-E 나 Google 의 나노 바나나가 여기에 속합니다.
AI 연구에 있어서의 중국
AI 연구에 대한 논문 편수나 나오는 내용을 보면 결코 중국의 AI 연구를 무시할 수 없습니다. 더구나 GPU와 같이 연구에 필요한 물자가 국제제재를 통해 통제되는 상황에서 Deepseek 와 같이 적은 GPU 자원에서도 동작 가능한 모델을 만들려는 시도는 나중에 중국에게 이득으로 돌아올 것입니다. 마치 CNN 기술 경쟁 때에 GPU 나 TPU 와 같은 Hardware 와 Sofware의 결합으로 성능을 올렸던 미국(특히 google)에 대해 순수 알고리즘 개선을 통해 Software 만으로 유사한 성능을 내기 위해 노력했던 유럽 쪽 연구 방식을 이제는 중국이 하고 있는 것이 아닌가 싶은 생각이 많이 듭니다.
AI 정리
- 현재 AI 라고 부르는 것은 인공신경망을 기반으로 다양한 기술(특히 수학적, 통계적 기법)을 결합하여 만든 Model 이라고 부르는 것이 CUDA 와 같은 GPU 기반 프레임워크나 CPU 를 기반으로 한 프레임워크 위에서 동작하는 컴퓨터 프로그램이다.
- 초기에 정지화상(이미지) 인식을 거쳐서 번역, 음성인식, 음성재생, 챗봇 등을 거쳐서 동영상, 음악 등도 만들 수 있는 수준으로 발전했다.
- 사람과 대화할 수준에 이르렀다는 점에서 앨런 튜링이 제시한 튜링테스트는 대부분 통과한 것으로 보이며 반대로 이야기하면 AI 가 만든 정보에 대해서 인간이 검증할 수 있는 능력이 필요한 시대가 되었다.
