EvalTask(
*,
dataset: typing.Union[pd.DataFrame, str, typing.Dict[str, typing.Any]],
metrics: typing.List[
typing.Union[
typing.Literal[
"exact_match",
"bleu",
"rouge_1",
"rouge_2",
"rouge_l",
"rouge_l_sum",
"coherence",
"fluency",
"safety",
"groundedness",
"fulfillment",
"summarization_quality",
"summarization_helpfulness",
"summarization_verbosity",
"question_answering_quality",
"question_answering_relevance",
"question_answering_helpfulness",
"question_answering_correctness",
"text_generation_similarity",
"text_generation_quality",
"text_generation_instruction_following",
"text_generation_safety",
"text_generation_factuality",
"summarization_pointwise_reference_free",
"qa_pointwise_reference_free",
"qa_pointwise_reference_based",
"tool_call_quality",
],
vertexai.preview.evaluation.metrics._base.CustomMetric,
]
],
experiment: typing.Optional[str] = None,
content_column_name: str = "content",
reference_column_name: str = "reference",
response_column_name: str = "response"
)
Una classe che rappresenta un EvalTask.
Un'attività di valutazione viene definita per misurare la capacità del modello di eseguire una determinata attività in risposta a prompt o input specifici. Le attività di valutazione devono contenere un set di dati di valutazione e un elenco di metriche da valutare. Le attività di valutazione aiutano gli sviluppatori a confrontare i modelli suggeriti, a monitorare gli esperimenti, a confrontare i modelli e le relative impostazioni e a valutare la qualità del testo generato del modello.
Dettagli del set di dati: Nomi predefiniti delle colonne del set di dati:
- content_column_name: "contenuti"
- nome_colonna_riferimento: "riferimento"
- response_column_name: "risposta"
Requisito per diversi casi d'uso:
- Integra la tua previsione: è necessaria una colonna
response
. Il nome della colonna di risposta può essere personalizzato fornendo il parametroresponse_column_name
. - Senza modello di prompt: è necessaria una colonna che rappresenta il prompt di input al modello. Se
content_column_name
non è specificato, il set di dati di valutazione richiede la colonnacontent
per impostazione predefinita. La colonna della risposta non viene utilizzata se presente e le nuove risposte del modello vengono generate con la colonna dei contenuti e utilizzate per la valutazione. - Con il modello di prompt: il set di dati deve contenere nomi di colonna corrispondenti ai nomi dei segnaposto nel modello di prompt. Ad esempio, se il modello di prompt è "Instruction: {instruction}, context: {context}", il set di dati deve contenere le colonne
instruction
econtext
.
- Integra la tua previsione: è necessaria una colonna
Dettagli sulle metriche: le metriche supportate, le descrizioni dei gruppi di metriche, le griglie di valutazione e i campi di immissione obbligatori sono disponibili nella documentazione pubblica di Vertex AI.
Utilizzo:
Per eseguire la valutazione delle previsioni personalizzate, fornisci le risposte del modello nella colonna della risposta del set di dati. Per impostazione predefinita, il nome della colonna della risposta è "risposta". In alternativa, specifica il parametro
response_column_name
da personalizzare.eval_dataset = pd.DataFrame({ "reference": [...], "response" : [...], }) eval_task = EvalTask( dataset=eval_dataset, metrics=["bleu", "rouge_l_sum", "coherence", "fluency"], experiment="my-experiment", ) eval_result = eval_task.evaluate( experiment_run_name="eval-experiment-run" )
Per eseguire la valutazione con l'inferenza del modello Gemini integrata, specifica il parametro
model
con un'istanza GenerativeModel. Il nome predefinito della colonna di query per il modello ècontent
.eval_dataset = pd.DataFrame({ "reference": [...], "content" : [...], }) result = EvalTask( dataset=eval_dataset, metrics=["exact_match", "bleu", "rouge_1", "rouge_2", "rouge_l_sum"], experiment="my-experiment", ).evaluate( model=GenerativeModel("gemini-pro"), experiment_run_name="gemini-pro-eval-run" )
Se
prompt_template
è specificato, la colonnacontent
non è obbligatoria. I prompt possono essere assemblati dal set di dati di valutazione e tutti i nomi dei segnaposto devono essere presenti nelle colonne del set di dati.eval_dataset = pd.DataFrame({ "context" : [...], "instruction": [...], "reference" : [...], }) result = EvalTask( dataset=eval_dataset, metrics=["summarization_quality"], ).evaluate( model=model, prompt_template="{instruction}. Article: {context}. Summary:", )
Per eseguire la valutazione con l'inferenza del modello personalizzato, specifica il parametro
model
con una funzione di previsione personalizzata. La colonnacontent
nel set di dati viene utilizzata per generare previsioni con la funzione del modello personalizzato per la valutazione.def custom_model_fn(input: str) -> str: response = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": input} ] ) return response.choices[0].message.content eval_dataset = pd.DataFrame({ "content" : [...], "reference": [...], }) result = EvalTask( dataset=eval_dataset, metrics=["text_generation_similarity","text_generation_quality"], experiment="my-experiment", ).evaluate( model=custom_model_fn, experiment_run_name="gpt-eval-run" )
Metodi
EvalTask
EvalTask(
*,
dataset: typing.Union[pd.DataFrame, str, typing.Dict[str, typing.Any]],
metrics: typing.List[
typing.Union[
typing.Literal[
"exact_match",
"bleu",
"rouge_1",
"rouge_2",
"rouge_l",
"rouge_l_sum",
"coherence",
"fluency",
"safety",
"groundedness",
"fulfillment",
"summarization_quality",
"summarization_helpfulness",
"summarization_verbosity",
"question_answering_quality",
"question_answering_relevance",
"question_answering_helpfulness",
"question_answering_correctness",
"text_generation_similarity",
"text_generation_quality",
"text_generation_instruction_following",
"text_generation_safety",
"text_generation_factuality",
"summarization_pointwise_reference_free",
"qa_pointwise_reference_free",
"qa_pointwise_reference_based",
"tool_call_quality",
],
vertexai.preview.evaluation.metrics._base.CustomMetric,
]
],
experiment: typing.Optional[str] = None,
content_column_name: str = "content",
reference_column_name: str = "reference",
response_column_name: str = "response"
)
Inizializza un EvalTask.
display_runs
display_runs()
Mostra le esecuzioni dell'esperimento associate a questo EvalTask.
evaluate
evaluate(
*,
model: typing.Optional[
typing.Union[
vertexai.generative_models.GenerativeModel, typing.Callable[[str], str]
]
] = None,
prompt_template: typing.Optional[str] = None,
experiment_run_name: typing.Optional[str] = None,
response_column_name: str = "response"
) -> vertexai.preview.evaluation._base.EvalResult
Esegue una valutazione per EvalTask.