MG AI 소개
MG AI는 하이퍼커넥트의 AI 기술을 활용해 매치그룹의 다양한 제품에 기여하고 있습니다. 또한 기존의 기술로는 접근하기 어렵지만 머신러닝 기술을 통해 풀 수 있는 문제들을 찾아내고 해결하여 사용자 경험을 혁신합니다. 이를 위해 사용자들이 자신을 더 잘 표현할 수 있도록 돕는 도구를 만들고, 의미 있는 만남을 발견하는 과정에서 더 만족스러운 경험을 제공할 수 있는 새로운 기능들을 개발하고 있습니다.
MG AI Dev Team 소개
MG AI Dev Team은 사용자들에게 더 나은 경험을 제공하기 위해, 소프트웨어 엔지니어링을 통해 머신러닝 기술을 매치그룹의 다양한 서비스에 적용하고 사용자 경험을 혁신하는 일을 합니다. AI 조직에서 만든 추천/생성형 모델 등을 포함하여 다양한 도메인의 모델을 프로덕션에 적용하고, 모바일 및 클라우드 서버를 통해 안정적으로 제공하면서 마주하는 엔지니어링 문제들을 해결하며, 우리가 만들어 내는 기술이 Tinder, Hinge 등의 서비스의 성장에 기여하는 것을 목표로 합니다.
ML Software Engineer 소개
ML Software Engineer는 우리가 보유한 모든 AI 기술을 제품에 적용하여 비즈니스 임팩트를 낼 수 있도록 하며, 지속 가능한 시스템을 개발하여 AI 기술의 적용이 가속화 되도록 하는 것을 목표로 합니다.
이 목표를 달성하기 위해 다양한 종류의 업무를 수행하고 있습니다. 확장성 있는 ML 백엔드 서버 혹은 고성능 온디바이스 ML 플랫폼을 개발하거나, 새로운 AI 제품에 대한 PoC를 진행하거나, 다른 팀들과 협업하여 공통으로 관리할 수 있는 ML 컴포넌트를 플랫폼화하는 작업을 수행하기도 합니다. 그 과정에서 다른 직군과 밀접하게 협업하면서 KPI 달성에 도달하기 위해 필요로 하는 모든 과정(문제 정의, 가설 설정, 분석 및 피드백)에 참여하며 주도적으로 업무를 진행하고 있습니다. 일하는 모습에 대한 조금 더 자세한 이야기는 다음의 내용을 참고하시면 좋습니다.
ML Software Engineer들이 풀고 있는 재미있는 문제들은 Tech blog에 업로드 하고 있습니다.
담당 업무
MG AI의 ML Software Engineer는 소프트웨어 엔지니어링을 통해 AI가 제품에 기여할 수 있도록 하는 모든 종류의 엔지니어링을 수행합니다. 새로운 AI 기술 (e.g., Generative AI)을 활용한 기능이 데이팅 도메인에서 사용자 경험을 혁신할 수 있는지 검증하기 위한 프로토타이핑부터, 실제로 글로벌 사용자에게 전달되기 위한 프로덕션 레벨의 엔지니어링까지 다양한 유형의 작업을 진행합니다. 그 과정에서 특정 기술 스택에 제한하지 않고, 다양한 기술 스택을 넘나들며 개발을 진행하고 있습니다.
[머신러닝 기반의 ML 백엔드 어플리케이션 설계 및 구현]
Recommendation 모델, Generative AI 등을 활용하는 백엔드 서비스를 개발합니다 (FastAPI, Spring). AI 모델들이 가지는 특징들을 정확히 이해하고, AI 모델 성능을 극한으로 활용함과 동시에, 비용 효율적이면서도 글로벌 스케일에서 동작이 가능한 시스템을 만들기 위해 많은 고민을 하고 있습니다. 때로는 새로운 AI 기능이 유저에게 가치를 주는지 검증하기 위해 프로토타이핑을 하기도 하는데, 이때는 매우 빠른 속도로 백엔드 서버를 개발하기도 합니다.
[온디바이스 머신러닝 기능이 탑재된 클라이언트 SDK]
매치 그룹의 모바일 애플리케이션에 탑재되는 온디바이스 머신러닝 SDK(iOS, Android)를 개발합니다. 새로운 온디바이스 모델을 실험하기 위한 데모 애플리케이션도 개발하며, 최적화된 모델 전/후처리 구현과 ML 모델 양자화 및 레이어 변환을 통하여 성능을 끌어올리는 작업도 수행합니다. 그룹 내 통합된 모델 배포, 설정, 연동을 위한 웹 프론트엔드(React) 및 백엔드(Spring)도 함께 운영하고 있습니다.
[팀 문화]
엔지니어링 작업 이외에도, ML Software Engineer는 퀄리티 높은 코드 리뷰, 페어 프로그래밍, 확장성 있는 시스템 설계, 기술 문서 작성, 모니터링 시스템을 구축하는 등의 작업에 책임이 있습니다. 이 밖에도, 팀 전체의 소프트웨어 엔지니어링 역량을 한층 끌어올리기 위한 다양한 작업을 제안하고 수행합니다.