그래서 남은 것은 무엇인가?
우리 학자들이 애용하는 사이트 중 하나인 구글 학술검색(Google Scholar)에 가면, 화면 맨 아래에 항상 다음과 같은 글이 떠 있다.
거인의 어깨에 올라서서 더 넓은 세상을 바라보라 - 아이작 뉴턴
과학의 본질을 이보다 더 간명하게 드러내는 말이 있을까? 인류가 지금껏 쌓아올린 눈부신 과학 기술 문명은 불현듯 나타난 어느 한 천재의 성과가 아니며, 오랜 기간 수많은 나그네들이 오가며 쌓아올린 산기슭의 돌탑 같은 것이다. 뒷선 이가 꼭대기에 돌 하나 쌓을 수 있는 즐거움을 누릴 수 있게, 개중에 제일 널따란 돌 정성스레 올려준 앞선이가 있었기 때문이다. 뉴턴에게는 코페르니쿠스, 갈릴레이 등이 앞서서 돌탑을 쌓아준 거인들이었을 것이다.
“남기는 것”은 그래서 중요하다. 나를 위한 것임과 동시에 내가 속한 집단을 위한 것이기 때문이다. 실전에서 연구를 하다보면 종종 느낀다. 앞서 간 이가 제대로 남기지 않은 이정표 때문에 길을 잃을 때 마다 또한 생각한다. “대체 여기에 뭐가 남아있는 거지?” 한편으로 내가 지나온 길을 되새겨 보는 기회도 된다. “나는 그 때 거기서 무엇을 남겼지?”
이번에 발표한 연구는 이러한 과학의 본질을 곱씹어보는 기회였다. 이제껏 진행한 연구와는 사뭇 성격이 달랐다. 지금까지는 “세상에 남길 만한 새로운 기술”을 만드는 연구였다면, 이번 연구는 “남기는 것”과 “남은 것” 자체에 관한 이야기이다. 이 이야기의 시작은 작년에 발표했던 지향성 퍼징 연구로 거슬러 올라간다. 당시 우리는 만족스러운 아이디어를 떠올렸고, 이 돌멩이를 올릴 돌탑을 구하고 있던 차였다. 즉, 실험을 위한 비교군이 필요했다. 이 분야의 최신 도구들을 가져와서 실험해보고 우리의 기술이 이들 보다 낫다는 것을 보이는 것이다. 이런 과정은 인류가 지금껏 쌓은 가장 높은 돌탑의 꼭대기에 우리가 만든 돌멩이를 하나 올림으로서 우리 모두가 이전보다 조금 더 멀리 내다볼 수 있게끔 한다. 따라서, 실험 과학에서 가장 중요한 작업이다.
언제는 안 그런적이 있었겠냐만, 이번에는 유독 배보다 배꼽이 더 컸다. 기존 기술들이 해당 논문에서 제시된 만큼 성능이 나오지 않았다. 이런 일을 겪으면 상당히 당황스럽다. 이미 발표된 연구 결과와 다른 결과를 제시하려면, 어마어마한 노력이 필요하다. 자칫 잘못하면, 선행 연구자들에게 누명을 씌우는 일일 수가 있다. 따라서 학계에서는 대개 매우 엄격하게 이를 심사하며, 철저한 검증과 구체적인 논거를 요구한다.
어쩔수 없었다. 다른 도구들을 하나하나 뜯어보면서 어떠한 설정이 원본 논문과 달랐는지 비교하는 수 밖에. 당시 석사과정인 태은이가 주로 일을 도맡아 했다. 퍼징 도구에서 중요하게 설정을 해주어야 할 요소들이 빠져있거나, 원 저자들의 상황과 달랐을 것이라 추측했다. 다행히도 몇 가지 실마리들이 나왔고, 연락을 했을 때 친절히 대답해준 선행 연구자들 덕분에 많은 경우 기존에 보고된 결과와 비슷한 결과를 자체적으로 재현할 수 있었다. 우리의 추측대로, 중요한 설정이 애매하게 기술되어 있거나, 빠져있는 경우가 많았다. 구현상 실수, 관점의 차이로 중요하지 않다고 판단한 경우 등 다양한 이유였다.
이러한 과정은 한 편으로 시간낭비처럼 보일 수 있었으나, 이 과정 조차 뒤에 오는 이를 위한 돌탑으로 남겨보고자 했다. 같이 연구를 하고 있는 차상길 교수님의 제안이었다. 이 분야 (지향성 퍼징)의 역사가 아직 짧아서, 연구자들이 어떠한 것을 남길지 아직 표준화된 합의가 없는 것이 문제였다. 그래서 우리의 경험을 토대로 우리가 (사실상) 표준을 마련해보기로 했다. 그때부터 또 어마어마한 실험이 시작되었다. 잘못되었거나 애매한 설정으로 지향성 퍼징을 평가하면 어떠한 일이 벌어지는지 보여주는 구체적인 시나리오를 하나하나 마련했다. 설정값 하나가 바뀌면 기존 기술들의 성능 순위가 뒤바뀌는 경우가 허다했다. 이러한 상황을 포착하려다 보니 내가 연구를 시작한 이래 가장 규모가 큰 실험이 되었다. 보여주어야 하는 시나리오도 많은데다가, 퍼징이라는 기술은 워낙 시간이 오래 걸리기 때문이다. 나중에 헤아려보니 단일 CPU로 환산하면 대략 30년치에 해당하는 계산량이었다.
이 연구 결과를 올해 7월 FSE에서 발표하였다. 제목은 “Evaluating Directed Fuzzers: Are We Heading in the Right Direction?” 태은이가 이 연구의 진행 상황을 국내 워크샵에서 발표했을 때 지었던 제목 “지향성 퍼징 평가, 제대로 하고 있나요?”를 보고 그대로 논문 제목으로 옮겼는데, 역시 많은 이가 좋아하는 논문 제목이 되었다. 태은이가 발표를 잘 준비한 덕택에 많은 사람들이 재미있어하며 우리의 이야기에 관심을 보였다. 우리의 고생담은 즐거운 안주거리였고, 여러 사람들과 허심탄회한 이야기를 나누는 계기가 되었다.
학회가 열린 브라질 시골 마을에서 대전까지 장장 40시간에 걸친 여정, 그리고 이 연구의 진한 잔상에 휩쓸려 돌아오는 길에 반강제적으로 많은 생각을 할 수 밖에 없었다. 물론 대부분은 잠들어있었지만 깨어있는 틈틈이 곱씹었다. 학계에서 우리는 무엇을 남겨야 하며, 어떻게 남겨야 하는가?
첫째는 생각(아이디어)이다. 주로 우리가 글로 논문을 남기는 이유이다. 단순히 어떤 문제를 해결하는 방법만이 아니라 여기서는 좀 더 폭넓은 의미로 생각하자. 재사용이 가능하여 뒤에 오는 이들이 참고할 만한 생각은 무엇이든 좋은 남길거리이다. 남기는 방식이 꼭 책이나 논문처럼 정식 출판물일 필요는 없다. 우리보다 앞서간 거인 다익스트라 선생은 일생동안 수많은 글을 남겼다. 그 중에는 정식 출판되지 않은 글도 많지만, 여전히 우리가 참고할만한 것이 많다. (이 링크를 통해 만나볼 수 있다.) 내 대학시절을 돌아보아도 그랬다. 과목 홈페이지를 통해, 선배들 때부터 전해져 내려오는 온라인 게시판의 오래된 링크를 통해, 우연히 읽은 교수님/선배님들의 글에 매료된 적이 많다. 그 분들이 남겨주신, 내 인생에도 재사용 가능한 생각거리. 공부를 대하는 태도, 연구의 즐거움, 각 전공 분야의 이야기 등 연구 논문을 읽을 실력이 없던 시절에도 그 분들이 남긴 글은 그 분들의 생각을 읽고 배울 좋은 기회였다. 어떠한 형식으로든 생각을 남기는 것은 중요하다. 이 사회가 남긴 수많은 생각을 먹고 자란 지식인으로서 뒤따라오는 이를 위해 내 생각도 남겨 두는 것은 의무이기도 하다.
두번째는 코드(소프트웨어)이다. 이것은 우리 분야에 한정된 이야기일 수 있다. 이번 FSE 에서 발표한 것이 이 것이다. 다른 분야에 비해, 우리 SW분야는 재현 가능한 연구 기록물을 남기는 것이 비교적 쉽다. 작년 세상을 떠들썩하게 했던 초전도체 LK-99 재현 소동을 생각해보라. 혹은 여타 첨단 기술을 떠올려 보라. 다른 분야에서는 한 실험실에서 얻은 결과를 다른 실험실에서 똑같이 재현하는 것이 쉽지 않은 경우가 많다. 모든 변인을 똑같이 통제하는 것이 어려울 수도 있고, 심지어는 해당 실험 장비를 구하는 것 조차 어려울 수도 있다. 반면 소프트웨어는 그 보편성 때문에 어려움이 훨씬 덜한 편이다. 특히 요즘에는 Docker, 가상 머신 같은 기술도 쉽게 사용할 수 있어서 동일한 실험 환경을 구축하기가 제법 편리해졌다. (그래도 여전히 어려운 점은 물론 있다)
이러한 좋은 환경을 갖춘 분야의 연구자로서, 연구 재현성 확보에 책임감을 갖는 것은 매우 중요하다. 본인이 연구한 결과물을 투명하게 공개하고, 이를 바탕으로 후속 연구를 진행하려는 연구자들을 기꺼이 도울 수 있어야 한다. 논문만 출판하고 이력서에 한 줄 추가하는 것 가지고 2류는 쉽게 될수 있을지 몰라도 존경받는 1류가 될 수는 없을 것이다. 이러한 생각이 심각하게 들기 시작한 때가 박사 졸업 몇 달 전이었다. “내가 학위기간동안 발표한 연구는 모두 재현가능하게 공개하고 졸업하자” 라는 목표를 두고 그 시기에 온전히 여기에만 매달렸다. 그 결과는 모두 여기에 공개되어 있고 현재까지도 우리 연구실 학생들을 포함한 후속 연구자들이 종종 사용하고 있다. 카이스트에 와서 학생들을 가르치면서 강조한 것 중 하나도 이것이며, 이후 우리 연구실에서 발표한 모든 연구도 재현가능한 연구 기록물을 투명하게 공개해 왔다. 후속 연구자들이 재현을 위해 연락해 올 때에도 기꺼이 최선을 다해 대답해 주고 있다. 이러한 과정이 결코 쉽지 않고 번거로운 점도 많지만, 가끔 즐겁고 뿌듯한 소식도 들려올 때가 있다. 재작년 ICSE 2022에서는 심혈을 기울여 기록물을 정리한 결과를 인정받아 최우수 연구 기록물상 (best artifact award)를 받기도 했다. 여느 최우수 논문상 못지 않게 자랑스러운 상이다. 최근에는 학회에 갈 때마다 외국 학생들 (왜냐면 교수들보다 학생들이 주로 실험을 하니까) 한 두 명씩은 꼭 말을 걸어온다. 내가 이전에 공개한 연구 기록물, 만들어 놓은 숙제를 본인 연구와 공부에 잘 사용하고 있다는 감사 인사이다. 나도 그 누구보다 더 실험을 많이 해본 박사과정 학생이었기에 그들의 상황을 잘 이해하고 있다. 우리 분야 훌륭한 학생들의 성장에 작은 이정표가 될 수 있어서 기쁜 마음이다.
마지막으로는 사람(주로 학생)이다. 해당 분야의 발전을 위한 연구 과정에서 가장 중요한 산출물은 그 과정에서 키워낸 해당 분야의 전문가일 것이다. 여러 도전적인 연구를 통해 당면한 과제의 해법을 제시하는 것도 물론 중요하다. 하지만 그 문제는 한 번 풀었으면 됐다. 인류가 이미 해결한 문제라면 똑같은 문제로 다시 골머리 썩일 일은 없을 것이다. 그 다음에 필요한 것은 좀 더 심화된 문제를 풀 수 있는 지능이다. 즉, 연구나 학위 과정을 통해 이러한 사람을 남기고자 하는 이유는, 그 사람이 그 동안 배운 지식을 확장하여 졸업 후에 더 중요한 문제를 풀수 있기를 바라기 때문이다. 이런 측면에서 석박사를 교육하는 것이야 말로 진정한 인공 일반 지능을 훈련시키는 것이다.
하지만, 최근 학계의 분위기를 보면 제대로 훈련된 사람이 남지 않을 것 같은 연구가 많이 보여서 나에게는 좋은 반면교사가 되어 주곤 한다. 예를 들어, 기존에 존재하는 문제를 조금 주물러서 거대 언어 모델 (LLM)에 입력으로 주었더니 결과가 좋았다든가, 퍼징 (fuzzing) 도구를 그냥 세 달간 돌려놓았더니 남들이 찾지 못한 오류를 많이 찾았다든가. 물론, 느닷없이 등장한 마술같은 도구들의 한계를 시험해보기 위해 이것저것 두드려보는 것은 반드시 필요하고, 무엇이 되었든 성능이 좋고 결과가 좋아서 인류를 이롭게 한다면 꼭 해야할 일이다. 하지만 그것을 우리 석박사 학생들이 해야할까하는 생각은 늘 머릿속을 맴돈다. 이른바 프롬프트 엔지니어링 (LLM의 입력 조작)으로 여러 문제를 풀고, 어마어마한 자원을 소모해서 소위 말하는 “최우수” 학회 논문을 다수 출판했다고 하자. 그래서 남은 것은 무엇인가? 뒷따라 오는 사람에게 건네줄 재사용 가능한 지식이 있는가? 혹시 일기장에 쓸법한 “오늘의 뿌듯한 일” 정도는 아닌가? 프롬프트 엔지니어링이 전문인 박사님을 회사에서 필요로 할까? 박사 학위가 없는 사람들과 얼마나 큰 차이가 날까? 그러한 교수님이 학생들에게 전달할 경험과 지식은 무엇인가? 어떤 학교에서 무엇을 기대하고 교수로 채용을 할까?
우리는 쉬운 일이 아니라 뜻깊은 일, 후대에 영감을 줄 일을 해야하지 않을까? 쉬운 길을 택하는 사람을 비난할 생각은 전혀 없다. 다만, 뜻깊은 일을 하겠다고 막 나선 어린 학생들이 쉬운 일을 따라 가는 사람들이 늘어선 줄을 보면서 괜히 주눅들까 걱정이다. 하지만 당신이 이 글을 읽는 석/박사 학생이라면, 그리고 본인의 목표가 2류가 아니라 1류라면 절대 걱정할 필요 없다. 나조차도 아직 부족한 사람이라 내 경험으로 증명해줄 수는 없지만, 내가 여태껏 본, 본받을만한 1류 선생님/선배님들은 그랬다. 그들을 보면서 굳게 믿게 되었다. 쫄지 말고 굳건히 버티고 덤비자. 그것이 연구를 통해 본인을 (혹은 교수라면 본인의 학생을) 남기는 길일 것이다.
지금은 인류 역사상 그 어느 때보다 남기는 것이 중요한 때가 아닐까? 2026년이면 LLM이 인류가 여태껏 남긴 모든 데이터를 학습에 다 사용하는 시점이 올 것이라고 한다. 이른바 데이터 고갈 문제가 눈앞에 왔다. 2026년까지 학습 데이터가 남은 것도 영어 정도이지, 소수 언어나 프로그래밍 언어 데이터는 이미 고갈 되었을 것이라는 추측이 지배적이다. 또한, 다른 LLM이 생성한 데이터로 학습한 LLM은 성능이 크게 떨어지는 현상이 관찰된다고 한다. 이른바 모델 붕괴 현상이다. AI가 더 이상 학습할 인간의 유산이 없는 시대에 다다랐다. 이제 AI가 남긴 것이 인간이 남긴 것을 양으로 압도해버릴 시대가 바로 앞에 있다. 어쩌면 공상과학 영화 속 이야기와는 전혀 다른 방식일지도 모른다. 무기를 장착한 AI의 힘 때문이 아니라, 기록 대결에서 압도 당하여 AI의 노예가 될지도. 이제껏 인류가 쌓아 올린 과학, 도덕, 문화같은 돌탑이 AI가 만든 거대한 가짜 탑의 그림자에 가린다면 어떻게 될까? 그리하여 뒤따라오는 이들은 우리가 지나간 길을 못보고 지나친다면? 자, 그러니 이제 우리 남기자. 되도록이면 의미있고 뜻이 깊고 영감을 줄 것을. 가짜 탑의 그림자가 드리워도 못보고 지나칠 일이 없도록 빛나는 것을.