Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Functionality of ML block is divided into three parts. 

  1. Model Training (Offline)
  2. Validation
  3. Prediction

Step1: ML Offline Training

This step requires a huge amount of historical data for the analysis. It requires both the input (PM metrics) and output data (intent). 

Configure E2E Slice (shared or non-shared) that need to be trained.

draw.io Diagram
bordertrue
diagramNameOffline Training
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth811
revision3

Training is performed by first acquiring the data. The data are acquired from following topics.

  • The training modules trigger PM data generation for slices using the below RAN Simulator API topics
  • The process typically waits for more data to be generated. Currently it waits for 2 hours.
Code Block
curl -X POST -H "Content-Type:  text/plain" http://localhost:8081/ransim/api/GenerateIntelligentSlicingPmData -i
  • After the time elapse, the training modules perform stop PM data generated for slices using following topic.
Code Block
curl -X POST -H "Content-Type:  text/plain" http://localhost:8081/ransim/api/stopIntelligentSlicingPmData -i 

The 

Run the ML model against the generated PM data and check whether it works as expected

       4. When it is not required, stop the pm data generation as it produces huge amount of data that consumes more space.



PM file format

Expand
titleTraining data format

[
  "{\"event\": {\"commonEventHeader\": {\"domain\": \"perf3gpp\",\"eventId\": \"2ff40cb0-377b-49f6-acea-5c7893e53f07\",\"sequence\": 0,\"eventName\": \"perf3gpp_AcmeNode-Acme_pmMeasResult\",\"sourceName\": \"oteNB5309\",\"reportingEntityName\": \"\",\"priority\": \"Normal\",\"startEpochMicrosec\": 1602686360469,\"lastEpochMicrosec\": 1602686360474,\"version\": \"4.0\",\"vesEventListenerVersion\": \"7.1\",\"timeZoneOffset\": \"UTC+05:00\"},\"perf3gppFields\": {\"perf3gppFieldsVersion\": \"1.0\",\"measDataCollection\": {\"granularityPeriod\": 1602686360473,\"measuredEntityUserName\": \"\",\"measuredEntityDn\": \"cucpserver1\",\"measuredEntitySoftwareVersion\": \"r0.1\",\"measInfoList\": [{\"measInfoId\": {\"sMeasInfoId\": \"measInfoIsVal\"},\"measTypes\": {\"sMeasTypesList\":[\"SM.PDUSessionSetupReq.0011-0010\",\"SM.PDUSessionSetupSucc.0011-0010\",\"SM.PDUSessionSetupFail.0\",\"SM.PDUSessionSetupReq.0010-1110\",\"SM.PDUSessionSetupSucc.0010-1110\"]},\"measValuesList\": [{\"measObjInstId\": \"113025289\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 4,\"sValue\": \"4364\"},{\"p\": 5,\"sValue\": \"2739\"},{\"p\": 3,\"sValue\": \"1517\"}]},{\"measObjInstId\": \"113025290\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 4,\"sValue\": \"4742\"},{\"p\": 5,\"sValue\": \"3184\"},{\"p\": 3,\"sValue\": \"1459\"}]},{\"measObjInstId\": \"113025296\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 4,\"sValue\": \"5264\"},{\"p\": 5,\"sValue\": \"3545\"},{\"p\": 3,\"sValue\": \"1629\"}]},{\"measObjInstId\": \"82268687\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 4,\"sValue\": \"6952\"},{\"p\": 5,\"sValue\": \"4337\"},{\"p\": 3,\"sValue\": \"2363\"}]},{\"measObjInstId\": \"82268689\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 4,\"sValue\": \"4229\"},{\"p\": 5,\"sValue\": \"3021\"},{\"p\": 3,\"sValue\": \"1135\"}]},{\"measObjInstId\": \"95697155\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 4,\"sValue\": \"4364\"},{\"p\": 5,\"sValue\": \"3201\"},{\"p\": 3,\"sValue\": \"1054\"}]},{\"measObjInstId\": \"95697174\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 4,\"sValue\": \"7041\"},{\"p\": 5,\"sValue\": \"4229\"},{\"p\": 3,\"sValue\": \"2599\"}]},{\"measObjInstId\": \"95697175\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 1,\"sValue\": \"3502\"},{\"p\": 2,\"sValue\": \"2598\"},{\"p\": 3,\"sValue\": \"851\"}]},{\"measObjInstId\": \"95697176\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 1,\"sValue\": \"4858\"},{\"p\": 2,\"sValue\": \"3430\"},{\"p\": 3,\"sValue\": \"1295\"}]},{\"measObjInstId\": \"103597825\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 1,\"sValue\": \"5134\"},{\"p\": 2,\"sValue\": \"3135\"},{\"p\": 3,\"sValue\": \"1847\"}]},{\"measObjInstId\": \"103597826\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 1,\"sValue\": \"4773\"},{\"p\": 2,\"sValue\": \"3007\"},{\"p\": 3,\"sValue\": \"1650\"}]},{\"measObjInstId\": \"84327425\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 1,\"sValue\": \"4573\"},{\"p\": 2,\"sValue\": \"3347\"},{\"p\": 3,\"sValue\": \"1111\"}]},{\"measObjInstId\": \"84327426\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 1,\"sValue\": \"4316\"},{\"p\": 2,\"sValue\": \"3126\"},{\"p\": 3,\"sValue\": \"1102\"}]},{\"measObjInstId\": \"103593999\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 1,\"sValue\": \"5314\"},{\"p\": 2,\"sValue\": \"3271\"},{\"p\": 3,\"sValue\": \"1860\"}]},{\"measObjInstId\": \"103594000\",\"suspectFlag\": \"false\",\"measResults\": [{\"p\": 1,\"sValue\": \"5037\"},{\"p\": 2,\"sValue\": \"3732\"},{\"p\": 3,\"sValue\": \"1193\"}]}]}]}}}}"
]

...

Recommendation for each cell can be maximum of 5120 and the aggregation of maximumNoOfConnections recommended for a slice (sNSSAI) can be upto 110% (10 % buffer)  of the intent.

Step2: Validation

Trained ML model can be validated against the dynamic data in the E2E Slicing set up.

  1. Configure four E2E Slices (shared or non-shared)
  2. Trigger PM data generation for those slices using the below RAN Simulator API
Code Block
curl -X POST -H "Content-Type:  text/plain" http://localhost:8081/ransim/api/GenerateIntelligentSlicingPmData -i

   3. Run the ML model against the generated PM data and check whether it works as expected

       4. When it is not required, stop the pm data generation as it produces huge amount of data that consumes more space.

...

Step3: Prediction

Trained ML model is now ready to predict and recommend suggestions for the cell level configurations (maxNumberOfConns)  for a slice.

...