{ "cells": [ { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "## Мультимодальное объединение для получения прогнозов по аудио, видео и тексту `FI V2`\n", "\n", "
\n", " \n", "
\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "nbsphinx": "hidden", "tags": [] }, "outputs": [], "source": [ "import os # Взаимодействие с файловой системой\n", "import sys # Доступ к некоторым переменным и функциям Python\n", "\n", "PATH_TO_SOURCE = os.path.abspath(os.path.dirname(globals()['_dh'][0]))\n", "PATH_TO_ROOT = os.path.join(PATH_TO_SOURCE, '..', '..', '..')\n", "\n", "sys.path.insert(0, os.path.abspath(PATH_TO_ROOT))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Импорт необходимых инструментов" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from oceanai.modules.lab.build import Run" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Сборка" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:07:45] OCEANAI - персональные качества личности человека:**
    Авторы:
        Рюмина Елена [ryumina_ev@mail.ru]
        Рюмин Дмитрий [dl_03.03.1991@mail.ru]
        Карпов Алексей [karpov@iias.spb.su]
    Сопровождающие:
        Рюмина Елена [ryumina_ev@mail.ru]
        Рюмин Дмитрий [dl_03.03.1991@mail.ru]
    Версия: 1.0.0a40
    Лицензия: BSD License

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_b5 = Run(\n", " lang = 'ru', # Язык\n", " color_simple = '#333', # Цвет обычного текста (шестнадцатеричный код)\n", " color_info = '#1776D2', # Цвет текста содержащего информацию (шестнадцатеричный код)\n", " color_err = '#FF0000', # Цвет текста содержащего ошибку (шестнадцатеричный код)\n", " color_true = '#008001', # Цвет текста содержащего положительную информацию (шестнадцатеричный код)\n", " bold_text = True, # Жирное начертание текста\n", " num_to_df_display = 30, # Количество строк для отображения в таблицах\n", " text_runtime = 'Время выполнения', # Текст времени выполнения\n", " metadata = True # Отображение информации о библиотеке\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Получение и отображение версий установленных библиотек\n", "\n", "> - `_b5.df_pkgs_` - DataFrame c версиями установленных библиотек" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PackageVersion
1OpenCV4.10.0
2MediaPipe0.10.14
3NumPy1.26.4
4SciPy1.14.1
5Pandas2.2.3
6Scikit-learn1.5.2
7OpenSmile2.5.0
8Librosa0.10.2.post1
9AudioRead3.0.1
10IPython8.28.0
11Requests2.32.3
12JupyterLab4.2.5
13LIWC0.5.0
14Transformers4.45.1
15Sentencepiece0.2.0
16Torch2.4.1+cu118
17Torchaudio2.4.1+cu118
18Torchvision0.19.1+cu118
\n", "
" ], "text/plain": [ " Package Version\n", "1 OpenCV 4.10.0\n", "2 MediaPipe 0.10.14\n", "3 NumPy 1.26.4\n", "4 SciPy 1.14.1\n", "5 Pandas 2.2.3\n", "6 Scikit-learn 1.5.2\n", "7 OpenSmile 2.5.0\n", "8 Librosa 0.10.2.post1\n", "9 AudioRead 3.0.1\n", "10 IPython 8.28.0\n", "11 Requests 2.32.3\n", "12 JupyterLab 4.2.5\n", "13 LIWC 0.5.0\n", "14 Transformers 4.45.1\n", "15 Sentencepiece 0.2.0\n", "16 Torch 2.4.1+cu118\n", "17 Torchaudio 2.4.1+cu118\n", "18 Torchvision 0.19.1+cu118" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.004 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_b5.libs_vers(runtime = True, run = True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Анализ аудио информации (формированияе и загрузка весов моделей)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Формирование нейросетевой архитектуры модели для получения признаков / оценок на базе экспертных признаков\n", "\n", "> - `_b5.audio_model_hc_` - Нейросетевая модель **nn.Module** для получения признаков / оценок на базе экспертных признаков" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:07:45] Формирование нейросетевой архитектуры модели для получения оценок по экспертным признакам (аудио модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.003 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "res_load_audio_model_hc = _b5.load_audio_model_hc(\n", " show_summary = False, # Отображение сформированной нейросетевой архитектуры модели\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Загрузка весов нейросетевой модели для получения признаков / оценок на базе экспертных признаков\n", "\n", "> - `_b5.audio_model_hc_` - Нейросетевая модель **nn.Module** для получения признаков / оценок на базе экспертных признаков" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:07:45] Загрузка весов нейросетевой модели для получения оценок по экспертным признакам (аудио модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:07:47] Загрузка файла \"weights_2022-05-05_11-27-55.pth\" 100.0% ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 2.856 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_save_ = './models' # Директория для сохранения файла\n", "_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n", "\n", "corpus = 'fi'\n", "lang = 'en'\n", "\n", "url = _b5.weights_for_big5_['audio'][corpus]['hc']['googledisk']\n", "\n", "res_load_audio_model_weights_hc = _b5.load_audio_model_weights_hc(\n", " url = url, # Полный путь к файлу с весами нейросетевой модели\n", " force_reload = True, # Принудительная загрузка файла с весами нейросетевой модели из сети\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Формирование нейросетевой архитектуры модели для получения признаков / оценок на базе нейросетевых признаков\n", "\n", "> - `_b5.audio_model_nn_` - Нейросетевая модель **nn.Module** для получения признаков / оценок на базе нейросетевых признаков" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:07:48] Формирование нейросетевой архитектуры для получения оценок по нейросетевым признакам (аудио модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 1.073 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "res_load_audio_model_nn = _b5.load_audio_model_nn(\n", " show_summary = False, # Отображение сформированной нейросетевой архитектуры модели\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Загрузка весов нейросетевой модели для получения признаков / оценок на базе нейросетевых признаков\n", "\n", "> - `_b5.audio_model_nn_` - Нейросетевая модель **nn.Module** для получения признаков / оценок на базе нейросетевых признаков" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:07:49] Загрузка весов нейросетевой модели для получения оценок по нейросетевым признакам (аудио модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:07:51] Загрузка файла \"weights_2022-05-03_07-46-14.pth\"** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 2.298 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_save_ = './models' # Директория для сохранения файла\n", "_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n", "\n", "url = _b5.weights_for_big5_['audio'][corpus]['nn']['googledisk']\n", "\n", "res_load_audio_model_weights_nn = _b5.load_audio_model_weights_nn(\n", " url = url, # Полный путь к файлу с весами нейросетевой модели\n", " force_reload = False, # Принудительная загрузка файла с весами нейросетевой модели из сети\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Анализ видео информации (формирование и загрузка весов моделей)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Формирование нейросетевой архитектуры модели для получения признаков / оценок на базе экспертных признаков\n", "\n", "> - `_b5.video_model_hc_` - Нейросетевая модель **nn.Module** для получения признаков / оценок на базе экспертных признаков" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:07:51] Формирование нейросетевой архитектуры модели для получения оценок по экспертным признакам (видео модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.002 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "res_load_video_model_hc = _b5.load_video_model_hc(\n", " lang = lang,\n", " show_summary = False, # Отображение сформированной нейросетевой архитектуры модели\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Загрузка весов нейросетевой модели для получения признаков / оценок на базе экспертных признаков\n", "\n", "> - `_b5.video_model_hc_` - Нейросетевая модель **nn.Module** для получения признаков / оценок на базе экспертных признаков" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:07:51] Загрузка весов нейросетевой модели для получения оценок по экспертным признакам (видео модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:07:54] Загрузка файла \"weights_2022-08-27_18-53-35.pth\" 100.0% ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 2.73 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_save_ = './models' # Директория для сохранения файла\n", "_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n", "\n", "url = _b5.weights_for_big5_['video'][corpus]['hc']['googledisk']\n", "\n", "res_load_video_model_weights_hc = _b5.load_video_model_weights_hc(\n", " url = url, # Полный путь к файлу с весами нейросетевой модели\n", " force_reload = True, # Принудительная загрузка файла с весами нейросетевой модели из сети\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Формирование нейросетевой архитектуры для получения нейросетевых признаков\n", "\n", "> - `_b5.video_model_deep_fe_` - Нейросетевая модель **nn.Module** для получения нейросетевых признаков" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:07:54] Формирование нейросетевой архитектуры для получения нейросетевых признаков (видео модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.137 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "res_load_video_model_deep_fe = _b5.load_video_model_deep_fe(\n", " show_summary = False, # Отображение сформированной нейросетевой архитектуры модели\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Загрузка весов нейросетевой модели для получения нейросетевых признаков (видео модальность)\n", "\n", "> - `_b5.video_model_deep_fe_` - Нейросетевая модель **nn.Module** для получения нейросетевых признаков" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:07:54] Загрузка весов нейросетевой модели для получения нейросетевых признаков (видео модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:07:58] Загрузка файла \"weights_2022-11-01_12-27-07.pth\" 100.0% ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 4.247 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_save_ = './models' # Директория для сохранения файла\n", "_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n", "\n", "url = _b5.weights_for_big5_['video'][corpus]['fe']['googledisk']\n", "\n", "res_load_video_model_weights_deep_fe = _b5.load_video_model_weights_deep_fe(\n", " url = url, # Полный путь к файлу с весами нейросетевой модели\n", " force_reload = True, # Принудительная загрузка файла с весами нейросетевой модели из сети\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Формирование нейросетевой архитектуры модели для получения признаков / оценок на базе нейросетевых признаков\n", "\n", "> - `_b5.video_model_nn_` - Нейросетевая модель **nn.Module** для получения признаков / оценок на базе нейросетевых признаков" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:07:58] Формирование нейросетевой архитектуры для получения оценок по нейросетевым признакам (видео модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.022 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "res_load_video_model_nn = _b5.load_video_model_nn(\n", " show_summary = False, # Отображение сформированной нейросетевой архитектуры модели\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Загрузка весов нейросетевой модели для получения признаков / оценок на базе нейросетевых признаков\n", "\n", "> - `_b5.video_model_nn_` - Нейросетевая модель **nn.Module** для получения признаков / оценок на базе нейросетевых признаков" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:07:58] Загрузка весов нейросетевой модели для получения оценок по нейросетевым признакам (видео модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:08:02] Загрузка файла \"weights_2022-03-22_16-31-48.pth\"** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 3.544 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_save_ = './models' # Директория для сохранения файла\n", "_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n", "\n", "url = _b5.weights_for_big5_['video'][corpus]['nn']['googledisk']\n", "\n", "res_load_video_model_weights_nn = _b5.load_video_model_weights_nn(\n", " url = url, # Полный путь к файлу с весами нейросетевой модели\n", " force_reload = False, # Принудительная загрузка файла с весами нейросетевой модели из сети\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Анализ текстовой информации (формирование и загрузка весов моделей)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Загрузка словаря с экспертными признаками" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:08:02] Загрузка словаря с экспертными признаками ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:08:02] Загрузка файла \"LIWC2007.txt\" 100.0% ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.235 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_save_ = './models' # Директория для сохранения файла\n", "_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n", "\n", "res_load_text_features = _b5.load_text_features(\n", " force_reload = True, # Принудительная загрузка файла\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Формирование токенизатора и нейросетевой модели машинного перевода (`RU -> EN`)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:08:02] Формирование токенизатора и нейросетевой модели машинного перевода ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 1.897 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "res_setup_translation_model = _b5.setup_translation_model(\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Формирование токенизатора и нейросетевой модели BERT (`для кодирования слов`)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:08:04] Формирование токенизатора и нейросетевой модели BERT ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:08:04] Загрузка файла \"bert-base-multilingual-cased.zip\"** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:08:04] Формирование токенизатора и нейросетевой модели BERT ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:08:04] Загрузка файла \"bert-base-multilingual-cased.zip\"** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:08:04] Разархивирование архива \"bert-base-multilingual-cased.zip\" ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 1.109 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_save_ = './models' # Директория для сохранения файла\n", "_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n", "\n", "res_setup_translation_model = _b5.setup_bert_encoder(\n", " force_reload = False, # Принудительная загрузка файла\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Формирование нейросетевой архитектуры модели для получения признаков / оценок на базе экспертных признаков\n", "\n", "> - `_b5.text_model_hc_` - Нейросетевая модель **nn.Module** для получения признаков / оценок на базе экспертных признаков" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:08:05] Формирование нейросетевой архитектуры модели для получения оценок по экспертным признакам (текстовая модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.001 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "res_load_text_model_hc_fi = _b5.load_text_model_hc(\n", " corpus = corpus, # Корпус для тестирования нейросетевой модели\n", " show_summary = False, # Отображение сформированной нейросетевой архитектуры модели\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Загрузка весов нейросетевой модели для получения признаков / оценок на базе экспертных признаков\n", "\n", "> - `_b5.text_model_hc_` - Нейросетевая модель **nn.Module** для получения признаков / оценок на базе экспертных признаков" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:08:05] Загрузка весов нейросетевой модели для получения оценок по экспертным признакам (текстовая модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:08:08] Загрузка файла \"weights_2023-07-15_10-52-15.pth\" 100.0% ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 2.456 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_save_ = './models' # Директория для сохранения файла\n", "_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n", "\n", "url = _b5.weights_for_big5_['text'][corpus]['hc']['googledisk']\n", "\n", "res_load_text_model_weights_hc_fi = _b5.load_text_model_weights_hc(\n", " url = url, # Полный путь к файлу с весами нейросетевой модели\n", " force_reload = True, # Принудительная загрузка файла с весами нейросетевой модели из сети\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Формирование нейросетевой архитектуры модели для получения признаков / оценок на базе нейросетевых признаков\n", "\n", "> - `_b5.text_model_nn_` - Нейросетевая модель **nn.Module** для получения признаков / оценок на базе нейросетевых признаков" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:08:08] Формирование нейросетевой архитектуры для получения оценок по нейросетевым признакам (текстовая модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.002 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "res_load_text_model_nn_fi = _b5.load_text_model_nn(\n", " corpus = corpus, # Корпус для тестирования нейросетевой модели\n", " show_summary = False, # Отображение сформированной нейросетевой архитектуры модели\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Загрузка весов нейросетевой модели для получения признаков / оценок на базе нейросетевых признаков\n", "\n", "> - `_b5.text_model_nn_` - Нейросетевая модель **nn.Module** для получения признаков / оценок на базе нейросетевых признаков" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:08:08] Загрузка весов нейросетевой модели для получения оценок по нейросетевым признакам (текстовая модальность) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:08:10] Загрузка файла \"weights_2023-07-03_15-01-08.pth\" 100.0% ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 2.499 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_save_ = './models' # Директория для сохранения файла\n", "_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n", "\n", "url = _b5.weights_for_big5_['text'][corpus]['nn']['googledisk']\n", "\n", "res_load_text_model_weights_nn_fi = _b5.load_text_model_weights_nn(\n", " url = url, # Полный путь к файлу с весами нейросетевой модели\n", " force_reload = True, # Принудительная загрузка файла с весами нейросетевой модели из сети\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Анализ мультимодальной информации (формирование, загрузка весов моделей, получение оценок персональных качеств)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Формирование нейросетевой архитектуры модели для получения оценок персональных качеств\n", "\n", "> - `_b5.avt_model_b5_` - Нейросетевая модель **nn.Module** для получения оценок персональных качеств" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:08:10] Формирование нейросетевой архитектуры модели для получения оценок персональных качеств (мультимодальное объединение) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.013 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "res_load_avt_model_b5 = _b5.load_avt_model_b5(\n", " show_summary = False, # Отображение сформированной нейросетевой архитектуры модели\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Загрузка весов нейросетевой модели для получения оценок персональных качеств\n", "\n", "> - `_b5.avt_model_b5_` - Нейросетевая модель **nn.Module** для получения оценок персональных качеств" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 22:08:10] Загрузка весов нейросетевой модели для получения оценок персональных качеств (мультимодальное объединение) ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 22:08:14] Загрузка файла \"avt_fi_2023-12-03_11-36-51.pth\"** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 4.213 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_save_ = './models' # Директория для сохранения файла\n", "_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n", "\n", "url = _b5.weights_for_big5_['avt'][corpus]['b5']['googledisk']\n", "\n", "res_load_avt_model_weights_b5 = _b5.load_avt_model_weights_b5(\n", " url = url,\n", " force_reload = False, # Принудительная загрузка файла с весами нейросетевой модели из сети\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Получение прогнозов (мультимодальное объединение)\n", "\n", "> - `_b5.df_files_` - DataFrame с данными\n", "> - `_b5.df_accuracy_` - DataFrame с результатами вычисления точности" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 23:43:10] Извлечение признаков (экспертных и нейросетевых) из текста ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 23:43:10] Получение прогнозов и вычисление точности (мультимодальное объединение) ...**

    2000 из 2000 (100.0%) ... test80_25\\_Q4wOgixh7E.004.mp4 ...

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOpennessConscientiousnessExtraversionAgreeablenessNon-Neuroticism
Person ID
113kjwEtSyXc.003.mp40.5520890.548980.4780670.5659560.539556
21Lv72Si4GnY.000.mp40.5627050.4214530.4925220.5725430.504166
31uC-2TZqplE.003.mp40.4458070.5204220.3734540.5512660.426558
42Z8Xi_DTlpI.000.mp40.6707530.6663970.6258570.5689440.616438
53df_Uk9EmwU.002.mp40.6716770.5855790.6144240.6583650.624947
63gmc2kLV4Bo.003.mp40.6386040.73320.5651750.6336070.604074
73hKgh9AB3tk.003.mp40.5262460.4964520.3906660.5202260.470266
83S72dDIm1fM.005.mp40.6442480.6342520.5566510.6557430.648829
93tPq9fNOXZQ.000.mp40.5756050.5433850.4472340.5665040.523745
1043tayteIFRk.001.mp40.5223060.5469570.4079930.5679650.563569
114RKQGZzPClk.000.mp40.6330640.5449910.5482490.6136510.592643
126zm71IHOCZA.005.mp40.4559920.5228270.3375520.5124410.473446
137qGYGbIg45c.001.mp40.4170320.4510340.2824740.3918470.355023
148YQKwMdiaAE.003.mp40.5744650.4913990.4235530.4324330.450023
159Crw2RtrBcY.005.mp40.7428640.7588210.4667640.6876330.697788
169eNHxfOV2Kg.005.mp40.6196690.5791570.5494660.5741190.537651
179J-KIPMQmqk.002.mp40.6274980.6639250.4444210.619940.600624
189RfE2-aTvaM.002.mp40.5788010.5017430.4686790.5914840.549758
199_6auSk_wkY.002.mp40.6260520.5365710.5671910.5838910.562382
20aaylz9A9K80.000.mp40.6972460.5202940.6123630.6448340.655316
21Af_F0IzHK6o.002.mp40.5968010.5294430.4706620.5819810.547758
22Ah5PEPT4xbo.000.mp40.5237890.458580.4174470.5119260.45604
23AotbiNsU85A.003.mp40.4238350.4746830.3211580.4170330.41548
24BLc_GvsbI1U.001.mp40.6963470.6527360.6249220.6787260.658686
25bLOSPQ8MAC8.005.mp40.5251250.6033760.3763190.5420490.503826
26bPLhV0PGR50.001.mp40.5563690.5876920.3920110.5295140.522235
27bYXRyimxh7A.001.mp40.6177630.4398090.4788070.5636950.562938
28ch2BcBv4SdQ.003.mp40.6694540.6089260.6098150.6496370.650794
29cpch8WDydcM.004.mp40.5990990.552010.515070.6079640.563158
30De4i7-FX9Og.002.mp40.6639710.6120640.5799380.6326530.623737
\n", "
" ], "text/plain": [ " Path Openness Conscientiousness Extraversion \\\n", "Person ID \n", "1 13kjwEtSyXc.003.mp4 0.552089 0.54898 0.478067 \n", "2 1Lv72Si4GnY.000.mp4 0.562705 0.421453 0.492522 \n", "3 1uC-2TZqplE.003.mp4 0.445807 0.520422 0.373454 \n", "4 2Z8Xi_DTlpI.000.mp4 0.670753 0.666397 0.625857 \n", "5 3df_Uk9EmwU.002.mp4 0.671677 0.585579 0.614424 \n", "6 3gmc2kLV4Bo.003.mp4 0.638604 0.7332 0.565175 \n", "7 3hKgh9AB3tk.003.mp4 0.526246 0.496452 0.390666 \n", "8 3S72dDIm1fM.005.mp4 0.644248 0.634252 0.556651 \n", "9 3tPq9fNOXZQ.000.mp4 0.575605 0.543385 0.447234 \n", "10 43tayteIFRk.001.mp4 0.522306 0.546957 0.407993 \n", "11 4RKQGZzPClk.000.mp4 0.633064 0.544991 0.548249 \n", "12 6zm71IHOCZA.005.mp4 0.455992 0.522827 0.337552 \n", "13 7qGYGbIg45c.001.mp4 0.417032 0.451034 0.282474 \n", "14 8YQKwMdiaAE.003.mp4 0.574465 0.491399 0.423553 \n", "15 9Crw2RtrBcY.005.mp4 0.742864 0.758821 0.466764 \n", "16 9eNHxfOV2Kg.005.mp4 0.619669 0.579157 0.549466 \n", "17 9J-KIPMQmqk.002.mp4 0.627498 0.663925 0.444421 \n", "18 9RfE2-aTvaM.002.mp4 0.578801 0.501743 0.468679 \n", "19 9_6auSk_wkY.002.mp4 0.626052 0.536571 0.567191 \n", "20 aaylz9A9K80.000.mp4 0.697246 0.520294 0.612363 \n", "21 Af_F0IzHK6o.002.mp4 0.596801 0.529443 0.470662 \n", "22 Ah5PEPT4xbo.000.mp4 0.523789 0.45858 0.417447 \n", "23 AotbiNsU85A.003.mp4 0.423835 0.474683 0.321158 \n", "24 BLc_GvsbI1U.001.mp4 0.696347 0.652736 0.624922 \n", "25 bLOSPQ8MAC8.005.mp4 0.525125 0.603376 0.376319 \n", "26 bPLhV0PGR50.001.mp4 0.556369 0.587692 0.392011 \n", "27 bYXRyimxh7A.001.mp4 0.617763 0.439809 0.478807 \n", "28 ch2BcBv4SdQ.003.mp4 0.669454 0.608926 0.609815 \n", "29 cpch8WDydcM.004.mp4 0.599099 0.55201 0.51507 \n", "30 De4i7-FX9Og.002.mp4 0.663971 0.612064 0.579938 \n", "\n", " Agreeableness Non-Neuroticism \n", "Person ID \n", "1 0.565956 0.539556 \n", "2 0.572543 0.504166 \n", "3 0.551266 0.426558 \n", "4 0.568944 0.616438 \n", "5 0.658365 0.624947 \n", "6 0.633607 0.604074 \n", "7 0.520226 0.470266 \n", "8 0.655743 0.648829 \n", "9 0.566504 0.523745 \n", "10 0.567965 0.563569 \n", "11 0.613651 0.592643 \n", "12 0.512441 0.473446 \n", "13 0.391847 0.355023 \n", "14 0.432433 0.450023 \n", "15 0.687633 0.697788 \n", "16 0.574119 0.537651 \n", "17 0.61994 0.600624 \n", "18 0.591484 0.549758 \n", "19 0.583891 0.562382 \n", "20 0.644834 0.655316 \n", "21 0.581981 0.547758 \n", "22 0.511926 0.45604 \n", "23 0.417033 0.41548 \n", "24 0.678726 0.658686 \n", "25 0.542049 0.503826 \n", "26 0.529514 0.522235 \n", "27 0.563695 0.562938 \n", "28 0.649637 0.650794 \n", "29 0.607964 0.563158 \n", "30 0.632653 0.623737 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 23:43:10] Точность по отдельным персональным качествам личности человека ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpennessConscientiousnessExtraversionAgreeablenessNon-NeuroticismMean
Metrics
MAE0.07880.07510.07040.0770.0760.0755
Accuracy0.92120.92490.92960.9230.9240.9245
\n", "
" ], "text/plain": [ " Openness Conscientiousness Extraversion Agreeableness \\\n", "Metrics \n", "MAE 0.0788 0.0751 0.0704 0.077 \n", "Accuracy 0.9212 0.9249 0.9296 0.923 \n", "\n", " Non-Neuroticism Mean \n", "Metrics \n", "MAE 0.076 0.0755 \n", "Accuracy 0.924 0.9245 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 23:43:10] Средняя средних абсолютных ошибок: 0.0755, средняя точность: 0.9245 ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**Лог файлы успешно сохранены ...**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 5696.146 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "True" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_dataset_ = 'E:/Databases/FirstImpressionsV2/test' # Директория набора данных\n", "# Директории не входящие в выборку\n", "_b5.ignore_dirs_ = []\n", "# Названия ключей для DataFrame набора данных\n", "_b5.keys_dataset_ = ['Path', 'Openness', 'Conscientiousness', 'Extraversion', 'Agreeableness', 'Non-Neuroticism']\n", "_b5.ext_ = ['.mp4'] # Расширения искомых файлов\n", "\n", "# Полный путь к файлу с верными предсказаниями для подсчета точности\n", "url_accuracy = _b5.true_traits_[corpus]['googledisk']\n", "\n", "_b5.get_avt_predictions(\n", " depth = 1, # Глубина иерархии для получения аудио и видеоданных\n", " recursive = False, # Рекурсивный поиск данных\n", " sr = 44100, # Частота дискретизации\n", " window_audio = 2, # Размер окна сегмента аудио сигнала (в секундах)\n", " step_audio = 1, # Шаг сдвига окна сегмента аудио сигнала (в секундах)\n", " reduction_fps = 5, # Понижение кадровой частоты\n", " window_video = 10, # Размер окна сегмента видео сигнала (в секундах)\n", " step_video = 5, # Шаг сдвига окна сегмента видео сигнала (в секундах)\n", " asr = False, # Распознавание речи\n", " lang = lang, # Выбор языка\n", " accuracy = True, # Вычисление точности\n", " url_accuracy = url_accuracy,\n", " logs = True, # При необходимости формировать LOG файл\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.11" } }, "nbformat": 4, "nbformat_minor": 4 }