flairNLP/fabricator

Naming convention for DataPoints / Prompts

whoisjones opened this issue · 0 comments

We should somehow unify the naming of data points and prompts.
Initial idea is to remove any task related information from data points such that ExtractiveQADataPoint becomes something like MultiLabelDataPoint. The Prompts are task-specific, i.e. QAPrompt, NERPrompt, etc. and we might omit the entire idea of Annotation / Generation classes below and refactor Templates such that they either annotate a target variable or create unlabeled data in the style of target variable.

Currently, we have for DataPoints:

  • BaseDataPoint
  • SingleLabelDataPoint
  • SingleLabelClassificationDataPoint
  • ExtractiveQADataPoint
  • TextDataPoint

For PromptTemplates we have:

  • BasePrompt
  • AnnotationPrompt
  • GenerationPrompt
  • TextGenerationPrompt
  • QuestionAnnotationPrompt
  • AnswerAnnotationPrompt
  • ContextAnnotationPrompt
  • NamedEntityAnnotationPrompt

AnnotationPrompt Setting: Ich habe unlabeled data points und es soll ein Teil von diesem data point annotiert werden - in dem Fall habe ich eine frage und eine antwort zu der ich keinen context habe, es wird also die fehlende variable im data point annotiert - der Name macht mehr Sinn wenn du dir TextClassification dazu überlegst - Ich gebe einen unlabeled data point rein (z.b. nur text) und möchte die fehlende variable (sentiment des textes) annotieren.
Im gegensatz dazu ist die GenerationPrompt rein zum erstellen von unlabeled data - der Input ist dann sowas wie "Hier sind 2 Text Beispiele: [...]. Generiere mir weitere Texte in diesem Style." - Ich generiere mir also unlabeled data points und annotiere keine fehlende Variable von einem unlabeled data point.

"es wird also die fehlende variable im data point annotiert" -> die fehlende Variable wird also generiert!