Нужно знать, как правильно регрессионного тестирования агента Dialogflow - несколько противоречивых вариантов - PullRequest
1 голос
/ 30 апреля 2019

Я работаю с Dialogflow уже несколько месяцев - действительно наслаждайтесь этим инструментом.Тем не менее, для меня очень важно знать, делают ли мои изменения (в обучении) точность отображения намерений со временем лучше или хуже.Я говорил со многими людьми о наилучшем способе сделать это с помощью Dialogflow, и я получил как минимум 4 разных ответа.Вы можете помочь мне здесь?Вот 4 ответа, которые я получил о том, как правильно обучить / протестировать вашего агента.Обратите внимание, что ВСЕ эти ответы включают в себя создание матрицы путаницы ...

  1. «Традиционный» - случайным образом разбейте все ваши входные данные на 80/20% - используйте 80% для обучения и20% для тестирования.Каждый раз, когда вы обучаете своего агента (потому что вы собрали новые входные данные), начинайте процесс заново - это означает, что все ваши входные данные (старые и новые) случайным образом разбиваются на 80/20%.В этой модели часть обучающих данных для одной итерации агента может использоваться в качестве части тестовых данных для другой итерации - и наоборот.Я видел варианты этого варианта (KFold и Monte Carlo).

  2. «Золотой набор» - аналогично вышеописанному, за исключением того, что начальные 80/20% тренировочных и тестовых наборов, которые выиспользуйте для создания вашего первого агента, продолжайте расти со временем по мере добавления дополнительных входных данных.В этой модели, после того как часть входных данных была помечена в качестве обучающих данных, она НИКОГДА не будет использоваться в качестве тестовых данных, а после того, как часть входных данных будет помечена как тестовые данные, она НИКОГДА не будет использоваться в качестве обучающих данных.2 начальных набора данных обучения и тестирования продолжают расти со временем, поскольку новые входные данные случайным образом разделяются на существующие наборы.

  3. "Все данные являются данными обучения - за исключением поддельных данных тестирования«- В этой модели мы используем все входные данные в качестве обучающих данных.Затем мы копируем часть входных данных (20%) и «разбрасываем», то есть вводим символы или слова в 20% -ную часть, и используем их в качестве тестовых данных.

  4. «Все данные являются данными обучения, а некоторые из них также являются данными тестирования» - в этой модели мы используем все входные данные в качестве данных обучения.Затем мы копируем часть входных данных (20%) и используем их в качестве данных тестирования.Другими словами, мы тестируем нашего агента, используя часть наших (неизмененных) обучающих данных.Вариантом этого варианта является то, что вы все равно будете использовать все свои входные данные в качестве обучающих данных, но сортируете свои входные данные по «популярности / использованию» и берите 20% лучших для тестирования данных.

Если бы я былсоздавая бота с нуля, я бы просто выбрал вариант 1 выше.Однако я использую готовый продукт (Dialogflow), и мне не ясно, требуется ли традиционное тестирование.Кажется, что Golden Set (в основном) доставит меня в то же место, что и «традиционный», поэтому у меня нет больших проблем с ним.Вариант № 3 кажется плохим - создание поддельных данных тестирования на многих уровнях кажется проблематичным.И вариант № 4 использует те же данные для тестирования, что и для обучения - что меня пугает.

В любом случае, хотелось бы услышать некоторые мысли по поводу вышеизложенного от экспертов!

...