중요
2023년 9월 20일부터 새 Personalizer 리소스를 만들 수 없습니다. Personalizer 서비스는 2026년 10월 1일에 사용 중지됩니다. 오픈 소스 microsoft/learning-loop로 마이그레이션하는 것이 좋습니다.
새 Personalizer 리소스를 배포할 때 학습되지 않은 또는 빈 모델로 초기화됩니다. 즉, 데이터에서 학습되지 않았으므로 실제로 잘 수행되지 않습니다. 이를 "콜드 스타트" 문제라고 하며 프로덕션 환경의 실제 데이터로 모델을 학습시켜 시간이 지남에 따라 해결됩니다. 실습생 모드 는 "콜드 스타트" 문제를 완화하는 데 도움이 되는 학습 동작으로, 코드를 변경하지 않고도 프로덕션 환경에서 결정을 내리기 전에 모델에 대한 확신을 얻을 수 있습니다.
견습생 모드란?
실습생이 전문가를 관찰하여 기술을 배울 수 있는 방법과 마찬가지로, 실습생 모드를 사용하면 Personalizer가 애플리케이션의 현재 논리에 따른 결정을 관찰하여 학습할 수 있습니다. Personalizer 모델은 애플리케이션과 동일한 의사 결정 출력을 모방하여 학습합니다. 각 순위 API 호출을 통해 Personalizer는 기존 논리 및 결과에 영향을 주지 않고 학습할 수 있습니다. Azure 포털 및 API에서 사용할 수 있는 메트릭은 모델이 학습할 때 성능을 이해하는 데 도움이 됩니다. 특히 Personalize가 기존 논리(기준 정책이라고도 함)와 얼마나 잘 일치하는지 확인합니다.
Personalizer가 기존 논리 60-80% 합리적으로 일치시킬 수 있게 되면 동작을 견습생 모드에서 온라인 모드로 변경할 수 있습니다. 이때 Personalizer는 기본 모델에 의해 결정된 대로 순위 API에서 최상의 작업을 반환하고 기준 정책보다 더 나은 결정을 내리는 방법을 배울 수 있습니다.
왜 견습생 모드를 사용합니까?
학습자 모드는 애플리케이션에서 사용하는 온라인 결정을 내리기 전에 모델이 기존 의사 결정 논리를 모방하는 방법을 제공합니다. 이렇게 하면 앞서 언급한 콜드 시작 문제를 완화할 수 있으며 Personalizer 서비스에 대한 신뢰도를 높일 수 있으며 Personalizer로 전송된 데이터가 모델 학습에 유용하다는 확신을 제공합니다. 이 작업은 온라인 트래픽 및 고객 환경에 위험을 초래하거나 영향을 주지 않고 수행됩니다.
견습생 모드를 사용하는 두 가지 주요 이유는 다음과 같습니다.
- 콜드 스타트 완화: 견습자 모드는 알지 못하는 결정을 내릴 필요 없이 학습하여 프로덕션 환경에서 "새로운" 모델을 교육하는 비용을 완화하는 데 도움이 됩니다. 모델은 기존 애플리케이션 논리를 모방하는 방법을 알아봅니다.
- 작업 및 컨텍스트 기능의 유효성 검사: 컨텍스트 및 작업 기능이 부적절하거나 부정확하거나 최적이 아닐 수 있습니다. 너무 적거나, 너무 많거나, 잘못되거나, 노이즈하거나, 형식이 잘못된 기능이 있는 경우 Personalize는 성능이 뛰어난 모델을 학습하는 데 어려움을 겪습니다. 실습생 모드에서 기능 평가를 수행하면 기능이 Personalizer 학습에 얼마나 효과적인지 확인할 수 있으며 기능 품질을 개선하기 위한 영역을 식별할 수 있습니다.
언제 견습생 모드를 사용해야 하나요?
실습생 모드를 사용하여 Personalizer의 영향을 받지 않는 사용자의 환경을 그대로 유지하면서 다음 시나리오를 통해 Personalizer의 효율성을 향상시킵니다.
- 새 시나리오에서 Personalizer를 구현하고 있습니다.
- 컨텍스트 또는 작업 기능을 크게 변경했습니다.
그러나 실습생 모드는 Personalizer가 평균 보상 또는 비즈니스 KPI를 개선하는 데 미칠 수 있는 영향을 측정하는 효과적인 방법이 아닙니다. 제공하는 현재 데이터를 고려할 때 서비스가 기존 논리를 얼마나 잘 학습하는지 평가할 수 있습니다. Personalizer가 각 순위 호출에 대해 최상의 작업을 선택하는 데 얼마나 효과적인지 측정하려면 Personalizer가 온라인 모드에 있어야 합니다. 또는 Personalizer가 온라인 모드에 있는 기간 동안 오프라인 평가를 사용할 수 있습니다.
누가 견습생 모드를 사용해야 하나요?
실습생 모드는 개발자, 데이터 과학자 및 비즈니스 의사 결정자에게 유용합니다.
개발자는 실습생 모드를 사용하여 순위 및 보상 API가 애플리케이션에서 올바르게 구현되고 Personalizer로 전송되는 기능이 오류 및 일반적인 실수로부터 자유로워지도록 할 수 있습니다. 좋은 컨텍스트 및 작업 기능을 만드는 방법에 대해 자세히 알아봅니다.
데이터 과학자는 실습생 모드를 사용하여 기능이 Personalizer 모델 학습에 효과적인지 확인할 수 있습니다. 즉, 이 기능에는 Personalizer가 기존 의사 결정 논리를 학습할 수 있는 유용한 정보가 포함되어 있습니다.
비즈니스 의사 결정자는 실습생 모드를 사용하여 Personalizer의 잠재력을 평가하여 기존 비즈니스 논리에 비해 결과(즉, 보상)를 개선할 수 있습니다. 특히 Personalizer가 온라인 모드로 전환하기 전에 제공된 데이터에서 학습할 수 있는지 여부입니다. 이를 통해 실제 수익 및 사용자 만족도가 위태로워지는 사용자 환경에 영향을 주는 것에 대해 정보에 입각한 결정을 내릴 수 있습니다.
동작 비교 - 견습생 모드 및 온라인 모드
학습자 모드에서 학습은 다음과 같은 방법으로 온라인 모드와 다릅니다.
| 영역 | 견습생 모드 | 온라인 모드 |
|---|---|---|
| 사용자 환경에 미치는 영향 | 사용자의 환경 및 비즈니스 메트릭은 변경되지 않습니다. Personalizer는 영향을 주지 않고 현재 애플리케이션 논리의 기준 작업을 관찰하여 학습됩니다. | 사용자의 경험은 Personalizer에서 결정된 것이므로, 이를 통해 기준 동작과는 다르게 변화할 수 있습니다. |
| 학습 속도 | Personalizer는 온라인 모드의 학습에 비해 학습자 모드에서 더 느리게 학습합니다. 실습생 모드는 탐색 없이 기본 작업에서 얻은 보상을 관찰하여 학습할 수 있으며, 이는 Personalizer에서 학습할 수 있는 양을 제한합니다. | 현재 모델에서 최상의 작업을 활용 하고 잠재적으로 더 나은 결과를 위해 다른 작업을 탐색 할 수 있으므로 더 빠르게 알아봅니다. |
| 학습 효과 한도 | Personalizer는 애플리케이션의 현재 논리(기준 작업에서 달성한 총 평균 보상)의 성능을 대략적이고 초과할 수 없습니다. Personalizer가 현재 애플리케이션의 논리와 일치하는% 100을 달성할 가능성은 거의 없으며, 60개%-80% 일치가 달성되면 Personalizer를 온라인 모드로 전환하는 것이 좋습니다. | Personalizer는 기준 애플리케이션 논리의 성능을 초과해야 합니다. Personalizer의 성능이 시간이 지남에 따라 중단되는 경우 오프라인 평가 및 기능 평가를 수행하여 추가 개선을 추구할 수 있습니다. |
| rewardActionId의 순위 API 반환 값 | rewardActionId는 항상 기본 작업의 ID입니다. 즉, 순위 API 요청 JSON의 첫 번째 작업으로 보내는 작업입니다. 즉, 순위 API는 학습자 모드 중에 애플리케이션에 표시되는 작업을 수행하지 않습니다. | rewardActionId는 Personalizer 모델에 의해 결정된 대로 순위 API 호출에 제공된 ID 중 하나입니다. |
| 평가 | Personalizer는 현재 애플리케이션 로직에서 받은 보상 합계를 지속적으로 비교하여 관리하며, 해당 시점에 온라인 모드일 때 Personalizer가 받을 보상 합계를 기록합니다. 이 비교는 Azure 포털에서 Personalizer 리소스의 모니터 블레이드에서 볼 수 있습니다. | 오프라인 평가를 실행하여 Personalizer의 효과를 평가합니다. 이를 통해 Personalizer가 달성한 총 보상과 애플리케이션 기준의 잠재적 보상을 비교할 수 있습니다. |
Personalizer는 애플리케이션의 기준 논리와 100% 성능 일치를 달성할 가능성이 낮으며 이를 초과하지 않습니다. 60%-80% 성능 일치는 Personalizer를 온라인 모드로 전환하기에 충분해야 합니다. 여기서 Personalizer는 더 나은 결정을 학습하고 애플리케이션의 기준 논리 성능을 초과할 수 있습니다.
견습생 모드의 제한 사항
실습생 모드는 순위 호출에 있는 컨텍스트 및 작업 기능을 사용하여 기존 애플리케이션의 기준 논리를 모방하여 Personalizer 모델을 학습시킵니다. 다음 요소는 실습생 모드의 학습 능력에 영향을 줍니다.
견습생 모드가 적절하지 않을 수 있는 시나리오:
편집으로 선택한 콘텐츠:
뉴스 또는 엔터테인먼트와 같은 일부 시나리오에서는 편집 팀에서 기준 항목을 수동으로 할당할 수 있습니다. 즉, 인간은 더 넓은 세계에 대한 지식을 사용하고, 매력적인 콘텐츠가 무엇인지 이해하고, 풀에서 특정 기사 또는 미디어를 선택하고, "선호하는" 또는 "영웅" 기사로 플래그를 지정합니다. 이러한 편집기가 알고리즘이 아니므로 편집기에서 고려하는 요소는 주관적이며 컨텍스트 또는 작업 기능과 관련이 없을 수 있습니다. 이 경우 실습생 모드는 기준 작업을 예측하는 데 어려움을 겪을 수 있습니다. 이러한 상황에서는 다음을 수행할 수 있습니다.
- 온라인 모드에서 Personalizer 테스트: 인프라가 있는 경우 시간 또는 A/B 테스트에 Personalizer를 온라인 모드로 전환한 다음 오프라인 평가를 실행하여 애플리케이션의 기준 논리와 Personalizer 간의 차이를 평가합니다.
- 편집 고려 사항 및 권장 사항을 기능으로 추가: 편집기에게 선택에 영향을 주는 요인을 물어보고 컨텍스트 및 작업에서 기능으로 추가할 수 있는지 확인합니다. 예를 들어 미디어 회사의 편집자는 특정 유명 인사가 뉴스에 자주 있을 때 콘텐츠를 강조 표시할 수 있습니다. 이 지식은 컨텍스트 기능으로 추가될 수 있습니다.
학습자 모드를 개선하고 가속화하는 요인
실습 모드가 0보다 높은 성능을 학습하고 달성하고 있지만, 성능이 느리게 향상되는 경우(2주 내에 일치하는 보상이 60%에서 80%에 도달하지 않을 때), Personalizer로 전송되는 데이터가 너무 적을 수 있습니다. 다음 단계는 더 빠른 학습을 용이하게 하는 데 도움이 될 수 있습니다.
- 차별화된 기능 추가: 순위 호출 및 해당 기능의 작업을 시각적으로 검사할 수 있습니다. 기준 작업에 다른 작업과 차별화된 기능이 있나요? 대부분 동일하게 보이면 기능 값의 다양성을 높이는 기능을 더 추가합니다.
- 이벤트당 작업 감소: Personalizer는 "탐색에 사용할 순위 호출의%" 설정을 사용하여 기본 설정과 추세를 검색합니다. 순위 호출에 더 많은 작업이 있는 경우 탐색을 위해 특정 작업이 선택될 가능성이 낮아집니다. 각 순위 호출에서 전송된 작업 수를 더 작은 수(10 미만)로 줄이는 것은 학습자 모드에 학습할 충분한 데이터가 있는지 여부를 나타내는 임시 조정일 수 있습니다.
학습자 모드를 사용하여 기록 데이터 학습
Personalizer를 학습하는 데 사용하려는 기록 데이터가 많은 경우 학습자 모드를 사용하여 Personalizer를 통해 데이터를 재생할 수 있습니다.
학습자 모드에서 Personalizer를 설정하고 기록 데이터의 작업 및 컨텍스트 기능을 사용하여 순위를 호출하는 스크립트를 만듭니다. 이 데이터의 레코드 계산에 따라 Reward API를 호출합니다. Personalizer가 애플리케이션의 기준 논리와 60-80% 일치하는지 확인하려면 약 50,000개의 기록 이벤트가 필요할 수 있습니다. 적은 수의 이벤트로 만족스러운 결과를 얻을 수 있습니다.
기록 데이터에서 학습하는 경우 [컨텍스트 및 작업에 대한 기능, 순위 요청에 사용되는 JSON의 레이아웃 및 이 학습 데이터 집합의 보상 계산]에서 전송된 데이터가 기존 애플리케이션에서 사용할 수 있는 데이터 [기능 및 보상 계산]과 일치하는 것이 좋습니다.
오프라인 및 기록 데이터는 더 불완전하고 시끄러운 경향이 있으며 프로덕션(또는 온라인) 시나리오와 형식이 다를 수 있습니다. 기록 데이터의 학습이 가능하지만, 이렇게 하면 결과가 결정적이지 않을 수 있으며, 특히 기능이 기록 데이터와 현재 시나리오에 따라 달라지는 경우 Personalizer가 온라인 모드에서 얼마나 잘 학습되는지에 대한 좋은 예측 변수는 아닙니다.
실습생 모드 및 A/B 테스트 사용
유효성이 검사된 상태로 온라인 모드에서 학습 중일 때에만 Personalizer 처리의 A/B 테스트를 수행하는 것이 유용합니다. 실습생 모드에서는 기본 동작만 사용되고 기존 논리가 학습되기 때문입니다. 이는 기본적으로 Personalizer가 A/B 테스트의 "컨트롤" 암 동작을 반환하므로 실습생 모드의 A/B 테스트에는 값이 없습니다.
Personalizer를 사용하고 온라인으로 학습하는 사용 사례가 있으면 A/B 실험을 통해 제어된 코호트를 만들고 보상에 사용되는 신호보다 더 복잡할 수 있는 결과의 비교를 수행할 수 있습니다. A/B 테스트에서 대답할 수 있는 질문의 예는 다음과 같습니다. "소매 웹 사이트에서 Personalizer는 레이아웃을 최적화하고 더 많은 사용자가 더 일찍 체크 아웃 하도록 하지만 트랜잭션당 총 수익을 줄이나요?"
다음 단계
- 활성 및 비활성 이벤트에 대해 알아보기