Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Store metadata of project training #329

Open
3 of 11 tasks
juhoinkinen opened this issue Sep 18, 2019 · 4 comments
Open
3 of 11 tasks

Store metadata of project training #329

juhoinkinen opened this issue Sep 18, 2019 · 4 comments
Milestone

Comments

@juhoinkinen
Copy link
Member

juhoinkinen commented Sep 18, 2019

It could be valuable to store some info about training of a project, which could also be shown by the CLI commands and REST API /projects/{project_id} method.

Currently show-project outputs the following:

Project ID:        tfidf-fi
Project Name:      TF-IDF Finnish
Language:          fi
Vocabulary:        yso
Vocab language:    fi
Access:            public
Trained:           True
Modification time: 2023-04-21 10:33:16

Maybe some of the following data could be added:

  • training state: trained or not-trained
  • vocabulary state: loaded or not-loaded
  • timestamp of the training run
  • version of Annif that has been used in training/learning the project
  • number of documents used to train the project
  • name(s) of the file(s) via which the documents was/were given when training the project
  • used backend parameters
  • backend name
  • duration of the training run
  • size of the model on disk
  • timestamp(s) of learning run(s)

Also some more details on the training data (what?) and something that now goes to the debug log (what?).

These data for could be stored e.g. in a metadata file data/projects/the_project/annif_metadata along with the model file(s).

Edit: converted bullet list to checkbox list.

@osma osma added this to the Long term milestone Sep 30, 2019
@osma
Copy link
Member

osma commented Sep 30, 2019

These are all good ideas. Also it could be useful to have a "failed" status for projects/backends where the initialization fails for some reason - but that means making the initialization more careful.

I think it makes sense to start small and implement status features one (or two) at a time in separate PRs. For example trained vs. not-trained would be a good start.

Marking the issue as Long term because there are so many ideas here, but that doesn't mean we could implement some of them very soon.

@osma osma modified the milestones: Long term, 0.48 May 12, 2020
@osma
Copy link
Member

osma commented May 12, 2020

Tagging with 0.48 to indicate that some work in this direction (but not everything) should be done in that release

@osma osma modified the milestones: 0.48, Long term Jan 8, 2021
@juhoinkinen juhoinkinen changed the title Store data about training a project to show by list-projects/show-project command Store metadata of project training Jun 18, 2024
@psmukhopadhyay
Copy link

Does this element "number of examples in the training data" mean the number of records with which the model is trained? It will be very helpful if available in the show-project output. Another thought - the 'eval' command may store major metrics like F1@5, NDCG etc in the annif_metadata file every time it runs, otherwise (not run once,) F1@5 or NDCG may display 'NA'.

@juhoinkinen
Copy link
Member Author

Does this element "number of examples in the training data" mean the number of records with which the model is trained? It will be very helpful if available in the show-project output.

Yes, I actually just modified that item in the list to "number of documents used to train the project" (for clarity) and added "name(s) of the file(s) via which the documents was/were given when training the project" (I have needed that information often; however, the full path to the file(s) should not be stored for security reasons), and reordered the list slightly to.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants