--- license: mit tags: - generated_from_trainer metrics: - f1 model-index: - name: xlm-roberta-base-finetuned-recipe-all results: [] widget: - text: "1 sheet of frozen puff pastry (thawed)" - text: "1/2 teaspoon fresh thyme, minced" - text: "2-3 medium tomatoes" - text: "1 petit oignon rouge" --- # xlm-roberta-base-finetuned-recipe-all This model is a fine-tuned version of [xlm-roberta-base](https://huggingface.co/xlm-roberta-base) on the recipe ingredient [NER dataset](https://github.com/cosylabiiit/recipe-knowledge-mining) from the paper [A Named Entity Based Approach to Model Recipes](https://arxiv.org/abs/2004.12184) (using both the `gk` and `ar` datasets). It achieves the following results on the evaluation set: - Loss: 0.1169 - F1: 0.9672 On the test set it obtains an F1 of 0.9615, slightly above the CRF used in the paper. ## Model description Predicts tag of each token in an ingredient string. | Tag | Significance | Example | | --- | --- | --- | | NAME | Name of Ingredient | salt, pepper | | STATE | Processing State of Ingredient. | ground, thawed | | UNIT | Measuring unit(s). | gram, cup | | QUANTITY | Quantity associated with the unit(s). | 1, 1 1/2 , 2-4 | | SIZE | Portion sizes mentioned. | small, large | | TEMP | Temperature applied prior to cooking. | hot, frozen | | DF (DRY/FRESH) | Fresh otherwise as mentioned. | dry, fresh | ## Intended uses & limitations * Only trained on ingredient strings. * Tags subtokens; tag should be propagated to whole word * Works best with pre-tokenisation splitting of symbols (such as parentheses) and numbers (e.g. 50g -> 50 g) * Typically only detects the first ingredient if there are multiple. * Only trained on two American English data sources * Tags TEMP and DF have very few training data. ## Training and evaluation data Both the `ar` (AllRecipes.com) and `gk` (FOOD.com) datasets obtained from the TSVs from the authors' [repository](https://github.com/cosylabiiit/recipe-knowledge-mining). ## Training procedure It follows the overall procedure from Chapter 4 of [Natural Language Processing with Transformers](https://www.oreilly.com/library/view/natural-language-processing/9781098103231/) by Tunstall, von Wera and Wolf. See the [training notebook](https://github.com/EdwardJRoss/nlp_transformers_exercises/blob/master/notebooks/ch4-ner-recipe-stanford-crf.ipynb) for details. ### Training hyperparameters The following hyperparameters were used during training: - learning_rate: 5e-05 - train_batch_size: 16 - eval_batch_size: 16 - seed: 42 - optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08 - lr_scheduler_type: linear - num_epochs: 4 ### Training results | Training Loss | Epoch | Step | Validation Loss | F1 | |:-------------:|:-----:|:----:|:---------------:|:------:| | 0.2529 | 1.0 | 331 | 0.1303 | 0.9592 | | 0.1164 | 2.0 | 662 | 0.1224 | 0.9640 | | 0.0904 | 3.0 | 993 | 0.1156 | 0.9671 | | 0.0585 | 4.0 | 1324 | 0.1169 | 0.9672 | ### Framework versions - Transformers 4.16.2 - Pytorch 1.9.1 - Datasets 1.18.4 - Tokenizers 0.11.6