인프런 판교 퇴근길 밋업 #09 AI Dev 참여 후기
신청 계기
인프런에서 정기적으로 진행하는 행사인 "판교 퇴근길 밋업"에 선정되어 참여하게 되었다! 학부생 신분이다보니 선발되기 어렵겠다라고 판단했는데.. 운이 좋았다🙃
이번 밋업에 지원한 이유는 동아리 프로젝트인 EATceed에서 AI 기능 개발(LLM Product)을 맡아 진행하고 있기 때문이다. 프로젝트를 진행하며 내가 선택한 개발 방식과 흐름이 맞는지 과연 적절한지 스스로 의문이 들 때가 있었는데, 이번 밋엇을 통해 현업에서는 어떤 방식으로 문제를 해결하는지, 어떤 기술을 사용하는지, 그리고 그 기술을 왜 도입했는지 등 실무적인 인사이트를 얻고 싶었다.
인턴 과정에서 프로젝트를 진행했을 때에도 비슷한 어려움을 겪은 적이 있다. 이때는 Google Machine Learning Bootcamp(5기) 활동과 커뮤니티 덕분에 얻은 인사이트를 토대로 문제를 해결하며 성장할 수 있었다. 이번 밋업에서도 인사이트와 배움을 얻을 수 있을 것이라는 기대감으로 신청하게 되었다.
발표 내용
발표는 "그랩"으로 활동하시는 호연님이 진행주셨다. 발표 주제는 LLM을 사용한 기법 중 RAG(Retrieval-Augmented Generation)에 대한 여러가지 이야기를 해주셨다. 나는 이중에서 프로젝트 진행에 도움이 될만한 내용을 정리해볼까한다.
먼저, 간단하게 RAG가 무엇인지에 대해 설명하고 발표 관련된 내용을 정리하면 좋을 것 같다!
Advanced RAG
RAG라는 단어는 요즘에 워낙 트렌드이다보니 다들 한 번씩은 들어봤을 것이다. 간단하게 설명하자면 언어모델(LLM)에게 질의할 때 외부에서 가져온 데이터를 결합하여 언어모델이 더욱 정확한 답변을 생성하도록 하는 방법론이다. 예를 들어 OpenAI에서 만든 ChatGPT는 4o 기준으로 2023년 4월 데이터까지 반영되어있다.
그럼 2024년 데이터를 알지 못하는 LLM은 활용가치가 떨어질 수 밖에 없지 않나? 그래서 위에서 언급한 외부에서 가져온 데이터를 결합(제공)해주어 해당 데이터를 기반으로 답변을 해주게하는 것이 RAG라고 할 수 있다.
Advanced RAG의 수행 단계는 다음과 같다.
- Indexing
- Pre processing
- Retrieval
- Post Processing
호연님은 여기서 가장 중요한 단계가 "데이터 전처리"라고 하셨다. "Garbage in, garbage out"과 같이 좋은 데이터를 넣지 않는다면 성능을 보장받을 수 없기 때문이다.
그럼 "데이터 전처리를 어떻게 할 수 있을까?"라는 생각을 가지고 있었는데 설명을 해주셨다!
Data Preprocessing
- 다양한 데이터 포맷을 처리하기 위한 커스텀 파서 구현
- 동일한 데이터를 여러 형식으로 저장해야 하는 경우가 많으므로 멱등성 환경 필요
- 메타데이터를 활용하기위한 도메인 전문가와의 협업 진행
데이터 포맷을 처리하기 위한 완전한 데이터 파서는 없기 때문에 결과적으로 커스텀한 파싱 로직이 필요하다. 또한, 데이터 전처리 인프라 같은 경우 기존 데이터 엔지니어링 영역에서 VectorDB 레이어가 추가된 정도이지만, RAG 특성상 동일한 데이터를 여러 형식으론 넣어야할 수 있어 멱등한 데이터 환경이 정말 중요하다고 했다.
메타데이터 같은 경우 아주 중요한 요소인데, 어떤 메타데이터를 넣을지 임베딩할 데이터의 구조(Structure)를 잡는 것은 도메인 전문가와의 협업을 통해 진행하는 것이 좋다고 하셨다.
현재 EATceed 프로젝트를 진행하면서 데이터 엔지니어링 단계 자동화에 대한 고민이 많았는데, 발표를 들으면서 진행 방향성을 잡은 것 같다. 발표를 듣기 전까지만 해도, vectorDB로 유명한 pinecone을 사용하여 현재 elasticsearch로 구현되어있는 유사도 분석을 변경하려고 했는데, pinecone은 현업에서 migration이 어려워서 추천하지 않는다고 하셨다. 그래서 현재 상황을 잘 판단해서 vectorDB를 선택해야겠다라고 생각했다.
또한, EATceed 프로젝트에서 "식습관 분석", "음식 이미지 분석"기능을 LLM(Multi-Modal 이용)을 이용하여 기능 구현하였는데, prompt에 넣을 메타데이터를 도메인 전문가에 조언을 구하고 데이터 처리 후 적용해야겠다고 판단했다.
Evaluation
평가같은 경우는 가장 큰 고민 중 하나였다. "식습관 분석"의 결과에 대한 성능 평가를 Langsmith(프로젝트에서 도입하려고 했는데, 현업에서도 사용한다고 한다!)를 이용하여 진행하고싶은데 기준 설정이 모호했다.
발표에서 제안한 기준 설정 방식은 다음과 같다.
- ML 논문에서 보이는 평가 방식을 그대로 차용하기 보단, 본인들의 문제에 맞게 재정의하는 것이 중요
- 1-5점, true/false, % 등 다양한 측정방식이 존재하므로 활용하기
- 정성적인 평가 기준일 경우 LLM을 활용
정성적인 평가일 경우 "사용자들에게 얼마나 도움이 될 것 같아?"라고 LLM한테 물어봐서 해당 답변을 토대로 평가를 한다는 것이 신기했다. 발표를 들으면서 이와 관련된 글을 봤던 기억이 있어서 링크를 첨부한다.
네트워킹을 통해 본 AI 개발과 데이터 엔지니어링
발표가 끝나고 네트워킹 시간을 갖었다. 네트워킹 조는 나를 포함해서 4명이었는데, 다들 판교에서 근무하시는 현업자 분들이셨다..!😮
네트워킹을 통해 실제 현장에서 AI와 데이터 엔지니어링이 어떻게 활용되고, 실무에서 느끼는 현실적 고민과 해결책들을 공유받을 수 있었다.
GraphRAG와 Advanced RAG의 차이
MetisX에서는 GraphRAG의 활용에 대해 흥미로운 사례를 공유해주셨다. 일반적으로 LLM을 이용해 대규모 데이터를 처리할 때 정보 손실 문제가 발생하는데, GraphRAG는 이를 완화할 수 있다고 하셨다. 내용을 정리하면 다음과 같다.
- 장점: 데이터를 그래프의 노드와 엣지로 연결해 정보 손실을 최소화하며 문맥을 보존한다. 예를 들어, 100페이지의 PDF를 처리할 때 단순히 Chunking만으로는 놓칠 수 있는 세부 정보를 보완할 수 있다.
- 주의점: 그래프 파서(Parser)가 중요하다. 문서에서 리스트, 포인트 형식 등 구분하지 못하는 요소를 잘 처리하지 않으면 성능이 떨어질 수 있기 때문이다.
- Advanced RAG와 비교: GraphRAG는 복잡한 데이터 구조를 처리할 때 유리하지만, 답변(Output)이 복잡해질수록 성능이 오히려 저하될 수 있습니다. 이 경우에는 메타데이터를 잘 설계하고 Advanced RAG 방식으로 간단하게 접근하는 것이 더 나은 선택일 수 있다.
LLM, 언제 도입해야 할까?
네트워킹 중 내가 한 질문은 "LLM이 현업에서는 어떻게 도입되고 있나요?"였다. 이에 대해 흥미로운 답변을 들을 수 있었다.
- 위버스컴퍼니
- 트렌드 보고서 및 다국어 변환 리포트를 작성하는 데 LLM을 활용한다고 한다. 이를 통해 사용자 맞춤형 정보 제공(직급, 다국적)이 가능해졌다고 한다.
- 특히, LLM을 도입할 때는 토이 프로젝트와 스터디를 먼저 진행하기도 하지만, 회사의 필요에 따라 바로 도입하기도 한다고 한다.
- 카카오
- 모든 워크플로우를 LLM으로 대체할 필요는 없다는 점을 강조했습니다.
- 실제로, 유저 데이터 분석에서 abusing 유저의 유형을 파악하는 데 LLM을 활용하려 했으나, 다양한 유형을 모두 이해시키는 데는 많은 어려움이 있었다고 한다.
데이터 엔지니어링
네트워킹 중 현업에서의 데이터 엔지니어링에 대한 이야기도 들을 수 있었다. 데이터를 잘 수집하고, 정제하고, 관리하며, 대용량 데이터와 실시간 데이터를 잘 다루는 것이 데이터 엔지니어의 핵심 역할이라는 점은 익히 알고있었다. 하지만, 회사의 규모가 커질수록 안정성과 정책이 더욱 중요하다는 것을 이야기를 들으면서 실감할 수 있었다. 특히, 안정적인 데이터 흐름을 설계하고 정책을 수립하는 과정은 단순한 기술적 문제를 넘어 비즈니스의 기반을 다지는 작업이라는 점에서 큰 책임감을 요구한다는 것을 알게 되었다.
밋업 소감
이번 밋업을 통해 AI 개발과 데이터 엔지니어링의 현주소를 확인하고, 실무에서의 고민과 해결 방식을 배울 수 있었다. 특히, 진행하고 있는 EATceed 프로젝트와 연결해 생각해보니 데이터 전처리와 메타데이터 설계의 중요성을 더욱 실감할 수 있었다. 데이터 엔지니어를 꿈꾸는 나에게 LLM Product 개발 과정은 데이터 엔지니어링 역량이 얼마나 중요한지를 깨닫게 해주어, 프로젝트가 향후 데이터 엔지니어에 취업할 때 도움이 될 것이라고 판단했다.
또한, 네트워킹이 종료 후 네트워킹 멤버 중 한 분께서 명함을 건네주시며 "멀리서 정보를 얻으려고 오는 모습이 자신의 예전 모습을 보는 것 같다"며 필요한 게 있으면 부담 없이 연락하라고 말씀해 주셨다. 유익한 정보를 얻은 것도 큰 성과였지만, 이번 밋업을 통해 새로운 인연을 맺을 수 있었던 점이 가장 큰 수확이었다고 생각한다. (곧 연락을 드려야겠다!)