#import "common.typ": pz-fig, pz-table

= Вариативная профессиональная компетенция (ВПК-2)

В рамках образовательной программы по направлению 09.03.04 «Программная инженерия» формируется вариативная профессиональная компетенция (ВПК-2):

#emph[Способен решать прикладные задачи анализа данных и принятия решений с использованием искусственного интеллекта.]

В текущей версии Wallenc модели машинного обучения в runtime не внедрены: продукт строится на zero-knowledge модели, отсутствует доверенный сервер приложения, а выгрузка расшифрованного содержимого storage на облако для обучения противоречила бы заявленным требованиям безопасности. Ниже рассмотрено, какие прикладные задачи анализа данных и автоматизированных решений *могли бы* быть добавлены в перспективе без нарушения клиентской модели угроз.

== Связь компетенции с предметом ВКР

Wallenc уже оперирует структурированными данными, пригодными для анализа: журнал синхронизации (пути, операции, ревизии, метки времени), метаданные файлов (имя, размер, тип по расширению), события фоновых задач. Это не «сырой» пользовательский контент, а агрегаты, которые можно обрабатывать локально. Компетенция ВПК-2 в контексте ВКР раскрывается постановкой задач, выбором данных и моделей, метриками качества и правилами принятия решений – даже если в MVP остаётся только проектный анализ.

== Прикладные задачи анализа данных и принимаемые решения

#pz-table(
  [Гипотетические задачи ИИ в экосистеме Wallenc],
  (1.05fr, 1.15fr, 1.05fr, 0.82fr, 1.08fr),
  table.header([Задача], [Данные для анализа], [Тип модели], [Где inference], [Решение для пользователя]),
  [Классификация и теги файлов], [Имя, расширение, размер; опционально эмбеддинг после локального decrypt], [#text(hyphenate: true, lang: "ru")[Лёгкий класси#sym.zws фикатор / k-NN]], [On-device (TFLite)], [Предложить теги, группировку в vault],
  [Аномалии в журнале sync], [Частота операций по путям, время, actorId], [Isolation Forest, пороговые правила], [On-device], [Предупреждение о подозрительной активности],
  [Похожие имена / дубликаты], [Нормализованные имена, размер], [Эмбеддинги строк + косинусная близость], [On-device], [Подсказка при синхронизации или импорте],
  [Импорт секрета со скриншота], [Изображение экрана (только по действию пользователя)], [OCR (ML Kit)], [On-device], [Заполнить поле текстового секрета],
) <tbl-vpk-ml-tasks>

Каждая строка таблицы связывает *анализ данных* (входные признаки) с *решением* (действие системы или рекомендация), что соответствует формулировке компетенции.

== Модели, обучение и развёртывание

*Классификация файлов.* Обучающая выборка может формироваться из синтетических имён и публичных датасетов типов файлов без доступа к реальным vault пользователей. Пайплайн: разметка классов (документ, изображение, архив) → обучение компактной сети (MobileNet-подобный backbone) → квантизация → конвертация в TensorFlow Lite @tflite-docs. Метрики: accuracy, F1 по классам на hold-out.

*Детектор аномалий sync.* Признаки: число UPSERT/DELETE за окно времени, доля новых путей, смена `actorId`. Обучение на журналах, сгенерированных unit-тестами и симуляциями `StorageSyncEngineTest`, плюс размеченные «нормальные» и «атакующие» сценарии. Метрики: precision/recall для класса «аномалия». Решение: показать уведомление, не блокировать sync автоматически без подтверждения.

*OCR.* Google ML Kit Text Recognition @mlkit-text позволяет извлечь текст без собственного обучения; дообучение нужно только для специфичных шрифтов. Решение: предзаполнить поле секрета с возможностью редактирования.

Общая схема on-device inference приведена на рис. @fig-36: метаданные и признаки не покидают устройство в открытом виде; обучение на расшифрованном содержимом всех пользователей в облаке для Wallenc неприемлемо. Альтернатива – *федеративное обучение* только на агрегированных градиентах по opt-in, без централизованного хранения файлов.

#pz-fig("fig_36_ml_on_device.png", [Гипотетический контур on-device ML], "fig-36")

== Этика, ограничения и вывод по ВПК-2

Любой модуль ИИ должен быть отключаемым (opt-in), объяснять пользователю основание рекомендации (например, «похожее имя файла») и не подменять явное действие при удалении или синхронизации. Конфликт с E2E возникает, если отправлять ciphertext или ключи на внешний API inference – в проекте такой путь не рассматривается.

*Вывод.* Компетенция «решать прикладные задачи анализа данных и принятия решений с использованием искусственного интеллекта» в пояснительной записке раскрыта анализом применимости ML к Wallenc: сформулированы задачи, источники данных, типы моделей, метрики обучения и границы развёртывания on-device. Внедрение в текущий MVP не выполнялось осознанно – в соответствии с целями ВКР по защищённому хранению без доверенного backend.
