Skip to content

Commit 235fba9

Browse files
committed
edits
1 parent b328f41 commit 235fba9

File tree

2 files changed

+25
-18
lines changed

2 files changed

+25
-18
lines changed
Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,61 @@
11
---
22
title: Reinforcement Learning - Personalizer
33
titleSuffix: Azure Cognitive Services
4-
description: Personalizer uses information about actions and current context to make better ranking suggestions. The information about these actions and context are attributes or properties that are referred to as features.
4+
description: "High-performance and high-traffic websites and applications have two main factors to consider with Personalizer for scalability and performance: latency and training throughput."
55
services: cognitive-services
66
author: edjez
77
manager: nitinme
88
ms.service: cognitive-services
99
ms.subservice: personalizer
1010
ms.topic: overview
11-
ms.date: 05/07/2019
11+
ms.date: 06/07/2019
1212
ms.author: edjez
1313
---
1414
# Scalability and Performance
1515

16-
Personalizer is used in many high-performance and high-traffic websites and applications.
17-
When evaluating Personalizer for use in these situations, there are two main factors to consider:
16+
High-performance and high-traffic websites and applications have two main factors to consider with Personalizer for scalability and performance:
1817

1918
1. Keeping low latency when making Rank API calls
2019
1. Making sure training throughput keeps up with event input
2120

22-
## Performance & Latency
21+
Personalization can return a rank very rapidly, with most of the call duration dedicated to communication through the REST API. Azure will autoscale the ability to respond to requests rapidly.
2322

24-
Personalization can return a rank very rapidly, with most of the call duration dedicated to communication through the REST API. Azure will auto-scale the ability to respond to requests rapidly.
23+
## Low-latency scenarios
2524

25+
Some applications require low latencies when returning a rank. This is necessary:
2626

27-
### Low-latency Scenarios
27+
* To keep the user from waiting a noticeable amount of time before displaying ranked content.
28+
* To keep a server from experiencing extreme traffic by _not_ tying up compute time and network connections.
2829

29-
Some applications require low latencies when returning a rank. This is necessary to keep the user from 'waiting' a noticeable amount of time; or keep a server experiencing extreme traffic from tying up compute time and network connections.
30+
<!--
3031
31-
If your web site is scaled on your infrastructure, you can avoid making http calls by hosting the Personalizer API in your own servers running a Docker container.
32+
If your web site is scaled on your infrastructure, you can avoid making HTTP calls by hosting the Personalizer API in your own servers running a Docker container.
3233
3334
This change would be transparent to your application, other than using an endpoint URL referring to the running docker instances as opposed to an online service in the cloud.
3435
36+
37+
3538
### Extreme Low Latency Scenarios
3639
3740
If you require latencies under a millisecond, and have already tested using Personalizer via containers, please contact our support team so we can assess your scenario and provide guidance suited to your needs.
3841
42+
-->
3943

40-
## Scalability and Training Throughput
44+
## Scalability and training throughput
4145

42-
Personalizer works by updating a model that is re-trained based on messages sent asynchronously by Personalizer after Rank and Reward APIs. These messages are sent using an Azure EventHub for the application.
46+
Personalizer works by updating a model that is retrained based on messages sent asynchronously by Personalizer after Rank and Reward APIs. These messages are sent using an Azure EventHub for the application.
4347

44-
It is unlikely most applications will reach the maximum joining and training throughput of Personalizer.
45-
While reaching this maximum will not slow down the application, it would imply Event Hub queues are getting filled internally faster than they can be cleaned up.
48+
It is unlikely most applications will reach the maximum joining and training throughput of Personalizer. While reaching this maximum will not slow down the application, it would imply Event Hub queues are getting filled internally faster than they can be cleaned up.
4649

47-
How to estimate your throughput requirements
50+
## How to estimate your throughput requirements
4851

49-
* Estimate what is the average number of bytes per ranking events (adding the lengths of the context and action JSON documents)
50-
* Divide 20MB/sec by this number.
52+
* Estimate the average number of bytes per ranking event adding the lengths of the context and action JSON documents.
53+
* Divide 20MB/sec by this estimated average bytes.
5154

5255
For example, if your average payload has 500 features and each is an estimated 20 characters, then each event is approximately 10kb. With these estimates, 20,000,000 / 10,000 = 2,000 events/sec, which is about 173 million events/day.
5356

54-
If you are reaching these limits please contact our support team for architecture advice.
57+
If you are reaching these limits, please contact our support team for architecture advice.
58+
59+
## Next steps
5560

56-
# More Information
61+
[Create and configure Personalizer](how-to-settings.md).

articles/cognitive-services/personalizer/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
- name: Offline evaluation
4141
href: concepts-offline-evaluation.md
4242
displayName: learning policy, Counterfactual, features
43+
- name: Scalability and performance
44+
href: concepts-scalability-performance.md
4345
- name: How-to guides
4446
items:
4547
- name: Create and configure Personalizer

0 commit comments

Comments
 (0)