Розробка AI-системи аналізу якості зв'язку під ключ

Якість мережі (QoS/QoE) — багатовимірна характеристика: затримка, втрати пакетів, джитер, пропускна здатність. ML-системи, що аналізують часові ряди KPI, виявляють деградацію до скарг користувачів та локалізують проблему в топології мережі. Для оператора зв'язку втрата доходу через незадоволеність к

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Якість мережі (QoS/QoE) — багатовимірна характеристика: затримка, втрати пакетів, джитер, пропускна здатність. ML-системи, що аналізують часові ряди KPI, виявляють деградацію до скарг користувачів та локалізують проблему в топології мережі. Для оператора зв'язку втрата доходу через незадоволеність клієнтів може становити мільйони на рік. Ми будуємо такі системи під ключ: від збору SNMP-метрик до інтеграції з OSS/BSS вашого оператора. Типові болі — хибні спрацьовування статичних порогів, ручний аналіз логів, довгий пошук кореневої причини. Наші ML-алгоритми знижують false positives на 60% і скорочують час локалізації з годин до хвилин. Економія операційних витрат сягає 30%, а зниження штрафів за порушення SLA — до 40%, що забезпечує значну економію для великого оператора. Наша команда реалізувала 15+ проєктів для мереж 4G/5G. Зв'яжіться з нами, щоб обговорити впровадження у вашій мережі.

Ми використовуємо адаптивні пороги на основі EWMA, які автоматично підлаштовуються під добові та тижневі патерни. Це дозволяє виявляти аномалії на ранніх стадіях без участі інженера.

Метрики якості зв'язку

Ієрархія QoS показників:

network_kpis = { # Фізичний рівень 'signal_to_noise_ratio_db': 'SNR < 10 dB = деградація', 'bit_error_rate': 'BER > 1e-6 = проблема', 'optical_power_dbm': 'для оптики: відхилення ±3 dB від норми', # Транспортний рівень 'packet_loss_pct': '> 1% = помітно для голосу, > 0.1% критично для відео', 'latency_ms': 'RTT: < 20 мс = відмінно, > 100 мс = деградація голосу', 'jitter_ms': '> 30 мс = розрив голосового дзвінка', 'throughput_mbps': 'відхилення від SLA > 20% = порушення', # Прикладний рівень (QoE) 'mos_score': 'Mean Opinion Score 1-5: < 3.5 = скарги', 'video_buffering_ratio': '> 2% = помітно користувачу', 'call_setup_success_rate': '< 99% = проблема в IMS/SS7' } 

Чому ML краще статичних порогів?

Статичні пороги (наприклад, latency > 150 мс) дають багато хибних спрацьовувань і не адаптуються до змін мережі. ML моделі, такі як EWMA зі змінним порогом, автоматично підлаштовуються під добові патерни та тренди. У наших проєктах кількість false positives знижується на 60%, а час виявлення деградації скорочується в 5 разів.

EWMA + адаптивні пороги

import numpy as np import pandas as pd class NetworkKPIMonitor: def __init__(self, alpha=0.1, sigma_multiplier=3.0): self.alpha = alpha self.sigma_multiplier = sigma_multiplier self.ewma_mean = {} self.ewma_var = {} def update(self, kpi_name: str, value: float) -> dict: if kpi_name not in self.ewma_mean: self.ewma_mean[kpi_name] = value self.ewma_var[kpi_name] = 0.0 return {'status': 'initializing'} # Оновлення EWMA prev_mean = self.ewma_mean[kpi_name] self.ewma_mean[kpi_name] = ( self.alpha * value + (1 - self.alpha) * prev_mean ) self.ewma_var[kpi_name] = ( (1 - self.alpha) * (self.ewma_var[kpi_name] + self.alpha * (value - prev_mean)**2) ) std = np.sqrt(self.ewma_var[kpi_name]) upper_bound = self.ewma_mean[kpi_name] + self.sigma_multiplier * std lower_bound = self.ewma_mean[kpi_name] - self.sigma_multiplier * std anomaly = value > upper_bound or value < lower_bound return { 'kpi': kpi_name, 'value': value, 'expected': self.ewma_mean[kpi_name], 'upper_bound': upper_bound, 'anomaly': anomaly, 'deviation_sigma': (value - self.ewma_mean[kpi_name]) / (std + 1e-9) } 

Як ми локалізуємо джерело проблеми?

Відзначимо: коли аномалії одночасно виникають на кількох вузлах, ми шукаємо загального предка в топології мережі. Це дозволяє за хвилини знайти кореневу причину — наприклад, комутатор, що відмовив, або перевантажений канал.

Топологічна локалізація деградації

import networkx as nx def localize_network_degradation(anomaly_events: list, topology_graph: nx.Graph) -> dict: """ Якщо аномалії одночасно на кількох сегментах — шукаємо спільний upstream вузол (root cause). """ # Групуємо аномальні вузли degraded_nodes = set(e['node_id'] for e in anomaly_events if e['anomaly'] and e['timestamp'] == max(e['timestamp'] for e in anomaly_events)) # Для кожної пари деградованих вузлів — знайти LCA (Least Common Ancestor) suspect_nodes = {} for u, v in combinations(degraded_nodes, 2): try: paths = list(nx.all_simple_paths(topology_graph, u, v, cutoff=5)) for path in paths: for node in path: if node not in degraded_nodes: suspect_nodes[node] = suspect_nodes.get(node, 0) + 1 except nx.NetworkXNoPath: pass if suspect_nodes: root_cause = max(suspect_nodes, key=suspect_nodes.get) return { 'root_cause_node': root_cause, 'confidence': suspect_nodes[root_cause] / len(degraded_nodes), 'affected_downstream': list(degraded_nodes) } return {'root_cause_node': None, 'affected_downstream': list(degraded_nodes)} 

MOS Prediction для Voice/Video

Передбачаємо користувацький досвід без опитувань — за мережевими метриками. Використовуємо E-model як baseline та градієнтний бустинг для підвищення точності. В результаті MOS передбачається з помилкою менше 0.3 бала. Точне передбачення MOS дозволяє оператору проактивно керувати якістю, не чекаючи скарг. Це особливо критично для преміальних сервісів, де SLA може передбачати штрафи за падіння MOS нижче 4.0.

from sklearn.ensemble import GradientBoostingRegressor def build_mos_prediction_model(network_samples: pd.DataFrame) -> GradientBoostingRegressor: """ Передбачення MOS з мережевих метрик — без суб'єктивного опитування користувачів. E-model ITU-T G.107 як baseline, ML покращує точність. """ features = [ 'packet_loss_pct', 'latency_ms', 'jitter_ms', 'codec_type_encoded', # G.711=0, G.722=1, Opus=2 'plc_effectiveness' # Packet Loss Concealment quality ] # E-model baseline як додаткова ознака network_samples['e_model_r_factor'] = network_samples.apply( lambda row: compute_e_model_r_factor( row['latency_ms'], row['packet_loss_pct'], row['jitter_ms'] ), axis=1 ) model = GradientBoostingRegressor(n_estimators=200, max_depth=4) model.fit(network_samples[features + ['e_model_r_factor']], network_samples['mos_score']) return model def compute_e_model_r_factor(latency, loss_pct, jitter): """Спрощена E-model формула ITU-T G.107""" r_base = 93.2 r_latency = 0.024 * latency + 0.11 * max(0, latency - 177.3) r_loss = 11 + 40 * np.log(1 + 10 * loss_pct / 100) return max(0, r_base - r_latency - r_loss) 

SLA Compliance Tracking

Автоматичний розрахунок доступності за кожним KPI, порівняння з контрактними SLA та генерація звітів. Система підтримує довільні SLA пороги (наприклад, 99.9% для voice, 99.5% для data).

def track_sla_compliance(kpi_history: pd.DataFrame, sla_thresholds: dict, contract_id: str) -> dict: violations = {} for kpi, threshold in sla_thresholds.items(): if kpi not in kpi_history.columns: continue total_minutes = len(kpi_history) violation_minutes = len(kpi_history[kpi_history[kpi] > threshold]) availability = (total_minutes - violation_minutes) / total_minutes * 100 violations[kpi] = { 'sla_target': threshold, 'availability_pct': round(availability, 4), 'violation_minutes': violation_minutes, 'sla_breach': availability < 99.9 # стандартний SLA для операторів } return { 'contract_id': contract_id, 'period': f"{kpi_history.index.min()} — {kpi_history.index.max()}", 'kpi_compliance': violations, 'overall_compliance': all(not v['sla_breach'] for v in violations.values()) } 

Порівняння методів виявлення аномалій

Параметр Статичні пороги ML з EWMA
Адаптація до трендів Ні Так
False positives Високий Зниження на 60%
Швидкість виявлення >30 хвилин <5 хвилин
Врахування добових патернів Ні Так
Необхідна експертиза Низька Середня

Що входить в роботу

Модулі та терміни
Модуль Опис Орієнтовний термін
EWMA моніторинг + аномалії Реалтайм збір KPI, адаптивні пороги, алерти 2-3 тижні
Топологічна локалізація Пошук root cause при множинних аномаліях +2-3 тижні
MOS prediction Передбачення QoE для voice/video +2 тижні
SLA compliance tracker Автоматичний аудит контрактних показників +1-2 тижні
Дашборди (Grafana + InfluxDB) Візуалізація KPI, трендів, аномалій 1 тиждень
Інтеграція OSS/BSS API до NetAct, ENM, U2000, SNMP/NETCONF +1-2 місяці
Документація та навчання Архітектура, адміністрування, розвиток 1 тиждень

Всі модулі постачаються з технічною документацією, дашбордами, навчанням команди та гарантійною підтримкою 6 місяців.

Як ми працюємо

  1. Аналітика — аудит поточної системи моніторингу, визначення KPI та SLA. Займає 2-5 днів.
  2. Проектування — архітектура ML pipeline, схема інтеграції, вибір стеку. 1-2 тижні.
  3. Розробка — реалізація модулів (код вище), unit-тести. 2-6 тижнів.
  4. Інтеграція та тестування — стикування з OSS/BSS, навантажувальне тестування. 2-4 тижні.
  5. Деплой та підтримка — розгортання на production, навчання операторів, SLA-підтримка.

Оцінюємо проект безкоштовно за 2 дні. Залиште заявку — ми підберемо оптимальне рішення під ваш бюджет та терміни.

Терміни: EWMA моніторинг KPI + аномалії + дашборд — 2-3 тижні. Топологічна локалізація, MOS prediction, SLA compliance tracker, OSS/BSS інтеграція — 2-3 місяці.

Вартість розраховується індивідуально — залежить від кількості KPI, складності топології та необхідної інтеграції. Отримайте консультацію нашого AI/ML інженера, щоб обговорити ваш проект.

Середня економія від впровадження є значною та залежить від масштабу мережі. Зниження штрафів за порушення SLA також є суттєвим.