[소프트웨어 2.0] 안드레 카파씨, OpenAI 컴백홈

2023. 2. 10. 00:00SE 에세이

존경하는 "안드레 카파씨"가 OpenAI에 재입사했다. (2023.2.9)

OpenAI,  테슬라, 다시 OpenAI.

기념으로, 안드레이의 통찰력이 돋보이는 글 <소프트웨어 2.0, 원본>을 다시 읽고 되새긴다.

이 글은 그가 테슬라 재직시절(2017.11.12) 작성한 글이다.

 

소프트웨어 2.0

뉴럴네트워크는 소프트웨어 개발의 패러다임을 바꿔놨다.

안드레이는 이 뉴럴네트워크를 소프트웨어 2.0이라고 말한다.

 

소프트웨어 1.0

사람이 짜는 프로그램

소스코드를 컴파일해서 실행 프로그램을 만든다.

 

소프트웨어 2.0

데이터로 짜는 뉴럴네트워크

데이터를 컴파일해서 뉴럴네트워크를 만든다.

 

AI(소프트웨어 2.0)가 소프트웨어를 먹고 있다.

세상의 많은 문제는 소프트웨어 2.0으로 짜는 것이

소프트웨어 1.0 으로 짜는것 보다 쉽고, 적합하다고 밝혀졌다.

기존의 많은 1.0 프로그램들은 2.0으로 다시 만들어질 것이다.

소프트웨어 1.0은 세상을 먹었고, AI(소프트웨어 2.0)는 소프트웨어 1.0을 먹고 있다.

예) 영상인식, 음성인식, 음성합성, 언어번역, 게임, 데이터베이스 등의 많은 분야

 

소프트웨어 2.0의 장점

소프트웨어 2.0은 뉴럴네트워크다.

 

뉴럴네트워크는 뇌신경을 흉내낸 단순한 부품인 인공뉴런을 이용해서 만든다.

y = f(w*x): 인공뉴런은 행렬곱(w*x)과 활성함수(f)로 구성된다.

뉴럴네트워크의 크기는 행렬곱의 가중치 또는 파라미터라고 부르는 w(weight)가 몇개인가로 나타낸다.

참고로, ChatGPT(2023.2)는 1750억개의 파라미터로 만들어졌다.

 

실리콘 칩으로 구울 수 있음

뉴럴네트워크의 구조는 단순하기 때문에 ASIC이나 뉴로모픽 칩으로 만들기 좋다.

뉴럴네트워크는 소프트웨어 인공뉴런이고, 뉴로모픽 칩은 하드웨어 인공뉴런이다.

현재의 뉴럴네트워크는 CPU, GPU에서 돌아가지만, 뉴로모픽 칩으로 돌리면, 저전력으로 수십 수백배의 성능향상을 기대할 수 있다.

* 뉴로모픽 칩 (ex.SNN, Spiking Neural Net)

 

상수 실행시간

뉴럴네트워크는 루푸나 무한루프 등에 빠질 가능성이 없다.

 

메모리 사용량 일정

 

이식성

 

애자일

속도를 빠르게 하려면  뉴럴네트워크 크기를 반으로 줄이면 된다. 단, 예측 성능은 조금 감소한다.

예측 성능을 올리려면 뉴럴네트워크를 더 크게 만들면 된다.

성능을 올리고 내리는게 너무 쉽다?

 

모듈 녹여내기

뉴럴네트워크 A와 뉴럴 네트워크 B가 있다고 하자.

이 둘을 엮어서 하나의 뉴럴네트워크로 쉽게 만들 수 있다.

소프트웨어 1.0에서 서로 다른 프로그램을 하나로 묶는것은 쉬운일이 아니다.

 

우리 인간보다 프로그램을 잘 짠다.

 

소프트웨어 2.0의 단점

왜 잘되는지 모른다.

뉴럴네트워크는 사용 분야별로 선택의 문제를 남긴다.

우리가 이해하는 90% 정확도의 프로그램을 사용할 것인지,

이해하지 못하는 99% 정확도의 프로그램을 사용할 것인지.

 

조용한 실패 (Silent Fail)

AI는 예상치 못한 이상한 행동을 할 수 있다.

학습 데이터의 편향으로 인해 뉴럴네트워크가 편향된 학습을 할 수 있다.

하지만, 수백만개의 학습 데이터를 분석해서 그 원인을 찾고 고치는 것은 매우 어려운 일이다.

 

6년이 지나 다시 읽고,
안드레이의 탁월한 통찰력에 다시 한번 감탄한다.