프로그래밍의 종말

나의 재물운? 연애운은?

AI가 봐주는 내 사주팔자 - 운세박사

https://aifortunedoctor.com/

프로그래밍의 종말

5 하하하 0 878 2023.04.07 12:54



저는 1980년대에 성인이 되어 집에서 Commodore VIC-20과 Apple ][e와 같은 개인용 컴퓨터를 프로그래밍했습니다. 대학에서 컴퓨터 과학(CS)을 공부하고 궁극적으로 버클리에서 박사 학위를 취득하면서 저는 프로그래밍, 알고리즘, 데이터 구조, 시스템, 프로그래밍 언어 등 '고전적' CS라고 부르는 전문 교육의 대부분을 공부했습니다. 고전 컴퓨터 과학의 궁극적인 목표는 아이디어를 자바나 C++, 파이썬 같은 언어로 사람이 작성한 프로그램으로 축소하는 것입니다. 데이터베이스 조인 알고리즘부터 놀라울 정도로 난해한 팍소스 합의 프로토콜까지, 아무리 복잡하고 정교한 아이디어라도 고전 컴퓨터 과학의 모든 아이디어는 사람이 읽고 이해할 수 있는 프로그램으로 표현될 수 있습니다.

제가 대학에 다녔던 1990년대 초는 아직 AI의 겨울이 한창이던 시기였고, AI 분야 역시 고전적인 알고리즘이 지배적이었습니다. 저는 코넬대학교에서 컴퓨터 비전 분야의 리더이자 현재 MIT 슈바르츠만 전산대학 학장인 댄 후텐로처와 함께 일하며 첫 연구 일을 시작했습니다. 1995년쯤 Huttenlocher의 컴퓨터 비전 박사 과정에서는 딥 러닝이나 신경망과 유사한 것에 대해 단 한 번도 논의한 적이 없었으며, 캐니 에지 감지, 광학 흐름, 하우스도르프 거리와 같은 고전적인 알고리즘만 사용했습니다. 딥 러닝은 아직 초기 단계에 불과했고, 주류 CS는커녕 주류 AI로 간주되지도 않았습니다.

물론 30년 전의 일이고 그 이후로 많은 변화가 있었지만, 한 가지 변하지 않은 것은 CS가 데이터 구조, 알고리즘, 프로그래밍을 핵심으로 하는 학문으로 가르친다는 점입니다. 30년 후, 아니 10년 후에도 여전히 이런 방식으로 CS에 접근하고 있다면 정말 놀라울 것 같습니다. 실제로 CS 분야는 우리 중 누구도 예상하지 못한 큰 격변을 맞이하고 있다고 생각합니다.

프로그래밍은 쓸모없어질 것입니다. 저는 '프로그램을 작성한다'는 기존의 개념이 멸종할 것이며, 실제로 매우 특수한 애플리케이션을 제외한 대부분의 소프트웨어는 프로그래밍이 아닌 학습된 AI 시스템으로 대체될 것이라고 생각합니다. "간단한" 프로그램이 필요한 상황(모든 것이 GPU 클러스터에서 실행되는 수천억 개의 매개변수 모델을 필요로 하는 것은 아니기 때문에)에서는 이러한 프로그램이 수작업으로 코딩되는 것이 아니라 AI에 의해 생성될 것입니다.

저는 이 아이디어가 미친 생각이라고 생각하지 않습니다. 전기공학이라는 (상대적으로) 원시적인 동굴에서 나온 컴퓨터 과학의 초기 개척자들은 미래의 모든 컴퓨터 과학자들이 소프트웨어를 이해하기 위해서는 반도체, 이진 연산, 마이크로프로세서 설계에 대한 깊은 이해가 있어야 한다고 굳게 믿었습니다. 하지만 오늘날에 와서는 소프트웨어를 작성하는 사람의 99%가 트랜지스터 설계의 기초가 되는 물리학은 말할 것도 없고 CPU가 실제로 어떻게 작동하는지도 거의 모른다는 데 기꺼이 돈을 걸고 싶습니다. 더 나아가 미래의 컴퓨터 과학자들은 "소프트웨어"에 대한 고전적인 정의에서 너무 멀리 떨어져 있어서 링크된 목록을 뒤집거나 퀵소트를 구현하는 데 어려움을 겪게 될 것이라고 믿습니다. (저도 퀵소트를 직접 구현해본 기억이 잘 나지 않습니다.)

CoPilot과 같은 AI 코딩 어시스턴트는 제가 설명하는 것의 표면만 긁어모은 것에 불과합니다. 물론 미래의 모든 프로그램은 궁극적으로 AI에 의해 작성될 것이며, 인간은 기껏해야 감독 역할로 강등될 것이 분명해 보입니다. 이 예측을 의심하는 사람은 이미지 생성과 같은 AI 콘텐츠 생성의 다른 측면에서 매우 빠른 진전이 이루어지고 있는 것만 봐도 알 수 있습니다. 불과 15개월 후에 발표된 DALL-E v1과 DALL-E v2의 품질과 복잡성 차이는 놀라울 정도로 큽니다. 지난 몇 년 동안 AI 분야에서 일하면서 배운 것이 있다면, 점점 더 커지는 AI 모델의 힘을 과소평가하기 쉽다는 것입니다. 불과 몇 달 전만 해도 공상과학 소설처럼 보였던 일들이 빠르게 현실이 되고 있습니다.

따라서 저는 단순히 프로그래머를 대체하는 깃허브의 코파일럿 같은 것을 말하는 것이 아닙니다.1 저는 프로그램 작성의 전체 개념을 학습 모델로 대체하는 것에 대해 이야기하고 있습니다. 앞으로 CS 학생들은 바이너리 트리에 노드를 추가하는 방법이나 C++로 코딩하는 방법과 같은 평범한 기술을 배울 필요가 없을 것입니다. 공대생에게 슬라이드 룰 사용법을 가르치는 것처럼 이런 종류의 교육은 구식이 될 것입니다.

미래의 엔지니어는 몇 번의 키 입력만으로 이미 인간 지식의 전체 범위(그리고 일부)를 인코딩한 4억 5천만 개의 매개변수 모델 인스턴스를 실행하여 기계에 필요한 모든 작업을 부여할 준비가 되어 있을 것입니다. 기계가 원하는 작업을 수행하도록 하기 위한 지적 작업의 대부분은 올바른 예제, 올바른 학습 데이터, 학습 프로세스를 평가할 수 있는 올바른 방법을 찾는 것입니다. 단발성 학습을 통해 일반화할 수 있는 강력한 모델을 만들려면 수행해야 할 작업에 대한 좋은 예시 몇 개만 있으면 됩니다. 대부분의 경우 사람이 선별한 방대한 데이터 세트는 더 이상 필요하지 않을 것이며, AI 모델을 '훈련'하는 대부분의 사람들은 PyTorch 등에서 경사 하강 루프 등을 실행하지 않을 것입니다. 예제를 통해 가르치고 나머지는 기계가 알아서 할 것입니다.

이 새로운 컴퓨터 과학(컴퓨터 과학이라고 부를 수 있다면)에서 기계는 매우 강력하고 이미 많은 일을 할 수 있는 방법을 알고 있기 때문에 이 분야는 공학적 노력보다는 교육적 노력, 즉 학교에서 아이들을 가장 잘 교육하는 방법을 연구하는 과학과 달리 기계를 가장 잘 교육하는 방법을 연구하는 분야처럼 보일 것입니다. 하지만 (인간) 아이들과는 달리 이러한 AI 시스템은 비행기를 조종하고, 전력망을 운영하며, 심지어 국가 전체를 통치하게 될 수도 있습니다. 저는 지능형 기계를 직접 프로그래밍하는 것이 아니라 가르치는 데 초점을 맞추면 고전적인 CS의 대부분은 무의미해진다고 주장하고 싶습니다. 전통적인 의미의 프로그래밍은 사실상 죽게 될 것입니다.

저는 CS 분야가 준비된 사람이 거의 없을 정도로 큰 격변을 맞이하고 있다고 생각합니다.

이 모든 것이 컴퓨터 과학 분야에 대한 우리의 생각을 어떻게 바꾸나요? 새로운 계산 단위는 폰 노이만 머신을 구현하는 프로세서, 메모리, 입출력 시스템이 아니라 사전 학습된 고도로 적응력이 뛰어난 대규모 AI 모델이 될 것입니다. 이는 계산을 명령어 집합, 유형 시스템, 결정 가능성 개념의 지배를 받는 예측 가능한 정적 프로세스가 아닌, 우리가 생각하는 방식에 지각변동을 가져올 것입니다. AI 기반 계산은 정적 분석과 형식적 증명이 가능한 루비콘 강을 넘은 지 오래입니다. 우리는 계산의 기본 구성 요소가 기질적이고 신비로운 적응형 에이전트가 되는 세상으로 빠르게 나아가고 있습니다.

이러한 변화는 대규모 AI 모델이 어떻게 작동하는지 아무도 실제로 이해하지 못한다는 사실에서 잘 드러납니다. 사람들은 이러한 시스템이 인간에 의해 '설계'되었음에도 불구하고 실제로 기존 대규모 모델의 새로운 동작을 발견하는 연구 논문3,4,5을 발표하고 있습니다. 대규모 AI 모델은 명시적으로 학습되지 않은 작업을 수행할 수 있으며, 이는 닉 보스트롬2을 비롯해 초지능 AI의 폭주에 대해 걱정하는 모든 사람에게 두려움을 안겨줄 것입니다. 현재로서는 경험적 연구 외에는 현재 AI 시스템의 한계를 파악할 수 있는 방법이 없습니다. 훨씬 더 크고 복잡해질 미래의 AI 모델에 관해서는 행운을 빕니다!

프로그램에서 모델로 초점이 옮겨가는 것은 최신 머신러닝 논문을 읽어본 사람이라면 누구나 알 수 있는 사실입니다. 이러한 논문에서는 혁신의 기반이 되는 코드나 시스템에 대해서는 거의 언급하지 않으며, AI 시스템의 구성 요소는 주의 계층, 토큰화, 데이터 세트와 같은 훨씬 더 높은 수준의 추상화입니다. 20년 전의 시간 여행자라도 모델을 위해 구축된 실제 소프트웨어를 설명하는 75페이지 분량의 GPT-3 논문3의 세 문장을 이해하기가 어려울 것입니다: "우리는 여기에 설명된 수정된 초기화, 사전 정규화, 가역적 토큰화를 포함하여 GPT-2와 동일한 모델과 아키텍처를 사용하지만, 스파스 트랜스포머와 유사하게 트랜스포머 레이어에 조밀하고 국지적인 띠 모양의 스파스 주의 패턴을 교대로 사용한다는 점을 제외하고는 동일한 모델과 아키텍처를 사용합니다. 모델 크기에 따른 ML 성능의 의존성을 연구하기 위해 1억 2,500만 개의 매개변수부터 1,750억 개의 매개변수까지 세 배 이상 큰 8가지 크기의 모델을 훈련했으며, 마지막 모델은 GPT-3이라고 부르는 모델입니다. 이전 연구에 따르면 훈련 데이터가 충분할 경우 검증 손실의 스케일링은 크기에 따라 대략 완만한 거듭제곱 법칙을 따라야 하며, 다양한 크기의 모델을 훈련함으로써 검증 손실과 다운스트림 언어 작업 모두에 대해 이 가설을 테스트할 수 있습니다."라고 설명합니다.

컴퓨팅의 근본적인 정의에 대한 이러한 변화는 엄청난 기회와 함께 엄청난 위험을 수반합니다. 그러나 저는 이것이 매우 가능성이 높은 미래라는 사실을 받아들이고, 유성이 떨어지기를 기다리기보다는 그에 따라 우리의 생각을 발전시켜야 할 때라고 생각합니다.



Comments

나의 재물운? 연애운은?

AI가 봐주는 내 사주팔자 - 운세박사

https://aifortunedoctor.com/

Category
Magazine
훈남/훈녀
 
 
 
상점
Facebook Twitter GooglePlus KakaoStory NaverBand