Machine Learning Software Engineer (HYPERCONNECT AI)

Posted:
11/20/2024, 12:19:48 PM

Location(s):
Seoul, South Korea

Experience Level(s):
Junior ⋅ Mid Level ⋅ Senior

Field(s):
AI & Machine Learning ⋅ Software Engineering

Workplace Type:
Hybrid

Pay:
$79/hr or $164,320 total comp

[포지션 소개]

하이퍼커넥트 Machine Learning Software Engineer (MLSE)는 사람과 사람 사이를 연결하는 서비스에서, 소프트웨어 엔지니어링을 통해 머신러닝 기술을 서비스에 적용하고 사용자 경험을 혁신하는 일을 합니다. 사내 AI 조직에서 만든 영상/음성/문자/추천 등을 포함하여 다양한 도메인의 수많은 모델을 프로덕션에 적용하고, 모바일 및 클라우드 서버를 통해 안정적으로 제공하면서 마주하는 엔지니어링 문제들을 해결하며, 우리가 만들어 내는 기술이 실제 서비스의 성장에 기여하는 것을 목표로 합니다.

이러한 목표 아래 하이퍼커넥트의 ML Software Engineer는 여러 종류의 머신러닝 기술들을 수년간 발전시켜 나가고 있으며, 이렇게 축적된 기술들을 제품에 효과적으로 적용하는 방식을 고민하고 개발하고 있습니다.

ML Software Engineer는 우리가 보유한 모든 AI 기술을 제품에 적용하여 비즈니스 임팩트를 낼 수 있도록 하며, 지속 가능한 시스템을 개발하여 AI 기술의 적용이 가속화 되도록 하는 것을 목표로 합니다.
이 목표를 달성하기 위해
(1) On-device 에서 ML 모델을 잘 적용할 수 있도록 기반 코드를 개발합니다.
(2) 쾌적한 앱 사용 경험을 위해 ML 모델 / 전처리 로직 / glue code 의 성능 최적화를 수행합니다.
(3) A/B 테스팅을 통한 머신러닝 모델의 온라인 성능을 측정하고 유저의 경험을 개선합니다.
(4) ML 모델 기반의 확장성 있는 백엔드 서버를 개발합니다.
(5) ML 모델 추론을 / 평가를 위한 실시간 데이터 파이프라인을 개발/운영합니다.

그 과정에서 다른 직군과도 밀접하게 협업하면서 KPI 달성에 도달하기 위해 필요로 하는 모든 과정(문제 정의, 가설 설정, 실험 설계, 분석 및 피드백)에 참여하며 주도적으로 업무를 진행하고 있습니다. 일하는 모습에 대한 조금 더 자세한 이야기는 다음의 내용을 참고하시면 좋습니다.

ML Software Engineer들이 풀고 있는 재미있는 문제들은 Tech blog에도 업로드 하고 있습니다.



[업무 환경]

[국내 최상위 수준의 AI 조직]

탑 티어 AI/ML 학회에 논문을 주기적으로 출판하는 Machine Learning Engineer 및 Machine Learning Research Scientist 들과 함께 일하고 있습니다. 하이퍼커넥트에서 출판한 논문은 여기서 확인해보실 수 있습니다.

[풍부한 MLOps 노하우]

50개 이상의 모델을 프로덕션에서 사용하고 있을 만큼, MLOps에 대한 노하우가 풍부한 조직에서 일할 수 있습니다.




[담당 업무]

하이퍼커넥트는 제품에 머신러닝 기술을 적용하기 위해 다양한 방면으로 노력하고 있습니다. 현재 하이퍼커넥트의 ML Software Engineer는 아래의 업무를 수행하게 됩니다.

[머신러닝 기능이 탑재된 클라이언트 SDK 개발]

하이퍼커넥트의 모바일 어플리케이션에 탑재되는 머신러닝 SDK를 개발하고 운영합니다. 하이퍼커넥트에서 개발하는 SDK는 전 세계 각지에서 사용되는 수많은 디바이스에서 동작할 수 있어야 하기에, 매우 높은 안정성을 목표로 하며 개발되고 있습니다. 더불어 최고 성능의 머신러닝 API를 제공하기 위해 지속적으로 업데이트될 수 있어야 합니다. 나아가 앱 전체의 성능과 사용경험에 어떠한 영향을 줄 수 있는지 이해하고 관련된 코드를 최적화/수정합니다.

[Inference Optimization]

하이퍼커넥트의 머신러닝 인스턴스들의 효율적인 서빙과 더불어 추론 시 병목이 되는 부분을 찾아내고 최적화 하는 것이 필요할 수 있습니다. 하드웨어 최적화, 모델 최적화, 배포타겟 별 최적화 등 다양한 층위에서 이를 실행할 수 있습니다. 프로파일링 등을 적극적으로 이용하고 로깅되는 다양한 데이터 징후를 탐지하여 이러한 문제를 도출하고 해결해 나가고 있습니다.

[머신러닝 기반의 백엔드 어플리케이션 설계 및 구현]

하이퍼커넥트와 매치그룹에서 운영 중인 서비스들의 품질을 높이기 위한 다양한 머신러닝 기반의 백엔드 서비스 (JVM, golang, python)를 개발합니다. 글로벌 스케일에서 실시간 동작이 가능하도록 성능 관점에서의 많은 고민과 함께 설계되고 있으며, 팀에서 운영 중인 마이크로서비스들은 전사 내에서도 가장 높은 수준의 트래픽을 처리하고 있습니다.
- 지속적으로 모델을 개선하는 AI Flywheel 시스템 개발
- Trust & Safety를 위한 AI 모더레이션 시스템 및 플랫폼 개발 : 음성, 이미지, 텍스트 등의 콘텐츠 모더레이션을 포함하여 다양한 조건 / 수준을 제어할 수 있는 처벌 시스템 운영
- 영상, 음성 및 자연어 등의 비정형 데이터를 해석 가능한 형태로 변환해 주는 사내 API 서버