## 3 ML Application in O-RAN
### Network Slicing  
Network slicing in O-RAN refers to the ability to partition a physical network into multiple virtual networks, each tailored to specific use cases or applications. Each network slice has its own set of resources, including bandwidth, processing power, and storage, which can be dynamically allocated and managed according to the needs of the specific use case. O-RAN network slicing enables operators to offer customized services to their customers, such as low-latency communication for industrial applications or high-bandwidth streaming services for consumers. It also allows multiple services to be delivered over the same physical infrastructure, maximizing resource utilization and improving efficiency. The O-RAN architecture provides a framework for implementing network slicing, with the RAN and the CN working together to manage and allocate resources. The RAN is responsible for managing the radio access resources, while the CN is responsible for managing the core network resources. Together, they can allocate and manage resources across the network slices as required. The synergies between O-RAN and network slicing, as well as SON and MEC technologies, were explored in [58], where the O-RAN platform was proposed as a common denominator for the integration of those technologies via proper modifications and extensions of its present architecture. It has been shown that an O-RAN-centric approach is beneficial, and such integration solves some of the issues not well-addressed by the current O-RAN implementation. Also, due to the integration, some components of the contributory technologies can be removed or reused. ML algorithms can be used to automate the process of creating, modifying, and deleting network slices based on changing network conditions. By combining predictive analytics, real-time monitoring, optimization, and intelligent resource allocation, ML algorithms can create a closed-loop feedback system that can automatically adjust network slices to meet changing network conditions. The main point is to enable the third party to develop better ML algorithms. Particularly for network slicing, we can capture data for training purposes so as to improve the efficiency of network slicing. Based on real-time monitoring, ML algorithms can identify changes in network conditions. By monitoring network performance, ML algorithms can detect changes in network traffic, demand, and capacity, and can modify network slices in response. Then, ML algorithms can be trained to learn how to optimize network slicing based on changing network conditions. By considering factors such as network traffic, user demands, and network capacity, machine learning algorithms can adjust the size and characteristics of network slices to improve network performance and reduce energy consumption. With the network slicing, ML algorithms can then optimize the allocation of network resources to different network slices based on changing network conditions. By learning from historical data and network performance metrics, machine learning algorithms can adjust the allocation of network resources to different slices in real-time, and can optimize resource utilization to improve network performance and reduce energy consumption. In particular, ML can be of help to network slicing by (i) traffic forecasting; (ii) admission control; and (iii) resource allocation [37]. They reflect three key network slicing building blocks that, together, aim at ensuring network slicing service level agreements (SLAs) are fulfilled. The traffic forecasting block allows us to predict the evolution of traffic load and resource usage for slices over future time instants. The outcome of the traffic forecasting solution can be fed into the slice admission control solution and slice resource allocation solution to enable better decisions (e.g., maximize system resource utilization).