Build an AI-powered product tagging system with Amazon SageMaker serverless model customization
Quick Summary
Amazon SageMaker 서버리스 모델 커스터마이제이션으로 Qwen3 8B에 SFT와 RLVR·GRPO를 적용해 상품 태깅을 최적화하고, 별도의 ml.g6.2xlarge 비동기 추론 엔드포인트로 배포하는 구현 절차를 설명한다.
🖼️ 인포그래픽

🖼️ 4컷 인포그래픽

💡 한 줄 요약
Amazon SageMaker 서버리스 모델 커스터마이제이션으로 Qwen3-8B에 SFT와 RLVR·GRPO를 적용해 상품 태깅을 최적화하고, 별도의 ml.g6.2xlarge 비동기 추론 엔드포인트로 배포하는 구현 절차를 설명한다.
📌 핵심 요약
- 상품 분류 체계가 안정적이고 출력을 프로그램으로 평가할 수 있다면, 소형 오픈웨이트 모델을 커스터마이징해 일관된 태그 스키마를 학습시키고 누락 태그와 불필요한 태그 사이의 균형을 조정하는 방식이 적합할 수 있다.
- 1,000개 이상의 상품 레코드를 포함한 Amazon Sales Dataset을 Amazon SageMaker Processing으로 정제하고, 9개 범주 태깅용 학습·검증 JSONL로 변환해 Amazon SageMaker AI Registry에 버전이 있는 데이터셋으로 등록한다.
- Qwen3-8B의 SFT는 LoRA와 4K 시퀀스 길이, 3에포크, 글로벌 배치 크기 8, LoRA 랭크 16을 사용한다. SFT가 스키마 준수에서 가장 큰 개선을 제공할 것으로 기대하며, RLVR은 이후의 품질 절충을 최적화한다.
- RLVR은 SFT 모델에서 시작하고 GRPO로 프롬프트당 후보 8개를 생성한다. 보상은 9개 범주 형식과 임계값 0.5의 퍼지 매칭을 검사하며, 재현율·정밀도·정확도에 각각 0.30, 매칭 품질·형식에 각각 0.05를 부여하는 식과 초기 재현율·후기 정밀도 중심의 점진적 보상 일정을 제시한다.
- 서버리스는 SFT·RLVR 학습 경로에 해당하며, 추론은 프로비저닝된 ml.g6.2xlarge의 Amazon SageMaker Asynchronous Inference에서 수행한다. 요청 대기열과 Amazon S3 결과 저장을 활용하며, 제공된 본문은 배포 코드 중간에서 끝나 실제 성능·비용 비교 결과는 제시하지 않는다.
🧩 주요 포인트
- 데이터셋 버전 관리 → 동일한 9개 범주 스키마를 SFT와 RLVR에 연결하고 학습 입력의 추적 가능성을 확보하는 기반이다.
- SFT의 형식 학습 → RLVR의 태그 품질 조정으로 역할을 나누며, 결정적 보상과 GRPO를 통해 누락·과잉 태깅의 절충을 명시적으로 최적화한다.
- 서버리스 학습과 ml.g6.2xlarge 추론의 분리 → 학습 용량 관리를 AWS에 맡기더라도 서빙 용량은 별도로 확보해야 하며, 실제 성능·비용 효과는 추가 검증이 필요하다.
🧠 상세 정리
1. 상품 태깅 문제와 소형 모델 커스터마이징의 조건
소매 상품 카탈로그의 이름, 설명, 카테고리 경로는 여러 출처에서 들어오고 계속 바뀌므로 처음부터 정돈된 속성으로 제공되기 어렵다. 검색, 추천, 카탈로그 탐색에는 일관된 태그가 필요하지만, 수천 개의 SKU에 사람이 직접 태그를 붙이면 시간이 오래 걸리고 일관성을 유지하기도 어렵다. 범용 프런티어 모델도 프롬프트 설계로 태그를 생성할 수 있으나, 대량 태깅의 핵심 목표는 올바른 속성을 정해진 스키마로 안정적으로 반환하는 데 있다. 원문은 분류 체계가 안정적이고 출력을 프로그램으로 채점할 수 있다는 조건에서 소형 오픈웨이트 모델의 커스터마이징이 더 적합할 수 있다고 설명한다. 이 접근은 스키마를 모델에 직접 가르치고 태그 누락과 불필요한 추가 사이의 균형을 조정하며, 각 요청에서 업무에 필요하지 않은 광범위한 모델 능력에 비용을 지불하는 부담을 피하려는 것이다.
2. 전체 구성과 서버리스 학습의 범위
워크플로는 데이터 준비, 서버리스 모델 커스터마이제이션, 추론이라는 세 영역으로 나뉘며, 데이터는 한 번 변환해 버전이 있는 자산으로 관리한다. SFT로 태깅 스키마를 학습시킨 다음 RLVR로 결정적 보상에 따른 동작을 최적화하고, 최종 모델 패키지를 별도의 추론 환경에 배포한다. 기존 amazon-sagemaker-examples의 Qwen3-8B 예시는 고객이 GPU 인스턴스와 사용자 지정 학습 이미지를 선택하는 Amazon SageMaker Training Jobs를 사용했다. 이번 절차는 Amazon SageMaker Python SDK v3의 SFTTrainer와 RLVRTrainer를 사용하며, 컴퓨팅 구성을 전달하지 않으면 Amazon SageMaker가 학습 용량을 선택하고 작업에 사용한 뒤 해제한다. 따라서 여기서 서버리스라는 표현은 학습 경로를 가리키며, 비동기 추론 엔드포인트는 프로비저닝된 ml.g6.2xlarge 인스턴스를 사용한다.
3. 실행 전 준비와 접근 권한
실행 전에는 대상 AWS 계정과 리전의 실제 리소스를 준비하고, 서버리스 커스터마이제이션 작업과 AI Registry 데이터셋·평가기, 모델 패키지 그룹, 모델, 엔드포인트를 다룰 최소 권한을 구성해야 한다. 필요한 경우 iam:PassRole을 허용하고, Amazon S3에는 원본 카탈로그, 변환 데이터, 모델 아티팩트, 비동기 추론 요청 및 결과를 읽고 쓸 수 있어야 한다. Amazon ECR 접근과 Docker는 vLLM 추론 이미지를 직접 빌드하고 호스팅할 때 필요하며, 서버리스 SFT와 RLVR에는 사용자 지정 학습 이미지가 필요하지 않다. Qwen3-8B의 SFT·RLVR 조합을 지원하는 리전을 선택하고 ml.g6.2xlarge 호스팅 및 엔드포인트 수에 대한 할당량도 확보해야 한다. 로컬 도구로 Python 3.11 이상, AWS CLI v2, pandas, Amazon SageMaker Python SDK v3를 사용하며, 인증에는 AWS IAM Identity Center 같은 단기 자격 증명 흐름을 사용하고 루트 자격 증명과 장기 액세스 키는 피하도록 안내한다.
4. 상품 데이터 정제와 버전 데이터셋 등록
예제는 Kaggle의 Amazon Sales Dataset에서 시작하며, 이 데이터에는 1,000개 이상의 상품 레코드와 상품 식별자, 이름, 카테고리, 설명, 가격, 평점, 리뷰 및 링크가 포함된다. 태깅에 주로 활용하는 입력은 상품명, 카테고리 경로, 설명처럼 카탈로그에 노출되는 필드이며, 운영 환경에서는 승인된 자체 카탈로그와 신뢰할 수 있는 라벨을 사용하도록 한다. Amazon SageMaker Processing 작업은 S3의 원본을 읽어 텍스트와 카테고리 경로를 정규화하고 사용할 수 없는 행을 제거한 뒤, 검증된 상품 정보를 기존 9개 범주 태깅 목표로 매핑한다. 이후 학습·검증 데이터를 분리해 JSONL을 S3에 저장하며, 각 행의 messages에서 system과 user는 프롬프트를, 마지막 assistant는 지도 학습의 정답을 구성한다. 이 파일들은 Amazon SageMaker AI Registry에 각각 등록하고, 트레이너에는 일반적인 학습 입력 채널 대신 버전이 있는 데이터셋 ARN을 전달한다. ARN은 직접 조합하지 않고 dataset.arn에서 읽으며, RLVR용 데이터도 해당 커스터마이제이션 유형으로 별도 등록한다.
5. SFT로 Qwen3-8B에 출력 스키마 학습
SFT 단계는 Qwen3-8B에 지시와 태그 출력 사이의 기대 패턴을 직접 보여 주어 9개 범주 스키마를 따르도록 학습시키는 역할을 한다. SDK v3의 SFTTrainer는 지원되는 Qwen3-8B 레시피를 확인하고 LoRA를 적용하며, 등록된 학습·검증 데이터셋 ARN을 받아 결과를 모델 패키지 그룹으로 게시한다. 예제 설정은 모델 식별자 huggingface-reasoning-qwen3-8b, 시퀀스 길이 4K, 최대 3에포크, 글로벌 배치 크기 8, LoRA 랭크 16이며 가중치 병합을 활성화한다. compute 인수를 지정하지 않으므로 고객이 학습 인스턴스를 고르는 대신 AWS가 관리하는 서버리스 학습 용량을 사용하고, 완료된 작업에서 출력 모델 패키지 ARN을 얻는다. 원문은 SFT가 원하는 입출력 동작을 직접 시연하기 때문에 스키마 준수에서 가장 큰 개선을 제공할 것으로 기대하지만, 이를 입증하는 측정 결과를 제시하지는 않는다. 이어지는 RLVR의 목적은 형식을 처음부터 다시 배우는 것이 아니라 남은 태그 품질의 절충을 최적화하는 것이다.
6. RLVR 데이터 변환과 GRPO 학습
SFT를 마친 모델도 필요한 속성을 빠뜨리거나 불필요한 태그를 추가할 수 있으므로, 구조화된 출력을 참조 정답과 비교할 수 있는 RLVR을 다음 단계로 사용한다. 각 SFT 행에서 system과 user 메시지는 prompt에 남기고 마지막 assistant 내용은 reward_model.ground_truth로 옮기며, 데이터 분할을 구분하는 ID와 평가기가 사용할 answer 및 split을 extra_info에 보관한다. RLVRTrainer는 SFT 모델 패키지에서 출발해 LoRA 학습을 이어 가고, 등록된 사용자 지정 보상 평가기로 후보 태그 집합을 채점한다. GRPO는 rollout_n=8 설정으로 프롬프트마다 후보 8개를 만들며, 평가기가 각 후보를 독립적으로 채점하면 그룹 내 상대적 어드밴티지를 계산하고 KL 정규화로 SFT 참조 모델에서 과도하게 벗어나는 것을 제한한다. 예제의 나머지 설정은 글로벌 배치 크기 128, 최대 4에포크, 학습률 1e-5, 최대 프롬프트 길이 2048이며, SFT와 마찬가지로 compute 인수를 생략해 서버리스 학습을 사용한다.
7. 결정적 보상과 재현율·정밀도 조정
보상 함수는 9개 범주의 출력 형식을 검사하고 임계값 0.5의 퍼지 매칭으로 예측 태그와 참조 정답을 비교하므로, 별도의 대규모 언어 모델을 심판으로 호출하지 않고 학습 신호를 검증할 수 있다. 제시된 전체 보상 식은 재현율, 정밀도, 정확도에 각각 0.30을 곱하고 매칭 품질과 형식에 각각 0.05를 곱한 값을 더하는 구조다. 원문은 이 식과 함께 학습 초기에 재현율을 강조해 기대 속성의 누락을 줄이고, 후반에는 정밀도의 비중을 높여 근거가 없거나 불필요한 태그를 줄이는 점진적 보상 일정을 설명한다. 이는 누락과 과잉 태깅 사이의 업무상 절충을 프롬프트에 암묵적으로 맡기지 않고 보상에 명시적으로 반영하려는 설계다. 실험은 MLflow와 모델 패키지 그룹으로 추적하고, 선택한 하이퍼파라미터, 보상 가중치, 지표 및 모델 계보를 기록해 SFT와 RLVR 실행을 비교하고 선택한 모델 버전을 재현하도록 안내한다.
8. 비동기 추론 배포와 제공된 자료의 한계
최적화된 모델은 Amazon SageMaker Asynchronous Inference 엔드포인트에 배포하며, 서빙에는 ml.g6.2xlarge 인스턴스를 사용한다. 원문은 요청을 대기열에 넣고 결과를 Amazon S3에 기록할 수 있다는 점에서 이 구성이 배치 중심의 카탈로그 정보 보강에 적합하다고 설명한다. 사용자 지정 vLLM 이미지는 이 추론 단계에서만 사용하며, 앞선 서버리스 SFT와 RLVR 학습 환경에는 사용하지 않는다. 따라서 서버리스 학습을 선택했다는 사실과 추론 인프라의 운영 방식은 구분해서 이해해야 하며, 서빙을 위한 호스팅 할당량도 사전에 확보해야 한다. 제공된 본문은 엔드포인트 구성 생성 코드의 시작 부분에서 끊겨 있어 배포 절차 전체나 이후 평가 내용을 확인할 수 없다. 또한 실제 태깅 품질, 처리량, 지연 시간, 비용의 비교 수치가 없으므로, 설명된 설계와 기대 효과를 검증된 운영 성과로 단정할 수는 없다.
🧾 핵심 주장 / 시사점
- 커스터마이징의 적합성은 상품 태깅이라는 업무명보다 분류 체계의 안정성과 출력의 프로그램 평가 가능성에 달려 있다. 이 조건이 충족되어야 스키마 학습과 검증 가능한 보상을 연결하기 쉽다.
- SFT와 RLVR은 서로 다른 개선 목표를 갖는다. 형식 준수를 먼저 학습시킨 뒤 누락과 과잉 태깅의 균형을 조정하는 구성은 보상 설계에 업무상의 우선순위가 반영되어야 함을 보여 준다.
- 서버리스 커스터마이제이션은 학습 용량 관리를 단순화하지만 전체 시스템의 서버리스 운영을 뜻하지 않는다. 별도 추론 인프라와 실제 성능·비용 검증까지 고려해야 적용 효과를 판단할 수 있다.
✅ 액션 아이템
- 상품 분류 체계의 안정성과 출력의 프로그램 평가 가능성을 확인해 소형 오픈웨이트 모델 커스터마이징의 적용 적합성을 판단한다.
- 9개 범주 스키마를 기준으로 SFT의 형식 준수와 RLVR의 태그 누락·불필요한 추가를 비교해 품질 개선 여부를 검증한다.
- 서버리스 학습과 ml.g6.2xlarge 추론을 구분해 서빙 용량을 확보하고 실제 성능·비용 효과를 확인한다.
❓ 열린 질문
- 적용 대상 상품 분류 체계는 소형 오픈웨이트 모델 커스터마이징에 적합할 만큼 안정적이며 출력을 프로그램으로 평가할 수 있는가?
- 초기 재현율·후기 정밀도 중심의 보상 일정은 SFT 대비 RLVR의 태그 누락과 불필요한 추가를 얼마나 개선하는가?
- 프로비저닝된 ml.g6.2xlarge의 Amazon SageMaker Asynchronous Inference를 포함하면 전체 구성의 실제 성능·비용 효과는 어떠한가?