Я тренирую (с нуля) новый набор сущностей и делаю в точности так, как описано в spaCy tutorial , однако моя потеря - это плато, и большое количество эпох не помогает.
Мои данные:
9 различных организаций, 15000 обучающих данных (предложений).Потеря после 20 эпох:
Loaded model 'en'
Losses {'ner': 25461.3508122763}
Losses {'ner': 17003.450728844182}
Losses {'ner': 15725.198527784352}
Losses {'ner': 15315.754479839785}
Losses {'ner': 14980.468680851985}
Losses {'ner': 14716.52629194191}
Losses {'ner': 14346.623731715972}
Losses {'ner': 14463.972966984807}
Losses {'ner': 14195.106732198006}
Losses {'ner': 14058.390174787504}
Losses {'ner': 13875.850727875884}
Losses {'ner': 13859.096326599261}
Losses {'ner': 13614.887464660655}
Losses {'ner': 13512.779816124807}
Losses {'ner': 13388.69595626908}
Losses {'ner': 13496.388241585315}
Losses {'ner': 13530.602194116611}
Losses {'ner': 13245.709490846923}
Losses {'ner': 13219.483523900466}
Losses {'ner': 13189.088232180386}
Вопрос 1:
Каков наилучший способ организации обучающих данных, если в одном предложении есть несколько сущностей?Должен ли я объединить все сущности в списке или лучше тренироваться с одной сущностью?
Например:
("Horses and dogs are too tall and they pretend to care about your feelings", {'entities': [(0, 6, 'ANIMAL'), (11, 15, 'ANIMAL')]})
или лучше разделить:
("Horses and dogs are too tall and they pretend to care about your feelings", {'entities': [(0, 6, 'ANIMAL')]}),
("Horses and dogs are too tall and they pretend to care about your feelings", {'entities': [(11, 15, 'ANIMAL')]})
Вопрос 2:
Должен ли я также включать пустые предложения (без сущностей)?
("The new electric cars is great!", {'entities': []})
Очевидно, модель предсказывает не так уж плохо (f1 ~0.7), однако мне интересно, каковы наилучшие практики для тонкой настройки модели (кроме использования Prodigy поверх этой обученной модели).