Like to seek your opinion on how I should approach the tasks in terms of workflow.
I annotate the dataset first by labelling the entities and then build a NER model
Use the NER model generated and run it on the same dataset as in step #1 and together with the entities inferred by the model, label the relation between entities and build another relation model.
OR
I annotate the entities and relation on the dataset.
Build a NER model using the annotated file.
Build a entity relation model using the same annotated file (same file as in step 2).
For the entity relation extraction (REL) use-case, your first option of
annotating them separately makes sense. This is because for most REL applications, deciding whether something is an entity is unrelated to whether that
entity is a relation, so you have different thought processes in annotating.
If you annotate them at the same time, you might miss out on actual entities that just happened to not belong in a relation--lowering your recall and affect the consistency of the NER data and subsequent models.
I also suggest looking at these discussions for more information: