Skip to content

Commit

Permalink
synchronise topicnet
Browse files Browse the repository at this point in the history
  • Loading branch information
xtonev committed Oct 24, 2019
1 parent c75246e commit 2d3e594
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 12 deletions.
14 changes: 4 additions & 10 deletions topicnet/cooking_machine/README-rus.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
# Cooking Machine
[English version](README.md)

### Общее описание
Эксперимент состоит из моделей и кубиков, которые добавляют в эти модели новые регуляризаторы и осущетвляют подбор различных параметров тематичеких моделей на каждом этапе обучения.
Эксперимент состоит из моделей и кубиков, которые добавляют в эти модели новые регуляризаторы и осущеcтвляют подбор различных параметров тематичеcких моделей на каждом этапе обучения.

Важно отметить, что на каждом шаге эксперимента используется один и тот же кубик для дальнейшей настройки моделей.
Если для разным тематических моделей после очередного этапа обучения применяются разные кубики, то эксперимент разделяется на два отдельных эксперимента, которые отличаются данным и последующими этапами обучения, иными словами последовательностями применения кубиков с соответствующими им параметрам.
Объект эксперимента содержит всю необходимую информацию для воспроизведения данного эксперимента с нуля и изменяется в процессе добавления кубиков пользователя.
При использовании кубиков также изменяется информация о моделях и их описание, создаются новые модели копии основной, которые соответствуют перебираемым внутри кубика параметрам.
Описание моделей также позволяет построить их по описанию и создать скрипт их создания и обучения.
Таким образом, ключевым объектом - является кубик, а точнее их последовательность, которые взаимодействуют с объектами модель и эксперимент.

#### Кубик
Смысловая единица обучения модели, которая вводит регуляризатор/регуляризаторы и перебирает его/их коэффициенты по сетке.
Внутри себя кубик вносит изменения в объекты модель (он еще и создает новые модели) и в объект эксперимент.
Кубик -- это сущность, задающая некоторое преобразование над моделями ("инКУБатор"). Обычно это преобразование параметрическое, и эти параметры перебираются по сетке; на выходе кубика -- семейство новых моделей (копии основной), которые соответствуют перебираемым внутри кубика параметрам.

**Вход:** модель или модели, регуляризатор или регуляризаторы, параметры перебора (сетка), число итераций или метод выбора числа итераций, внешние метрики (которых нет в BigArtm, опционально).
**Выход:** модели (их число совпадает с числом параметров в сетке или наборов параметров, если сетка многомерная).
Expand All @@ -35,7 +29,7 @@
* хранит результаты обучения.

#### Эксперимент
Смысловая единица описания эксперимента с обучением тематических моделей:
Объект Experiment содержит всю необходимую информацию для воспроизведения данного эксперимента с нуля и изменяется в процессе добавления кубиков пользователя.

* хранит своё описание;
* выводит описание в human-readable виде;
Expand Down
32 changes: 32 additions & 0 deletions topicnet/cooking_machine/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Cooking Machine
[Русская версия](README-rus.md)

#### Cube
A unit of model training pipeline. This unit encapsulates an action over one or many model hyperparameters. This action and hyperparameter space are stored as cube properties and then saved in Experiment.

**Input:** model or list of models, regularizer or list of them, hyperparameter search sapce(grid), iterations number or a function defining it, custom metrics.
**Output:** models.
**Body:** performs actions over `artm` model. Can modify, create new models and alter their Experiment.

#### Model
A class containing Topic Model and its description:

* stores topic model description;
* outputs the description in human-readable form;
* the model can only load and copy itself, the artm-model is an attribute and in order to change it is should be extracted, modified and put back;
* stores experiment id;
* stores parent model id;
* stores model topic names;
* stores regularizers list with their parameters;
* stores modality weights;
* stores save path for data, model and model information;
* stores training metric values.

#### Experiment
Class providing experiment infrastructure:

* keeps the description of all actions on the models;
* provides human-readable log of experiment;
* keeps the model training sequence in memory;
* automaticly runs integrity check;
* able to copy itself.
2 changes: 1 addition & 1 deletion topicnet/cooking_machine/cubes/cube_creator.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class CubeCreator(BaseCube):
"""
DEFAULT_SEED_VALUE = 4

def __init__(self, num_iter: int, parameters, reg_search, strategy=None,
def __init__(self, num_iter: int, parameters, reg_search="grid", strategy=None,
model_class='TopicModel', second_level=False,
tracked_score_function=None, verbose=False):
"""
Expand Down
5 changes: 4 additions & 1 deletion topicnet/cooking_machine/experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
from .routine import is_saveable_model

from .models import BaseModel
from .models.base_model import MODEL_NAME_LENGTH

W_EMPTY_SPECIAL_1 = 'Unable to calculate special functions in query\n'
W_EMPTY_SPECIAL_2 = 'Process failed with following: {}'
Expand Down Expand Up @@ -461,7 +462,9 @@ def load(load_path):

return experiment

def get_description(self, min_len_per_cube: int = 21, len_tree_step: int = 22):
def get_description(self,
min_len_per_cube: int = MODEL_NAME_LENGTH,
len_tree_step: int = MODEL_NAME_LENGTH + 1):
"""
Creates description of the tree that you can print.
Print is good when you use no more than 3 cubes at all.
Expand Down

0 comments on commit 2d3e594

Please sign in to comment.