{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Формирование нейросетевой архитектуры модели и загрузка ее весов для получения признаков / оценок на базе нейросетевых признаков (текстовая модальность)\n",
"\n",
"
\n",
"\n",
"> - `_b5.text_model_nn_` - Нейросетевая модель **nn.Module** для признаков / оценок на базе нейросетевых признаков"
]
},
{
"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 19:44:44]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": [
"### Формирование нейросетевой архитектуры модели (`FI V2`)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"**[2024-10-08 19:44:44]Формирование нейросетевой архитектуры для получения оценок по нейросетевым признакам (текстовая модальность) ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**--- Время выполнения: 0.004 сек. ---**"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"res_load_text_model_nn_fi = _b5.load_text_model_nn(\n",
" corpus = \"fi\", # Корпус для тестирования нейросетевой модели\n",
" show_summary = False, # Отображение сформированной нейросетевой архитектуры модели\n",
" out = True, # Отображение\n",
" runtime = True, # Подсчет времени выполнения\n",
" run = True # Блокировка выполнения\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Загрузка весов нейросетевой модели"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"**[2024-10-08 19:44:44]Загрузка весов нейросетевой модели для получения оценок по нейросетевым признакам (текстовая модальность) ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**[2024-10-08 19:44:46]Загрузка файла \"weights_2023-07-03_15-01-08.pth\" 100.0% ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**--- Время выполнения: 2.488 сек. ---**"
],
"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']['fi']['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": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"text_model_nn(\n",
" (lstm1): LSTM(768, 32, batch_first=True, bidirectional=True)\n",
" (attention): Attention()\n",
" (dense1): Linear(in_features=64, out_features=128, bias=True)\n",
" (addition): Addition()\n",
" (dense2): Linear(in_features=256, out_features=128, bias=True)\n",
" (final_dense): Linear(in_features=128, out_features=5, bias=True)\n",
")"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"_b5.text_model_nn_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Формирование нейросетевой архитектуры модели (`MuPTA`)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"**[2024-10-08 19:44:46]Формирование нейросетевой архитектуры для получения оценок по нейросетевым признакам (текстовая модальность) ...** "
],
"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_mupta = _b5.load_text_model_nn(\n",
" corpus = \"mupta\", # Корпус для тестирования нейросетевой модели\n",
" show_summary = False, # Отображение сформированной нейросетевой архитектуры модели\n",
" out = True, # Отображение\n",
" runtime = True, # Подсчет времени выполнения\n",
" run = True # Блокировка выполнения\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Загрузка весов нейросетевой модели"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"**[2024-10-08 19:44:47]Загрузка весов нейросетевой модели для получения оценок по нейросетевым признакам (текстовая модальность) ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**[2024-10-08 19:44:49]Загрузка файла \"weights_2023-07-16_18-12-01.pth\" 100.0% ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**--- Время выполнения: 2.536 сек. ---**"
],
"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']['mupta']['nn']['googledisk']\n",
"\n",
"res_load_text_model_weights_nn_mupta = _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": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"text_model_nn(\n",
" (lstm1): LSTM(768, 32, batch_first=True, bidirectional=True)\n",
" (attention): Attention()\n",
" (dense1): Linear(in_features=64, out_features=128, bias=True)\n",
" (addition): Addition()\n",
" (dense2): Linear(in_features=256, out_features=128, bias=True)\n",
" (final_dense): Linear(in_features=128, out_features=5, bias=True)\n",
")"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"_b5.text_model_nn_"
]
}
],
"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
}