Homo Askus. First Impression on ChatGPT
인공지능 분야는 지루할 틈이 없다. 심심해질 만하면 또 새로운 장난감이 나온다. 최근 가장 주목을 끈 장난감은 분명 OpenAI가 공개한 ChatGPT다. 사용된 기술을 잘 알지도 못할 뿐더러 이 글에서 GPT (Generative Pretrained Transformer) 기술을 굳이 자세히 설명할 필요는 없을 것 같다. 다만 이전 장난감들은 그저 소개한 기사나 동영상 또는 좀 더 기술적으로 궁금하면 관련 논문만 찾아 대강 훑어봤었는데, 소셜미디어에 관련 내용이 워낙 많아서 이번에는 직접 가입해서 시연해봤다 정도의 차이가 있다. 부족함이 없진 않지만 최근 기술 발전이 그저 놀랍기만 하다. 소싯적의 심심이와는 차원이 다르다. 예상보다 더 파괴적이다. 인간은 졌다. 이걸 만든 인간의 승리인 건가?
간간히 틀린 정보도 눈에 띄고 학습 후의 새로운 정보는 생성할 수 없기 때문에 당장 검색 엔진을 대체하는 데는 한계가 있어 보인다. 다양한 건강 관련 질문에도 곧잘 답변하기 때문에 일반 식단 관리 같은 개인 비서 역할을 하겠지만 아직은 위험한 업무를 AI에 전적으로 맡기긴 어렵다. 세상의 누군가는 이미 위험한 시도를 하고 있는지는 모르겠으나, 현재로선 강화학습이 게임과 같이 안전한 분야에서만 두각을 보이는 것도 이해한다. 희생 없는 진보가 없지만 나에게 희생이 강요되는 건 받아들이지 못한다. ChatGPT에 관한 다양한 use case들은 이미 소셜미디어에 넘쳐나고 앞으로 더 많은 케이스들이 발굴될 거다. 오픈 5일 만에 100만 명 이상이 가입해서 사용해봤기 때문에 딥러닝 또는 ChatGPT 자체의 발전뿐만 아니라 그것의 활용처는 더더욱 많아질 거다.
모국어가 아닌 사람, 더욱이 나이가 들어서 처음 배우기 시작한 사람들에겐 — 언어 천재가 아닌 이상 — 영어는 늘 괴로운 주제다. 일상의 가벼운 대화나 특정 분야에서의 영어는 다소 익숙해질 수 있으나 연구자로서 자신의 연구 과정과 결과를 대중에게 영어로 소개하는 건 쉽지 않다. 몇 편의 영어 논문을 작성했지만 영작으로 긴 논문을 완성하는 건 늘 새로운 도전이다. 이전의 영작 관련 글에서 대강 논리 구조만 맞춰서 작성한 후에 영어 교정 서비스를 받으면 된다고 했다. 수 십만 원의 가격이 다소 부담스럽지만 자신의 이름을 내건 논문 한 편이 나오는데 그 정도는 수지맞는 투자다. 그런데 ChatGPT를 사용하면 이런 비용을 줄일 수 있겠다는 생각이 들었다. 적당히 뜻이 통하게 영작한 후에 ‘Rephrase following sentences: blah blah blah’라고 적으면 괜찮은 문장의 튀어나온다. 재생성된 문장이 자신의 의도에 맞고 포멀 한지는 바로 알 수 있고, 몇 번의 수정만 거치면 꽤 괜찮은 문장/문단이 만들어진다. (번역도 꽤 자연스럽다) 아직은 속도도 느리고 매번 질문 또는 명령어를 입력하는 게 귀찮으니 API만 열려있으면 ChatGPT 기반의 영어 교정 웹페이지 (또는 서비스)도 금세 만들 수 있을 거다. 아무래도 OpenAI에서 API를 함께 공개하지 않을 것 같았는데, 이미 비공식 API들이 만들어져서 깃허브에 올라와있다.
작년에 공개된 Copilot도 꽤 신선했다. 이것도 OpenAI에서 만든 거다. 적당히 구현하고자 하는 기능을 글로 설명하면 Copilot은 그 기능을 구현한 프로그래밍 코드를 완성한다. Java든 Python이든 프로그래밍 언어도 가리지 않는다. ChatGPT에도 Copilot 기능을 그대로 갖고 있다. ‘서울의 날씨를 확인하는 파이썬 코드를 작성해줘’라고 입력하면 도시를 매개 변수로 해서 날씨 API를 호출하는 파이썬 코드가 만들어진다. 초보와 고수의 코드라는 인터넷 짤처럼 완전 하드코딩까지는 아니더라도 다소 거친 결과물이 만들어질 거라 예상했는데, 결과물은 매개 변수를 갖는 함수를 새로 정의하고 메인 함수에서 그걸 호출하는 범용성과 재사용성을 갖춘 코드가 돌아왔다. 복잡하고 특수한 비즈니스 로직이 들어간 코드까지는 바로 만들지 못하거나 다소 번잡한 과정이 필요하겠으나 여느 중간 개발자의 그것보다 더 나은 품질의 코드가 만들어졌다. 그런데 이런 코드는 이미 Copilot의 시연 영상을 통해 확인했기 때문에 크게 놀랍지는 않았다. 과연 머신러닝 관련 코드도 작성해줄까 가 궁금해서 ‘Build python codes for comparing RNN and LSTM (한글로도 작동하겠지만 괜히 영어로 적음ㅎㅎ)’라고 했더니 금세 라이브러리 정의, 예시 데이터 정의, RNN과 LSTM 기본 구조 정의, 그리고 실행과 테스트에 이르는 가장 기본적인 코드가 완성됐다. 파이썬은 많이 사용하니 다른 언어도 가능할까 싶어서 같은 Java나 C로 바꿨는데 해당 언어로 코드가 완성됐다. 다만 한정된 지면으로 Java 코드는 무수한 import 문들 때문에 코드가 완성되지는 않았다. 그래서 Java 코드에서 import 문들은 제외하고 만들어줘라고 했더니 import block을 제외하고 완성된 코드가 만들어졌다. 지난주에 급히 보기 시작한 knowledge distillation 때문에 ‘Get a python code to implement KD loss used in XXX 논문’이란 질의에 전체 프로그램 아웃라인과 해당 loss 함수를 구현한 — 정확성은 검증이 필요하나 — 코드가 바로 튀어나왔다. 점점 나의 자리가 위협받고 있다.
프로그래밍 기본 문법과 구글만 있으면 나도 심지어 구글도 다시 만들 수 있다고 우스갯소리를 종종 했는데 이제 기본 문법을 몰라도, 구글이 없어도 서비스를 만들 수 있을 것 같다. 트위터에서 질의어를 조금 추가, 변경하면서 웹페이지를 작성하고 있다는 트윗도 스치듯 봤는데 말로 코딩하는 시대가 도래했다는 것이 완전 허구는 아니다. ML 알고리즘의 개념은 관련 논문을 읽으면 적당히 이해할 수 있는데, 이걸 어떻게 코드로 표현해서 실험할지는 나에게 늘 큰 시험이다. 그래서 수차례의 구글링을 통해 관련 예시 코드를 찾아 초기 프로그램을 만들곤 했다. 예시처럼 RNN과 LSTM을 동시에 사용하려면 각각의 예시 코드를 보고 라이브러리나 함수를 이렇게 사용하는구나라고 이해하고 나의 코드를 만들었다. 당연히 내가 쉽게 이해할 수 있는, 즉 애초에 원했던 안성맞춤 예시를 찾기는 힘들다. 더욱이 제각각 다른 코딩 스타일의 출처들에서 예시를 참조한다면 내 코드는 RNN은 A의 스타일대로, LSTM은 B의 스타일대로 짬뽕이 된 스파게티가 된다. 이제는 예시 코드를 찾아서 인터넷을 어슬렁거릴 필요가 없어졌고 동일한 프랙티스와 스타일의 코드를 얻을 수 있게 됐다.
이쯤에서 궁금해졌다. 과연 나는 미래에도 여전히 필요한 존재인가? 업으로서 데이터 과학자가 설 자리가 있을까?
얼마 전에 트위터(로 기억)에서 인사이트 있는 문장을 봤다. 대강 ‘과거에는 로봇이 인간의 노동을 대신해줘서 우리는 바둑을 두고 그림을 그리며 여가 시간을 보낼 거다라고 생각했는데, 지금 와서 보니 인간의 (신체) 노동은 더 늘었고 대신 인공지능이 바둑을 두고 그림을 그리고 있다’ 이런 뉘앙스의 글이었다. 공장에서 반복된 작업을 로봇이 대신할 때는 놀랍지 않았다. 나는 사무실 컴퓨터 앞에 앉아있기 때문이다. 주식이나 스포츠 기사를 로봇이 작성한다고 했을 때도 별로 놀랍지 않았다. 나는 개발자기 때문이다. 인공지능이 코딩을 해준다고 했을 때도 놀랍지 않았다. 나는 데이터 사이언티스트기 때문이다. 그런데 인공지능이 ML 알고리즘 코드를 짜는 것을 보고 나는 당황했다. 이제 내가 할 수 있는 일이 없어졌다. (마르틴 니묄러 목사의 글 참조.)
"질문하는 사람, 질문을 할 수 있는 사람만이 살아남는다." 옳은지는 모르겠으나 나의 결론이다. 질문하는 사람, 즉 호모 애스쿠스 Homo Askus만이 미래에 살아남고 나머지는 존재 가치를 잃을 거다. 바른 질문이 있는 사람은 ChatGPT로부터 답을 얻을 것이지만, 그렇지 못한 사람은 영원히 답을 얻지 못한다. 인공지능은 현대의 그리고 미래의 오라클 (신탁)이다. 계속해서 문제 정의 (또는 재정의) 능력이 매우 중요하다고 강조했다. 문제를 정의하는 것은 바로 (바른) 질문을 하는 거다. 호기심을 갖고 주변을 늘 관찰하며 이상함/불편함/당연함에 의문을 가져야 한다. 기본 개념에 충실하지 못하면 이런 의문과 질문을 갖기 어렵다. 단편적인 질문에 거치지 않고 연결하고 확장할 수 있어야 한다. 그런 사람이 호모 애스쿠스다.
과거에는 문제를 해결하는 (problem-solving) 사람이 필요했는데 이젠 인공지능이 담당한다. 사람은 문제를 정의해서 인공지능에게 질문해야 한다. 오래전 수렵, 채집, 농경, 그리고 최근의 산업 (공업) 시대에는 노하우 know-how가 지혜였다. 언제 어떻게 해야 하는지를 많이 알고 있는 사람이 상사, 지도자가 된다. 그런 지혜는 보통 나이가 들면서 경험함으로써 얻기 때문에 집 안의 큰 어른, 마을의 장로들이 지혜의 집약체였고 그들이 최종 결정권자였다. 때론 조금 더 가방끈이 긴 사람이거나… 구텐베르크의 인쇄 혁명 전의 사제 (교황)의 권위도 라틴어 성경을 읽을 수 있음에서 나왔다. 정보화 시대가 되면서 이제 그런 파편화된 노하우들이 문서나 영상으로 기록, 저장되면서 그걸 가장 빨리 찾는 사람이 앞서 나간다. 딥러닝이 뭔지, CNN이 뭔지를 몰라도 적당한 라이브러리와 예시를 찾으면 잘 동작하는 간이 인공지능을 금세 뚝딱 만들 수 있다. 이런 빨리 찾는 능력은 결국 노웨어 know-where다. 어떻게 하는지는 몰라도 어디에 무엇이 있는지를 알면 그걸 바탕으로 바로 문제를 해결할 수 있다. 인맥이 중요한 이유도 여기에 있다. 정보를 정확하게 빨리 찾아 연결,종합해서 현재 문제에 바로 적용할 수 있느냐가 지금 시대의 역량이다. 그런데 이제 노하우든 노웨어든 더 이상 인간의 지혜가 아니다. 로봇 (인공지능)이 우리 인간보다 더 많이 알고 있고 더 빨리 찾는다. 로봇이 자의식을 갖고 스스로 생성 또는 파괴하는 것이 아니라면 로봇을 제대로 활용하는 가장 좋은 방법은 적절한 명령어, 즉 바른 질문을 하는 거다. 미래는 이미 정해졌다. 어차피 문제 해결은 인공지능의 몫이고 인간은 질문해야 한다. 바른 질문을 할 수 있는 사람만이 살아남는다. Home Askus is coming.
Viva la vida.
—
업데이트 1.
10여년 전에 Marc Andreessen이 ‘Why software is eating the world’이란 유명한 글을 남겼다. 그후 몇 년 전엔 ‘Software ate the world. now AI is eating software’란 선언적인 글이 포브스에 실렸다. 지금은 AI가 세상을 집어삼켰다.
—
업데이트2.
https://www.youtube.com/watch?v=7LbOw6_vpbY