Yes, 18687 is due to working of "annotations_per_task". I' am happy on this.
Just a split among 10 annotators.
Now the query starts here.
Actually, annotators will get the text for labelling until it satisfies the condition "annotation_per_task: 3". Meanwhile the progress bar in left side pan showing as 100%. What does this 100% meant to? Below screenshot for your reference.
That's an excellent question. We have docs that describe more of the progress, especially after more recent updates. I highlighted in bold likely the issue:
Under the hood, Prodigy has a few abstractions to separate the different concerns of the application.
The Controller makes sure that all the settings are parsed correctly and can be seen as the central object that deligates tasks to other objects.
The Session represents a user session during which data will get annotated. If multiple annotators are annotating then they can be identified by the name that is passed via /?session=. Anynomous annotations will get assigned a session that is denoted by the creation timestamp.
The Stream represents the stream of data that still needs to be annotated. The stream maintains a queue of examples for each session. This way, we have a single place where task routing might occur.
The Source represents the original data source for the stream. This may refer to a file on disk but can also refer to a set of files or to a Prodigy dataset.
The Source object can represent a file on disk together with a read position. This file will have a known size upfront. That means that whenever a new block of data is read from the file the read position can update, allowing us to to estimate the annotation progress. However, because this estimate is only aware of the current position in the Source it is not aware of anything that’s happening in the Stream or Controller objects.
This offers a tractable way to estimate progress, but it has a few consequences that can be unintuitive in multiuser scenarios.
The Source-based progress tracks the progress through the input file rather than completed annotations. This means that even when starting a single-annotator flow, there will already be a non-zero progress as some of the file will have been consumed in the process of session initialization.
It is possible for one annotator to reach the end of their queue before the rest does. When this happens, theSourcewill have a position at the end of the file. So theSource-based progress bar will show 100% to every annotator.
The Source is unaware of the task router and the current sessions. Depending on the Prodigy configuration it could be possible for new annotators to join at given time. That also means that a person could join and immediately see a significant progress when they arrive at the annotation interface.
Per the docs, it's likely one of your annotators finished their queue first.
It is possible for one annotator to reach the end of their queue before the rest does. When this happens, the Source will have a position at the end of the file. So the Source-based progress bar will show 100% to every annotator.
If you know how many you want each annotator to annotate, then try to set the target via total_examples_target in your prodigy.json file.