# Using previous model-last as base model in prodigy train

**URL:** <https://support.prodi.gy/t/using-previous-model-last-as-base-model-in-prodigy-train/6211>\
**Category:** Uncategorized\
**Created:** [January 3, 2023, 1:48am UTC](https://support.prodi.gy/t/using-previous-model-last-as-base-model-in-prodigy-train/6211 "2023-01-03T01:48:54Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![joebuckle](https://avatars.discourse-cdn.com/v4/letter/j/ee7513/32.png) [@joebuckle](https://support.prodi.gy/u/joebuckle)\
**Post date:** [January 3, 2023, 1:48am UTC](https://support.prodi.gy/t/using-previous-model-last-as-base-model-in-prodigy-train/6211/1 "2023-01-03T01:48:54Z")

</div>

In our previous iterations, we were always running "prodigy train" without using a base model for text classification (multi-label), and we got to as high as .82 as the score. When I opted to use this previously trained model-last as the --base-model for our latest iteration, we got to .90+. Is this a good idea? Or is this overfitting? We are using spacy.TextCatEnsemble.v2 as the architecture.

Thanks.

---

<div class="post-metadata">

**Author:** ![ryanwesslen](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/ryanwesslen/32/2969_2.png) [@ryanwesslen](https://support.prodi.gy/u/ryanwesslen)\
**Post date:** [January 3, 2023, 7:44pm UTC](https://support.prodi.gy/t/using-previous-model-last-as-base-model-in-prodigy-train/6211/2 "2023-01-03T19:44:00Z")

</div>

hi @joebuckle!

> [@joebuckle](#):
>
> When I opted to use this previously trained model-last as the --base-model for our latest iteration, we got to .90+. Is this a good idea? Or is this overfitting?

Great question! In general, we recommend against this:

> [@Commands for training NER-Model in prodigy](https://support.prodi.gy/t/commands-for-training-ner-model-in-prodigy/5227/6):
>
> In that case, you can just use the --base-model argument, e.g. --base-model /path/to/your/model. In general, we'd recommend retraining a model on all annotations from scratch, rather than updating a previously trained artifact, since this will give you better and more reliable results. But the base model setting can still be useful if you want to update one of the trained pipelines provided by spaCy etc.

Yes - it's typically better to train a model from scratch, using the same full corpus (instead of updating the same artifact over and over again, which often makes it much harder to avoid overfitting and forgetting effects).

The one thing you may want to do (if you're not already) is to modify your base-model with different vectors (e.g., `en_core_web_md` or `en_core_web_lg`). There's a bit about it in the docs:

> Using pretrained word embeddings to initialize your model is easy and can make a big difference. If you’re using spaCy, try using the [`en_core_web_lg`](https://spacy.io/models/en#en_core_web_lg) model as the base model. If you’re working with domain-specific texts, you can train your own vectors and [create a base model](https://spacy.io/usage/linguistic-features#adding-vectors) with them.

---

<div class="post-metadata">

**Author:** ![joebuckle](https://avatars.discourse-cdn.com/v4/letter/j/ee7513/32.png) [@joebuckle](https://support.prodi.gy/u/joebuckle)\
**Post date:** [January 4, 2023, 6:04am UTC](https://support.prodi.gy/t/using-previous-model-last-as-base-model-in-prodigy-train/6211/3 "2023-01-04T06:04:48Z")

</div>

Thank you for informing me that using the previously trained model as the base model is not a good idea. 🙂

I tried to use `en_core_web_md` and `en_core_web_lg` as base model, but it doesn't seem to improve the textcat\_multilabel as compared to without using a base model.
