포르투갈까지 가서 AI 오픈소스를 만들다
실패한 창업팀
우리 팀 세 명은 젊은 패기로 창업에 도전했고, 화끈하게 실패했다. ‘메타버스 광고 측정 기술’이라는 아이템은, 메타버스 시장 전체가 기우는 상황에서 도저히 생존할 수 없었다.
그렇게 6개월 넘게 온힘을 쏟았던 아이템은 성과를 내지 못했지만, 우리 팀은 서로 남기로 했다. 뭔가를 계속 해보기로 했고, 그 주제가 바로 ‘RAG’였다.
RAG 공부 - RAGchain을 만들어 보다.
RAG는 쉽게 말해, LLM에게 ‘LLM이 모르는 지식’을 자동으로 가져다주어 유저의 질문에 답변할 수 있게 하는 기술이다. LLM이 아무리 많은 데이터로 훈련한다 해도, 사내의 지식이나 최신 내용들을 알 수는 없다. 이런 부분을 보완할 수 있는 기술이 RAG이다.
작년 여름부터 RAG를 공부했고, 공부하다보니 뭔가 랭체인이 기능이 부족해 보였다. 그래서 무심코 만들기 시작한 것이 RAG 전용 프레임워크 RAGchain이다. 랭체인 기반으로 RAG 전용 기능들을 붙여서 RAG용 랭체인 확장판이 되어보겠다는 포부였다.
학업과 병행하면서도, 여러 논문들을 참고하며 RAGchain을 만들어 갔다. 그리고 RAGchain이 수많은 깃허브 스타를 받을 것을 꿈꾸며 공개했지만, 생각보다 반응은 차가웠다. 문득 달리는 댓글은, ‘이게 랭체인 같은 것과 뭐가 다르죠?’였다… 그 때, 문득 생각이 들었다. 진짜 뭐가 다르지? 하고 RAGchain을 만들지 몇 달이 되어갈 무렵 처음으로 랭체인이 아닌 다른 소프트웨어들의 상황이 어떠한지 시장조사를 해보게 되었다. 또 개발이 너무 좋아서, 개발하는 것이 너무 재미있어서 개발한 것을 쓸 사람들, 그리고 개발하는 것의 정체성까지도 생각하지 않고 있었던 것이다.
알아보니 라마인덱스나 haystack과 같은 좋은 RAG 프레임워크들이 시장에서 랭체인과 경쟁하고 있었고, 라마인덱스는 우리보다 훨씬 많은 기능을 지원하고 있었다. ‘라마인덱스가 아닌 RAGchain을 쓰는 이유가 뭘까?’라는 질문에 대답을 할 수 없었고, 결국은 무엇인가 변화가 필요하다는 것을 깨달았다.
AutoRAG의 탄생과 7주 노마드
이제 이 글이 제목인 ‘포르투갈’에 대해서 이야기가 나온다. 창업 아이템을 그만두고, 우리가 잡은 목표는 ‘해외에서 디지털 노마드 생활 해보기’였다. 너무나 감사하게도 RAG 연구와 개발을 하며 포르투갈까지 갈 수 있는 상황이 만들어졌고, 야심차게 7주의 숙소와 비행편을 모두 예약해 두었다.
그리고 출발 약 2주 정도를 앞두고, 위에서 말했던 것처럼 계속 만들고 있던 RAGchain을 멈추기로 했다. 순식간에 포르투갈에서 할 것이 없어진 상황. 그렇가 밤 늦게까지 고민하며 해결책을 강구했고, 그렇게 만들기로 한 것이 AutoRAG이다.
AutoRAG는 간단히 ‘RAG 자동 최적화’ 툴 이다. RAG의 AutoML 툴이다. RAG에는 수많은 방법론들이 있다. 그런데 문서에 따라서 어떤 방법론이 좋은지 직접 실험해 보지 않고서는 알기가 매우 힘들다. 그래서 이러한 방법론들을 자동으로 실험하고 가장 좋은 조합을 찾아주는 툴이 AutoRAG이다. 더 나아가, 문서로부터 평가 데이터 역시 생성할 수 있다. AutoRAG에 대한 더욱 자세한 내용은 규진님의 메이커로그 에서 볼 수 있다!
여기서는 ‘어떻게’ AutoRAG를 생각하게 되었는지를 말하고 싶다. 사실 별 비법이 있는 것은 아니다. RAGchain을 시작하기 전과 달리, 시장조사를 열심히 해보았다. 세상에는 라마인덱스와 같은 수많은 프레임워크들이 나와있었다. 거기에 더불어, 그것을 ‘평가’할 수 있는 프레임워크들도 꽤나 여럿이 나와 있었다.
여기서 빠져 있는 것은 무엇일까? 레딧 등지를 마구 돌아다니면서 RAG 관련한 글과 댓글들을 마구 읽어 보았다. 그리고 많은 사람들이 ‘RAG를 만들기는 했는데 어떻게 평가해야 할 지 모르겠다.’ 그리고 ‘내 데이터에 어떤 RAG가 적합한지 모르겠다.’ 심지어 ‘엄청 많은 사람들이 RAG를 만들고 있는데 각자의 발전 결과가 전혀 공유가 되지 않는 것 같다.’라고 불만을 토로하고 있었다.
나도 RAG를 만드는 툴, 그리고 RAG 자체를 계속 만들어 오면서 정확히 같은 부분에 불편을 겪고 있었다. 일단 만드는 것은 누구나 할 수 있다. 그런데 만들고 나면, ‘잘 되는지’ 확인하는 방법은 보통 그냥 직접 아무 질문이나 넣어가며 테스트해 보는 것이다. 우리가 할 수 있었던 가장 정량적인 방법은, 질문에 대해 답변을 쭉 뽑아두고 뭐가 괜찮은지 눈대중으로 채점하는 것이었다. 그것도 각 방법을 수동으로 이렇게 하다보니, 훨씬 폭넓은 방법들에 대한 실험은 현실적으로 하기가 매우 힘들었다. 게다가 질문도 잘 생각이 안난다! 당장 ‘축구 챗봇’이라는 것이 있다면 어떤 질문을 할 것인가? 100가지 질문을 막힘없이 적을 수 있는 사람은 없을 것이다.
정리하자면 RAG에 대한 현재 문제점들은,
- 정량적 평가가 안 된다. => 그나마 이것을 도와주는 프레임워크가 있으니 이것을 이용해본다.
- 그러기에는 평가용 데이터가 없다.
- 그리고 다 만들어 보기에는 RAG 방법론이 너~무 많다.
이것을 해결할 수 있는 솔루션은 AutoML 형태가 되어야 한다고 생각했다. 그렇게 AutoRAG가 탄생했다.
포르투갈에서 AutoRAG 만들기
포르투갈 마데이라 섬의 아름다운 집과, 멋진 유럽풍 건물이 가득한 포르투에서 총 7주간의 노마드를 AutoRAG와 함께 했다. 노마드에 대한 이야기는 다음에 더욱 더 자세히 다뤄보고 싶다.
어느덧 한국으로 돌아온지 3주정도 되었지만 AutoRAG는 여전히 계속해서 성장하고 있다. 우리에게 뜻깊은 곳에서 시작된 프로젝트인 만큼, 많은 사람들이 RAG를 만들때 써주면 좋겠다.
=> AutoRAG 깃허브