Blux에서 인공지능은 Blux의 모든 제품에서 중요한 역할을 담당하고 있는데요. 그렇기 때문에 완성도 있는 인공지능을 위해 Blux의 ML 조직은 계속해서 도전하고, 시행착오를 겪으며 누구보다 열심히 일하고 있습니다.
이번 블로그글에서는 Blux의 심장과도 같은 ML 직군에서 일하시고 계신 세분(Simon, Jeff, Mathew)에 대한 이야기를 들려드리고자 합니다.
Q : Blux의 ML팀을 소개합니다. 간단한 자기소개 부탁드려요!
Mathew 👷♂️: 안녕하세요 Blux에서 ML Engineer를 담당하고 있는 Mathew입니다. 모델 학습 파이프라인 자동화와 모델 성능을 온라인으로 모니터링 하는 파이프라인을 만들고 있습니다.
Simon ⚡️: Blux에서 ML Research Engineer로 일하고 있는 Simon입니다. Blux에 합류한지 2년 정도 되었고, 현재는 CRM팀에서 여러 Business 문제들을 ML로 풀고 있습니다.
Jeff 🌊 : Blux팀의 ML Engineer Jeff 라고 합니다. 저는 Blux Recommendation팀에서 고객사들을 위한 최적화된 추천 모델을 개발하고 배포하는 일을 하고 있습니다.
Q : 세분 모두 다양한 백그라운드를 가지고 계신데 Blux에 합류를 결정하시게 된 이유가 있나요?
Simon ⚡️: 저는 학부 때 사람의 행동에서 유의미한 정보를 학습한 뒤 스스로 추론할 수 있는 인공지능을 연구하고 싶었고, 추천시스템과 강화학습에 관심을 가지고 공부를 하고 있었어요. 때마침 제 대학선배이기도 한 Joel이 추천 시스템을 기반으로 한 Saas기업을 창업했다고 전해 들어서 인턴으로 일 할 수 있냐고 무턱대고 연락을 했고, 이렇게 인턴으로 입사를 해서 Blux에 합류하게 되었습니다. 사실 인턴 기간이 끝나면 대학원에 진학하려고 했어요(🤫). 그런데 Blux에서 일하면서 제가 풀고자 하는 문제에 대한 답은 실험실보다 Blux에서 찾을 수 있겠다고 생각하였습니다. Saas 기업이기 때문에 다양한 기업의 행동 데이터를 접할 수 있었고, 어떻게 하면 General한 인공지능을 만들 수 있을지 고민할 수 있다는 환경을 갖추고 있었기 때문이죠. 이런 점들이 매력적으로 다가와서 정규직 합류를 결정하게 되었습니다.
Mathew 👷♂️: 블럭스에 지원하게 된 이유는 두 가지가 있어요. 첫 번째 이유는 실제로 수익을 창출하는 AI 제품을 개발하고 싶었기 때문이에요. 이전에 AI 엔지니어로 일하면서 종종 제품의 비즈니스 모델이 명확하지 않아 어떻게 접근해야 할지 고민이 많았거든요. 그런데 블럭스 대표님과의 커피챗에서 Blux가 AI를 비즈니스에 어떻게 활용할 수 있는지 듣고, 돈 버는 AI 제품을 만들고 싶다는 확신이 들어서 지원하게 되었습니다. 두 번째 이유는, 저는 단순히 AI 분야뿐만 아니라 데이터 엔지니어링이나 백엔드 엔지니어링 같은 다른 엔지니어링 업무에도 관심이 많았어요. 블럭스에서는 이런 다양한 업무를 경험할 수 있는 기회가 많아 보여서 이 점도 제가 지원한 큰 이유 중 하나였습니다.
Jeff 🌊 : 저는 다른 AI 기반 스타트업에서 일을 한 경험이 있어요. 제가 Blux 팀에 합류를 하기로 결정한 이유는 일단 AI 기술을 통해서 고객과 매출을 만들어내고 있었기 때문이에요. 저도 그랬고 많은 분들이 공감하실텐데, AI 기술을 연구하다보면 이 기술을 어디다가 사용할 수 있을까라는 의문이 들기 마련인 것 같아요. 그런 부분에서 Blux는 다른 AI 기반 스타트업과 다르다고 생각했어요. 그리고 Blux의 경우 팀원들이 대부분 20대~30대로 회사치고 나이대가 낮은편인데도 불구하고 다른 어느 회사와도 뒤쳐지지 않는 실력과 열정을 가지고 있는 것 같아요. 제가 Blux에서 일한다면 사람 때문에 스트레스를 받을 일이 없을 것 같았고 같이 으쌰으쌰하면서 재밌게 일할 수 있을 것 같았어요.
Q : Jeff와 Mathew는 Blux에서 ML Engineer로서 어떤 일을 하시나요?
Jeff 🌊 : Blux에서 ML Engineer는 ML 모델 학습, 배포, 파이프라인 구축, MLOps, 대시보드 등 다양한 분야에서 일을 하고 있습니다. 그렇기 때문에 ML Engineer끼리도 롤분배가 되어 있습니다.
제가 주로 고민하는 것은 ML 모델 학습 자동화와 ML 서빙 아키텍쳐입니다. 저희는 ML 모델을 쉽게 학습하고 테스트 할 수 있도록 내부 라이브러리인 ZAiFlow를 사용하고 있는데요, ZAiFlow 를 통해서 복잡한 모델 학습 과정을 최대한 단순화시켜서 json이나 yaml 파일로도 모델을 학습하고 배포할 수 있도록 구축한 상태입니다. 저희가 B2B SaaS 형태로 고객사 마다 최적화된 모델을 제공하기 위해서 고객사 별로 다른 모델을 관리해야 하는데, ZAiFlow를 통한 configuration과 커스터마이징한 MLFlow를 적극사용하고 있습니다.
ML 모델을 잘 서빙하는 것도 중요한 일인데요, ML 서빙 API에 대해서 다양한 고객사들의 각기 다른 비즈니스 로직을 적용하기 위해서 CaC(Configuration as Code) 를 적용하고 있습니다. 모델 학습과 배포 과정에서 CaC 구조를 적용함으로써 ML 모델 학습부터 배포까지의 전 과정을 자동화할 수 있도록 구축하였습니다.
지금은 모델의 성능을 더 높여줄 수 있는 auto hyperparameter tuning 파이프라인과 ML 서빙에서 더 효율적으로 CPU, 메모리 리소스를 사용할 수 있는 아키텍쳐를 고민하고 있습니다.
Mathew 👷♂️: 데이터 파이프라인 설계와 온라인 성능 측정, 학습 자동화 관련 업무를 하고 있습니다.
현재는 데이터 엔지니어링 업무에 초점을 맞추고 있어요. 이와 관련해서 제 업무는 크게 두 가지로 나뉘어요.
첫 번째 업무는 다양한 클라이언트로부터 수집되는 데이터를 검증하고, 이를 모델 학습 및 지표 추출에 적합한 형태로 저장하는 작업입니다. 데이터를 검증하기에 앞서 데이터의 품질을 어떻게 측정할지 다른 엔지니어와 논의한 후, 데이터 품질을 측정할 수 있는 지표를 정의하고, 정의한 지표를 감시할 수 있도록 데이터 파이프라인을 구축합니다. 또한, 데이터 품질에 문제가 발생하면 즉시 알림을 받을 수 있는 시스템을 구축하여 데이터의 품질을 유지하고 있습니다.
두 번째는 모델의 온라인 성능을 준 실시간으로 측정하는 업무입니다. 이를 위해 저는 여러 사람과 협력하여 모델의 성능 측정 방법을 정립합니다. 모델의 성능을 효과적으로 측정할 수 있도록 데이터를 단계적으로 모델링하고, 이 데이터를 처리할 수 있는 ELT(Extract, Load, Transform) 및 ETL(Extract, Transform, Load) 파이프라인을 설계하고 있어요.
초기에는 자동화와 데이터 품질 관리에 집중했던 것에서 나아가, 현재는 회사 내부 직원들이 데이터에 쉽게 접근하고, 데이터를 통해 최대한의 인사이트를 도출할 수 있는 환경을 구축하고 있습니다. 조직 전체에서 데이터를 더 효과적으로 활용할 수 있게 하여, 모든 부서가 데이터 기반의 결정을 내릴 수 있도록 하는 것이 목표입니다.
Q : Simon은 ML Research Engineer라는 직군인데, ML Engineer와는 어떤 점에서 다른가요?
Simon ⚡️: Blux에서 ML Research Engineer는 인공지능 모델의 설계와 실험, 서빙, 고도화 전반에 관여하는 직군입니다.
만일 저희 제품에 탑재될 인공지능 기능을 개발한다고 가정한다면, ML Research Engineer는 기획자와 함께 문제 정의 단계부터 합류를 하게 됩니다. 이 과정에서 실제 ML로 해결할 수 있는 문제가 무엇이 있는지, 어떤 데이터들이 필요할지 등을 기획자와 논의하고 기능의 명세를 확정합니다.
이후 기능 개발에 필요한 데이터들을 모으고, 본격적인 모델링 작업을 시작합니다. 구현하고자 하는 기능에 어떤 모델이 적합할지 판단하고, 없다면 새로 만들기도 합니다. 모델이 얼추 완성이 되었다면 원하는 기능을 잘 수행하는지 Offline 실험을 진행합니다. 이 과정에서는 Target Metric을 잘 설정하는게 중요한 작업이 됩니다. 모델링 및 실험 과정에서는 KAIST 전기 및 전자공학부 유재민교수님이 Adviser로 큰 도움을 주고 계십니다.
Offline 테스트를 통과한 모델이면 Online Serving 단계로 접어듭니다. 이때부터는 ML Engineer분들이 깊게 관여하여 도움을 주십니다. 훈련 파이프라인 및 서빙 아키텍처를 구축하여 실제 고객들에게 제공될 수 있도록 Engineering 작업을 하게 됩니다. 처음에는 베타버전으로 출시하여 정규기능으로 추가할 수 있는 기능인지 고객들의 피드백을 받거나 Online AB Testing을 통해 판단하고, 필요하다면 고도화를 진행합니다.
적다보니 하는 일이 굉장히 많아 보이는데, Blux 구성원분들이 적극적으로 도와주시고 계셔서 재밌게 일하고 있습니다ㅎㅎ
Q : 각자가 다른 분야에서 중요한 일을 하고 있군요! 특히 Jeff와 Mathew는 다른 회사에서 일한 경험이 있으신데, Blux만의 매력포인트가 무엇인가요?
Jeff 🌊 : Blux에서 ML 직군으로 일하면 비즈니스에서 가깝게 일할 수 있어서 좋은 것 같아요. 저희가 만들고자 하는 솔루션 자체가 AI 기반으로 최적화와 자동화를 이끌어내는 것이기 때문에 자연스럽게 고객들이 원하는 AI 기술은 무엇일까라는 고민을 많이 하게 되는 것 같아요. 동시에 그러한 니즈를 만족할 수 있는 AI 기술을 리서치하고 개발해야 하기 때문에 비즈니스 인사이트와 ML 역량 모두 키울 수 있는 장점이 있는 것 같아요.
Mathew 👷♂️: 블럭스(Blux)의 머신러닝 팀은 고객에게 실질적인 가치를 제공하는 것을 최우선 목표로 하고 있습니다. 저희 팀은 추천 시스템과 고객 관계 관리(CRM) 기술을 활용하여 비즈니스 가치를 제공하지만, 고객에게 더 큰 이득을 줄 수 있는 새로운 방법이 있다면 기존 기술에 얽매이지 않아요. 고객과의 지속적인 소통을 통해 새로운 가치를 발견하고, 그 가치를 제공할 방법을 여러모로 고민해요. 이렇게 실제로 가치 있는 AI를 개발한다는 점이 Blux의 ML 엔지니어로 일하는 데 큰 의미가 있다고 생각해요.
Q. Simon은 Blux ML 조직의 특징은 무엇이라고 생각하시나요?
Simon ⚡️: 가장 차별화된 저희 ML 조직의 특징은 저희 ML 인력들의 관심사가 다 다르다는 것(?)입니다.
저희는 기술 지향적이면서도 제품을 우선시하는 조직이다보니 각자가 개발하고 있는 기능에 따라 관심을 가지고 있는 영역이 다 다릅니다. 예를 들어 최근 저는 유저 세분화 기능을 만들다보니 생존 분석기법과 딥러닝을 융합하는데 관심이 있고, Jeff는 Explainable한 추천 시스템 기능을 만들고 있어 LLM과 인과추론에 관심이 있다고 들었어요. 그리고 Mathew는 대시보드에 활용되는 AB Test 알고리즘들에 대해서 공부를 하고 계신 것으로 알고 있습니다.
이처럼 하나의 기술로 여러 제품을 만들다기보다는 제품을 만들기 위해 기술개발을 진행하다보니 Blux가 보유하고 있는 기술이 다채로워지고, 그 속에서 시너지 효과를 낸다는 것이 타기업과 제일 차별된 Blux ML 조직의 특징인 것 같아요.
Q : 세분이 Blux에서 진행한 프로젝트들도 궁금한데요. 어려웠거나 기억에 남는 프로젝트가 있으신가요?
Jeff 🌊 : 저는 작년에 진행한 Cafe24 앱을 위한 자동화 파이프라인 구축이 기억나는 것 같아요. 저희 서비스를 Cafe24에서 제공하기 위해서 새로운 고객이 앱을 설치하고 데이터를 연동하게 되면 자동으로 최적의 모델을 학습하고 배포할 수 있는 구조를 만들어야 했어요. 이 전까지는 모델 학습만 하던 Airflow 파이프라인에 데이터의 유효성을 검사하기도 하고, 더 좋은 모델을 비교하여 배포할 수 있게 하고, 학습된 모델과 기존 모델의 성능을 비교하는 등 자동화 파이프라인을 위해서 Mathew와 함께 작업했던게 기억나요.
다른 엔지니어와도 많이 협업하면서 AI SaaS를 만들기 위한 아키텍쳐와 코드베이스 작업을 많이 했던 것 같아요. 저희가 고생하면서 Cafe24 앱을 만든다음에 실제로 많은 고객사들이 저희 앱을 사용하면서 에러도 나고 수정도 많이 했지만 사용하는 고객들이 있어서 뿌듯했어요. 처음에는 저희가 자동화를 할 수 있을까 걱정이 되었는데, 이 프로젝트를 통해서 어느정도 ML 파이프라인의 자동화율을 달성하였고 지금은 더욱 고도화되어 있는 상태입니다.
Simon ⚡️: 작년 4분기부터 시작하여 올해 1분기에 마무리가 된 CRM 프로젝트가 가장 어렵기도 했고, 기억에 남는 케이스로 떠오르네요. CRM 제품에서 인공지능은 주로 유저 세분화(Segmentation)에 활용이 되고 있는데요, 다양한 기준으로 사용자들을 여러 군으로 묶어주는 기능이라고 생각해주시면 됩니다. 이 기능을 수행하는 모델을 만들면서 가장 어려웠던 것은 SaaS기업으로서 서로 다른 기업들이 같은 알고리즘을 사용할 수 있도록 General한 모델을 만드는 것이었습니다.
사실 유저 세분화 알고리즘은 모델 구조가 크게 어려운 알고리즘은 아닙니다. Label만 뚜렷하게 정의되어 있다면 여러 분류모델을 통해 구현할 수 있죠. 문제는 우리에겐 Label이 없다는 것이었습니다. 가령 이탈 유저에 대한 정의를 생각해보면 기업마다 그 기준이 다 달라 Label을 설정하기가 불가능에 가깝습니다. 때문에 어떻게 하면 이 문제를 해결할 수 있을까 고민을 많이 했고, 나름 잘 동작하는 모델을 만들어 올해 초에 배포하였습니다. 자세한 사항은 저희 기술블로그에 글이 올라가 있으니 한번 읽어주시면 좋을 것 같아요🤭
일하면서 스스로 문제를 정의하고, 어떻게 해결할 수 있을지 고민할 수 있는 경험을 했다는 것이 큰 성취감으로 다가와서 가장 기억에 남는 일로 소개드리고 싶었습니다.
Mathew 👷♂️: 최근에 맡았던 대시보드 프로젝트는 정말 기억에 남아요. 이 프로젝트는 우리 팀뿐만 아니라 다른 부서들과도 긴밀하게 협력해야 했는데, 특히 고객마다 다른 데이터 형식을 하나로 통일하고 모델 성능 지표를 명확히 정의하는 데 많은 시간을 할애했어요.
프로젝트 초기에는 엔지니어링보다는 이런 기준을 마련하는 데 집중했죠. 그 과정이 생각보다 즐거웠어요. 팀에 좋은 친구들도 많고 각자의 개성이 뚜렷해서 회의가 항상 새롭고 흥미로웠거든요. 처음 시작할 때는 서툴렀지만, 서로 피드백을 주고받으면서 점점 성장하는 모습들이 보기 좋았습니다.
그리고 이 프로젝트를 통해 많은 것을 배웠어요. 처음에는 데이터 처리 기술이 중요하다고 생각했는데, 실제로는 데이터를 통해 비즈니스를 어떻게 모델링하는지가 훨씬 중요하다는 것을 깨달았죠. 그리고 그 과정에서 다양한 사람들과 의논 후 합의를 이루는 것의 중요성을 느꼈습니다.
Q : 앞으로 Blux의 ML 조직은 어떤 모습으로 성장하길 원하는지 궁금합니다!
Simon ⚡️: 제품의 본질을 이해하고, 이를 기술로써 멋지게 풀어낼 수 있는 조직이 되었으면 합니다. 사실 기술 개발을 하다보면 Fancy한 기술들을 탑재하고 싶은 욕심이 생기는 것은 Engineer로서 당연한 것이라고 생각합니다. 하지만 그 과정에서 제품이 지향하고자 하는 목표를 잃는다면 의미 없는 기술을 만드는 것이니 제품의 본질과 기술자로서의 직업의식이 조화된 조직이 Blux의 ML 조직이 되었으면 합니다!
Jeff 🌊 : ML 조직은 앞으로도 고객들의 다양한 니즈를 창의적으로 잘 해결해나가는 조직으로 성장하면 좋겠습니다. 고객사의 실제 데이터를 받아보게 되면, 정말 다양한 문제들이 있는 것 같아요. Engineering 관점이나 ML 관점에서 항상 새로운 문제에 부딪히고, 저희는 이를 해결하기 위해 논문, 타사 사례를 참고하거나 독창적인 해결 방법을 생각해내서 문제를 풀어나가고 있어요. 저희가 푸는 문제가 일반적인 스타트업에서 경험할 수 없는 것이라 생각하기도 하고 실제로도 참고할 레퍼런스가 많이 없어요. 저희가 문제를 푸는 방식이 업계의 best-practice라고 생각하고 앞으로도 ML 조직은 저희만의 best-practice를 만들어나갔으면 좋겠습니다!
Mathew 👷♂️: 우리는 제품과 함께 성장하는 팀이 되기를 원합니다. 엔지니어링 팀의 성장이 곧 제품의 성장으로 이어진다고 생각합니다. 특히, 고객의 문제를 해결하는 과정에서 우수한 제품이 탄생하며, 이 과정에서 엔지니어들의 성장도 함께 이루어지길 바랍니다. 여기서 말하는 '성장'은 단순히 기술적인 발전뿐만 아니라, 고객의 숨겨진 문제점이나 필요를 정확히 파악하고 해결하는 능력, 그리고 다른 팀원들과의 협업 능력 향상도 포함됩니다. 무엇보다, 우리의 목표는 AI를 가장 잘하는 팀이 아닌, 고객이 정말 필요로 하는 제품을 만드는 팀으로 성장하는 것이 저희에 목표에요.
Q : 다들 열정이 넘치시는데, 개인적으로 Blux에서 이루고 싶은 목표가 있나요?
Mathew 👷♂️: 제 목표는 단순히 상품을 추천하는 것을 넘어서, 사용자에게 더 큰 가치를 제공할 수 있는 AI 기술을 개발하는 거에요. 일상적으로 추천 모델의 성능을 향상시키는 일에 집중하고 있지만, 그저 제품을 나열하는 것 이상의 것을 제공하고 싶어요. 그래서 사용자에게 더 실질적인 가치를 줄 수 있는 방법을 찾는 것이 저의 목표입니다.
데이터 엔지니어링 측면에서는, 신뢰도 높고 깔끔한 데이터 파이프라인 구축을 목표로 하고 있어요. Blux는 다양한 데이터를 수집하고 있지만, 각 데이터마다 처리 방법이 달라서 데이터 파이프라인이 복잡해지는 문제가 있거든요. 저는 이 문제를 해결하고 싶어요. 데이터 처리 과정을 사람들이 쉽게 이해할 수 있고, 무엇보다도 신뢰할 수 있는 데이터 파이프라인을 구축하는 것, 그게 제가 이루고 싶은 또 다른 목표입니다.
Jeff 🌊 : 저는 Blux가 성장하면서 저도 같이 성장할 수 있으면 좋겠어요. 지금보다 10배, 100배 팀원들과 고객사가 늘어나게되면, 기존에는 없었던 새로운 문제들을 풀어야 될거에요. 이미 풀었던 문제보다 더 어려운 문제를 풀어야 할거에요. 그런데 이렇게 빠르게 성장하는 스타트업에서 같이 성장하는 것은 어디에서도 경험하기 쉽지 않고, 이 방법이 개인이 정말 빠르게 성장할 수 있는 방법이라고 생각해요.
Simon ⚡️: 개인적으로 기술자로서의 성공은 많은 사람들이 제가 만든 기술을 사용하는 것이라고 생각합니다. 때문에 Blux에서 저의 목표는 Blux 알고리즘들로 웹/앱의 UI(추천)부터 마케팅(CRM)까지 전부 개인화하여 서비스를 운영하는 고객사를 만드는 것입니다. 그런 고객사가 생긴다는 것의 의미는 Blux가 정의한 문제가 실제 시장의 수요와 맞닿아 있고, 저희가 만든 기술들이 실제로 도움이 되고 있다는 것을 반증하는 것일테니까요.
Q : 앞으로 Blux와 함께 하시게 될 분들에게 한마디 부탁드립니다!
Jeff 🌊 : ML 기술을 연구에서 그치지 않고 제품을 만들고 싶으신 분들은 정말 재밌게 일할 수 있을 것 같아요! Blux에서 같이 이커머스를 위한 개인화 AI 솔루션을 만들어가면서 문제를 풀어내고 싶으신 분들은 도전해주세요!
Mathew 👷♂️: Blux 많이 지원해주세요!
Simon ⚡️: 인공지능의 새 지평을 열고 싶은 분들에게 Blux는 최고의 선택이라고 생각합니다. 새로운 도전을 함께할 동료분들을 기다리고 있겠습니다!
👉 Blux ML Engineer는 채용 중!
👉 Blux ML Research Engineer가 더 궁금하시다면?