crfm-helm 0.5.5__py3-none-any.whl → 0.5.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of crfm-helm might be problematic. Click here for more details.
- {crfm_helm-0.5.5.dist-info → crfm_helm-0.5.6.dist-info}/METADATA +27 -13
- {crfm_helm-0.5.5.dist-info → crfm_helm-0.5.6.dist-info}/RECORD +203 -156
- {crfm_helm-0.5.5.dist-info → crfm_helm-0.5.6.dist-info}/WHEEL +1 -1
- helm/benchmark/adaptation/adapters/in_context_learning_adapter.py +3 -3
- helm/benchmark/adaptation/adapters/test_adapter.py +4 -4
- helm/benchmark/annotation/air_bench_annotator.py +1 -1
- helm/benchmark/annotation/bigcodebench_annotator.py +3 -3
- helm/benchmark/annotation/bird_sql_annotator.py +2 -2
- helm/benchmark/annotation/chw_care_plan_annotator.py +7 -12
- helm/benchmark/annotation/ehr_sql_annotator.py +2 -2
- helm/benchmark/annotation/helpdesk_call_summarization_annotator.py +7 -7
- helm/benchmark/annotation/mimic_bhc_annotator.py +100 -0
- helm/benchmark/annotation/model_as_judge.py +12 -16
- helm/benchmark/annotation/omni_math_annotator.py +13 -14
- helm/benchmark/annotation/wildbench_annotator.py +9 -9
- helm/benchmark/executor.py +11 -12
- helm/benchmark/metrics/aci_bench_metrics.py +9 -29
- helm/benchmark/metrics/bias_word_lists.py +1 -1
- helm/benchmark/metrics/chw_care_plan_metrics.py +10 -30
- helm/benchmark/metrics/classification_metrics.py +3 -3
- helm/benchmark/metrics/cleva_harms_metrics.py +2 -2
- helm/benchmark/metrics/conv_fin_qa_calc_metrics.py +2 -2
- helm/benchmark/metrics/dischargeme_metrics.py +9 -29
- helm/benchmark/metrics/efficiency_metrics.py +3 -3
- helm/benchmark/metrics/gpt4_audio_refusal_metrics.py +145 -0
- helm/benchmark/metrics/ifeval_metrics.py +2 -2
- helm/benchmark/metrics/kpi_edgar_metrics.py +121 -0
- helm/benchmark/metrics/llm_jury_metrics.py +46 -0
- helm/benchmark/metrics/med_dialog_metrics.py +9 -29
- helm/benchmark/metrics/medalign_metrics.py +9 -29
- helm/benchmark/metrics/medi_qa_metrics.py +9 -29
- helm/benchmark/metrics/medication_qa_metrics.py +10 -30
- helm/benchmark/metrics/melt_bias_metric.py +234 -0
- helm/benchmark/metrics/melt_bias_word_lists.py +1367 -0
- helm/benchmark/metrics/melt_metric_specs.py +43 -0
- helm/benchmark/metrics/melt_toxicity_metric.py +107 -0
- helm/benchmark/metrics/mental_health_metrics.py +9 -29
- helm/benchmark/metrics/metric_service.py +11 -11
- helm/benchmark/metrics/mimic_bhc_metrics.py +14 -0
- helm/benchmark/metrics/mimic_rrs_metrics.py +9 -29
- helm/benchmark/metrics/mtsamples_procedures_metrics.py +9 -29
- helm/benchmark/metrics/mtsamples_replicate_metrics.py +9 -29
- helm/benchmark/metrics/openai_mrcr_metrics.py +52 -0
- helm/benchmark/metrics/ruler_qa_metrics.py +34 -0
- helm/benchmark/metrics/starr_patient_instructions_metrics.py +9 -29
- helm/benchmark/metrics/summac/model_summac.py +1 -2
- helm/benchmark/metrics/summarization_metrics.py +2 -1
- helm/benchmark/metrics/tokens/test_openai_token_cost_estimator.py +2 -2
- helm/benchmark/metrics/toxicity_metrics.py +2 -2
- helm/benchmark/metrics/unitxt_metrics.py +3 -4
- helm/benchmark/metrics/vision_language/emd_utils.py +4 -2
- helm/benchmark/metrics/vision_language/image_utils.py +2 -2
- helm/benchmark/model_deployment_registry.py +6 -8
- helm/benchmark/presentation/contamination.py +3 -3
- helm/benchmark/presentation/create_plots.py +33 -12
- helm/benchmark/presentation/run_display.py +13 -0
- helm/benchmark/presentation/schema.py +2 -1
- helm/benchmark/presentation/summarize.py +76 -59
- helm/benchmark/reeval_run.py +3 -4
- helm/benchmark/reeval_runner.py +3 -3
- helm/benchmark/run.py +78 -73
- helm/benchmark/run_expander.py +12 -1
- helm/benchmark/run_spec_factory.py +7 -6
- helm/benchmark/run_specs/audio_run_specs.py +52 -8
- helm/benchmark/run_specs/enterprise_run_specs.py +20 -0
- helm/benchmark/run_specs/experimental_run_specs.py +31 -1
- helm/benchmark/run_specs/long_context_run_specs.py +67 -15
- helm/benchmark/run_specs/medhelm_run_specs.py +146 -41
- helm/benchmark/run_specs/melt_run_specs.py +783 -0
- helm/benchmark/run_specs/speech_disorder_audio_run_specs.py +169 -0
- helm/benchmark/run_specs/vlm_run_specs.py +28 -0
- helm/benchmark/runner.py +5 -5
- helm/benchmark/scenarios/aci_bench_scenario.py +7 -1
- helm/benchmark/scenarios/audio_language/air_bench_chat_scenario.py +3 -1
- helm/benchmark/scenarios/audio_language/air_bench_foundation_scenario.py +5 -5
- helm/benchmark/scenarios/audio_language/corebench_scenario.py +77 -0
- helm/benchmark/scenarios/audio_language/ultra_suite_asr_classification.py +103 -0
- helm/benchmark/scenarios/audio_language/ultra_suite_classification_scenario.py +110 -0
- helm/benchmark/scenarios/audio_language/ultra_suite_disorder_breakdown_scenario.py +78 -0
- helm/benchmark/scenarios/audio_language/ultra_suite_disorder_symptoms_scenario.py +109 -0
- helm/benchmark/scenarios/audio_language/vocal_sound_scenario.py +15 -1
- helm/benchmark/scenarios/audio_language/voxceleb2_scenario.py +1 -2
- helm/benchmark/scenarios/autobencher_capabilities_scenario.py +2 -2
- helm/benchmark/scenarios/chw_care_plan_scenario.py +14 -13
- helm/benchmark/scenarios/clear_scenario.py +11 -7
- helm/benchmark/scenarios/dischargeme_scenario.py +36 -21
- helm/benchmark/scenarios/ehr_sql_scenario.py +7 -1
- helm/benchmark/scenarios/ehrshot_scenario.py +28 -55
- helm/benchmark/scenarios/grammar.py +2 -2
- helm/benchmark/scenarios/headqa_scenario.py +6 -1
- helm/benchmark/scenarios/infinite_bench_en_qa_scenario.py +85 -0
- helm/benchmark/scenarios/{infinite_bench_sum_scenario.py → infinite_bench_en_sum_scenario.py} +10 -13
- helm/benchmark/scenarios/kpi_edgar_scenario.py +151 -0
- helm/benchmark/scenarios/med_dialog_scenario.py +6 -1
- helm/benchmark/scenarios/medalign_scenario.py +9 -3
- helm/benchmark/scenarios/medalign_scenario_helper.py +8 -5
- helm/benchmark/scenarios/medbullets_scenario.py +7 -2
- helm/benchmark/scenarios/medcalc_bench_scenario.py +4 -2
- helm/benchmark/scenarios/medec_scenario.py +6 -1
- helm/benchmark/scenarios/medhallu_scenario.py +7 -1
- helm/benchmark/scenarios/medi_qa_scenario.py +10 -4
- helm/benchmark/scenarios/medication_qa_scenario.py +7 -1
- helm/benchmark/scenarios/melt_ir_scenario.py +171 -0
- helm/benchmark/scenarios/melt_knowledge_scenario.py +246 -0
- helm/benchmark/scenarios/melt_lm_scenarios.py +252 -0
- helm/benchmark/scenarios/melt_scenarios.py +793 -0
- helm/benchmark/scenarios/melt_srn_scenario.py +342 -0
- helm/benchmark/scenarios/melt_synthetic_reasoning_scenario.py +222 -0
- helm/benchmark/scenarios/melt_translation_scenario.py +152 -0
- helm/benchmark/scenarios/mental_health_scenario.py +16 -5
- helm/benchmark/scenarios/mimic_bhc_scenario.py +12 -7
- helm/benchmark/scenarios/mimic_rrs_scenario.py +17 -8
- helm/benchmark/scenarios/mimiciv_billing_code_scenario.py +14 -8
- helm/benchmark/scenarios/mmlu_pro_scenario.py +1 -1
- helm/benchmark/scenarios/mtsamples_procedures_scenario.py +5 -2
- helm/benchmark/scenarios/mtsamples_replicate_scenario.py +3 -2
- helm/benchmark/scenarios/n2c2_ct_matching_scenario.py +11 -5
- helm/benchmark/scenarios/numeracy_scenario.py +2 -1
- helm/benchmark/scenarios/openai_mrcr_scenario.py +79 -0
- helm/benchmark/scenarios/pubmed_qa_scenario.py +6 -1
- helm/benchmark/scenarios/race_based_med_scenario.py +18 -8
- helm/benchmark/scenarios/ruler_qa_scenario_helper.py +2 -2
- helm/benchmark/scenarios/ruler_qa_scenarios.py +2 -2
- helm/benchmark/scenarios/shc_bmt_scenario.py +12 -6
- helm/benchmark/scenarios/shc_cdi_scenario.py +11 -6
- helm/benchmark/scenarios/shc_conf_scenario.py +12 -6
- helm/benchmark/scenarios/shc_ent_scenario.py +11 -6
- helm/benchmark/scenarios/shc_gip_scenario.py +13 -5
- helm/benchmark/scenarios/shc_privacy_scenario.py +78 -0
- helm/benchmark/scenarios/shc_proxy_scenario.py +76 -0
- helm/benchmark/scenarios/shc_ptbm_scenario.py +12 -7
- helm/benchmark/scenarios/shc_sei_scenario.py +12 -7
- helm/benchmark/scenarios/shc_sequoia_scenario.py +13 -5
- helm/benchmark/scenarios/starr_patient_instructions_scenario.py +15 -8
- helm/benchmark/scenarios/test_infinite_bench_en_qa_scenario.py +18 -0
- helm/benchmark/scenarios/test_infinite_bench_en_sum_scenario.py +31 -0
- helm/benchmark/scenarios/truthful_qa_scenario.py +2 -1
- helm/benchmark/scenarios/vision_language/msr_vtt_scenario.py +75 -0
- helm/benchmark/server.py +2 -1
- helm/benchmark/static/schema_audio.yaml +60 -49
- helm/benchmark/static/schema_enterprise.yaml +21 -0
- helm/benchmark/static/schema_long_context.yaml +63 -20
- helm/benchmark/static/schema_medhelm.yaml +272 -213
- helm/benchmark/static/schema_melt.yaml +1257 -0
- helm/benchmark/static/schema_slphelm.yaml +162 -0
- helm/benchmark/static/schema_vhelm.yaml +26 -26
- helm/benchmark/static/schema_video.yaml +219 -0
- helm/benchmark/static_build/assets/index-94295e78.js +10 -0
- helm/benchmark/static_build/assets/index-b9779128.css +1 -0
- helm/benchmark/static_build/assets/medhelm-overview-eac29843.png +0 -0
- helm/benchmark/static_build/assets/{tremor-9cefc3c5.js → tremor-38a10867.js} +1 -1
- helm/benchmark/static_build/index.html +4 -4
- helm/benchmark/window_services/encoder_decoder_window_service.py +3 -3
- helm/benchmark/window_services/test_utils.py +3 -4
- helm/benchmark/window_services/tokenizer_service.py +7 -8
- helm/clients/anthropic_client.py +69 -29
- helm/clients/audio_language/diva_llama_client.py +4 -2
- helm/clients/audio_language/qwen2_5_omni_client.py +197 -0
- helm/clients/audio_language/qwen2_audiolm_client.py +8 -6
- helm/clients/audio_language/qwen_audiolm_client.py +4 -2
- helm/clients/audio_language/test.py +62 -0
- helm/clients/bedrock_client.py +3 -1
- helm/clients/client.py +7 -7
- helm/clients/grok_client.py +36 -0
- helm/clients/huggingface_client.py +42 -3
- helm/clients/huggingface_pipeline_client.py +138 -0
- helm/clients/image_generation/dalle_mini/model/configuration.py +1 -1
- helm/clients/image_generation/dalle_mini/model/modeling.py +1 -1
- helm/clients/image_generation/dalle_mini/model/processor.py +1 -1
- helm/clients/image_generation/dalle_mini/model/tokenizer.py +1 -1
- helm/clients/openai_client.py +100 -54
- helm/clients/openai_responses_client.py +174 -0
- helm/clients/palmyra_client.py +2 -5
- helm/clients/reka_client.py +2 -2
- helm/clients/together_client.py +31 -4
- helm/clients/vertexai_client.py +6 -0
- helm/clients/vision_language/huggingface_vision2seq_client.py +6 -4
- helm/clients/vision_language/huggingface_vlm_client.py +2 -2
- helm/clients/vision_language/idefics_client.py +6 -2
- helm/clients/vision_language/paligemma_client.py +2 -2
- helm/clients/vision_language/qwen2_vlm_client.py +66 -53
- helm/clients/vision_language/qwen_vlm_client.py +7 -5
- helm/clients/writer_client.py +102 -0
- helm/common/context.py +80 -0
- helm/common/credentials_utils.py +5 -5
- helm/common/general.py +9 -2
- helm/common/hierarchical_logger.py +46 -3
- helm/common/local_context.py +140 -0
- helm/common/remote_context.py +61 -0
- helm/common/request.py +8 -0
- helm/config/model_deployments.yaml +864 -193
- helm/config/model_metadata.yaml +667 -53
- helm/config/tokenizer_configs.yaml +144 -3
- helm/proxy/cli.py +3 -1
- helm/proxy/critique/mechanical_turk_utils.py +1 -1
- helm/proxy/services/server_service.py +21 -85
- helm/tokenizers/grok_tokenizer.py +53 -0
- helm/tokenizers/huggingface_tokenizer.py +1 -1
- helm/tokenizers/test_grok_tokenizer.py +33 -0
- helm/benchmark/scenarios/test_infinite_bench_sum_scenario.py +0 -46
- helm/benchmark/static_build/assets/index-262903c1.js +0 -10
- helm/benchmark/static_build/assets/index-42060d71.css +0 -1
- {crfm_helm-0.5.5.dist-info → crfm_helm-0.5.6.dist-info}/entry_points.txt +0 -0
- {crfm_helm-0.5.5.dist-info → crfm_helm-0.5.6.dist-info}/licenses/LICENSE +0 -0
- {crfm_helm-0.5.5.dist-info → crfm_helm-0.5.6.dist-info}/top_level.txt +0 -0
- /helm/benchmark/static_build/assets/{medhelm-overview-3ddfcd65.png → medhelm-v1-overview-3ddfcd65.png} +0 -0
|
@@ -0,0 +1,783 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
import torch
|
|
4
|
+
|
|
5
|
+
from helm.benchmark.run_spec import RunSpec, run_spec_function
|
|
6
|
+
from helm.benchmark.scenarios.scenario import ScenarioSpec
|
|
7
|
+
from helm.benchmark.adaptation.adapters.binary_ranking_adapter import BinaryRankingAdapter
|
|
8
|
+
from helm.benchmark.adaptation.common_adapter_specs import (
|
|
9
|
+
get_generation_adapter_spec,
|
|
10
|
+
get_machine_translation_adapter_spec,
|
|
11
|
+
get_multiple_choice_adapter_spec,
|
|
12
|
+
get_ranking_binary_adapter_spec,
|
|
13
|
+
)
|
|
14
|
+
from helm.benchmark.adaptation.adapter_spec import (
|
|
15
|
+
ADAPT_GENERATION,
|
|
16
|
+
ADAPT_MULTIPLE_CHOICE_JOINT,
|
|
17
|
+
ADAPT_RANKING_BINARY,
|
|
18
|
+
AdapterSpec,
|
|
19
|
+
)
|
|
20
|
+
from helm.benchmark.metrics.common_metric_specs import (
|
|
21
|
+
get_exact_match_metric_specs,
|
|
22
|
+
get_f1_metric_specs,
|
|
23
|
+
get_summarization_metric_specs,
|
|
24
|
+
get_basic_metric_specs,
|
|
25
|
+
get_open_ended_generation_metric_specs,
|
|
26
|
+
get_classification_metric_specs,
|
|
27
|
+
get_basic_reference_metric_specs,
|
|
28
|
+
get_generic_metric_specs,
|
|
29
|
+
)
|
|
30
|
+
from helm.benchmark.metrics.melt_metric_specs import get_vietnamese_generative_harms_metric_specs
|
|
31
|
+
from helm.benchmark.metrics.metric import MetricSpec
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@run_spec_function("melt_question_answering_mlqa")
|
|
35
|
+
def get_melt_question_answering_mlqa_spec(prompt_style: str = "normal") -> RunSpec:
|
|
36
|
+
scenario_spec = ScenarioSpec(class_name="helm.benchmark.scenarios.melt_scenarios.MELTQAMLQAScenario")
|
|
37
|
+
|
|
38
|
+
if prompt_style == "weak":
|
|
39
|
+
instruction = ""
|
|
40
|
+
elif prompt_style == "medium":
|
|
41
|
+
instruction = (
|
|
42
|
+
"Hãy trả lời câu hỏi bên dưới bằng tiếng Việt với các thông tin được cung cấp trong phần ngữ cảnh. "
|
|
43
|
+
'Nếu trong ngữ cảnh không có đủ thông tin, hãy trả lời "Tôi không biết".'
|
|
44
|
+
)
|
|
45
|
+
elif prompt_style == "normal":
|
|
46
|
+
instruction = (
|
|
47
|
+
"Bạn là một trợ lý hữu dụng sử dụng tiếng Việt, biết tôn trọng và thành thật. "
|
|
48
|
+
"Bạn luôn luôn trả lời các câu hỏi một cách có ích nhiều nhất có thể, nhưng đồng thời phải an toàn. "
|
|
49
|
+
"Câu trả lời của bạn không được bao gồm các ngôn từ độc hại, phân biệt chủng tộc, "
|
|
50
|
+
"phân biệt giới tính, nguy hiểm, nội dung vi phạm pháp luật. Làm ơn hãy chắc chắn câu trả lời "
|
|
51
|
+
"của bạn tự nhiên, tích cực và không thiên vị bất cứ cái gì. Nếu có câu hỏi không hợp lý hoặc không "
|
|
52
|
+
"rõ ràng thì hãy giải thích tại sao thay vì trả lời không đúng sự thật. Nếu bạn không biết câu trả lời "
|
|
53
|
+
"thì đừng chia sẻ thông tin sai sự thật."
|
|
54
|
+
)
|
|
55
|
+
else:
|
|
56
|
+
raise ValueError(f"Invalid prompt style: {prompt_style}")
|
|
57
|
+
|
|
58
|
+
adapter_spec = get_generation_adapter_spec(instructions=instruction, output_noun="Trả lời", max_tokens=128)
|
|
59
|
+
|
|
60
|
+
return RunSpec(
|
|
61
|
+
name=f"melt_question_answering_mlqa:prompt_style={prompt_style}",
|
|
62
|
+
scenario_spec=scenario_spec,
|
|
63
|
+
adapter_spec=adapter_spec,
|
|
64
|
+
metric_specs=get_exact_match_metric_specs()
|
|
65
|
+
+ get_f1_metric_specs()
|
|
66
|
+
+ get_vietnamese_generative_harms_metric_specs(include_generative_harms_metrics=True),
|
|
67
|
+
groups=["melt", "melt_question_answering_mlqa"],
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@run_spec_function("melt_question_answering_xquad")
|
|
72
|
+
def get_melt_question_answering_xquad_spec(prompt_style: str = "normal") -> RunSpec:
|
|
73
|
+
scenario_spec = ScenarioSpec(class_name="helm.benchmark.scenarios.melt_scenarios.MELTQAXQuADScenario")
|
|
74
|
+
|
|
75
|
+
if prompt_style == "weak":
|
|
76
|
+
instruction = ""
|
|
77
|
+
elif prompt_style == "medium":
|
|
78
|
+
instruction = (
|
|
79
|
+
"Hãy trả lời câu hỏi bên dưới bằng tiếng Việt với các thông tin được cung cấp trong phần ngữ cảnh. "
|
|
80
|
+
'Nếu trong ngữ cảnh không có đủ thông tin, hãy trả lời "Tôi không biết".'
|
|
81
|
+
)
|
|
82
|
+
elif prompt_style == "normal":
|
|
83
|
+
instruction = (
|
|
84
|
+
"Bạn là một trợ lý hữu dụng sử dụng tiếng Việt, biết tôn trọng và thành thật. "
|
|
85
|
+
"Bạn luôn luôn trả lời các câu hỏi một cách có ích nhiều nhất có thể, nhưng đồng thời phải an toàn. "
|
|
86
|
+
"Câu trả lời của bạn không được bao gồm các ngôn từ độc hại, phân biệt chủng tộc, "
|
|
87
|
+
"phân biệt giới tính, nguy hiểm, nội dung vi phạm pháp luật. Làm ơn hãy chắc chắn câu trả lời "
|
|
88
|
+
"của bạn tự nhiên, tích cực và không thiên vị bất cứ cái gì. Nếu có câu hỏi không hợp lý hoặc không "
|
|
89
|
+
"rõ ràng thì hãy giải thích tại sao thay vì trả lời không đúng sự thật. Nếu bạn không biết câu trả lời "
|
|
90
|
+
"thì đừng chia sẻ thông tin sai sự thật."
|
|
91
|
+
)
|
|
92
|
+
else:
|
|
93
|
+
raise ValueError(f"Invalid prompt style: {prompt_style}")
|
|
94
|
+
|
|
95
|
+
adapter_spec = get_generation_adapter_spec(instructions=instruction, output_noun="Trả lời", max_tokens=128)
|
|
96
|
+
|
|
97
|
+
return RunSpec(
|
|
98
|
+
name=f"melt_question_answering_xquad:prompt_style={prompt_style},",
|
|
99
|
+
scenario_spec=scenario_spec,
|
|
100
|
+
adapter_spec=adapter_spec,
|
|
101
|
+
metric_specs=get_exact_match_metric_specs()
|
|
102
|
+
+ get_f1_metric_specs()
|
|
103
|
+
+ get_vietnamese_generative_harms_metric_specs(include_generative_harms_metrics=True),
|
|
104
|
+
groups=["melt", "melt_question_answering_xquad"],
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
@run_spec_function("melt_summarization_vietnews")
|
|
109
|
+
def get_melt_summarization_vietnews_spec(prompt_style: str = "normal", temperature: float = 1.0) -> RunSpec:
|
|
110
|
+
scenario_spec = ScenarioSpec(
|
|
111
|
+
class_name="helm.benchmark.scenarios.melt_scenarios.MELTSummarizationVietnewsScenario",
|
|
112
|
+
args={
|
|
113
|
+
"train_min_length": 64,
|
|
114
|
+
"train_max_length": 256,
|
|
115
|
+
"doc_max_length": 2048,
|
|
116
|
+
},
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
if prompt_style == "weak":
|
|
120
|
+
instruction = ""
|
|
121
|
+
elif prompt_style == "medium":
|
|
122
|
+
instruction = "Nhiệm vụ của bạn là tóm tắt đoạn văn bản sau, đưa ra câu trả lời là bản tóm tắt."
|
|
123
|
+
elif prompt_style == "normal":
|
|
124
|
+
instruction = (
|
|
125
|
+
"Bạn là một trợ lý hữu dụng, biết tôn trọng và thành thật. Bạn luôn luôn trả lời các câu hỏi một cách "
|
|
126
|
+
"có ích nhiều nhất có thể, nhưng đồng thời phải an toàn. Câu trả lời của bạn không được bao gồm "
|
|
127
|
+
"các ngôn từ độc hại, phân biệt chủng tộc, phân biệt giới tính, nguy hiểm, nội dung vi phạm pháp luật. "
|
|
128
|
+
"Nhiệm vụ của bạn là tóm tắt đoạn văn bản nằm trong triple backtick. Bài tóm tắt phải đầy đủ các thông tin "
|
|
129
|
+
"quan trọng, ngắn gọn và thu hút người đọc. Ngôn ngữ bạn phải sử dụng để tóm tắt là tiếng Việt."
|
|
130
|
+
)
|
|
131
|
+
else:
|
|
132
|
+
raise ValueError(f"Invalid prompt style: {prompt_style}")
|
|
133
|
+
|
|
134
|
+
adapter_spec = get_generation_adapter_spec(
|
|
135
|
+
instructions=instruction,
|
|
136
|
+
input_noun="Đoạn văn",
|
|
137
|
+
output_noun="Tóm tắt đoạn văn trên",
|
|
138
|
+
max_tokens=256,
|
|
139
|
+
temperature=temperature,
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
return RunSpec(
|
|
143
|
+
name=f"melt_summarization_vietnews:prompt_style={prompt_style},temperature={temperature}",
|
|
144
|
+
scenario_spec=scenario_spec,
|
|
145
|
+
adapter_spec=adapter_spec,
|
|
146
|
+
metric_specs=get_summarization_metric_specs(
|
|
147
|
+
{
|
|
148
|
+
"task": "summarization_vietnews",
|
|
149
|
+
"language": "vi",
|
|
150
|
+
"bertscore_model": "bert-base-multilingual-cased",
|
|
151
|
+
"rescale_with_baseline": False,
|
|
152
|
+
"device": "cuda" if torch.cuda.is_available() else "cpu",
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
+ get_vietnamese_generative_harms_metric_specs(include_generative_harms_metrics=True),
|
|
156
|
+
groups=["melt", "melt_summarization_vietnews"],
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
@run_spec_function("melt_summarization_wikilingua")
|
|
161
|
+
def get_melt_summarization_wikilingua_spec(prompt_style: str = "normal", temperature: float = 1.0) -> RunSpec:
|
|
162
|
+
scenario_spec = ScenarioSpec(
|
|
163
|
+
class_name="helm.benchmark.scenarios.melt_scenarios.MELTSummarizationWikilinguaScenario",
|
|
164
|
+
args={
|
|
165
|
+
"train_min_length": 64,
|
|
166
|
+
"train_max_length": 256,
|
|
167
|
+
"doc_max_length": 2048,
|
|
168
|
+
},
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
if prompt_style == "weak":
|
|
172
|
+
instruction = ""
|
|
173
|
+
elif prompt_style == "medium":
|
|
174
|
+
instruction = "Nhiệm vụ của bạn là tóm tắt đoạn văn bản sau, đưa ra câu trả lời là bản tóm tắt."
|
|
175
|
+
elif prompt_style == "normal":
|
|
176
|
+
instruction = (
|
|
177
|
+
"Bạn là một trợ lý hữu dụng, biết tôn trọng và thành thật. Bạn luôn luôn trả lời các câu hỏi một cách "
|
|
178
|
+
"có ích nhiều nhất có thể, nhưng đồng thời phải an toàn. Câu trả lời của bạn không được bao gồm "
|
|
179
|
+
"các ngôn từ độc hại, phân biệt chủng tộc, phân biệt giới tính, nguy hiểm, nội dung vi phạm pháp luật. "
|
|
180
|
+
"Nhiệm vụ của bạn là tóm tắt đoạn văn bản nằm trong triple backtick. Bài tóm tắt phải đầy đủ các thông tin "
|
|
181
|
+
"quan trọng, ngắn gọn và thu hút người đọc. Ngôn ngữ bạn phải sử dụng để tóm tắt là tiếng Việt."
|
|
182
|
+
)
|
|
183
|
+
else:
|
|
184
|
+
raise ValueError(f"Invalid prompt style: {prompt_style}")
|
|
185
|
+
|
|
186
|
+
adapter_spec = get_generation_adapter_spec(
|
|
187
|
+
instructions=instruction,
|
|
188
|
+
input_noun="Đoạn văn",
|
|
189
|
+
output_noun="Tóm tắt đoạn văn trên",
|
|
190
|
+
max_tokens=256,
|
|
191
|
+
temperature=temperature,
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
return RunSpec(
|
|
195
|
+
name=f"melt_summarization_wikilingua:prompt_style={prompt_style},temperature={temperature}",
|
|
196
|
+
scenario_spec=scenario_spec,
|
|
197
|
+
adapter_spec=adapter_spec,
|
|
198
|
+
metric_specs=get_summarization_metric_specs(
|
|
199
|
+
{
|
|
200
|
+
"task": "summarization_wikilingua",
|
|
201
|
+
"language": "vi",
|
|
202
|
+
"bertscore_model": "bert-base-multilingual-cased",
|
|
203
|
+
"rescale_with_baseline": False,
|
|
204
|
+
"device": "cuda" if torch.cuda.is_available() else "cpu",
|
|
205
|
+
}
|
|
206
|
+
)
|
|
207
|
+
+ get_vietnamese_generative_harms_metric_specs(include_generative_harms_metrics=True),
|
|
208
|
+
groups=["melt", "melt_summarization_wikilingua"],
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
@run_spec_function("melt_synthetic_reasoning")
|
|
213
|
+
def get_melt_synthetic_reasoning_spec(mode: str) -> RunSpec:
|
|
214
|
+
scenario_spec = ScenarioSpec(
|
|
215
|
+
class_name="helm.benchmark.scenarios.melt_synthetic_reasoning_scenario.MELTSyntheticReasoningScenario",
|
|
216
|
+
args={"mode": mode},
|
|
217
|
+
)
|
|
218
|
+
|
|
219
|
+
adapter_spec = get_generation_adapter_spec(
|
|
220
|
+
instructions="Hãy giải bài toán sau.",
|
|
221
|
+
input_noun="Bài toán",
|
|
222
|
+
output_noun="Lời giải",
|
|
223
|
+
max_train_instances=5,
|
|
224
|
+
stop_sequences=["\n"],
|
|
225
|
+
max_tokens=50, # answer upperbounded by 50 tokens
|
|
226
|
+
)
|
|
227
|
+
|
|
228
|
+
return RunSpec(
|
|
229
|
+
name=f"melt_synthetic_reasoning:mode={mode}",
|
|
230
|
+
scenario_spec=scenario_spec,
|
|
231
|
+
adapter_spec=adapter_spec,
|
|
232
|
+
metric_specs=get_exact_match_metric_specs()
|
|
233
|
+
+ get_vietnamese_generative_harms_metric_specs(include_generative_harms_metrics=True),
|
|
234
|
+
groups=["melt", "melt_synthetic_reasoning", f"melt_synthetic_reasoning_{mode}"],
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
@run_spec_function("melt_synthetic_reasoning_natural")
|
|
239
|
+
def get_melt_synthetic_reasoning_natural_spec(difficulty: str) -> RunSpec:
|
|
240
|
+
scenario_spec = ScenarioSpec(
|
|
241
|
+
class_name="helm.benchmark.scenarios.melt_srn_scenario.MELTSRNScenario",
|
|
242
|
+
args={"difficulty": difficulty},
|
|
243
|
+
)
|
|
244
|
+
|
|
245
|
+
adapter_spec = get_generation_adapter_spec(
|
|
246
|
+
instructions="Hãy giải quyết vấn đề sau.",
|
|
247
|
+
input_noun="Quy luật",
|
|
248
|
+
newline_after_input_noun=True,
|
|
249
|
+
output_noun=None,
|
|
250
|
+
max_train_instances=3, # limited by the context length
|
|
251
|
+
max_tokens=20,
|
|
252
|
+
)
|
|
253
|
+
srn_metric_specs = get_basic_metric_specs(["f1_set_match", "iou_set_match", "exact_set_match"])
|
|
254
|
+
|
|
255
|
+
return RunSpec(
|
|
256
|
+
name=f"melt_synthetic_reasoning_natural:difficulty={difficulty}",
|
|
257
|
+
scenario_spec=scenario_spec,
|
|
258
|
+
adapter_spec=adapter_spec,
|
|
259
|
+
metric_specs=srn_metric_specs
|
|
260
|
+
+ get_vietnamese_generative_harms_metric_specs(include_generative_harms_metrics=True),
|
|
261
|
+
groups=["melt", "melt_synthetic_reasoning", "melt_synthetic_reasoning_natural"],
|
|
262
|
+
)
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
@run_spec_function("melt_math")
|
|
266
|
+
def get_math_spec(
|
|
267
|
+
subject: str,
|
|
268
|
+
level: str,
|
|
269
|
+
use_official_examples: str = "False",
|
|
270
|
+
use_chain_of_thought: str = "False",
|
|
271
|
+
) -> RunSpec:
|
|
272
|
+
# Convert to bools and remove the str versions
|
|
273
|
+
use_official_examples_bool: bool = use_official_examples.lower() == "true"
|
|
274
|
+
use_chain_of_thought_bool: bool = use_chain_of_thought.lower() == "true"
|
|
275
|
+
del use_official_examples
|
|
276
|
+
del use_chain_of_thought
|
|
277
|
+
|
|
278
|
+
if use_chain_of_thought_bool:
|
|
279
|
+
assert not use_official_examples_bool, "Cannot use official examples when use_chain_of_thought is True."
|
|
280
|
+
scenario_spec = ScenarioSpec(
|
|
281
|
+
class_name="helm.benchmark.scenarios.melt_scenarios.MELTMATHScenario",
|
|
282
|
+
args={
|
|
283
|
+
"subject": subject,
|
|
284
|
+
"level": level,
|
|
285
|
+
"use_official_examples": use_official_examples_bool,
|
|
286
|
+
"use_chain_of_thought": use_chain_of_thought_bool,
|
|
287
|
+
},
|
|
288
|
+
)
|
|
289
|
+
|
|
290
|
+
if use_chain_of_thought_bool: # Include the solution in the output as per https://arxiv.org/abs/2201.11903
|
|
291
|
+
output_prefix = "Lời giải: " # Don't include LaTeX '$' delimiters
|
|
292
|
+
output_suffix = "\n"
|
|
293
|
+
instance_prefix = "###\n" # Don't include LaTeX '$' delimiters
|
|
294
|
+
max_tokens = 400 # Increase the number of tokens to generate
|
|
295
|
+
stop_sequences = ["###"] # Break at the next instance; extraneous output will be stripped out
|
|
296
|
+
groups = ["melt_math_chain_of_thought"]
|
|
297
|
+
else:
|
|
298
|
+
output_prefix = "Lời giải: $"
|
|
299
|
+
output_suffix = "$\n"
|
|
300
|
+
instance_prefix = "###\n"
|
|
301
|
+
max_tokens = 20
|
|
302
|
+
stop_sequences = ["$"] # Break at the nearest LaTeX closing delimiter
|
|
303
|
+
groups = ["melt_math_regular"]
|
|
304
|
+
|
|
305
|
+
adapter_spec = AdapterSpec(
|
|
306
|
+
method=ADAPT_GENERATION,
|
|
307
|
+
instructions="Cho một bài toán, hãy tìm ra lời giải. Rút gọn câu trả lời của bạn càng nhiều càng tốt.\n",
|
|
308
|
+
max_train_instances=8,
|
|
309
|
+
num_outputs=1,
|
|
310
|
+
temperature=0.0,
|
|
311
|
+
stop_sequences=stop_sequences,
|
|
312
|
+
max_tokens=max_tokens,
|
|
313
|
+
input_prefix="Bài toán: ",
|
|
314
|
+
input_suffix="\n",
|
|
315
|
+
output_prefix=output_prefix,
|
|
316
|
+
output_suffix=output_suffix,
|
|
317
|
+
instance_prefix=instance_prefix,
|
|
318
|
+
)
|
|
319
|
+
|
|
320
|
+
return RunSpec(
|
|
321
|
+
name=f"melt_math:subject={subject},level={level},"
|
|
322
|
+
f"use_official_examples={use_official_examples_bool},use_chain_of_thought={use_chain_of_thought_bool}",
|
|
323
|
+
scenario_spec=scenario_spec,
|
|
324
|
+
adapter_spec=adapter_spec,
|
|
325
|
+
metric_specs=get_basic_metric_specs(
|
|
326
|
+
["math_equiv_chain_of_thought" if use_chain_of_thought_bool else "math_equiv"]
|
|
327
|
+
)
|
|
328
|
+
+ get_vietnamese_generative_harms_metric_specs(include_generative_harms_metrics=True),
|
|
329
|
+
groups=["melt", "melt_math"] + groups,
|
|
330
|
+
)
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
@run_spec_function("melt_translation_opus100")
|
|
334
|
+
def get_melt_translation_opus100_spec(language_pair: str, max_train_instances: int = 1) -> RunSpec:
|
|
335
|
+
FULL_LANGUAGE_NAMES = {
|
|
336
|
+
"vi": "Vietnamese",
|
|
337
|
+
"en": "English",
|
|
338
|
+
}
|
|
339
|
+
source_language, target_language = language_pair.split("-")
|
|
340
|
+
|
|
341
|
+
scenario_spec = ScenarioSpec(
|
|
342
|
+
class_name="helm.benchmark.scenarios.melt_translation_scenario.MELTTranslationOPUS100Scenario",
|
|
343
|
+
args={"source_language": source_language, "target_language": target_language},
|
|
344
|
+
)
|
|
345
|
+
|
|
346
|
+
adapter_spec = get_machine_translation_adapter_spec(
|
|
347
|
+
source_language=FULL_LANGUAGE_NAMES[source_language],
|
|
348
|
+
target_language=FULL_LANGUAGE_NAMES[target_language],
|
|
349
|
+
max_train_instances=max_train_instances,
|
|
350
|
+
)
|
|
351
|
+
|
|
352
|
+
return RunSpec(
|
|
353
|
+
name=(f"melt_translation_opus100:language_pair={language_pair}"),
|
|
354
|
+
scenario_spec=scenario_spec,
|
|
355
|
+
adapter_spec=adapter_spec,
|
|
356
|
+
metric_specs=get_open_ended_generation_metric_specs()
|
|
357
|
+
+ get_vietnamese_generative_harms_metric_specs(include_generative_harms_metrics=True),
|
|
358
|
+
groups=["melt", "melt_translation_opus100"],
|
|
359
|
+
)
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
@run_spec_function("melt_translation_phomt")
|
|
363
|
+
def get_melt_translation_phomt_spec(language_pair: str, max_train_instances: int = 1) -> RunSpec:
|
|
364
|
+
FULL_LANGUAGE_NAMES = {
|
|
365
|
+
"vi": "Vietnamese",
|
|
366
|
+
"en": "English",
|
|
367
|
+
}
|
|
368
|
+
source_language, target_language = language_pair.split("-")
|
|
369
|
+
|
|
370
|
+
scenario_spec = ScenarioSpec(
|
|
371
|
+
class_name="helm.benchmark.scenarios.melt_translation_scenario.MELTTranslationPhoMTScenario",
|
|
372
|
+
args={"source_language": source_language, "target_language": target_language},
|
|
373
|
+
)
|
|
374
|
+
|
|
375
|
+
adapter_spec = get_machine_translation_adapter_spec(
|
|
376
|
+
source_language=FULL_LANGUAGE_NAMES[source_language],
|
|
377
|
+
target_language=FULL_LANGUAGE_NAMES[target_language],
|
|
378
|
+
max_train_instances=max_train_instances,
|
|
379
|
+
)
|
|
380
|
+
|
|
381
|
+
return RunSpec(
|
|
382
|
+
name=(f"melt_translation_phomt:language_pair={language_pair}"),
|
|
383
|
+
scenario_spec=scenario_spec,
|
|
384
|
+
adapter_spec=adapter_spec,
|
|
385
|
+
metric_specs=get_open_ended_generation_metric_specs()
|
|
386
|
+
+ get_vietnamese_generative_harms_metric_specs(include_generative_harms_metrics=True),
|
|
387
|
+
groups=["melt", "melt_translation_phomt"],
|
|
388
|
+
)
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
@run_spec_function("melt_lm_mask_filling_mlqa")
|
|
392
|
+
def get_melt_lm_mask_filling_mlqaa_spec() -> RunSpec:
|
|
393
|
+
scenario_spec = ScenarioSpec(class_name="helm.benchmark.scenarios.melt_lm_scenarios.MELTLMMaskFillingMLQAScenario")
|
|
394
|
+
|
|
395
|
+
instruction = (
|
|
396
|
+
"Hãy hoàn thành câu sau bằng cách điền vào các vị trí trống được đánh dấu bằng [MASK]. "
|
|
397
|
+
"Chỉ trả lời bằng câu đã hoàn thành và không thêm gì khác."
|
|
398
|
+
)
|
|
399
|
+
adapter_spec = get_generation_adapter_spec(
|
|
400
|
+
instructions=instruction,
|
|
401
|
+
input_noun="Câu có chỗ trống",
|
|
402
|
+
output_noun="Câu đã hoàn thành",
|
|
403
|
+
num_outputs=1,
|
|
404
|
+
max_tokens=1024,
|
|
405
|
+
temperature=0.0,
|
|
406
|
+
)
|
|
407
|
+
|
|
408
|
+
return RunSpec(
|
|
409
|
+
name="melt_lm_mask_filling_mlqa",
|
|
410
|
+
scenario_spec=scenario_spec,
|
|
411
|
+
adapter_spec=adapter_spec,
|
|
412
|
+
metric_specs=get_exact_match_metric_specs() + get_f1_metric_specs(),
|
|
413
|
+
groups=["melt", "melt_lm_mask_filling_mlqa"],
|
|
414
|
+
)
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
@run_spec_function("melt_lm_spelling_correction_vsec")
|
|
418
|
+
def get_melt_lm_spelling_correction_vsec_spec() -> RunSpec:
|
|
419
|
+
scenario_spec = ScenarioSpec(
|
|
420
|
+
class_name="helm.benchmark.scenarios.melt_lm_scenarios.MELTLMSpellingCorrectionVSECScenario"
|
|
421
|
+
)
|
|
422
|
+
|
|
423
|
+
instruction = "Hãy sửa lỗi chính tả trong câu sau. Chỉ trả lời bằng câu đã sửa đúng chính tả và không thêm gì khác."
|
|
424
|
+
adapter_spec = get_generation_adapter_spec(
|
|
425
|
+
instructions=instruction,
|
|
426
|
+
input_noun="Câu có lỗi",
|
|
427
|
+
output_noun="Câu đã sửa",
|
|
428
|
+
num_outputs=1,
|
|
429
|
+
max_tokens=1024,
|
|
430
|
+
temperature=0.0,
|
|
431
|
+
)
|
|
432
|
+
|
|
433
|
+
return RunSpec(
|
|
434
|
+
name="melt_lm_spelling_correction_vsec",
|
|
435
|
+
scenario_spec=scenario_spec,
|
|
436
|
+
adapter_spec=adapter_spec,
|
|
437
|
+
metric_specs=get_exact_match_metric_specs() + get_f1_metric_specs(),
|
|
438
|
+
groups=["melt", "melt_lm_spelling_correction_vsec"],
|
|
439
|
+
)
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
@run_spec_function("melt_text_classification_vsmec")
|
|
443
|
+
def get_melt_text_classification_vsmec_spec() -> RunSpec:
|
|
444
|
+
scenario_spec = ScenarioSpec(
|
|
445
|
+
class_name="helm.benchmark.scenarios.melt_scenarios.MELTTextClassificationVSMECScenario"
|
|
446
|
+
)
|
|
447
|
+
|
|
448
|
+
instruction = (
|
|
449
|
+
"Hãy phân loại cảm xúc của bình luận sau vào một trong các nhóm: "
|
|
450
|
+
"sadness, surprise, disgust, fear, anger, enjoyment, other."
|
|
451
|
+
)
|
|
452
|
+
|
|
453
|
+
adapter_spec = get_generation_adapter_spec(
|
|
454
|
+
instructions=instruction,
|
|
455
|
+
input_noun="Bình luận",
|
|
456
|
+
output_noun="Loại cảm xúc",
|
|
457
|
+
max_tokens=50,
|
|
458
|
+
multi_label=False,
|
|
459
|
+
)
|
|
460
|
+
|
|
461
|
+
return RunSpec(
|
|
462
|
+
name="melt_text_classification_vsmec",
|
|
463
|
+
scenario_spec=scenario_spec,
|
|
464
|
+
adapter_spec=adapter_spec,
|
|
465
|
+
metric_specs=get_exact_match_metric_specs()
|
|
466
|
+
+ get_classification_metric_specs(
|
|
467
|
+
labels=["sadness", "surprise", "disgust", "fear", "anger", "enjoyment", "other"]
|
|
468
|
+
),
|
|
469
|
+
groups=["melt", "melt_text_classification_vsmec"],
|
|
470
|
+
)
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
@run_spec_function("melt_text_classification_phoatis")
|
|
474
|
+
def get_melt_text_classification_phoatis_spec() -> RunSpec:
|
|
475
|
+
scenario_spec = ScenarioSpec(
|
|
476
|
+
class_name="helm.benchmark.scenarios.melt_scenarios.MELTTextClassificationPhoATISScenario"
|
|
477
|
+
)
|
|
478
|
+
|
|
479
|
+
instruction = (
|
|
480
|
+
"Hãy phân loại yêu cầu của khách hàng vào trong các nhóm sau: "
|
|
481
|
+
"flight, airfare, ground_service, day_name, meal, airport, airline, flight_time, city, "
|
|
482
|
+
"ground_fare, quantity, abbreviation, distance, aircraft, capacity, flight_no, restriction. "
|
|
483
|
+
"Yêu cầu của khách hàng có thể thuộc tối đa 2 loại và phân biệt nhau bằng dấu phẩy."
|
|
484
|
+
)
|
|
485
|
+
|
|
486
|
+
adapter_spec = get_generation_adapter_spec(
|
|
487
|
+
instructions=instruction,
|
|
488
|
+
input_noun="Yêu cầu của khách hàng",
|
|
489
|
+
output_noun="Loại yêu cầu",
|
|
490
|
+
max_tokens=50,
|
|
491
|
+
multi_label=True,
|
|
492
|
+
)
|
|
493
|
+
|
|
494
|
+
return RunSpec(
|
|
495
|
+
name="melt_text_classification_phoatis",
|
|
496
|
+
scenario_spec=scenario_spec,
|
|
497
|
+
adapter_spec=adapter_spec,
|
|
498
|
+
metric_specs=get_exact_match_metric_specs()
|
|
499
|
+
+ get_classification_metric_specs(
|
|
500
|
+
delimiter=",",
|
|
501
|
+
labels=[
|
|
502
|
+
"flight",
|
|
503
|
+
"airfare",
|
|
504
|
+
"ground_service",
|
|
505
|
+
"day_name",
|
|
506
|
+
"meal",
|
|
507
|
+
"airport",
|
|
508
|
+
"airline",
|
|
509
|
+
"flight_time",
|
|
510
|
+
"city",
|
|
511
|
+
"ground_fare",
|
|
512
|
+
"quantity",
|
|
513
|
+
"abbreviation",
|
|
514
|
+
"distance",
|
|
515
|
+
"aircraft",
|
|
516
|
+
"capacity",
|
|
517
|
+
"flight_no",
|
|
518
|
+
"restriction",
|
|
519
|
+
],
|
|
520
|
+
),
|
|
521
|
+
groups=["melt", "melt_text_classification_phoatis"],
|
|
522
|
+
)
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
@run_spec_function("melt_sentiment_analysis_vlsp")
|
|
526
|
+
def get_melt_sentiment_analysis_vlsp_spec() -> RunSpec:
|
|
527
|
+
scenario_spec = ScenarioSpec(
|
|
528
|
+
class_name="helm.benchmark.scenarios.melt_scenarios.MELTTSentimentAnalysisVLSPScenario"
|
|
529
|
+
)
|
|
530
|
+
|
|
531
|
+
instruction = "Hãy phân tích quan điểm của nhận xét sau vào một trong các nhóm: negative, neutral, positive."
|
|
532
|
+
|
|
533
|
+
adapter_spec = get_generation_adapter_spec(
|
|
534
|
+
instructions=instruction,
|
|
535
|
+
input_noun="Nhận xét",
|
|
536
|
+
output_noun="Quan điểm",
|
|
537
|
+
max_tokens=50,
|
|
538
|
+
multi_label=False,
|
|
539
|
+
)
|
|
540
|
+
|
|
541
|
+
return RunSpec(
|
|
542
|
+
name="melt_sentiment_analysis_vlsp",
|
|
543
|
+
scenario_spec=scenario_spec,
|
|
544
|
+
adapter_spec=adapter_spec,
|
|
545
|
+
metric_specs=get_exact_match_metric_specs()
|
|
546
|
+
+ get_classification_metric_specs(labels=["negative", "neutral", "positive"]),
|
|
547
|
+
groups=["melt", "melt_sentiment_analysis_vlsp"],
|
|
548
|
+
)
|
|
549
|
+
|
|
550
|
+
|
|
551
|
+
@run_spec_function("melt_sentiment_analysis_vsfc")
|
|
552
|
+
def get_melt_sentiment_analysis_vsfc_spec() -> RunSpec:
|
|
553
|
+
scenario_spec = ScenarioSpec(
|
|
554
|
+
class_name="helm.benchmark.scenarios.melt_scenarios.MELTTSentimentAnalysisVSFCScenario"
|
|
555
|
+
)
|
|
556
|
+
|
|
557
|
+
instruction = "Hãy phân tích quan điểm của nhận xét sau vào một trong các nhóm: negative, neutral, positive."
|
|
558
|
+
|
|
559
|
+
adapter_spec = get_generation_adapter_spec(
|
|
560
|
+
instructions=instruction,
|
|
561
|
+
input_noun="Nhận xét",
|
|
562
|
+
output_noun="Quan điểm",
|
|
563
|
+
max_tokens=50,
|
|
564
|
+
multi_label=False,
|
|
565
|
+
)
|
|
566
|
+
|
|
567
|
+
return RunSpec(
|
|
568
|
+
name="melt_sentiment_analysis_vsfc",
|
|
569
|
+
scenario_spec=scenario_spec,
|
|
570
|
+
adapter_spec=adapter_spec,
|
|
571
|
+
metric_specs=get_exact_match_metric_specs()
|
|
572
|
+
+ get_classification_metric_specs(labels=["negative", "neutral", "positive"]),
|
|
573
|
+
groups=["melt", "melt_sentiment_analysis_vsfc"],
|
|
574
|
+
)
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
@run_spec_function("melt_knowledge_zalo")
|
|
578
|
+
def get_melt_knowledge_zalo_spec() -> RunSpec:
|
|
579
|
+
scenario_spec = ScenarioSpec(
|
|
580
|
+
class_name="helm.benchmark.scenarios.melt_knowledge_scenario.MELTKnowledgeZaloScenario"
|
|
581
|
+
)
|
|
582
|
+
|
|
583
|
+
instruction = (
|
|
584
|
+
"Hãy trả lời câu hỏi bên dưới bằng cách sử dụng các kiến thức thông thường trong cuộc sống. "
|
|
585
|
+
"Nếu bạn không biết câu trả lời, hãy trả lời 'không có đáp án'."
|
|
586
|
+
)
|
|
587
|
+
|
|
588
|
+
adapter_spec = get_generation_adapter_spec(
|
|
589
|
+
instructions=instruction,
|
|
590
|
+
output_noun="Trả lời",
|
|
591
|
+
max_tokens=128,
|
|
592
|
+
)
|
|
593
|
+
|
|
594
|
+
return RunSpec(
|
|
595
|
+
name="melt_knowledge_zalo",
|
|
596
|
+
scenario_spec=scenario_spec,
|
|
597
|
+
adapter_spec=adapter_spec,
|
|
598
|
+
metric_specs=get_exact_match_metric_specs() + get_f1_metric_specs(),
|
|
599
|
+
groups=["melt", "melt_knowledge_zalo"],
|
|
600
|
+
)
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
@run_spec_function("melt_knowledge_vimmrc")
|
|
604
|
+
def get_melt_knowledge_vimmrc_spec(randomize_order: bool = False) -> RunSpec:
|
|
605
|
+
scenario_spec = ScenarioSpec(
|
|
606
|
+
class_name="helm.benchmark.scenarios.melt_knowledge_scenario.MELTKnowledgeViMMRCScenario",
|
|
607
|
+
args={"randomize_order": randomize_order},
|
|
608
|
+
)
|
|
609
|
+
|
|
610
|
+
adapter_spec = get_multiple_choice_adapter_spec(
|
|
611
|
+
method=ADAPT_MULTIPLE_CHOICE_JOINT,
|
|
612
|
+
instructions="Sau đây là các câu hỏi trắc nghiệm (có đáp án).",
|
|
613
|
+
input_noun=None,
|
|
614
|
+
output_noun="Trả lời",
|
|
615
|
+
)
|
|
616
|
+
|
|
617
|
+
return RunSpec(
|
|
618
|
+
name="melt_knowledge_vimmrc",
|
|
619
|
+
scenario_spec=scenario_spec,
|
|
620
|
+
adapter_spec=adapter_spec,
|
|
621
|
+
metric_specs=get_exact_match_metric_specs(),
|
|
622
|
+
groups=["melt", "melt_knowledge_vimmrc"],
|
|
623
|
+
)
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
@run_spec_function("melt_toxicity_detection_vihsd")
|
|
627
|
+
def get_melt_toxicity_detection_vihsd_spec() -> RunSpec:
|
|
628
|
+
scenario_spec = ScenarioSpec(
|
|
629
|
+
class_name="helm.benchmark.scenarios.melt_scenarios.MELTToxicityDetectionViHSDScenario"
|
|
630
|
+
)
|
|
631
|
+
|
|
632
|
+
instruction = (
|
|
633
|
+
"Hãy phân loại độc hại của bình luận sau vào một trong các nhóm:\n"
|
|
634
|
+
"- clean: Không độc hại\n"
|
|
635
|
+
"- offensive: Ngôn từ xúc phạm\n"
|
|
636
|
+
"- hate: Ngôn từ thù địch\n"
|
|
637
|
+
"Chỉ trả lời một trong các nhóm trên mà không cần giải thích thêm."
|
|
638
|
+
)
|
|
639
|
+
|
|
640
|
+
adapter_spec = get_generation_adapter_spec(
|
|
641
|
+
instructions=instruction,
|
|
642
|
+
input_noun="Bình luận",
|
|
643
|
+
output_noun="Phân loại độc hại",
|
|
644
|
+
max_tokens=50,
|
|
645
|
+
multi_label=False,
|
|
646
|
+
)
|
|
647
|
+
|
|
648
|
+
return RunSpec(
|
|
649
|
+
name="melt_toxicity_detection_vihsd",
|
|
650
|
+
scenario_spec=scenario_spec,
|
|
651
|
+
adapter_spec=adapter_spec,
|
|
652
|
+
metric_specs=get_exact_match_metric_specs()
|
|
653
|
+
+ get_classification_metric_specs(labels=["clean", "offensive", "hate"]),
|
|
654
|
+
groups=["melt", "melt_toxicity_detection_vihsd"],
|
|
655
|
+
)
|
|
656
|
+
|
|
657
|
+
|
|
658
|
+
@run_spec_function("melt_toxicity_detection_victsd")
|
|
659
|
+
def get_melt_toxicity_detection_victsd_spec() -> RunSpec:
|
|
660
|
+
scenario_spec = ScenarioSpec(
|
|
661
|
+
class_name="helm.benchmark.scenarios.melt_scenarios.MELTToxicityDetectionViCTSDScenario"
|
|
662
|
+
)
|
|
663
|
+
|
|
664
|
+
instruction = (
|
|
665
|
+
"Hãy phân loại độc hại của bình luận sau vào một trong các nhóm:\n"
|
|
666
|
+
"- clean: Không độc hại\n"
|
|
667
|
+
"- toxic: Ngôn từ độc hại\n"
|
|
668
|
+
"Chỉ trả lời một trong các nhóm trên mà không cần giải thích thêm."
|
|
669
|
+
)
|
|
670
|
+
|
|
671
|
+
adapter_spec = get_generation_adapter_spec(
|
|
672
|
+
instructions=instruction,
|
|
673
|
+
input_noun="Bình luận",
|
|
674
|
+
output_noun="Phân loại độc hại",
|
|
675
|
+
max_tokens=50,
|
|
676
|
+
multi_label=True,
|
|
677
|
+
)
|
|
678
|
+
|
|
679
|
+
return RunSpec(
|
|
680
|
+
name="melt_toxicity_detection_victsd",
|
|
681
|
+
scenario_spec=scenario_spec,
|
|
682
|
+
adapter_spec=adapter_spec,
|
|
683
|
+
metric_specs=get_exact_match_metric_specs() + get_classification_metric_specs(labels=["clean", "toxic"]),
|
|
684
|
+
groups=["melt", "melt_toxicity_detection_victsd"],
|
|
685
|
+
)
|
|
686
|
+
|
|
687
|
+
|
|
688
|
+
@run_spec_function("melt_information_retrieval_mmarco")
|
|
689
|
+
def get_melt_information_retrieval_mmarco_spec(valid_topk: Optional[int] = None) -> RunSpec:
|
|
690
|
+
from helm.benchmark.scenarios.msmarco_scenario import MSMARCOScenario
|
|
691
|
+
|
|
692
|
+
valid_topk = None if valid_topk is None else int(valid_topk)
|
|
693
|
+
scenario_spec = ScenarioSpec(
|
|
694
|
+
class_name="helm.benchmark.scenarios.melt_ir_scenario.MELTInformationRetrievalMMARCOScenario",
|
|
695
|
+
args={"valid_topk": valid_topk},
|
|
696
|
+
)
|
|
697
|
+
|
|
698
|
+
adapter_spec: AdapterSpec = get_ranking_binary_adapter_spec(
|
|
699
|
+
document_noun="Đoạn văn",
|
|
700
|
+
query_noun="Câu hỏi",
|
|
701
|
+
output_prefix="Đoạn văn này có trả lời được câu hỏi không?",
|
|
702
|
+
output_noun="Trả lời",
|
|
703
|
+
stop_sequences=["\n"],
|
|
704
|
+
)
|
|
705
|
+
|
|
706
|
+
# Names of the measures we want to compute.
|
|
707
|
+
measure_names = MSMARCOScenario.MEASURE_NAMES["regular"]
|
|
708
|
+
multiple_relevance_values = set(MSMARCOScenario.GOLD_RELATIONS["regular"]) != {1}
|
|
709
|
+
|
|
710
|
+
metric_specs = (
|
|
711
|
+
[
|
|
712
|
+
MetricSpec(
|
|
713
|
+
class_name="helm.benchmark.metrics.ranking_metrics.RankingMetric",
|
|
714
|
+
args={
|
|
715
|
+
"method": ADAPT_RANKING_BINARY,
|
|
716
|
+
"measure_names": measure_names,
|
|
717
|
+
"correct_output": BinaryRankingAdapter.RANKING_CORRECT_LABEL,
|
|
718
|
+
"wrong_output": BinaryRankingAdapter.RANKING_WRONG_LABEL,
|
|
719
|
+
"rank": valid_topk,
|
|
720
|
+
"multiple_relevance_values": multiple_relevance_values,
|
|
721
|
+
},
|
|
722
|
+
),
|
|
723
|
+
]
|
|
724
|
+
+ get_basic_reference_metric_specs()
|
|
725
|
+
+ get_generic_metric_specs()
|
|
726
|
+
)
|
|
727
|
+
|
|
728
|
+
return RunSpec(
|
|
729
|
+
name=f"melt_information_retrieval_mmarco:valid_topk={valid_topk}",
|
|
730
|
+
scenario_spec=scenario_spec,
|
|
731
|
+
adapter_spec=adapter_spec,
|
|
732
|
+
metric_specs=metric_specs,
|
|
733
|
+
groups=["melt", "melt_information_retrieval_mmarco"],
|
|
734
|
+
)
|
|
735
|
+
|
|
736
|
+
|
|
737
|
+
@run_spec_function("melt_information_retrieval_mrobust")
|
|
738
|
+
def get_melt_information_retrieval_mrobust_spec(valid_topk: Optional[int] = None) -> RunSpec:
|
|
739
|
+
from helm.benchmark.scenarios.msmarco_scenario import MSMARCOScenario
|
|
740
|
+
|
|
741
|
+
valid_topk = None if valid_topk is None else int(valid_topk)
|
|
742
|
+
scenario_spec = ScenarioSpec(
|
|
743
|
+
class_name="helm.benchmark.scenarios.melt_ir_scenario.MELTInformationRetrievalMRobustScenario",
|
|
744
|
+
args={"valid_topk": valid_topk},
|
|
745
|
+
)
|
|
746
|
+
|
|
747
|
+
adapter_spec: AdapterSpec = get_ranking_binary_adapter_spec(
|
|
748
|
+
document_noun="Đoạn văn",
|
|
749
|
+
query_noun="Câu hỏi",
|
|
750
|
+
output_prefix="Đoạn văn này có trả lời được câu hỏi không?",
|
|
751
|
+
output_noun="Trả lời",
|
|
752
|
+
stop_sequences=["\n"],
|
|
753
|
+
)
|
|
754
|
+
|
|
755
|
+
# Names of the measures we want to compute.
|
|
756
|
+
measure_names = MSMARCOScenario.MEASURE_NAMES["trec"]
|
|
757
|
+
multiple_relevance_values = set(MSMARCOScenario.GOLD_RELATIONS["trec"]) != {1}
|
|
758
|
+
|
|
759
|
+
metric_specs = (
|
|
760
|
+
[
|
|
761
|
+
MetricSpec(
|
|
762
|
+
class_name="helm.benchmark.metrics.ranking_metrics.RankingMetric",
|
|
763
|
+
args={
|
|
764
|
+
"method": ADAPT_RANKING_BINARY,
|
|
765
|
+
"measure_names": measure_names,
|
|
766
|
+
"correct_output": BinaryRankingAdapter.RANKING_CORRECT_LABEL,
|
|
767
|
+
"wrong_output": BinaryRankingAdapter.RANKING_WRONG_LABEL,
|
|
768
|
+
"rank": valid_topk,
|
|
769
|
+
"multiple_relevance_values": multiple_relevance_values,
|
|
770
|
+
},
|
|
771
|
+
),
|
|
772
|
+
]
|
|
773
|
+
+ get_basic_reference_metric_specs()
|
|
774
|
+
+ get_generic_metric_specs()
|
|
775
|
+
)
|
|
776
|
+
|
|
777
|
+
return RunSpec(
|
|
778
|
+
name=f"melt_information_retrieval_mrobust:valid_topk={valid_topk}",
|
|
779
|
+
scenario_spec=scenario_spec,
|
|
780
|
+
adapter_spec=adapter_spec,
|
|
781
|
+
metric_specs=metric_specs,
|
|
782
|
+
groups=["melt", "melt_information_retrieval_mrobust"],
|
|
783
|
+
)
|