Coupang Engineering Blog - Medium 최신 글
medium.com에서 발행한 기술 글을 테크곳간이 수집해 최신순으로 보여드립니다.
최신 글
Accelerating Coupang’s AI Journey with LLMs
By ML Platform Team Introduction In the last couple of years, Coupang has been using machine learning [ML/AI] heavily to improve customer experiences in areas like search, ads, catalog and recommendations. ML drives important decision making in pricing, transportation and logistics. Coupang’s ML engineer’s toolkit has also grown significantly from simple classical ML techniques to deep learning and now, large language models (LLMs) for generative AI in this short time frame. Coupang’s ML platform has been at the forefront of this journey focused on enabling ML engineers to train and serve models in a resource efficient way. In this blog we write about LLM explorations at Coupang and the technical challenges it poses on the ML platform. ML at Coupang There are three main types of ML models trained with Coupang’s ML infrastructure: Recommendation system models: This is primarily used in personalization and recommendation surfaces such as main home feed, search and ads across Coupang apps for shopping, eats and play. These are trained on large datasets of user interactions (clicks, views, purchases, add to cart) and human labeled relevance judgements. Content understanding models: Coupang has a huge dataset of product catalog data (text, image), user generated content (text — reviews, queries), user and merchant data (text, image). Various ML teams across product groups use deep learning techniques to understand product, customer and merchant representation and then use it to improve shopping experience. Forecasting models: Coupang has over 100+ unique fulfillment centers housing millions of products. Predictive modeling is crucial in the pricing, logistics, delivery, and pricing of these products for our customers. While these models are typically statistical in nature, deep learning techniques are now increasingly being incorporated. Foundation models (FM) are large deep learning models trained on massive datasets. FM can adapt to multiple tasks unlike traditional ML
2024년 10월 14일
쿠팡의 머신러닝 플랫폼을 통한 ML 개발 가속화
쿠팡의 머신러닝 개발 속도를 높이는 쿠팡만의 ML 플랫폼에 대하여 By Hyun Jung Baek, Hara Ketha, Jaideep Ray, Justina Min, Mohamed Sabbah, Ronak Panchal, Seshu Adunuthula, Thimma Reddy Kalva, and Enhua Tan 본 포스트는 영문으로도 제공됩니다. 소개 쿠팡은 고객이 앱을 켠 순간부터 주문한 상품이 문 앞에 도착하는 순간까지 최상의 쇼핑 및 배송 경험을 제공하기 위해 끊임없는 혁신을 이어가고 있습니다. 일반적인 전자 상거래 외에도, 쿠팡은 음식 배달 서비스인 쿠팡이츠, 비디오 스트리밍을 제공하는 쿠팡플레이, 결제 서비스 쿠팡페이, 신선 상품을 위한 쿠팡 로켓배송 등 다양한 소비자 서비스를 운영하고 있습니다. 머신러닝(이하 ML)은 쿠팡 고객의 전자 상거래 경험에 있어 상품 카탈로그, 검색, 가격 책정, 로보틱스, 재고 관리, 그리고 물류 처리와 같은 모든 요소에 영향을 미치고 있습니다. 또한 쿠팡이 새로운 시장으로 진출함에 따라, ML의 역할은 점점 더 중요해지고 있습니다. ML은 쿠팡 웹사이트와 앱에서의 검색 기능 및 정보 탐색 기능을 향상시키며, 상품 및 서비스의 가격을 정하고, 물류와 배송을 더욱 효율적으로 이루어지게 합니다. 그리고 스트리밍을 위한 콘텐츠를 최적화하고, 광고의 순위를 정하는 등의 다양한 업무에서 중요한 역할을 수행합니다. 따라서, 저희는 애드혹(ad-hoc) 탐색부터 모델 훈련용 데이터(training data) 준비, 모델(model) 개발, 그리고 모델을 안정적으로 실서비스에 배포하는 단계까지 머신러닝 개발을 꾸준히 확장하고자 노력하고 있습니다. 목차 · 배경 및 과제 ∘ 1. 개발 적용 시간의 단축 ∘ 2. ML 개발 프로세스로 CI/CD 프로세스 통합 ∘ 3. ML 컴퓨팅의 효율적 확장 · 쿠팡 ML 플랫폼의 주요 서비스 ∘ 1. Notebook 환경 제공 및 ML 파이프라인 구축 ∘ 2. 피처 엔지니어링 ∘ 3. 모델 훈련 ∘ 4. 모델 추론 ∘ 5. 모니터링 및 관찰 ∘ 6. 트레이닝 및 추론 클러스터 · 성공 사례 ∘ 1. 코버트(Ko-BERT) 트레이닝을 통한 검색 쿼리 이해 개선 ∘ 2. 상품의 실시간 가격 예측 배경 및 과제 쿠팡 ML 플랫폼은 개발자의 작업 효율을 향상시킴으로써 ML 개발을 보다 가속화하기 위해 ‘바로 사용 가능한’ 서비스를 제공하고자 했습니다. 이 플랫폼에서 제공하는 핵심 서비스로는 관리형 주피터 노트북(Jupyter Notebook), 파이프라인 SDK, 피처 스토어, 모델 학습, 그리고 모델 추론이 있습니다. ML 팀들은 이러한 서비스를 각각 조합하여 ML 파이프라인을 구축할 수 있습니다. 저희의 주요 목표는 다음과 같습니다. 1. 개발 적용 시간의 단축 쿠팡 ML 플랫폼이 도입되기 전에는, ML 모델을 설계하고 학습시키려면 데이터와 피처 준비, 그리고 모델 훈련 코드 작성에 대한 복잡한 설정 및 기본 코드 작성이 필요했습니다. 또한, 분산 훈련을 통해 모델 훈련을 확장하거나 GPU를 활용하는 데에는 고도의 엔지니어링 지식이 필요했고, 중복되는 작업도 종종 발생했습니다. 실시간 트래픽에 ML 모델을 배포하는 것은 성능 평가, 자동 스케일링, 보안, 롤백 등의 로직을 반복적으로 적용해야 하므로, 몇 주 동안 많은 시간과 자원이 투입되어야 했습니다. 이러한 이유로 많은 프로덕트 팀들이 ML의 대규모 적용을 미뤄왔습니다. 하지만 쿠팡 ML 플랫폼의 라이프 사이클을 활용하게 되면서, 간단한 모델부터 복잡한 모델까지 표준화된 방식으로 단 며칠 안에 학습, 디버그 및 배포가 가능해졌습니다. 2. ML 개발 프로세스로 CI/CD 프로세스 통합 ML 개발을 진행할 때, 복잡하고 해결하기 어려운 기술적 부채가 자주 발생할 수 있습니다. ML 팀들이 더 효율적으로 모델을 구축, 배포, 유지 관리할 수 있도록, 쿠팡 ML 플랫폼은 널리 쓰이고 있는 ML 라이브러리들과의 통합 테스트가 완료되어 있는 컨테이너들을 준비하여 제공합니다. 또한, 모델 검증을 위한 라이브러리,
2023년 11월 23일
Meet Coupang’s Machine Learning Platform
How Coupang’s ML Platform accelerates ML development for Coupang products By Hyun Jung Baek, Hara Ketha, Jaideep Ray, Justina Min, Mohamed Sabbah, Ronak Panchal, Seshu Adunuthula, Thimma Reddy Kalva, and Enhua Tan This post is also available in Korean. Introduction Coupang is reimagining the shopping and delivery experience to wow all the customers from the instant they open the Coupang app to the moment an order is delivered to their door. In addition to e-commerce, Coupang has various other consumer services ranging from Coupang Eats for food delivery, Coupang Play for video streaming, Coupang Pay for payments, and to Coupang Grocery for fresh products amongst others. Machine Learning (ML) impacts every aspect of e-commerce experiences of Coupang customers: the product catalog, search, pricing, robotics, inventory, and fulfillment. As Coupang ventures into new markets, ML has continued to play an even more important role. ML helps to power search and discovery across Coupang websites and apps, to price products and services, to streamline logistics and delivery, to optimize content for streaming, to rank ads, and to do many more jobs. Therefore, we strive to scale machine learning development at all ML lifecycle stages, including ad-hoc exploration, training data preparation, model development, and robust production deployment of models. Table of Contents · ML @ Coupang · Motivation ∘ 1. Reduce time to production ∘ 2. Incorporate CI/CD in ML development ∘ 3. Scale ML compute efficiently · Core offerings of Coupang ML Platform ∘ 1. Notebooks & ML Pipeline Authoring ∘ 2. Feature Engineering ∘ 3. Model Training ∘ 4. Model Inference ∘ 5. Monitoring & Observability ∘ 6. Training & Inference Clusters · Success Stories ∘ 1. Training Ko-BERT to understand search queries better ∘ 2. Real-time price forecasting of products ML @ Coupang ML teams at Coupang are actively developing models in Natural Language Processing (NLP), Computer Vision (CV), Recommendations, and Forecast
2023년 9월 8일
쿠팡 로켓배송: 공간 색인 기반의 새로운 배송 영역 관리 시스템
배송 영역 시각화 프로젝트를 통해 구축한 직관적이고 최적화된 배송 시스템에 대해 By Geo J Son & Sam HS Jeon 본 포스트는 영문으로도 제공됩니다. 로켓배송은 쿠팡의 가장 중요하고 매력적인 서비스들 중 하나입니다. 고객들이 “쿠팡 없이 어떻게 살았을까?”라고 생각하게 만들고 고객들의 삶이 더 나아질 수 있도록, 저희는 최적화된 배송 시스템을 마련하고 배송 기사인 쿠팡친구(이하 쿠친)들과 함께 노력하고 있습니다. 쿠친이 택배 상자와 봉투들을 가장 효율적으로 배송하려면, 배송 시스템은 정확히 배송지 주소를 파악하고 이를 바탕으로 가장 적합한 배송 영역을 찾아낸 다음 쿠친에게 운전 경로를 안내해 주어야 합니다. 또한 시스템에 의해 택배 상자와 봉투들이 배송 영역으로 균등하게 할당되고 분배되려면, 경험 많은 캠프 작업자들이 배송 영역 정보를 수시로 업데이트할 수 있어야 합니다. 저희의 기존 시스템은 텍스트로 된 주소와 우편번호에 의존했고, 직관적이고 기능적인 부분도 부족하여 저희의 복잡한 운영 니즈를 만족시키지 못했습니다. 이에 저희는 배송 영역을 지도 위에 시각화하고, 직접 지도를 수정할 수 있는, 그리고 최적화에 필요한 수치 및 통계가 추가로 제공되는 시스템의 개발을 위한 프로젝트를 2021년에 시작했습니다. 목차 · 과제: 텍스트 기반의 우편번호 · 배송 영역 관리 시스템의 새로운 목표 · 시스템에 H3 도입하기 ∘ 지형공간 색인 시스템 ∘ 공간 색인 시스템 · 새로운 기술들로 시스템 재설계하기 ∘ 격자 해상도 ∘ 데이터 관리 ∘ 육각형 그룹을 육각형으로 채워진 다각형으로 · 시스템에 새로운 기술들 적용하기 · 향후 계획 과제: 텍스트 기반의 우편번호 우편번호는 정부 및 각종 공공기관들이 보장하는 가장 잘 조직된 시스템 중 하나로, 특정 배송 영역에 할당된 코드를 가리킵니다. 지형적 요소와 배송 수요 측면에서 봤을 때 할당된 영역의 물리적 넓이는 제각각이긴 하지만 우편번호는 최적화된 실질 배송 효율을 제공합니다. 그래서 로켓배송은 처음부터 우편번호를 배송 영역의 기본 단위로 채택했습니다. 서비스 초기에는 잘 작동했지만, 쿠팡이 성장하면서 훨씬 더 많은 것들이 필요해졌습니다. 우편번호당 매일 처리해야 하는 배송 건수가 두 자릿수에서 세 자릿수로 증가했습니다. 한명의 쿠친이 하루에 처리하기에는 너무 많은 양이었습니다. 그러다보니 단일 우편번호를 분할해 처리 가능한 여러 영역으로 세분화해야 할 필요가 생겨났습니다. 처음에는 아파트 단지 몇개가 단일 영역이었지만, 분할되어 단지 하나가 단일 영역이 되었고, 결국엔 단지도 분할되어 아파트 동 하나가 단일 영역으로 세분화되었습니다. 그러나 텍스트로만 되어 있는 주소에서 공간 관련 정보를 식별해내기는 쉽지 않기 때문에 배송 영역의 특성을 잘 알고 있는 숙련된 캠프 리더와 쿠친 그룹 리더만이 세분화 작업을 수행할 수 있었습니다. 배송 영역 관리 시스템의 새로운 목표 지도 위에 배송 영역들을 좀 더 효율적이고 쉽게 시각화하기 관계자들 모두 쉽게 배송 영역들을 확인하고, 만들고, 수정하고, 다른 사람들과 공유하기 신축 및 철거 건물과 같은 변동 상황 발생 시에도 지속적으로 운영 가능하도록 배송 영역들을 우편번호 및 문자로 된 주소가 아닌 공간 데이터 기반으로 관리하기 시스템에 H3 도입하기 저희는 배송 영역 관리 시스템의 새로운 목표를 달성하기 위한 프로젝트를 시작했습니다. 지도 위에 그려진 다각형(polygon)들로 직관적인 공간 영역 관리가 가능하도록 육각형 격자(hexagon grid) 기반의 공간 색인 시스템(spatial indexing system)을 활용했습니다. 지도 위 영역들을 다각형으로 그리는 것이 간단해 보일 수도 있지만, 영역들 모두를 중복되고 생략되는 것 없이 깔끔하고 명확한 경계들로 그려내 빈틈없이 관리하는 것은 매우 어렵습니다. 이런 다각형 세트들이 상호배제와 전체포괄(mutually exclusive and collectively exhaustive, MECE) 원칙 하에 관리될 수 있게끔, 공간 단위를 정의하는 일부터 시작했습니다. 지형공
2023년 4월 18일
Coupang Rocket Delivery’s spatial index-based delivery management system
Our initiative to visualize delivery areas for an optimized and intuitive delivery system By Geo J Son & Sam HS Jeon This post is also available in Korean. Coupang’s Rocket Delivery service is the most crucial and attractive feature to WOW the customers. This is achieved by the combined efforts of our delivery drivers, referred to as Coupang Friends (CPFs), and the optimized delivery system. To enable CPFs to deliver the parcels in the most efficient way possible, the delivery system must have a correct understanding of the delivery address and then direct the drive to the best delivery area for the delivery address. Also, to evenly assign and distribute parcels to each area for optimization, experienced camp workers must be able to frequently update the area information. Our existing system was dependent on text-based addresses and postal codes, meaning that the system was not as intuitive, functional, or utilitarian as we needed for our complex operations. Therefore, we started a project in 2021 to provide the foundation for visualizing the delivery areas on the map, enabling direct modification to the map, and providing further metrics and statistics for optimization. Table of Contents · Challenge: Text-based postal code · What did we need? · Adopting H3 into delivery area management system ∘ Geospatial indexing systems ∘ Spatial indexing systems · Redesigning the system with new techniques ∘ Grid resolution ∘ Data management ∘ From a hexagon group to a hexagonized polygon · Applying new techniques to the system · What’s next? Challenge: Text-based postal code Postal codes are one of the most well-organized systems guaranteed by the government and authorities that assign a code to a specific delivery area. The physical areas of postal codes vary in terms of geometric element and delivery demands, but the efficiency of deliveries they provide is highly optimized. That is why Rocket Delivery adopted the use of postal codes in the beginning as the basic unit for ass
2023년 4월 17일
클라우드 서비스 사용량 관리를 통한 운영 비용 최적화
쿠팡 엔지니어링 조직들이 클라우드 비용을 줄이기 위해 들인 노력과 그 결과에 대하여 By Luke Travers & Amit Arora 본 포스트는 영문으로도 제공됩니다. 쿠팡의 파이낸스 및 엔지니어링 팀들은 지난 몇 분기 동안 로드맵을 바탕으로 서로 협력하며 클라우드 서비스에 지출되는 온디맨드(on-demand) 비용을 관리하고 최적화해왔습니다. 여러 엔지니어링 조직들이 하나의 팀이 되어 노력했기에 가능한 일이었습니다. 하나의 팀으로서 저희는 다음과 같은 세 가지 핵심 원칙 하에 비용 최적화 작업을 수행했고, 이 포스트를 통해 어떤 작업이 이루어졌는지 공유드리고자 합니다. 예산 할당 및 준수 목표 절감액 쿠팡 리더십 원칙인 Hate Waste에 기반해 서비스 신뢰성, 지속 가능성 및 서비스 사용량 통제 부분에 집중 목차 · 배경 및 과제 · 1 단계: 최적화 프로젝트 팀 구성하기 · 2 단계: 더 적게 쓰고 더 적게 지불하기 ∘ 인스턴스 세대 조정 ∘ EMR ∘ 스토리지 · 결론 배경 및 과제 비용 최적화 작업을 시작할 당시 쿠팡은 다음과 같은 상황에 처해있었습니다. 클라우드 서비스를 효율적으로 사용하는 방법에 대한 엔지니어링 팀들은 이해도가 그리 높지 않은 상태였습니다. 그로 인해 필요 이상으로 서비스를 더 많이 사용하면서 불필요한 비용을 지출하고 있었습니다. 파이낸스 팀들은 어떤 팀이 클라우드 서비스 사용료를 지출하고 있는지, 그리고 성장하는 비즈니스에 영향을 주지 않으면서도 지출을 억제할 수 있는 방법이 무엇인지 이해하고자 고군분투 중이었습니다. 리더십 팀은 클라우드 서비스 비용 지출에 대해 충분히 분석하고 있지 못했습니다. 이에 리더십 팀은 클라우드 서비스의 가변 비용 모델에 대한 재정적 책임을 명확히 해야 한다는 판단을 내렸습니다. 리더십 팀의 지원 하에 클라우드와 관련해 전문성을 지닌 동료들이 엔지니어링 팀들에 합류하게 되었고, 모두 다 함께 클라우드 서비스를 효율적으로 사용하면서 동시에 비용도 절감할 수 있는 방법을 찾기 시작했습니다. 1 단계: 최적화 프로젝트 팀 구성하기 클라우드 인프라 엔지니어와 테크니컬 프로그램 관리자(Technical Program Manager, TPM)를 주축으로 한 최적화 프로젝트 팀이 만들어졌습니다. 팀 구성원들은 서로 협력하며 클라우드 서비스 비용을 효율적으로 지출할 수 있는 방법을 찾아냈습니다. 프로젝트 팀은 각 도메인 팀과의 협업을 통해, 클라우드 서비스를 소유하고 사용할 때에는 서비스의 가변 비용 모델을 활용해야 한다는 점을 도메인 팀이 이해할 수 있도록 도왔습니다. 예를 들어, 저희는 Amazon S3에 저장된 데이터를 이해하고 유휴 상태(at rest)에서 스토리지 구조를 최적화할 수 있도록 도메인 팀과 협업했습니다. 또한 AWS Spot Instances 및 ARM 기반 AWS Graviton과 같은 서비스를 활용해 데이터 저장 및 처리 비용을 획기적으로 줄일 수 있는 방법을 찾아냈습니다. 그리고 프로젝트 팀은 정확한 분석이 제공되는 환경을 만들었고, 이에 도메인 팀들이 데이터에 기반해 의사 결정을 내릴 수 있게 되면서 클라우드 서비스를 더 잘 활용할 수 있게 되었습니다. 프로젝트 팀은 도메인 팀들 전체가 클라우드 서비스의 효율적인 사용을 하나의 엔지니어링 문화로 받아들일 수 있게끔, 팀들이 필요로 하는 애널리틱스(analytics), 도구 및 프로세스를 만들어 제공했습니다. 가령 Amazon Athena를 통해 처리된 Amazon CloudWatch 데이터를 사용해 맞춤형 대시보드를 개발했고 AWS CUR(Cost & Usage Reports) 데이터 처리를 위해 저희의 BI(Business Intelligence) 대시보드도 활용했습니다. 다른 한편으로는 파이낸스 팀이 저희와 함께 도메인 팀들을 지원하였고, 그 과정에서 도메인 팀들은 팀에 할당된 월별 및 분기별 예산을 관리하는 것이 얼마나 중요한지를 이해하게 되었습니다. 2 단계: 더 적게 쓰고 더 적게 지불하기 프로젝트 팀은 도메인 팀들이 필요로 하는 애널리틱스와 도구들을 개발할 때 다음과 같이 서로
2023년 3월 27일
Cloud expenditure optimization for cost efficiency
The roadmap and execution for cutting down cloud spending across Coupang engineering organizations By Luke Travers & Amit Arora This post is also available in Korean. In this post, we share how the finance and engineering teams at Coupang have partnered together over the past few quarters to provide a roadmap to manage and optimize cloud expenditure. We will also detail how multiple engineering teams formed a Central team to further optimize the cloud spending for on-demand cost. The Central team’s efforts were narrowed down to the following three principles: Budget allocation and its compliance Savings as the goal Focus areas of credibility, sustainability, and control in line with the company’s leadership principle of “Hate Waste” Table of Contents · Background & Challenges · Stage 1: Forming a Central team · Stage 2: Spending Less & Paying Less ∘ Instance generation alignment ∘ EMR ∘ Storage · Conclusion Background & Challenges As a company we were in a classic situation where: engineering teams were spending more than they needed on cloud, with little understanding of cloud efficiency. finance teams were struggling to understand what teams were spending on, and how to curb expenditures without impacting business growth. the leadership team did not have enough analytics into cloud spending. To bring financial accountability to the variable spending models of cloud, the leadership team aided the engineering teams by engaging the right people to find the opportunities for efficiency and cost savings. Stage 1: Forming a Central team Our cloud infrastructure engineers and technical program managers collaborated as a Central team to identify a few initiatives for cloud spending efficiency. The Central team collaborated with each domain team and helped them understand that while they are the owners of cloud usage, they must also take advantage of the cloud’s variable cost models. For instance, we helped one of our domain teams to understand their data stored in Amazon
2023년 3월 21일
기계 학습 모델을 활용한 물류 입고 프로세스 최적화
쿠팡 풀필먼트 센터로의 제품 입고 시 필요한 운송 트럭의 적정 수량을 데이터에 기반해 예측하기 By Austin Yang & JY Cho 본 포스트는 영문으로도 제공됩니다. 쿠팡은 물류 입고 프로세스의 최적화를 위해 끊임없이 노력하고 있습니다. 풀필먼트 센터로의 제품 입고과정에서 낭비되는 자원을 최소화하면, 적기에 제품을 판매하고 더 많은 고객들에게 더 빠르게 배송할 수 있습니다. 이를 위해 쿠팡은 기계 학습을 통해 직매입 제품들의 풀필먼트 센터 입고 프로세스를 효율적으로 개선해 왔습니다. 본문을 통해 어떤 개선이 있었는지를 살펴보겠습니다. 목차 · 배경 및 과제 · 트럭 수량 예측 모델 학습하기 ∘ 특징 추출 ∘ 모델 학습: LightGBM 알고리즘 ∘ 모델 하이퍼 파라미터 탐색 : 베이지안 최적화 ∘ 입고 예약 시스템과 모델 연계 구성 ∘ 과소 예측과 과대 예측 사이의 트레이드 오프 · 모델 적용 결과 · 향후 계획 배경 및 과제 매일 각지의 수많은 업체들이 트럭에 다양한 종류의 제품을 적재해 쿠팡 풀필먼트 센터로 제품을 반입합니다. 각 풀필먼트 센터에는 트럭을 세워두고 물건을 하역하는 도크(dock)가 있습니다. 센터마다 시간대별로 사용 가능한 도크의 최대 개수는 정해져 있습니다. 제품 하역 작업 시 한 대의 트럭이 하나의 도크를 정해진 시간 동안 사용하게 되는데, 이 시간을 슬롯(slot)이라고 부릅니다. 정해진 개수의 슬롯들로 여러 업체들이 납품하는 제품들이 효율적으로 입고되려면 각 입고에 필요한 슬롯 개수가 사전에 정확히 예측되어야 합니다. 만약 사전에 예측한 필요 슬롯 개수가 실제 필요 슬롯보다 적을 경우 입고 과정에서 지연이 발생할 수 있으며, 실제 필요 슬롯보다 많은 경우 한정된 자원인 슬롯을 불필요하게 낭비하게 됩니다. 그림 1. 납품 과정에서 발생할 수 있는 자원 낭비 이에 저희는 업체 특성과 풀필먼트 센터로 입고되는 제품의 특성을 바탕으로, 입고 예약 신청을 하는 업체들에게 적정한 필요 슬롯 개수를 예측해 제공하는 시스템을 개발하기 시작했습니다. 목표는 낭비되는 슬롯의 개수를 줄이고, 슬롯이 부족해 입고가 지연되는 문제를 최소화하는 것이었습니다. 이 목표를 달성하기 위해 저희가 활용한 기술들을 다음 섹션에서 자세히 소개하겠습니다. 트럭 수량 예측 모델 학습하기 저희는 데이터로 문제를 풀고자 했고 이를 위해: 그동안 축적해온 물류 데이터 및 입고 신청 정보로부터 트럭 대수에 영향을 미치는 특징들(feature)을 도출하고, 각 물류 입고에 실제 사용된 트럭 대수 데이터를 결합해 학습 데이터를 구성했습니다. 적정 트럭 입차 수량을 예측하는 머신 러닝(ML) 모델을 학습시켰습니다. 학습된 모델을 입고 예약 시스템과 연결해 업체가 입고 신청을 하면 시스템으로 바로 적정 트럭 대수를 확인할 수 있게끔 설계했습니다. 이렇게 저희는 입고 예약 시스템에 새로운 예측 자동화 기능을 더해 프로젝트의 목표였던 슬롯 운영 효율을 달성할 수 있었습니다. 특징 추출 쿠팡에 축적된 대량의 물류 데이터들로부터 트럭 수량 예측 모델에 적합한 특징들을 찾아내기 위해 탐색적 데이터 분석(EDA: Exploratory Data Analysis) 과정을 거쳤습니다. 하지만 데이터 사이에 숨겨져 있는 의미를 찾아내기 위해서는 도메인 전문가들의 조언이 필요했습니다. 물류 담당자들과 심층 인터뷰를 진행하면서 물류 입고 과정에서 나타나는 의미있는 패턴들을 다양하게 파악할 수 있었으며, 이러한 과정을 통해 트럭 수량 예측에 유용하게 활용할 수 있는 다수의 특징들을 발견하였습니다. 그리고 이렇게 도출된 특징들을 피처 엔지니어링(Feature Engineering)으로 가공해 최종적인 피처 셋(Feature Set)을 확정했습니다. 모델 학습: LightGBM 알고리즘 약 2년여의 기간 동안 수집된 입고 신청 데이터로부터 약 80만 건의 학습 데이터를 추출했습니다. 데이터 세트의 크기가 작지 않다 보니 빠른 학습과 튜닝이 가능한 알고리즘을 찾게 되었습니다. 또한 확정된 특징들 중 많은 것들이 범주형(categorical) 특징이었습니다. 이러
2023년 3월 13일
Optimizing the inbound process with a machine learning model
How we predict the adequate number of delivery trucks needed for vendors to send their products to Coupang’s fulfillment centers By Austin Yang & JY Cho This post is also available in Korean. Coupang continuously strives to optimize the inbound logistics process. By minimizing the resources wasted while receiving products at fulfillment centers, we can sell products in a more timely fashion and deliver them to more customers faster. To this end, Coupang has been efficiently improving the process of receiving products at fulfillment center that Coupang directly purchases from vendors through machine learning. Let’s look at what improvements we have made so far in this post. Table of Contents · Background and challenges · Training a model to predict the number of trucks ∘ Feature extraction ∘ Model learning: LightGBM algorithm ∘ Model hyper parameter search: Bayesian optimization ∘ Inbound reservation system integrated with the model ∘ Trade-off between underprediction and overprediction · Result of applying the model · Future plan Background and challenges Every day, thousands of vendors all over the place load different types of products onto truck to send them to Coupang’s fulfillment centers. Each fulfillment center has docks where trucks are parked and goods are unloaded. The number of docks at each center that can be used per hour is fixed. To unload goods, one truck uses one dock for a certain period of time, and this is called a slot. The number of required slots for each inbound must be precisely predicted so that the products from various vendors can be efficiently unloaded to the set number of slots. If the predicted number of slots is smaller than the actual number of required slots, it could cause a delay in the inbound process. On the other hand, if the predicted number of slots turns out to be bigger than necessary, it would end up wasting our limited resource. Figure 1. Potential resource waste in the supply process To address this issue, we have worke
2023년 3월 9일
쿠팡 SCM 워크플로우: 효율적이고 확장 가능한 low-code, no-code 플랫폼 개발
개발자, 비개발자 모두 쉽게 사용할 수 있는 데이터 구축 및 서비스 엔지니어링 플랫폼에 대하여 By Ryan Donghyun Jin (@atinjin) 본 포스트는 영문으로도 제공됩니다. SCM(Supply Chain Management)은 상품 공급자, 운송 업체, 배송 서비스, 제품 등으로 이루어진 복잡한 네트워크를 데이터 흐름에 기반해 관리합니다. 쿠팡은 로켓 배송을 포함한 다양한 종류의 배송 서비스들을 제공하기 위해 전국 곳곳에 자체 풀필먼트 센터(fulfillment center, FC)를 구축했습니다. SCM 팀은 상품 수요를 예측하고, 구매 주문이행에 필요한 파이프라인을 만들고 관리합니다. 주요 업무는 구매 주문 및 센터 간 물류를 효율적으로 분배하기 위해 다양한 알고리즘 및 모델을 개발하고, 운영팀과 협업하는 것입니다. 팀에서는 물류 이동 정보 등 다양한 데이터가 다뤄지고 있습니다. 쿠팡 SCM 팀은 업무 특성상 운영팀과 개발자, 비즈니스 분석가(Business Analyst, BA), 데이터 사이언티스트(Data Scientist) 등 다양한 직군의 구성원들이 모여 함께 시스템을 만들고 운영합니다. 그렇기 때문에 모두들 시스템의 데이터를 활용하고, 그 데이터를 다시 시스템에 피드백으로 주면서, 팀의 플랫폼을 개발해나가고 있습니다. 이렇게 정보 및 아이디어 교환이 많은 팀에서 개발자로 일하면서 다음과 같은 이슈들을 자주 접하게 되었습니다. “누구나 웹을 통해 데이터를 생성 또는 수정하고 생산한 데이터를 프로덕션 시스템까지 쉽게 연동할 수 있으면 좋을텐데…” “새로운 시스템을 구축하지 않고, 도메인을 확장할 수 있는 방법은 없을까?” “사용 중인 파이프인의 코드를 변경하지 않고도 바뀐 요구사항을 반영할 수는 없을까?” “Low-code, no-code 시스템 개발?” 문제 해결 과정에서 점점 더 많은 주목을 받고 있는 기술 트렌드인 low-code, no-code가 큰 인사이트를 주었습니다. 개발자는 알고리즘 개발에 집중할 수 있고, 비개발자도 개발자 못지않은 결과물을 만들어 낼 수 있는 플랫폼이 필요하다는 생각에 no-code 데이터 빌더 및 low-code 서비스 빌더를 제공하는 SCM 워크플로우 플랫폼(SCM Workflow platform)을 개발했습니다. 저희는 앞으로 SCM 워크플로우를 통해 기존의 Jenkins, Airflow, Notebook 같은 툴이 가진 복잡성 및 연결성을 개선하여 완전히 대체하는 것은 물론, 한발 더 나아가 누구나 간단한 조작만으로도 데이터를 만들어내고 시각화해 간단한 서비스까지 론칭할 수 있는 플랫폼을 만들어나가려고 합니다. 목차 · No-code 데이터 빌더 · Low-code 서비스 빌더 · 기타 특징 및 기능 · 쿠팡 워크플로우 웹 인터페이스 · 향후 계획 No-code 데이터 빌더 쿠팡은 데이터에 기반해 모든 의사결정을 내립니다. 대량의 데이터가 마이크로서비스 아키텍처(MSA) 내의 도메인 단위로 나누어지고, 나누어진 데이터는 해당 도메인을 담당하는 팀에 의해 관리됩니다. 각 도메인 팀은 ODS, EDW, API 서비스 등 다양한 인터페이스를 통해 다른 팀들에게 데이터를 제공합니다. 하지만 비즈니스가 성장하고 다양해지면서 요구사항 또한 빠르게 바뀌고 많아졌습니다. 데이터 소스와 분석 쿼리 또한 수시로 변하게 되었고 이를 시스템에 빠르게 반영하고 프로덕션 결과까지 연동해야 했습니다. 간단한 데이터 검색 및 분석 작업도 여러 툴에 접속해야만 가능했기 때문에 담당 개발자가 아닌 사용자 입장에서는 작업 수행에 어려움이 있었습니다. 예를 들어 비즈니스 분석가 및 데이터 사이언티스트가 새 모델을 만들고 적용하려면, 담당 개발자에게 비즈니스 요구사항에 맞는 새로운 데이터 파이프라인을 개발해달라고 요청해야 했습니다. 정형화된 프로세스로 이루어진 작업이지만 막상 관련 툴을 개발하기도 애매한 일이라 개발자는 개발자대로, 관련 작업자는 작업자대로 매번 요청하고 기다리는 식의 프로세스 아닌 프로세스가 반복되고 있었습니다. 이와 같은 작업들로 인해 팀원들 간에 많은 커뮤니케이션
2022년 12월 12일