소프트웨어가 다시 변화하고 있다

채널 아이콘
Y Combinator 구독자 1,700,000명

요약

이 영상에서 앙드레이 카르파시 전 테슬라 AI 책임자는 AI 시대에 소프트웨어가 1.0(전통 코드), 2.0(신경망 가중치), 3.0(LLM 프롬프트)로 진화하는 과정을 설명합니다. LLM을 전기·반도체·운영체제로 비유하며, 인간과 AI가 협업하는 ‘부분 자율화 앱’ 구축 원칙과 생성-검증 루프 가속화 방법을 제시합니다. 또한 영어로 프로그래밍하는 시대가 열렸음을 강조하며, 개발자들이 새로운 도구와 인프라를 설계해야 한다고 당부합니다.

주요 키워드

Software 3.0 LLM(대규모 언어 모델) 소프트웨어 2.0 자율화 슬라이더 부분 자율화 앱 컨텍스트 윈도우 허깅페이스(Hugging Face) 프롬프트 프로그래밍 vibe coding 운영체제

하이라이트

  • 🔑 소프트웨어 1.0, 2.0, 3.0: 전통 코드, 신경망 가중치, LLM 프롬프트로 소프트웨어 패러다임을 재정의한다.
  • ⚡️ LLM은 전기(electricity)처럼 유틸리티, 반도체(fab)처럼 자본집약, 운영체제(OS)처럼 복잡한 생태계를 이루는 새로운 컴퓨터다.
  • 🌟 테슬라 오토파일럿 사례: 신경망이 점차 C++ 코드를 대체하며 이미지 인식부터 스티칭 기능까지 소프트웨어 스택을 먹어치운다.
  • 🚀 부분 자율화 앱: AI가 컨텍스트 관리·복수 모델 호출을 맡고, 인간은 최종 검증을 맡아 생성-검증 루프를 극대화한다.
  • 📌 자율화 슬라이더(autonomy slider): 수동에서 전자동까지 원하는 만큼 자율화 수준을 조절해 효율성과 안전을 균형 있게 유지한다.
  • 🔥 LLM의 심리: 사람을 시뮬레이션한 ‘사람의 정신’으로서 백과사전적 기억력과 빈번한 환각(hallucination) 등 인지적 강·약점을 동시에 갖는다.
  • 💡 에이전트를 위한 문서화: robots.txt처럼 lm.txt로 도메인 설명을 제공하고, LLM이 이해·행동하기 쉬운 문서 구조로 전환해야 한다.
  • 🌱 바이브 코딩(vibe coding): 자연어로 앱을 순식간에 프로토타이핑할 수 있어 누구나 프로그래머가 되는 민주화된 미래가 열렸다.

용어 설명

Software 1.0

개발자가 직접 작성하는 전통적인 컴퓨터 코드(C++·Python 등).

Software 2.0

데이터와 옵티마이저로 훈련된 신경망(Neural Network) 가중치가 실행 로직이 되는 소프트웨어 방식.

Software 3.0

자연어 프롬프트가 프로그램이 되는 LLM(대규모 언어 모델) 기반 소프트웨어 패러다임.

LLM(대규모 언어 모델)

방대한 텍스트를 학습해 자연어를 이해·생성하는 자동회귀형 트랜스포머 기반 AI.

자율화 슬라이더(autonomy slider)

앱·서비스에서 AI 자율화 수준을 수동→전자동 구간 내에서 조절하는 인터페이스 개념.

[00:00:22] 소프트웨어 변화의 서막

카르파시는 AI 시대에 소프트웨어가 70년간 거의 변하지 않다가 최근 몇 년간 두 차례 근본적 변화를 겪었다고 언급한다. 특히 지금은 세 번째 패러다임 전환이 진행 중이며 막대한 코드 재작성 기회가 있다고 강조한다.

소프트웨어가 70년 동안 근본적 수준에서 크게 변하지 않았지만, 지난 몇 년간 두 번 정도 급격한 변화를 겪었다고 설명한다. 이로 인해 작성하고 재작성해야 할 소프트웨어가 엄청나게 많아졌다고 언급한다.
GitHub 지도라는 도구를 통해 소프트웨어 영역을 시각화하여 보여준다. 이는 디지털 공간에서 작업을 수행하기 위한 컴퓨터 지시사항들로, 작성된 모든 코드와 다양한 저장소들을 나타낸다.
몇 년 전 관찰한 소프트웨어의 변화를 설명하며 '소프트웨어 2.0' 개념을 소개한다. 소프트웨어 1.0이 컴퓨터를 위해 직접 작성하는 코드라면, 소프트웨어 2.0은 신경망의 가중치로서 데이터셋 조정과 최적화기를 통해 생성된다고 설명한다.
[00:01:42] Software 2.0과 허깅페이스

소프트웨어 2.0을 신경망 가중치로 정의하고, GitHub가 1.0의 허브라면 Hugging Face는 2.0의 허브임을 설명한다. 파인튜닝을 통한 모델 커밋 방식을 Git 커밋에 비유하며 생태계를 조망한다.

현재 소프트웨어 2.0 영역에는 허깅페이스가 GitHub와 동등한 역할을 하고 있다고 설명한다. 플럭스 이미지 생성기를 예시로 들며, 모델 튜닝이 이 공간에서 git 커밋과 같은 역할을 하여 새로운 이미지 생성기를 만든다고 설명한다.
Karpathy가 소프트웨어의 진화를 설명합니다. 소프트웨어 1.0은 컴퓨터를 프로그래밍하는 코드, 2.0은 신경망을 프로그래밍하는 가중치였다며 AlexNet 같은 이미지 인식 신경망을 예로 듭니다.
기존 신경망들은 이미지를 카테고리로 분류하는 등 고정된 기능만 수행했지만, 대형 언어 모델의 등장으로 신경망이 프로그래밍 가능해진 것이 근본적인 변화라고 강조합니다.
이를 새로운 종류의 컴퓨터로 보고 소프트웨어 3.0이라 명명합니다. 프롬프트가 LLM을 프로그래밍하는 프로그램이 되었고, 놀랍게도 이 프롬프트들이 영어로 작성된다는 점을 강조합니다.
[00:03:18] Software 3.0: LLM 프로그래밍

LLM이 자연어로 프로그래밍 가능한 새로운 컴퓨터임을 소개한다. 전통적 분류기에서 벗어나 ‘프롬프트’가 곧 프로그램이 되는 방식을 Software 3.0으로 부르며 예시를 통해 차이를 비교한다.

감정 분석 예시를 통해 기존 방식들과 비교합니다. 파이썬 코드 작성, 신경망 훈련, 또는 대형 언어 모델에 프롬프트 제공 등의 방법이 있으며, GitHub에서 코드와 영어가 섞인 새로운 형태의 코드가 늘어나고 있습니다.
[00:04:01] LLM의 유틸리티·반도체·OS 비유

LLM을 전기망처럼 메터링 서비스, 반도체 팹처럼 대규모 CAPEX, 운영체제처럼 복잡한 생태계로 비유한다. 전력망 전환 스위치, OS 앱 호환성, 1960년대 컴퓨팅 아키텍처와의 유사성을 제시한다.

새로운 프로그래밍 패러다임이 우리의 모국어인 영어로 이루어진다는 점이 놀랍다며, 몇 년 전 자신이 올린 '영어로 컴퓨터를 프로그래밍한다'는 트윗이 많은 관심을 받았다고 회상합니다.
테슬라 오토파일럿 개발 경험을 공유합니다. 자동차 입력이 소프트웨어 스택을 통해 조향과 가속을 생성하는 구조에서, 초기에는 C++ 코드(소프트웨어 1.0)가 많았고 이미지 인식용 신경망들이 있었습니다.
시간이 지나면서 오토파일럿이 개선될수록 신경망의 기능과 크기가 성장하고 C++ 코드는 삭제되었다고 설명합니다. 서로 다른 카메라 이미지 간 정보 연결과 시간적 처리 등 원래 1.0으로 작성된 기능들이 2.0으로 마이그레이션되었습니다.
소프트웨어 2.0이 자율주행 시스템의 소프트웨어 스택을 완전히 대체했던 경험을 회상하며, 현재도 새로운 종류의 소프트웨어가 스택을 뚫고 들어오는 같은 현상이 일어나고 있다고 설명합니다.
세 가지 완전히 다른 프로그래밍 패러다임(1.0, 2.0, 3.0)이 존재하며, 업계 진입자들은 각각의 장단점을 이해하고 상황에 따라 적절한 패러다임을 선택할 수 있어야 한다고 강조합니다.
LLM과 새로운 패러다임 생태계에 대해 본격적으로 논의하기 시작하며, 이 새로운 컴퓨터의 정체와 생태계의 모습을 탐구하겠다고 소개합니다.
[00:06:16] LLM의 심리와 인지 특성

LLM을 사람 정신의 시뮬레이션으로 보며 백과사전적 기억력과 뛰어난 문제해결력을 가진 반면, 환각(hallucination), 단기 작업 기억(working memory) 제한, 프롬프트 주입 공격 등에 취약함을 설명한다.

앤드류 응의 'AI는 새로운 전기'라는 명언을 인용하며, LLM이 현재 유틸리티의 속성을 가지고 있다는 관찰을 제시합니다.
LLM 연구소들이 전력회사와 유사한 방식으로 운영된다고 설명합니다. 자본투자로 LLM을 훈련하고, 운영비로 API를 통해 지능을 제공하며, 계량 기반으로 과금하는 구조를 분석합니다.
전기 유틸리티와 LLM 서비스의 유사점을 구체적으로 비교합니다. 낮은 지연시간, 높은 가동시간, 일관된 품질 등의 요구사항과 전환 스위치(오픈라우터) 개념을 설명합니다.
최근 LLM 서비스 중단 사례를 통해 '지능 정전' 개념을 소개하며, 세상이 이러한 모델들에 얼마나 의존하고 있는지, 그리고 이 의존도가 계속 증가할 것이라는 점을 강조합니다.
LLM은 유틸리티의 성격뿐만 아니라 팹(fab)의 성격도 가지고 있다고 설명합니다. LLM 구축에 필요한 자본지출이 상당히 크고, 기술 트리가 빠르게 발전하면서 연구개발 비밀이 LLM 연구소들 내부에서 중앙집중화되고 있습니다.
[00:08:17] 부분 자율화 앱과 GUI

AI와 인간이 협업하는 ‘부분 자율화 앱’을 제안한다. Cursor·Perplexity 사례를 통해 컨텍스트 관리, 복수 LLM 호출 조율, 전용 GUI로 생성→검증 루프를 빠르게 도는 구조를 소개한다.

소프트웨어의 가변성으로 인해 방어 가능성이 낮다고 지적하며, 4나노미터 공정 노드와 클러스터의 비유, 엔비디아 GPU 사용 시 팹리스 모델과 구글의 TPU처럼 자체 하드웨어를 구축하는 인텔 모델의 비교를 제시합니다.
LLM이 운영 체제와 매우 강한 유사성을 가지고 있다고 주장합니다. 단순한 전기나 물 같은 상품이 아니라 점점 더 복잡한 소프트웨어 생태계가 되고 있으며, Windows/Mac OS 같은 클로즈드 소스 제공업체와 Linux 같은 오픈 소스 대안의 구조와 유사하다고 설명합니다.
LLM 생태계에서도 클로즈드 소스 제공업체들과 라마 생태계가 Linux와 같은 오픈 소스 대안으로 성장할 가능성을 언급합니다. 아직 초기 단계이지만 단순한 LLM을 넘어 도구 사용과 다중 모달리티를 포함한 더 복잡한 시스템으로 발전할 것이라고 예측합니다.
LLM을 새로운 운영 체제로 개념화하며, LLM이 CPU 역할을 하고 컨텍스트 윈도우가 메모리 역할을 하면서 문제 해결을 위한 메모리와 연산을 조율한다는 아키텍처 관점을 제시합니다.
LLM을 운영체제로 비유하며, 앱을 다운로드하여 다양한 운영체제에서 실행하는 것처럼 LLM 앱도 여러 플랫폼에서 실행할 수 있다고 설명합니다.
현재 LLM은 1960년대 컴퓨팅 시대와 유사하다고 분석합니다. LLM 컴퓨팅 비용이 높아 클라우드 중앙화가 필요하고, 시분할 방식으로 사용자들이 접근하는 구조입니다.
[00:11:00] 생성-검증 루프 가속화

AI가 생성(gen)하고 인간이 검증(ver)하는 협업 사이클을 강조한다. GUI·시각화가 검증 속도를 높이며, 애플리케이션별 감사 가능 인터페이스와 안정적 고속 루프 설계가 필수임을 설명한다.

개인 컴퓨팅 혁명은 아직 경제적이지 않아 일어나지 않았지만, Mac Mini와 같은 하드웨어가 일부 LLM에 적합한 초기 징후를 보인다고 언급합니다.
LLM과의 텍스트 대화를 터미널을 통한 운영체제 접근에 비유하며, 아직 일반적인 GUI가 발명되지 않았다고 지적합니다.
LLM이 초기 컴퓨팅과 다른 독특한 특성을 가지고 있으며, 특히 기술 확산 방향을 뒤바꾸는 특별한 속성을 가진다고 설명합니다.
새로운 혁신적 기술들은 일반적으로 정부와 기업이 먼저 사용하고 나중에 소비자에게 확산되지만, LLM은 정반대로 소비자가 먼저 사용하고 있다는 점이 흥미롭다.
초기 컴퓨터가 군사용과 탄도학에 사용된 반면, LLM은 달걀 삶는 방법 같은 일상적인 용도로 사용되며, 정부와 기업들이 오히려 채택에 뒤처져 있다.
[00:13:52] 테슬라 오토파일럿의 진화

오토파일럿 개발 경험을 공유하며, 신경망이 C++ 코드를 점진 대체해 기능을 확장시킨 과정을 서술한다. 완전 자율 주행 데모의 한계와 인간 검증 필요성을 강조한다.

LLM 연구소들이 복잡한 운영체제 같은 LLM을 개발하고 있으며, 이는 1960년대 컴퓨팅 수준으로 시분할 방식으로 유틸리티처럼 배포되고 있다.
전례없이 이 기술이 소수 정부나 기업이 아닌 일반인 모두의 손에 있으며, ChatGPT가 하룻밤 사이에 수십억 명에게 전달된 것은 놀라운 일이다.
LLM을 프로그래밍하기 전에 이들의 본질을 이해해야 하며, 특히 LLM의 심리학적 측면을 고려해야 한다.
LLM은 '인간 영혼'과 같은 존재로, 자동회귀 트랜스포머라는 시뮬레이터를 통한 인간의 확률적 시뮬레이션이며, 토큰 단위로 작동한다.
인터넷의 모든 텍스트에 학습된 LLM은 인간과 같은 창발적 심리학을 갖게 되었으며, 개별 인간보다 훨씬 많은 백과사전적 지식과 기억력을 보유하고 있다.
Andrej Karpathy가 LLM을 영화 '레인맨'의 자폐성 서번트와 비교하며, LLM의 특성을 설명합니다. LLM은 SHA 해시값이나 다양한 정보를 완벽하게 기억하는 초인적 능력을 가지고 있습니다.
하지만 LLM은 환각, 내용 조작, 부족한 자기 인식 등의 인지적 결함을 가지고 있습니다. 들쭉날쭉한 지능을 보여주며, 9.11이 9.9보다 크다고 주장하거나 딸기에 R이 두 개 있다고 하는 등 인간은 하지 않을 실수를 합니다.
LLM은 역행성 기억상실증을 겪으며, 인간 동료처럼 시간이 지나면서 조직을 학습하고 전문성을 개발하지 못합니다. 컨텍스트 윈도우는 작업 메모리와 같아서 직접 프로그래밍해야 하며, '메멘토'와 '50번째 첫 키스' 영화의 주인공처럼 매일 기억이 초기화됩니다.
LLM의 보안 관련 한계점으로는 높은 속임 당하기 쉬움, 프롬프트 인젝션 위험, 데이터 유출 가능성 등이 있습니다. 이러한 초인적 능력과 인지적 결함을 동시에 가진 복잡한 특성을 이해하고 활용해야 합니다.
LLM의 초인적 능력과 인지적 결함을 모두 가진 특성을 어떻게 활용하고 극복할지에 대한 문제를 제기하며, 이를 통해 얻을 수 있는 기회들을 탐색하겠다고 선언합니다.
LLM 활용의 첫 번째 기회로 '부분 자율성 앱'을 제시하며, 코딩을 예시로 들어 ChatGPT에 직접 접근하는 것보다 전용 앱을 사용하는 것이 더 효율적임을 설명합니다.
Cursor를 초기 LLM 앱의 우수한 사례로 소개하며, 전통적인 수동 인터페이스와 LLM 통합 기능을 모두 제공하여 더 큰 단위의 작업을 가능하게 한다고 설명합니다.
[00:18:58] 에이전트를 위한 디지털 인프라

웹사이트에 robots.txt 대신 lm.txt를 도입해 LLM이 도메인 특성을 직접 읽고 행동하도록 제안한다. Markdown 기반 문서, CLI 예제 등 LLM 친화적 문서화가 필수임을 강조한다.

LLM 앱의 핵심 속성들을 설명합니다: 광범위한 컨텍스트 관리, 다중 LLM 호출 조율(임베딩 모델, 채팅 모델, 코드 diff 적용 모델 등), 그리고 애플리케이션 특화 GUI의 중요성을 강조합니다.
텍스트 기반 직접 소통의 한계를 지적하며, 시각적 diff 표시와 간단한 키보드 단축키(Command+Y/N)를 통한 GUI의 우수성을 설명합니다. 이를 통해 인간이 실수 가능한 시스템을 효과적으로 감사하고 빠르게 작업할 수 있다고 강조합니다.
Cursor의 '자율성 슬라이더' 개념을 소개하며, 탭 완성부터 코드 덩어리 변경(Command+K), 전체 파일 변경(Command+L)까지 다양한 수준의 자동화 옵션을 제공한다고 설명합니다.
개발자는 Cursor에서 Command I를 통해 전체 저장소에서 자유롭게 작업할 수 있으며, 이는 완전한 자율성을 가진 에이전트 버전이다. 자율성 슬라이더를 통해 작업의 복잡성에 따라 AI에게 부여할 자율성 정도를 조절할 수 있다.
Perplexity는 성공적인 LLM 앱의 또 다른 예시로, Cursor와 유사하게 정보 패키징, 다중 LLM 오케스트레이션, 작업 감사용 GUI, 그리고 자율성 슬라이더를 제공한다. 빠른 검색부터 심화 연구까지 다양한 수준의 자율성을 지원한다.
[00:20:56] vibe coding과 개발자 민주화

바이브 코딩(vibe coding)으로 자연어만으로 iOS·웹앱 프로토타입을 순식간에 구현해보는 시연을 통해, 누구나 프로그래머가 되는 새로운 시대의 가능성을 선보인다.

많은 소프트웨어가 부분적으로 자율적이 될 것으로 예상되며, 이를 위해서는 LLM이 인간이 보고 행동할 수 있는 모든 것을 할 수 있어야 하고, 인간이 감독 루프에 머물 수 있어야 한다. 현재의 전통적인 소프트웨어는 인간을 위해 설계되어 있어 LLM이 접근할 수 있도록 변화해야 한다.
LLM 앱에서 중요하지만 충분히 주목받지 못하는 점은 AI와의 협력 구조다. AI가 생성을 담당하고 인간이 검증을 담당하는 이 루프를 최대한 빠르게 돌리는 것이 핵심이다.
AI-인간 협력 루프를 최적화하는 두 가지 주요 방법이 있다. 첫째, GUI를 통한 검증 속도 향상이다. 텍스트 읽기는 힘들지만 시각적 정보는 뇌로 가는 고속도로 역할을 하여 시스템 감사에 매우 유용하다. 둘째, AI를 통제하에 두는 것이다. 10,000줄의 코드 diff 같은 과도한 결과물은 인간이 여전히 병목지점이 되기 때문에 유용하지 않다.
AI가 생성한 1만 줄의 코드를 즉시 받더라도, 개발자는 여전히 모든 코드를 검토하고 버그나 보안 문제가 없는지 확인해야 하는 병목현상에 직면한다고 설명합니다.
AI 보조 코딩에서 개발-검증 루프를 빠르게 돌리면서도 AI를 통제하는 것이 중요하며, 과도한 반응을 보이는 AI 때문에 실제 업무에서는 어려움이 있다고 언급합니다.
개발자들이 AI와 함께 작업하는 방법을 개발해야 하며, 큰 변경사항보다는 작은 증분적 단위로 작업하면서 빠른 피드백 루프를 유지하는 것이 중요하다고 강조합니다.
LLM과의 효과적인 작업을 위한 모범 사례를 다룬 블로그 글을 소개하며, 모호한 프롬프트보다는 구체적인 프롬프트를 사용해야 검증 성공률을 높일 수 있다고 설명합니다.
AI와 LLM이 있는 환경에서의 교육에 대한 관심을 표현하며, 단순히 채팅으로 "물리학을 가르쳐줘"라고 하는 것만으로는 효과적이지 않다고 지적합니다.
교사가 강의를 만드는 앱과 학생에게 강의를 제공하는 앱을 분리하여, 중간에 감사 가능한 강의 산출물을 두는 구조적 접근 방식을 제안합니다.
AI를 특정한 교육과정과 프로젝트 진행에 맞춰 통제하는 방법을 설명하며, 이것이 AI가 길을 잃지 않게 하는 효과적인 방법이라고 강조합니다.
화자가 테슬라에서 5년간 부분 자율성 제품을 개발한 경험을 소개하며, 오토파일럿의 GUI와 자율성 슬라이더 등의 기능들을 설명합니다.
2013년 웨이모 차량으로 팰로 알토에서 30분간 완벽한 자율주행을 경험했던 일화를 들려주며, 당시 자율주행이 곧 실현될 것이라고 생각했다고 회상합니다.
12년이 지난 지금도 여전히 자율주행 문제가 완전히 해결되지 않았음을 지적하며, 웨이모조차 여전히 많은 원격 조작과 인간 개입이 필요하다고 설명합니다.
소프트웨어 개발이 주행만큼 까다롭다고 강조하며, 2025년이 에이전트의 해라는 주장에 대해 우려를 표하고 이것은 에이전트의 10년이 될 것이라고 예측합니다.
아이언맨 슈트를 기술 발전의 올바른 모델로 제시하며, 그것이 인간의 증강과 제어 모두를 가능하게 하는 이상적인 형태라고 설명합니다.
아이언맨 슈트의 비유를 통해 AI 시스템이 증강 도구이자 동시에 자율적인 에이전트 역할을 할 수 있음을 설명합니다. 현재 불완전한 LLM과 작업할 때는 완전 자율 로봇보다는 부분적 자율성을 가진 제품을 만드는 것이 더 실용적이라고 강조합니다.
부분적 자율성 제품은 맞춤형 GUI와 UI/UX를 가져야 하며, 인간의 생성-검증 루프를 빠르게 만들어야 합니다. 동시에 자율성 슬라이더를 통해 시간이 지남에 따라 더 자율적으로 발전할 수 있도록 설계해야 한다고 제안합니다.
LLM의 가장 독특한 특징 중 하나는 영어로 프로그래밍된다는 점입니다. 이는 자연어 인터페이스로 인해 모든 사람이 프로그래머가 될 수 있게 하는 전례 없는 변화입니다. 과거에는 소프트웨어 개발을 위해 5-10년의 학습이 필요했지만 이제는 그렇지 않습니다.
'바이브 코딩'이라는 용어를 소개한 자신의 트윗이 예상과 달리 바이럴이 되어 주요 밈이 되고 심지어 위키피디아 페이지까지 생겼다는 개인적인 경험을 공유합니다. 이는 모든 사람이 느끼고 있던 현상에 이름을 붙여준 것이라고 설명합니다.
HuggingFace의 Tom Wolf가 공유한 아이들이 바이브 코딩을 하는 영상을 소개하며, 이를 매우 훈훈하고 좋아한다고 표현합니다.
Karpathy는 아이들이 바이브 코딩하는 영상을 보며 미래에 대해 낙관적인 견해를 표현합니다. 이러한 접근 방식이 소프트웨어 개발의 관문 역할을 할 것이라고 예측합니다.
바이브 코딩의 장점을 설명하며, 존재하지 않는 맞춤형 기능을 즉흥적으로 개발할 때의 유용성을 강조합니다. Swift를 모르면서도 iOS 앱을 하루 만에 개발한 경험을 공유합니다.
Menu Gen 앱 개발 사례를 소개합니다. 레스토랑 메뉴를 사진으로 찍으면 음식 이미지를 생성해주는 서비스로, menu.app에서 실제 운영 중입니다. 사용자에게 5달러 무료 크레딧을 제공하여 현재는 적자 상태입니다.
Menu Gen 개발에서 흥미로운 점을 설명합니다. 실제 코딩은 쉬웠지만, 인증, 결제, 도메인, 배포 등 실용화 과정이 훨씬 어려웠습니다. 데모는 몇 시간 만에 완성했지만 실제 서비스화에는 일주일이 걸렸습니다.
웹 개발의 복잡성을 Google 로그인 통합 사례로 설명합니다. Clerk 라이브러리의 복잡한 설정 과정에서 컴퓨터가 사람에게 수많은 수동 작업을 지시하는 아이러니한 상황을 지적합니다.
화자는 컴퓨터가 사용자에게 수동적인 작업을 지시하는 현재 상황에 대한 불만을 표현하며, 에이전트가 이런 작업을 대신할 수 있을지 의문을 제기한다.
디지털 정보의 새로운 소비자 범주로 에이전트를 제시하며, 기존의 인간(GUI)과 컴퓨터(API)에 더해 인간과 유사한 특성을 가진 '사람의 영혼' 같은 존재라고 설명한다.
robots.txt와 유사하게 lm.txt 파일을 통해 LLM에게 직접 도메인 정보를 제공하는 방법을 제안하며, HTML 파싱보다 효율적이고 오류가 적다고 설명한다.
현재 문서들이 사람을 위해 작성되어 있어 LLM이 접근하기 어렵다는 점을 지적하고, Vercel과 Stripe 같은 초기 도입자들이 LLM 친화적인 마크다운 문서를 제공하고 있다고 소개한다.
3Blue1Brown의 Manim 라이브러리 문서를 LLM에 입력하여 원하는 애니메이션을 즉시 생성한 개인적 경험을 통해 LLM 친화적 문서의 효과를 실증한다.
단순히 문서를 마크다운으로 변환하는 것을 넘어서 실제 내용도 변경해야 한다고 강조하며, '클릭'과 같은 표현이 LLM에게는 적합하지 않다는 예시를 제시한다.
LLM이 현재 웹 인터페이스의 '클릭' 동작을 직접 수행할 수 없기 때문에, Vercel 같은 회사들이 모든 '클릭' 지시사항을 LLM 에이전트가 실행할 수 있는 동등한 curl 명령어로 바꾸고 있습니다. Anthropic의 모델 컨텍스트 프로토콜도 에이전트와 직접 소통하는 새로운 방법을 제시합니다.
LLM 친화적인 형식으로 데이터를 제공하는 도구들이 등장하고 있습니다. GitHub URL을 getingest로 바꾸면 모든 파일이 하나의 텍스트로 연결되어 LLM에 바로 활용할 수 있습니다. 딥위키는 더 나아가 Devon이 GitHub 저장소를 분석해서 전체 문서 페이지를 자동으로 생성해줍니다.
미래에는 LLM이 직접 클릭 동작을 수행할 수 있겠지만, 여전히 LLM과 중간 지점에서 만나는 것이 가치 있습니다. 비용과 복잡성 때문에 많은 소프트웨어가 즉시 적응하지 못할 것이기 때문입니다.
소프트웨어 업계에 들어오기에 놀라운 시대입니다. 엄청난 양의 코드를 다시 작성해야 하고, LLM들은 유틸리티, 팹, 특히 운영체제의 특성을 가집니다. 하지만 아직 1960년대 운영체제 수준의 초기 단계입니다.
LLM들은 함께 일하는 법을 배워야 하는 오류를 범할 수 있는 '사람의 영혼' 같은 존재입니다. 효과적으로 작업하기 위해서는 인프라를 조정하고, 빠른 반복을 통해 부분적으로 자율적인 제품을 만들어야 합니다.
전 테슬라 AI 디렉터 안드레이 카르파티를 소개합니다.
안드레이 카르파티.
[음악]
안녕하세요.
[음악]
와, 정말 많은 분들이 오셨네요. 안녕하세요.
음, 좋습니다. 네. 오늘 AI 시대의 소프트웨어에 대해
이야기할 수 있어서 기쁩니다. 많은 분들이
학부생, 대학원생, 박사과정 등
학생이라고 들었습니다. 그리고 여러분은
곧 업계에 진출하게 될 텐데요. 지금이
실제로 매우 독특하고
흥미로운 시기에
업계에 진출하는 것 같습니다.
그리고 제가 생각하기에
그 근본적인 이유는
소프트웨어가 다시 변화하고 있기 때문입니다.
그리고 제가 '다시'라고 말하는 이유는 실제로
이 발표를 이미 한 적이 있기 때문입니다. 하지만 문제는
소프트웨어가 계속 변화한다는 것입니다. 그래서
실제로 새로운 발표를 만들 수 있는
많은 자료가 있고, 이것이
꽤 근본적으로 변화하고 있다고 생각합니다.
대략적으로 말하면, 소프트웨어는
그런 근본적인 수준에서
70년 동안 크게 변하지 않았습니다. 그런데
지난 몇 년 동안 제 생각에 약
두 번 정도 꽤 급격하게 변했습니다. 그래서
해야 할 일이 엄청나게 많고
작성하고 다시 작성해야 할 소프트웨어가 많습니다.
소프트웨어의 영역을 살펴보겠습니다.
이것을 소프트웨어의 지도라고 생각하면
이것은 GitHub 지도라는
정말 멋진 도구입니다.
이것은 작성된 모든 소프트웨어의 일종입니다.
이것들은
디지털 공간에서 작업을 수행하기 위한
컴퓨터에 대한 지시사항입니다.
여기서 확대해보면, 이것들은
다양한 종류의 저장소들이고
작성된 모든 코드입니다.
그리고 몇 년 전에 저는
소프트웨어가 변화하고 있고
새로운 유형의 소프트웨어가
등장하고 있다는 것을 관찰했습니다.
그리고 저는 이것을 당시 소프트웨어 2.0이라고 불렀습니다.
여기서 아이디어는 소프트웨어 1.0은
컴퓨터를 위해 작성하는 코드라는 것입니다. 소프트웨어 2.0은
기본적으로 신경망이고
특히 신경망의 가중치이며
이 코드를 직접 작성하지 않습니다.
대부분 데이터셋을 조정하고
최적화기를 실행해서
이 신경망의 매개변수를
생성합니다. 그리고 당시 신경망은
일종의 다른 종류의 분류기, 의사결정 트리나
그런 것 정도로 여겨졌고
그래서 제가 생각하기에
이런 프레이밍이 훨씬 더 적절했습니다.
그리고 실제로 지금 우리가 가지고 있는 것은
소프트웨어 2.0 영역에서
GitHub와 동등한 것입니다. 그리고
제가 생각하기에 허깅페이스는 기본적으로
소프트웨어 2.0에서의 GitHub와 동등합니다.
그리고 모델 아틀라스도 있고
거기에 작성된 모든 코드를 시각화할 수 있습니다.
혹시 궁금하시다면, 그런데
거대한 원, 중앙의 점은
플럭스 이미지 생성기의 매개변수입니다.
그래서 누군가가 플럭스 모델 위에서
튜닝을 할 때마다, 기본적으로
이 공간에서 git 커밋을 생성하고
다른 종류의 이미지 생성기를 만듭니다.
그래서 기본적으로 우리가 가진 것은 소프트웨어 1.0은 컴퓨터
프로그래밍하는 코드입니다. 소프트웨어
코드가 컴퓨터를 프로그래밍합니다. 소프트웨어
2.0은 신경망을 프로그래밍하는 가중치입니다.
그리고 여기 AlexNet 이미지
인식기 신경망의 예시가 있습니다.
지금까지 우리가 최근까지
익숙했던 모든 신경망들은
일종의 고정된 기능을 가진
컴퓨터였습니다. 이미지를 카테고리로 분류하거나
그런 것들 말이죠. 그리고
무엇이 바뀌었고 제 생각에는
꽤 근본적인 변화라고
생각하는 것은 신경망이 대형
언어 모델로 프로그래밍 가능해졌다는 것입니다.
그래서 저는 이것을 꽤 새롭고
독특하다고 봅니다. 새로운 종류의 컴퓨터이고
제 생각에는 새로운
소프트웨어 3.0이라는 지정을
받을 만합니다. 그리고 기본적으로 여러분의 프롬프트가
이제 LLM을 프로그래밍하는 프로그램입니다.
그리고 놀랍게도 이런
프롬프트들은 영어로 작성됩니다.
매우 흥미로운 프로그래밍 언어죠.
음, 차이점을 요약하자면
예를 들어 감정 분석을
한다면 파이썬으로 감정 분석을
하는 코드를 작성하거나
신경망을 훈련시키거나
대형 언어 모델에 프롬프트를
줄 수 있습니다. 여기 이것이
짧은 프롬프트의 예시이고
이를 변경해서 컴퓨터를
조금 다른 방식으로
프로그래밍할 수 있습니다. 그래서 기본적으로
소프트웨어 1.0, 소프트웨어 2.0이 있고
제 생각에는 GitHub 코드를 많이
보셨다면 더 이상 단순한
코드만이 아니라는 것을 아실 것입니다.
코드 사이사이에 영어가 많이 섞여 있고
새로운 종류의 코드 범주가
늘어나고 있다고 생각합니다.
새로운 프로그래밍 패러다임일 뿐만 아니라
우리의 모국어인 영어로
되어 있다는 것이 정말 놀랍습니다.
이것이 몇 년 전 제 마음을 사로잡았을 때
저는 이것을 트윗했고
많은 사람들의 관심을
끌었습니다. 이것이 제가 현재
고정해 놓은 트윗입니다. 놀랍게도
우리는 이제 영어로 컴퓨터를 프로그래밍하고 있습니다.
제가 테슬라에 있을 때 우리는
오토파일럿을 작업하고 있었고
자동차가 운전하도록 만들려고 했습니다.
그 당시 제가 보여준 슬라이드에서
자동차의 입력이 하단에 있고
소프트웨어 스택을 통해
조향과 가속을 생성한다고 상상할 수 있습니다.
그 당시 제가 관찰한 것은
오토파일럿 주변에 소프트웨어 1.0 코드인
C++ 코드가 엄청나게 많았고
그리고 이미지 인식을 하는
신경망들이 있었다는 것입니다.
그리고 시간이 지나면서
오토파일럿을 개선할수록
기본적으로 신경망이
기능과 크기에서 성장했고 그에 더해
모든 C++ 코드가 삭제되고 있었습니다.
그리고 원래 1.0으로 작성되었던
많은 기능과 기능성들이
2.0으로 마이그레이션되었습니다.
예를 들어, 서로 다른 카메라의
이미지들 간의 정보를
연결하고 시간에 걸쳐
처리하는 많은 작업들이 신경망에 의해
수행되었고 우리는 많은 코드를
코드를 삭제할 수 있었습니다. 그래서 소프트웨어 2.0 스택이
말 그대로 자율주행의 소프트웨어
스택을 뚫고 들어왔습니다. 저는
당시 이것이 정말 놀라웠다고 생각했고
지금도 같은 현상을 보고 있다고 생각합니다
기본적으로 우리에게는 새로운 종류의
소프트웨어가 있고 이것이 스택을
뚫고 들어오고 있습니다. 우리는 완전히
다른 세 가지 프로그래밍 패러다임을 가지고 있고
만약 여러분이 이 업계에 진입한다면
이 모든 것에 능숙해지는 것이
매우 좋은 아이디어라고 생각합니다. 왜냐하면
각각 약간의 장단점이 있고 여러분은
일부 기능을 1.0이나 2.0이나
3.0으로 프로그래밍하고 싶을 수도 있기 때문입니다. 신경망을
훈련할 건가요? 그냥 LLM에
프롬프트를 줄 건가요? 이것이 명시적인
코드 조각이어야 할까요? 등등. 그래서 우리 모두
이런 결정을 내려야 하고 실제로
잠재적으로 이러한 패러다임들 사이를
유연하게 전환해야 합니다. 그래서 제가
지금 다루고 싶은 것은 먼저 첫 번째 부분에서
LLM에 대해 이야기하고 이 새로운
패러다임과 생태계에 대해 어떻게 생각해야 하는지
그리고 그것이 어떤 모습인지에 대해
이야기하고 싶습니다. 이 새로운 컴퓨터가
무엇인지, 어떤 모습인지
그리고 생태계는 어떤 모습인지 말입니다.
저는 실제로 몇 년 전 앤드류 응의
이 인용문에 깊은 인상을 받았습니다
그리고 앤드류가 저 다음에
연설할 예정이라고 생각합니다. 하지만 그는
당시 AI는 새로운 전기라고
말했고 저는 그것이 실제로
매우 흥미로운 것을 포착한다고 생각합니다
LLM이 확실히 유틸리티의
속성을 가지고 있다고 느끼는 점에서 말입니다
지금 현재. 그래서
OpenAI, Gemini, Anthropic 등과 같은
LLM 연구소들은 LLM을 훈련하기 위해
자본 지출을 하고 이것은
전력망을 구축하는 것과 같은 것이며
그 지능을 API를 통해
우리 모두에게 제공하는 운영비가 있고
이것은 우리가 백만 토큰당
비용을 지불하는 방식이나 그와 비슷한
계량 접근을 통해 이루어지며
우리는 이 API에서 매우
유틸리티와 같은 많은 요구사항들을 가지고 있습니다
우리는 낮은 지연시간, 높은 가동시간,
일관된 품질 등을 요구합니다. 전기에서는
전환 스위치가 있을 것입니다. 그래서
전기 소스를 전력망과 태양광이나
배터리나 발전기 사이에서 전환할 수 있습니다.
LLM에서는 오픈라우터와 같은 것이 있어서
존재하는 다양한 유형의 LLM들 사이에서
쉽게 전환할 수 있습니다. LLM은 소프트웨어이기 때문에
물리적 공간을 두고 경쟁하지 않습니다. 그래서
기본적으로 6개의 전기 공급업체를
가지고 그들 사이에서 전환할 수 있어도
괜찮습니다. 맞죠? 왜냐하면 그들은
그렇게 직접적인 방식으로 경쟁하지 않기 때문입니다.
그리고 조금 흥미로운 것은 우리가
지난 며칠 동안 실제로 많은
LLM들이 다운되는 것을 보았고 사람들이
좌절하며 일을 할 수 없었다는 것입니다.
그리고 저에게는 최첨단
LLM들이 다운될 때 실제로
세상에 지능 정전이 일어나는 것과 같다는 것이
매우 흥미롭습니다. 전력망에서
전압이 불안정할 때와 같고
이러한 모델들에 대한 의존도가 높아질수록
지구가 더 멍청해집니다. 이미 정말
극적인 상황이고 앞으로
계속 성장할 것이라고 생각합니다.
계속 성장할 것입니다. 하지만 LLM은 유틸리티의 성격만 가지고 있는 것이 아닙니다.
저는 LLM이 팹의 성격도 가지고 있다고 생각합니다.
이렇게 말하는 이유는
LLM을 구축하는 데 필요한 자본지출이 상당히 크기 때문입니다.
발전소를 건설하는 것과는 다른 차원의 투자입니다.
단순히 어떤 시설을 짓는 것이 아니라
막대한 자금을 투자하는 것이죠.
그리고 기술 트리와
기술 발전이 매우 빠르게 진행되고 있습니다.
우리는 복잡한 기술 트리와 연구개발 비밀이
기술이 상당히 빠르게 발전하는 세상에 살고 있습니다.
따라서 우리는 심층적인 기술 트리와 연구개발 비밀이
LLM 연구소들 내부에서 중앙집중화되는 세상에 있습니다.
하지만 이 비유도 조금 모호해지는 부분이 있습니다.
앞서 언급했듯이 이것은 소프트웨어이고
소프트웨어는 가변성이 크기 때문에
방어 가능성이 다소 낮습니다.
소프트웨어는 매우 유연하기 때문에
방어하기가 더 어렵습니다.
그래서 이것은 흥미로운 관점입니다.
잠재적으로 생각해볼 만한 부분이죠.
많은 비유를 만들 수 있습니다.
4나노미터 공정 노드는
특정 최대 플롭을 가진 클러스터와
비슷한 개념일 수 있습니다.
엔비디아 GPU를 사용할 때를 생각해보면
소프트웨어만 다루고
하드웨어는 다루지 않는다면
이는 팹리스 모델과 유사합니다.
하지만 실제로 자체 하드웨어도 구축하고
구글처럼 TPU에서 훈련한다면
이는 자체 팹을 소유하는
인텔 모델과 유사합니다.
여기서 몇 가지 비유가 이해되는 부분이 있습니다.
하지만 실제로는
가장 타당한 비유는
제 생각에 LLM이
운영 체제와 매우 강한 유사성을 가지고 있다는 것입니다.
이것은 단순히 전기나 물이 아닙니다.
수도꼭지에서 나오는
상품 같은 것이 아닙니다.
이제 이것들은
점점 더 복잡한 소프트웨어 생태계가 되고 있습니다.
단순히 전기와 같은 상품이 아닙니다.
흥미로운 점은
생태계가 매우 유사한 방식으로 형성되고 있다는 것입니다.
Windows나 Mac OS 같은
몇몇 클로즈드 소스 제공업체가 있고
그리고 Linux 같은
오픈 소스 대안이 있습니다.
LLM에서도 마찬가지로
몇몇 경쟁하는 클로즈드 소스 제공업체가 있고
그리고 라마 생태계는
현재 Linux와 같은 것으로 성장할 수 있는
것에 근접한 근사치일 수 있습니다.
다시 말하지만, 아직 매우 이른 단계라고 생각합니다.
이것들은 단순한 LLM에 불과하기 때문입니다.
하지만 우리는 이것들이
훨씬 더 복잡해질 것임을 보기 시작했습니다.
단순히 LLM 자체만의 문제가 아닙니다.
모든 도구 사용과
다중 모달리티, 그리고 그 모든 것이
어떻게 작동하는지에 관한 것입니다.
그래서 제가 얼마 전에
이런 깨달음을 얻었을 때
이것을 스케치해보려고 했습니다.
그리고 제게는 LLM이
새로운 운영 체제와 같다는 것처럼 보였습니다.
LLM은 새로운 종류의 컴퓨터입니다.
CPU와 동등한 역할을 하고 있습니다.
컨텍스트 윈도우는
메모리와 같은 역할을 하고
LLM은 문제 해결을 위해
메모리와 연산을 조율하고 있습니다.
문제 해결을 위한 메모리와 연산을 조율합니다.
이 모든 기능들을 활용해서 문제를 해결하고 있습니다.
이런 관점에서 보면 확실히
운영체제처럼 보입니다.
몇 가지 추가 비유를 들어보겠습니다.
예를 들어 앱을 다운로드하고 싶다면,
VS Code에 가서 다운로드하면
VS Code를 다운로드할 수 있고
Windows, Linux, Mac에서 실행할 수 있습니다.
마찬가지로 Cursor 같은 LLM 앱을
GPT나 Claude, Gemini 시리즈에서
실행할 수 있습니다. 그냥 드롭다운 메뉴죠.
이런 면에서 비슷합니다.
이런 식으로 말이죠.
또 다른 비유로,
우리가 지금 1960년대
정도의 시대에 있다고 생각합니다.
LLM 컴퓨팅이 이 새로운 종류의
컴퓨터에서는 여전히 매우 비싸서
LLM들이 클라우드에
중앙화될 수밖에 없고, 우리는 모두
네트워크를 통해 상호작용하는
클라이언트 역할만 하고 있습니다.
우리 중 누구도 이 컴퓨터들을
완전히 활용하지 못하기 때문에
시분할 방식을 사용하는 것이 합리적입니다.
우리는 모두 클라우드에서
컴퓨터를 실행할 때
배치의 한 차원일 뿐입니다.
이는 당시 컴퓨터가
작동했던 방식과 매우 유사합니다.
운영체제는 클라우드에 있었고,
모든 것이 스트리밍되었으며
배치 처리가 있었습니다.
개인 컴퓨팅 혁명은
아직 일어나지 않았습니다.
경제적이지 않기 때문입니다.
하지만 일부 사람들이 시도하고 있습니다.
예를 들어 Mac Mini는
일부 LLM에 매우 적합한 것으로 나타났습니다.
배치 원 추론을 수행한다면
이는 모두 메모리 바운드이므로
실제로 작동합니다.
이런 것들이 개인 컴퓨팅의
초기 징후일 수 있다고 생각합니다.
하지만 아직 실제로 일어나지는 않았습니다.
이것이 어떤 모습일지 명확하지 않습니다.
아마도 여러분 중 일부가
이것이 무엇인지, 어떻게 작동하는지,
또는 이것이 어떤 모습이어야 하는지
발명하게 될 것입니다.
또 하나의 비유를 언급하자면,
ChatGPT나 어떤 LLM과
텍스트로 직접 대화할 때면
터미널을 통해
운영체제와 대화하는 것 같은 느낌입니다.
텍스트죠. 운영체제에
직접 접근하는 것입니다.
일반적인 방식으로는
GUI가 아직 발명되지 않았다고 생각합니다.
ChatGPT가 텍스트 버블과는
다른 GUI를 가져야 할까요?
확실히 우리가 곧 살펴볼
일부 앱들은 GUI를 가지고 있지만
모든 작업에 걸친
통합적인 GUI는 없습니다.
LLM이 운영체제나
초기 컴퓨팅과 다른
독특한 방식들이 몇 가지 있습니다.
저는 이번에 매우 다른
특별한 속성에 대해
글을 썼습니다.
LLM은 기술 확산의 방향을
뒤바꾼다는 것입니다.
일반적으로 기술에서 존재하는 방향을 말이죠.
예를 들어 전기, 암호화,
컴퓨팅, 항공, 인터넷, GPS 등
많은 새로운 혁신적인 기술들이
그동안 없었던 것들이죠. 일반적으로는
정부와 기업들이
첫 번째 사용자가 됩니다. 새롭고
비싸기 때문이죠. 그리고 나중에야
소비자에게 확산됩니다. 하지만 저는
LLM이 좀 뒤바뀐 것 같다고
느껴요. 초기 컴퓨터의 경우
탄도학과 군사용이 전부였지만
LLM의 경우에는 달걀을 어떻게 삶을지 같은
것들이 전부예요. 이게 확실히
제가 많이 사용하는 방식이고요.
그래서 정말 흥미로운 게
우리에게 새로운 마법 같은 컴퓨터가 있는데
달걀 삶는 것을 도와주고 있다는 거예요.
정부가 뭔가 정말 대단한 일을
하는 것을 돕는 게 아니라, 군사 탄도학이나
특수 기술 같은 것 말이에요.
실제로 기업과
정부들은 우리 모두의
이런 기술들 채택에 뒤처져 있어요.
그래서 완전히 거꾸로 된 상황이고
이것이 우리가 이 기술을
어떻게 사용하고 싶은지나
초기 앱들이 어디에 있을지에 대한
정보를 제공한다고 생각해요.
지금까지 요약하면, LLM 연구소들이 LLM을 만들고 있습니다.
정확한 표현이라고 생각하지만
LLM들은 복잡한 운영체제입니다.
컴퓨팅 분야에서 1960년대 정도이고
우리는 컴퓨팅을 다시 하고 있어요.
그리고 현재는 시분할 방식으로
이용 가능하고 유틸리티처럼 배포되고 있습니다.
새롭고 전례 없는 것은
소수의 정부와 기업의 손에
있는 게 아니라는 점입니다. 우리 모두의
손에 있어요. 우리 모두가
컴퓨터를 가지고 있고 모든 게
그냥 소프트웨어이고 ChatGPT가 우리
컴퓨터에 전송되어 수십억 명의 사람들에게
즉시 하룻밤 사이에 전달되었고 이건
정말 미친 일이에요. 이런 상황이라는 게
저에게는 좀 미친 것 같고 이제는
우리가 이 업계에 진입해서
이런 컴퓨터들을 프로그래밍할 시간입니다.
이건 정말 대단해요. 정말 놀라운 일이라고
생각합니다. LLM을 프로그래밍하기 전에
이것들이 무엇인지에 대해
시간을 들여 생각해봐야 합니다. 특히 저는
그들의 심리학에 대해 이야기하는 것을 좋아해요.
제가 LLM에 대해 생각하는 방식은
일종의 '인간 영혼'과
같다는 것입니다. 그들은 인간의 확률적
시뮬레이션입니다. 그리고
이 경우 시뮬레이터는
자동회귀 트랜스포머입니다.
트랜스포머는 신경망이고
토큰 레벨에서 작동합니다.
청크 청크 청크 청크 청크 하면서요.
그리고 모든 단일 청크에 대해
거의 동일한 양의 연산이 있습니다.
이 시뮬레이터는 물론
기본적으로 가중치들이 있고 우리가
인터넷에 있는 모든 텍스트에
맞춰서 학습시킵니다.
그리고 이런 종류의
시뮬레이터를 얻게 되고 인간에게서 훈련되었기 때문에
인간과 같은 창발적
심리학을 가지고 있습니다. 첫 번째로
눈에 띄는 것은 물론
LLM이 백과사전적 지식과
기억력을 가지고 있다는 것입니다. 많은 것들을
기억할 수 있어요. 어떤 개별 인간보다도
훨씬 많이 기억할 수 있습니다.
너무 많은 것들을 읽었기 때문이에요. 실제로
영화 '레인맨'이 떠오르는데, 정말 사람들한테 추천하고 싶은 영화예요.
정말 놀라운 영화고, 저는 이 영화를 너무 좋아해요.
더스틴 호프만이 연기한 캐릭터는 자폐성 서번트로
거의 완벽한 기억력을 가지고 있어요.
전화번호부를 읽고
모든 이름과 전화번호를 기억할 수 있죠.
그리고 저는 LLM이
이와 매우 비슷하다고 생각해요.
SHA 해시값이나
다양한 종류의 정보를
매우 쉽게 기억할 수 있거든요.
확실히 어떤 면에서는
초인적인 능력을 가지고 있어요.
하지만 동시에 많은
인지적 결함도 가지고 있다고 할 수 있어요.
꽤 많이 환각을 보고
내용을 지어내기도 하며
자기 인식에 대한 내부 모델이
충분하지 않아요.
이건 나아지고는 있지만 완벽하지는 않죠.
들쭉날쭉한 지능을 보여줘요.
어떤 문제 해결 영역에서는
초인적일 것이고
그러면서도 인간은 절대
하지 않을 실수를 하죠.
예를 들어 9.11이 9.9보다 크다고 고집한다거나
딸기(strawberry)에 R이 두 개 있다고 하는
유명한 예시들이 있는데
기본적으로 걸려 넘어질 수 있는
거친 모서리들이 있어요.
이것도 꽤 독특한 특징이라고 생각해요.
또한 역행성 기억상실증 같은 것도 겪어요.
제가 말하고자 하는 것은
만약 새로운 동료가
조직에 합류한다면
시간이 지나면서 그 동료는 조직을 학습하고
이해하게 되며
조직에 대한 엄청난 맥락을
얻게 되죠. 집에 가서 잠을 자고
지식을 통합하며
시간이 지나면서 전문성을 개발해요.
LLM은 기본적으로는
이런 걸 하지 못하고
이는 LLM R&D에서 실제로
해결되지 않은 문제라고 생각해요.
그래서 컨텍스트 윈도우는
정말 작업 메모리 같은 거고
작업 메모리를 직접적으로
프로그래밍해야 해요. 왜냐하면
기본적으로 그냥 더 똑똑해지지는
않거든요. 그리고 많은 사람들이
이런 비유 때문에
혼란을 겪는다고 생각해요.
대중문화에서 사람들에게
추천하고 싶은 두 영화가 있어요.
'메멘토'와 '50번째 첫 키스'인데
두 영화 모두에서 주인공들의
가중치는 고정되어 있고
컨텍스트 윈도우가
매일 아침마다 초기화돼요.
이런 상황에서는 일을 하거나
관계를 유지하는 것이 정말 문제가 되고
이런 일이 LLM에게는
항상 일어나죠.
한 가지 더 지적하고 싶은 것은
LLM 사용의 보안 관련
한계들이에요.
예를 들어, LLM은 꽤 잘 속아요.
프롬프트 인젝션 위험에 취약하고
데이터를 유출할 수도 있어요.
그리고 보안과 관련된
다른 많은 고려사항들이 있죠.
그래서 결론적으로 말하면
유용하니까 어떻게 프로그래밍하고
어떻게 이들의 한계를 극복하면서
초인적인 능력을 즐길 수 있을까요.
이제 제가 이야기하고 싶은 것은
이 모델들을 어떻게 활용할 것인가
그리고 가장 큰 기회들이 무엇인가에
관한 것입니다. 이건 포괄적인
목록이 아니라 그냥 이번 강연을
위해 흥미롭다고 생각한
몇 가지 내용들입니다. 제가 흥미진진하게
생각하는 첫 번째는 제가
부분 자율성 앱이라고 부르는 것입니다.
예를 들어, 코딩 예제로
작업해 보겠습니다. 물론 ChatGPT에
직접 가서 코드를 복사-붙여넣기하고
버그 리포트를 복사해서 붙여넣고
이런저런 걸 가져와서 모든 걸
복사-붙여넣기 할 수는 있습니다.
하지만 왜 그렇게 해야 할까요?
왜 운영체제에 직접 가야 할까요?
이것을 위한 전용 앱을 갖는 것이
훨씬 더 합리적입니다. 그래서 여러분
중 많은 분들이 Cursor를 사용하실 텐데, 저도 마찬가지입니다.
그리고 Cursor는 여러분이 원하는
것과 같은 것입니다. ChatGPT에
직접 가고 싶지는 않을 겁니다.
그리고 Cursor는 초기 LLM 앱의
아주 좋은 예시라고 생각하는데
모든 LLM 앱에 걸쳐 유용하다고
생각하는 여러 속성들을 가지고 있습니다.
특히, 인간이 들어가서
모든 작업을 수동으로 할 수 있게 해주는
전통적인 인터페이스가 있다는 걸
알 수 있습니다. 하지만 그에 더해
이제 우리는 더 큰 덩어리로
들어갈 수 있게 해주는
LLM 통합 기능이 있습니다.
그래서 공유되고 지적할 가치가 있다고
생각하는 LLM 앱의 속성들 중
첫 번째로, LLM들은 기본적으로
엄청난 컨텍스트 관리를 해줍니다.
두 번째로, 여러 LLM 호출을
조율해줍니다. Cursor의 경우
후드 아래에 모든 파일에 대한
임베딩 모델들, 실제 채팅 모델들,
코드에 diff를 적용하는 모델들이 있고
이 모든 것이 여러분을 위해 조율됩니다.
정말 중요한 것 중 하나인데
항상 완전히 인식되지 않는 것은
애플리케이션 특화 GUI와
그 중요성입니다. 왜냐하면
운영체제와 직접 텍스트로
대화하고 싶지는 않기 때문입니다.
텍스트는 읽고, 해석하고, 이해하기가
매우 어렵고 또한 이런 작업들을
텍스트로 직접 수행하고 싶지도 않습니다.
그래서 빨간색과 초록색 변경사항으로
diff를 보는 것이 훨씬 낫고
무엇이 추가되고 빠지는지 볼 수 있습니다.
승인하려면 Command+Y를,
거부하려면 Command+N을 누르는 것이
훨씬 쉽습니다. 텍스트로 타이핑할
필요가 없죠. 그래서 GUI는 인간이
이런 실수할 수 있는 시스템들의 작업을
감사하고 더 빠르게 나아갈 수 있게 해줍니다.
이 점에 대해서는 나중에
다시 돌아오겠습니다. 그리고 지적하고 싶은
마지막 기능은 제가
자율성 슬라이더라고 부르는 것입니다.
예를 들어, Cursor에서는 탭
완성을 할 수 있습니다. 주로 여러분이
주도권을 가집니다. 코드 덩어리를 선택해서
Command+K로 그 코드 덩어리만 변경할 수 있습니다.
전체 파일을 변경하려면 Command+L을 할 수 있습니다.
파일을 수정할 수 있습니다. 또는 Command I를 사용하면
전체 저장소에서 원하는 대로 자유롭게 작업할 수 있고
이것이 완전한 자율성, 에이전트 버전입니다.
따라서 자율성 슬라이더를 여러분이 조절할 수 있고
당면한 작업의 복잡성에 따라
해당 작업에 대해 포기할 자율성의 정도를
조정할 수 있습니다.
아마도 꽤 성공적인 LLM 앱의
예시를 하나 더 보여드리자면
Perplexity입니다.
Perplexity도 제가 방금 Cursor에서 언급한 것과 매우 유사한 기능들을 가지고 있습니다.
많은 정보를 패키징하고
여러 LLM을 오케스트레이션합니다. 작업의 일부분을 감사할 수 있는
GUI를 가지고 있습니다.
예를 들어, 출처를 인용하고
그것들을 검사할 수 있다고 상상해볼 수 있습니다.
그리고 자율성 슬라이더도 있습니다.
빠른 검색을 할 수도 있고
연구를 할 수도 있고
심화 연구를 하고 10분 후에 돌아올 수도 있습니다.
이것은 모두 도구에 부여하는
다양한 수준의 자율성입니다.
그래서 제 질문은 많은 소프트웨어가
부분적으로 자율적이 될 것 같다는 것입니다.
이것이 어떤 모습일지 생각해보려고 합니다.
제품과 서비스를 관리하는 여러분 중 많은 분들에게
여러분의 제품과 서비스를
어떻게 부분적으로 자율적으로 만들 것인가?
LLM이 인간이 볼 수 있는 모든 것을
볼 수 있을까요?
LLM이 인간이 할 수 있는
모든 방식으로 행동할 수 있을까요?
그리고 인간이 이 활동을 감독하고
루프 안에 머물 수 있을까요?
다시 말하지만, 이것들은 아직 완벽하지 않은
오류가 있는 시스템이기 때문입니다.
포토샵 같은 곳에서 diff는
어떤 모습일까요?
그리고 현재의 전통적인 소프트웨어는
모든 스위치와 이런 종류의 것들이
모두 인간을 위해 설계되어 있습니다.
이 모든 것이 바뀌어야 하고
LLM이 접근할 수 있도록 되어야 합니다.
제가 이런 LLM 앱들과 관련해서
강조하고 싶은 한 가지는
충분한 주목을 받지 못하고 있다고 생각하는 것은
우리가 이제 AI와 협력하고 있고
보통 AI가 생성을 담당하고
인간인 우리가 검증을 담당합니다.
이 루프를 가능한 한 빨리
돌리는 것이 우리에게 유리합니다.
그래서 많은 일을 완료할 수 있습니다.
이것을 할 수 있는 두 가지 주요 방법이 있다고 생각합니다.
첫 번째는
검증 속도를 크게 높일 수 있습니다.
그리고 GUI가 예를 들어
이것에 매우 중요하다고 생각합니다.
GUI는 우리 머릿속의
컴퓨터 비전 GPU를 활용하기 때문입니다.
텍스트를 읽는 것은 힘들고 재미없지만
뭔가를 보는 것은 재미있고
뇌로 가는 고속도로 같은 것입니다.
그래서 GUI가 시스템 감사와
일반적인 시각적 표현에
매우 유용하다고 생각합니다.
그리고 두 번째는
AI를 통제하에 두어야 한다는 것입니다.
많은 사람들이 AI 에이전트에 대해
너무 흥분하고 있다고 생각하는데
제 저장소에 10,000줄의 코드로 된
diff를 받는 것은 제게 유용하지 않습니다.
저는 여전히
병목지점이기 때문입니다.
병목현상이죠. 그 1만 줄의 코드가
즉시 나오더라도, 저는
이것이 버그를 일으키지 않는다는 걸
확인해야 합니다. 그리고
올바른 작업을 하고 있는지,
맞죠? 그리고 보안
문제가 없는지 등등을 확인해야 합니다. 그래서
네, 기본적으로 우리는
이 둘의 흐름을
매우 빠르게 만드는 것이 우리의 이익이고
AI를 어떻게든 통제해야 합니다
너무 과도하게 반응하기 때문입니다.
이런 느낌입니다.
이게 제가 AI 보조 코딩을 할 때
느끼는 감정입니다. 바이브 코딩을 할 때는
모든 게 좋고 훌륭하지만
실제로 업무를 완료하려고 할 때는
과도하게 반응하는 에이전트가
이런 일들을 하는 건 그리 좋지 않습니다.
이 슬라이드는 별로 좋지 않네요. 죄송합니다.
하지만 여러분 중 많은 분들처럼
저도 이런 에이전트들을
제 코딩 워크플로우에서 활용하고
AI 보조 코딩을 하는 방법을 개발하려고 합니다.
제 작업에서는 항상
너무 큰 변경사항이 나오는 걸 두려워합니다.
저는 항상 작은 증분적 단위로 진행합니다.
모든 것이 좋은지 확인하고 싶고,
이 루프를 매우 빠르게 돌리고 싶습니다.
그리고 작은 단위의 구체적인
한 가지 작업에 집중합니다.
여러분 중 많은 분들도 아마
LLM과 작업하는 비슷한 방법을 개발하고 계실 겁니다.
저는 또한 LLM과 작업하는
모범 사례를 개발하려는 여러 블로그 글을 봤습니다.
여기 제가 최근에 읽은 글 중 하나가 있는데
꽤 좋다고 생각했습니다.
이 글은 몇 가지 기법을 논의했고
그 중 일부는
AI를 통제하는 방법과 관련이 있습니다.
예를 들어, 프롬프트를 할 때
프롬프트가 모호하면
AI가 원하는 대로 하지 않을 수 있고
그 경우 검증이 실패합니다.
다른 것을 요청하게 됩니다.
검증이 실패하면
계속 헤매게 됩니다.
그래서 시간을 좀 더 들여서
프롬프트를 더 구체적으로 만드는 게
훨씬 더 합리적입니다. 이렇게 하면
성공적인 검증 확률이 증가하고
앞으로 나아갈 수 있습니다.
그리고 우리 많은 사람들이
이런 기법들을 찾게 될 것 같습니다.
제 작업에서도 현재
교육이 어떤 모습일지에 관심이 있습니다.
이제 AI와 LLM이 있는 상황에서
교육은 어떤 모습일까요?
그리고 제가 많이 생각하는 부분은
AI를 어떻게 통제할 것인가입니다.
그냥 채팅에 가서
"물리학을 가르쳐줘"라고 하는 것만으로는
효과가 없다고 생각합니다.
AI가 길을 잃기 때문입니다.
그래서 저에게는
이것이 실제로는 두 개의 별개 앱입니다.
예를 들어, 교사가
강의를 만드는 앱이 있고
강의를 가져와서
학생들에게 제공하는 앱이 있습니다.
두 경우 모두, 이제
감사 가능한 강의라는
중간 산출물이 있고
일관성을 유지하고, AI는 특정한
목줄에 묶여 있습니다
실라버스, 즉 특정한 프로젝트
진행 과정 등에 대해서 말이죠. 그래서 이것이
AI를 통제하는 한 가지 방법이고
이 방법이 성공할 가능성이 훨씬 높다고
생각합니다. AI가 길을 잃지 않고
숲속에서 헤매지 않게 되죠.
제가 언급하고 싶은 또 다른
비유가 하나 있습니다. 저는 부분적 자율성에
낯선 사람이 아니고
테슬라에서 5년 동안
이 분야에서 일했습니다. 이것도 부분적
자율성 제품이고 많은
특징들을 공유하고 있습니다. 예를 들어
계기판에 있는 오토파일럿의
GUI를 보시면 신경망이 무엇을
보고 있는지 등을 보여주고
자율성 슬라이더가 있어서
제가 거기서 일하는 동안
사용자를 위해 점점 더 많은 자율적
작업들을 수행했습니다. 그리고 제가
아주 간단히 하고 싶은 이야기는
실제로 제가 처음으로
자율주행차를 운전한 것은 2013년이었고
웨이모에서 일하는 친구가 있었습니다
그가 팰로 알토 주변을
드라이브해 주겠다고 제안했습니다. 저는
당시 구글 글래스로 이 사진을 찍었는데
여러분 중 많은 분들이 너무 젊어서
그게 뭔지도 모를 수 있습니다. 하지만
당시에는 정말 유행이었죠. 그리고
우리는 이 차에 타고
팰로 알토 고속도로와
도시 도로를 약 30분간 드라이브했습니다.
이 드라이브는 완벽했습니다. 개입은
전혀 없었고 이것이 2013년이었는데
지금으로부터 12년 전입니다. 그리고 저에게는
충격적이었습니다. 왜냐하면 당시
이 완벽한 드라이브, 완벽한 데모를 경험했을 때
와, 자율주행이 임박했구나라고 느꼈습니다
이게 바로 작동했거든요. 정말
놀라웠습니다. 하지만 12년이 지난 지금도
우리는 여전히 자율성을
연구하고 있습니다. 우리는 여전히
주행 에이전트를 연구하고 있고 지금도
아직 문제를 정말로
해결하지 못했습니다. 웨이모들이 돌아다니는 걸
보시면 무인으로 보이지만
여전히 많은 원격 조작과
인간의 개입이 많은 부분에서
이루어지고 있어서 우리는 여전히
성공을 선언하지 못했습니다. 하지만
분명히 이 시점에서는
성공할 것이라고 생각하지만 시간이 오래 걸리고
있습니다. 그래서 저는 소프트웨어가
정말 까다롭다고 생각합니다. 주행이
까다로운 것과 같은 방식으로 말이죠. 그래서
2025년이 에이전트의 해다라는
말을 들으면 매우 걱정되고
이것은 에이전트의 10년이 될 것이고
상당한 시간이 걸릴 것이라는 느낌이 듭니다.
우리에게는 인간이 필요합니다.
신중하게 접근해야 합니다. 이것은
소프트웨어입니다. 진지하게 받아들여야 합니다.
제가 항상 생각하는 또 다른
비유는 아이언맨 슈트입니다. 저는
항상 아이언맨을 좋아했습니다. 기술과
그것이 어떻게 전개될지에 대해
여러 측면에서 매우 정확하다고
생각합니다. 아이언맨 슈트에 대해
제가 좋아하는 점은 그것이 증강이면서도
토니 스타크가 조종할 수 있다는 것입니다
그리고 동시에 에이전트이기도 합니다. 그리고 일부
영화에서 아이언맨 슈트는 꽤
자율적이고 날아다니며 토니를 찾는
일과 이런 모든 것들을 할 수 있습니다. 그래서
이 자율성 슬라이더는 우리가
증강 도구를 구축할 수도 있고
에이전트를 구축할 수도 있다는 것이고, 우리는 어느 정도
둘 다를 해보고 싶습니다. 하지만 현재 단계에서
불완전한 LLM과 함께 작업하고 있다고
말하고 싶습니다. 아시다시피 아이언맨 로봇보다는
아이언맨 슈트를 만드는 것이 더 낫다고
말하고 싶습니다. 화려한 자율
에이전트 데모를 만드는 것보다는
부분적 자율성
제품을 만드는 것이 더 좋습니다. 그리고 이런 제품들은
맞춤형 GUI와 UI/UX를 가지고 있습니다. 그리고 우리는
음 이렇게 하려고 노력하고 있는데, 이는
인간의 생성 검증 루프가
매우 빠르게 되도록 하기 위해서입니다. 하지만 우리는
원칙적으로 이 작업을
자동화하는 것이 가능하다는 사실을
잊지 않고 있습니다. 그리고 여러분 제품에는
자율성 슬라이더가 있어야 합니다. 그리고 여러분은
그 자율성 슬라이더를 어떻게 조절할 수 있을지
그리고 제품을 어떻게 더
시간이 지남에 따라 자율적으로 만들 수 있을지
생각해야 합니다. 하지만 이것이 제가 생각하는
이런 종류의 제품에 많은 기회가 있다고
보는 방식입니다. 이제 조금 화제를 바꿔서
제가 매우 독특하다고 생각하는
또 다른 차원에 대해 말해보고 싶습니다.
소프트웨어에서 자율성을 허용하는
새로운 유형의 프로그래밍 언어가 있을 뿐만 아니라
제가 언급했듯이 영어로 프로그래밍되며
이는 자연스러운 인터페이스이고
갑자기 모든 사람이 프로그래머가 됩니다
왜냐하면 모든 사람이 영어와 같은
자연어를 구사하기 때문입니다.
그래서 이는 매우 긍정적이고 저에게는 매우 흥미로우며
또한 완전히 전례 없는 일입니다.
예전에는 소프트웨어에서
무언가를 할 수 있으려면
5년에서 10년을 공부해야 했습니다.
하지만 이제는 더 이상
그런 경우가 아닙니다.
그래서, 혹시 누군가가
바이브 코딩에 대해 들어본 적이 있는지 모르겠습니다.
음, 이것이 바로 이를 소개한
트윗인데, 들리는 바로는
이게 이제 주요 밈이 되었다고 합니다. 음, 이에 대한
재미있는 이야기는 제가 트위터를
15년 정도 사용해왔는데
아직도 어떤 트윗이 바이럴이 되고
어떤 트윗이 흐지부지되어 아무도
신경 쓰지 않을지 전혀 모르겠다는 것입니다.
그리고 저는 이 트윗이 후자가 될 것이라고 생각했습니다.
모르겠어요.
그냥 샤워 중에 떠오른 생각이었는데.
그런데 이게 완전한 밈이 되었고
정말 알 수가 없네요. 하지만 아마
공감을 불러일으켰고 모든 사람이 느끼고 있던
하지만 말로 표현하기 어려웠던 것에
이름을 붙여줬나 봅니다. 그래서 이제
위키피디아 페이지까지 있습니다.
이건 마치
[박수]
네, 이제 주요 기여나
그런 것 같습니다.
음, 그래서 HuggingFace의 Tom Wolf가
제가 정말 좋아하는 아름다운 영상을
공유했습니다. 음,
이 아이들이 바이브 코딩을 하고 있습니다.
그리고 저는 이게 정말 훈훈한
영상이라고 생각합니다. 이 영상을 정말 좋아해요.
이 영상을 보고 어떻게 미래에 대해 나쁘게 생각할 수 있겠어요?
미래는 밝습니다.
정말 좋아요.
이게 소프트웨어 개발의
관문 역할을 하게 될 것 같아요.
저는 미래 세대에 대해 비관적이지 않고,
정말 이 영상이 좋습니다.
그래서 저도 바이브 코딩을
조금 해봤는데 정말 재미있어요.
바이브 코딩은 정말 대단해요.
존재하지 않는 완전히 맞춤형인 걸
만들고 싶을 때,
토요일 같은 날에 그냥
즉흥적으로 해보고 싶을 때 말이죠.
그래서 이 iOS 앱을 만들었는데,
실제로는 Swift 프로그래밍을 할 줄 모르지만
정말 기본적인 앱을 만들 수 있어서
정말 놀랐어요.
설명하지는 않을게요.
정말 별거 아니지만,
이게 그냥 하루 작업이었는데
그날 오후에 제 폰에서 실행됐어요.
"와, 이거 정말 놀라워"라고 생각했죠.
Swift를 5일간
공부할 필요가 없었어요.
시작하기 위해서 말이죠.
또한 Menu Gen이라는 앱도 바이브 코딩했어요.
이건 실제로 운영 중이고
menu.app에서 체험해볼 수 있어요.
기본적으로 제가 겪은 문제는
레스토랑에 가서 메뉴를 읽어봐도
뭐가 뭔지 전혀 모르겠는 거예요.
사진이 필요했어요. 그런데 그런 게 없었죠.
그래서 "바이브 코딩으로
만들어보자"고 했어요.
이런 모습이에요.
menu.app에 가서
메뉴 사진을 찍으면
Menu Gen이 이미지를 생성해주고
가입하면 모든 사람이 5달러 크레딧을
무료로 받을 수 있어요.
그래서 이게 제 인생의 주요 비용 센터가 됐어요.
지금 저에게는 마이너스
수익 앱이에요.
Menu로 엄청난 돈을
잃었어요.
하지만 Menu Gen에서 저에게
흥미로운 점은 바이브 코딩 부분의 코드가
실제로는 바이브 코딩에서
가장 쉬운 부분이었다는 거예요.
대부분은 실제로 실용화하려고 할 때,
인증과 결제,
도메인 네임,
서버 배포 등을 구현하려고 할 때였어요.
이건 정말 어려웠고
이 모든 것은 코드가 아니었어요.
이 모든 데브옵스 작업은
브라우저에서 클릭하는 것들이었고
극도로 느렸고
일주일이 더 걸렸어요.
정말 흥미로웠던 건 Menu Gen
데모를 노트북에서 몇 시간 만에 작동시켰는데
실제로 만들려고 하니
일주일이 걸렸다는 거예요.
이유는 이게 정말 짜증났기 때문이에요.
예를 들어, 웹페이지에
Google 로그인을 추가하려고 하면,
화면이 작아서 잘 안 보이지만
이 Clerk 라이브러리가
통합하는 방법에 대한
엄청난 양의 지시사항을 주는 거예요.
이건 미친 일이에요.
이 URL로 가서, 이 드롭다운을 클릭하고,
이걸 선택하고, 여기로 가서,
저걸 클릭하라고 하는 거예요.
하는 행동을. 내가 직접 해야 한다고.
왜 내가 이걸 해야 하지?
도대체 뭐가 어떻게 된 거야?
이 모든 지시사항들을 따라야 했어.
정말 미친 일이었지. 그래서 내 발표의 마지막 부분은
에이전트를 위한 구축에 초점을 맞춘다. 내가
이런 작업을 하고 싶지 않다. 에이전트가 할 수 있을까?
감사합니다.
좋아. 대략적으로 말하자면,
디지털 정보의 새로운 소비자이자
조작자 범주가 있다고 생각한다.
예전에는 GUI를 통한 인간 또는
API를 통한 컴퓨터만 있었다. 이제는
완전히 새로운 것이 있고 에이전트는
컴퓨터이지만 인간과 같은 특성을 갖고 있다.
맞지, 이들은 사람의 영혼이야.
인터넷에 있는 사람의 영혼들이고
우리의 소프트웨어 인프라와 상호작용해야 한다.
우리가 그들을 위해 구축할 수 있을까?
이건 새로운 일이다. 예를 들어
도메인에 robots.txt를 둘 수 있고
웹 크롤러에게 지시하거나
조언을 할 수 있다. 웹사이트에서 어떻게
행동해야 하는지에 대해서. 마찬가지로
lm.txt 파일을 둘 수도 있는데
이는 단순한 마크다운으로
LLM에게 이 도메인이 무엇에 관한 것인지
알려주는 것이다. 이는 LLM이 읽기에
매우 적합하다. 만약 대신 웹페이지의
HTML을 가져와서 파싱을 시도해야 한다면
이는 오류가 발생하기 쉽고
어렵고 망칠 수 있으며
작동하지 않을 것이다. 그래서 우리는
LLM에게 직접 말할 수 있다.
그럴 가치가 있다. 엄청난 양의 문서가
현재 사람들을 위해 작성되어 있다.
그래서 목록이나 굵은 글씨나
그림들을 볼 수 있는데 이는
LLM이 직접 접근할 수 없다. 그래서 일부
서비스들이 이제 많은
문서를 LLM을 위해 특별히
전환하고 있는 것을 본다. Vercel과 Stripe가
예시로 초기 도입자들이지만
이미 몇 개 더 본 적이 있고
그들은 문서를 마크다운으로
제공한다. 마크다운은 LLM이
이해하기 매우 쉽다. 이건 훌륭하다.
내 경험에서 간단한 예시를
하나 들어보자. 여러분 중 일부는
3Blue1Brown을 알 것이다. 그는
YouTube에서 아름다운 애니메이션 비디오를 만든다.
[박수]
네, 이 라이브러리를 정말 좋아한다. 그가
작성한 Manim을 말이고, 나도 내 것을
만들고 싶었다. Manim 사용법에 대한
광범위한 문서가 있었고
실제로 읽고 싶지 않았다. 그래서
전체를 복사해서 LLM에 붙여넣고
내가 원하는 것을 설명했는데
바로 작동했다. LLM이 내가 원하는
애니메이션을 정확히 코딩해줬고
놀라웠다. 만약 우리가 문서를
LLM이 읽을 수 있게 만들 수 있다면
엄청난 양의 활용을 열어줄 것이고
이건 정말 멋지고 더 많이 일어나야 한다고
생각한다. 내가 지적하고 싶은
다른 것은 안타깝게도 단순히
문서를 가져와서 마크다운으로
나타나게 하는 것만이 아니라는 것이다.
그건 쉬운 부분이다.
실제로는 문서를 변경해야 한다.
문서에서 '클릭'이라고 말하는 부분은
좋지 않다. LLM은 할 수 없을 것이다.
지금은 LLM이 이런 작업을 기본적으로 수행할 수 없습니다. 그래서
예를 들어 Vercel은
'클릭'이라는 표현을 모두
LLM 에이전트가 대신 실행할 수 있는
동등한 curl 명령어로 바꾸고 있습니다.
정말 흥미로운 발전이죠.
그리고 물론 Anthropic의
모델 컨텍스트 프로토콜도 있습니다.
이것도 또 다른 방법으로,
새로운 디지털 정보의 소비자이자
조작자인 에이전트와
직접 소통하는 프로토콜입니다.
저는 이런 아이디어들에 대해
매우 낙관적입니다. 또한 정말 마음에 드는 것은
LLM 친화적인 형식으로 데이터를
수집하는 데 도움이 되는
여러 작은 도구들입니다.
예를 들어, 제 nanoGPT 저장소 같은
GitHub 저장소에 가면
이것을 LLM에 바로 넣어서
질문할 수는 없습니다.
이건 GitHub의 인간 인터페이스니까요.
하지만 URL을 GitHub에서
getingest로 바꾸면
모든 파일들을 하나의
거대한 텍스트로 연결하고
디렉토리 구조 등을 만들어줍니다.
그러면 좋아하는 LLM에
복사 붙여넣기해서 활용할 수 있죠.
더 극적인 예는
딥위키인데, 이건 단순히
파일의 원시 내용이 아니라
Devon이 있는 곳인데
Devon이 기본적으로
GitHub 저장소를 분석하고
저장소를 위한 전체
문서 페이지를 구축합니다.
이런 것들이 LLM에
복사 붙여넣기하기에
훨씬 더 유용할 거라고
상상할 수 있습니다.
저는 단순히 URL만 바꿔서
LLM이 접근할 수 있게 만드는
모든 작은 도구들을 정말 좋아합니다.
이 모든 것들이 훌륭하고
더 많아져야 한다고 생각합니다.
한 가지 더 언급하고 싶은 것은
미래에는 LLM이
아니 미래가 아니라 오늘날에도
돌아다니면서 클릭을 할 수 있지만
여전히 LLM과
중간 지점에서 만나는 것이
매우 가치 있다고 생각합니다.
LLM이 이 모든 정보에
더 쉽게 접근할 수 있게 만드는 것이
여전히 꽤 비싸고
훨씬 더 어렵기 때문입니다.
많은 소프트웨어들이
라이브 플레이어나
디지털 인프라 저장소가 아니기 때문에
적응하지 않을 긴 꼬리가 있을 것이고
우리는 이런 도구들이 필요할 것입니다.
하지만 다른 모든 사람들에게는
어떤 중간 지점에서 만나는 것이
매우 가치 있다고 생각합니다.
그래서 저는 둘 다에 대해
낙관적입니다. 이해가 되시나요?
요약하자면, 이 업계에 들어오기에
정말 놀라운 시기입니다.
우리는 엄청난 양의 코드를
다시 써야 합니다.
전문가들과 코더들이
엄청난 양의 코드를 작성할 것입니다.
이런 LLM들은 유틸리티 같기도 하고
팹 같기도 하지만
특히 운영체제 같습니다.
하지만 아직 너무 초기 단계예요.
운영체제의 1960년대 같은 수준이고
많은 유사점들이
교차한다고 생각합니다.
그리고 이런 LLM들은
우리가 함께 일하는 법을 배워야 하는
오류를 범할 수 있는
사람의 영혼 같은 존재입니다.
이를 제대로 하기 위해서는
우리의 인프라를 그에 맞게 조정해야 합니다.
LLM 앱을 구축할 때
이런 LLM들과 효과적으로 작업하는
방법들과 이를 가능하게 하는 도구들
그리고 이 루프를
매우 빠르게 돌리는 방법
그리고 기본적으로 부분적으로 자율적인
제품을 만드는 것에 대해
설명했습니다.
그리고 네, 많은 코드가
에이전트를 위해 더 직접적으로 작성되어야 합니다. 하지만 어떤 경우든 아이언맨 슈트 비유로 돌아가서, 향후 10년 정도에 걸쳐 우리가 보게 될 것은 슬라이더를 왼쪽에서 오른쪽으로 옮기는 것입니다. 그리고 그것이 어떤 모습일지 매우 흥미롭습니다. 여러분 모두와 함께 이것을 만들어가는 것이 정말 기대됩니다. 감사합니다.