Keep K3 suite selection and report-schema scoring in bash, merge K3/vision dataset_args into dpv4 yamls, and pin EvalScope at 735d920ee911 with local patches. Co-authored-by: Cursor <cursoragent@cursor.com>
3.8 KiB
3.8 KiB
BhashaBench-V1 (Legal)
Overview
BhashaBench-Legal is the predecessor of BhashaBench-Multi's legal domain: a domain-specific multiple-choice benchmark evaluating LLM knowledge of Indian law, covering English and Hindi.
Task Description
- Task Type: Domain-Specific Multiple-Choice Question Answering
- Input: An Indian law question with 4 answer choices, in English or Hindi
- Output: Correct answer letter
- Languages: English, Hindi
Key Features
- 5,600–17,000 questions per language, covering English and Hindi only
- Predecessor of BhashaBench-Multi: same domains, narrower language coverage
- Each domain is a separate repository, with English and Hindi as separate configs
Evaluation Notes
- Default configuration uses 0-shot evaluation (test split, the only split available)
- Use
subset_listto evaluate a single language (e.g.,['Hindi']) - Requires access to this gated dataset - on ModelScope (the default hub), accept the terms and
ensure you're logged in; alternatively, set
dataset_hubtohuggingfaceand useHF_TOKENafter accepting the terms on huggingface.co - For broader language coverage of the same domain, see
bhasha_bench_multi_legal(22 Indic languages, not gated)
Properties
| Property | Value |
|---|---|
| Benchmark Name | bhashabenchv1_legal |
| Dataset ID | bharatgenai/BhashaBench-Legal |
| Paper | N/A |
| Tags | Knowledge, MCQ, MultiLingual |
| Metrics | accuracy |
| Default Shots | 0-shot |
| Evaluation Split | test |
Data Statistics
| Metric | Value |
|---|---|
| Total Samples | 24,365 |
| Prompt Length (Mean) | 513.88 chars |
| Prompt Length (Min/Max) | 229 / 4628 chars |
Per-Subset Statistics:
| Subset | Samples | Prompt Mean | Prompt Min | Prompt Max |
|---|---|---|---|---|
English |
17,047 | 539.36 | 233 | 4628 |
Hindi |
7,318 | 454.52 | 229 | 1748 |
Sample Example
Subset: English
{
"input": [
{
"id": "6e1ae42b",
"content": "Answer the following multiple choice question. The entire content of your response should be of the following format: 'ANSWER: [LETTER]' (without quotes) where [LETTER] is one of A,B,C,D.\n\nPower to amend the issue or frame additional issues prior to passing of a decree vests in a Court by virtue of which provision of the Code of Civil Procedure, 1908?\n\nA) Order XIV Rule 1\nB) Order XIV Rule 5\nC) Order XIV Rule 6\nD) Section 151"
}
],
"choices": [
"Order XIV Rule 1",
"Order XIV Rule 5",
"Order XIV Rule 6",
"Section 151"
],
"target": "B",
"id": 0,
"group_id": 0,
"metadata": {
"language": "English",
"topic": "Procedural Law"
}
}
Prompt Template
Prompt Template:
Answer the following multiple choice question. The entire content of your response should be of the following format: 'ANSWER: [LETTER]' (without quotes) where [LETTER] is one of {letters}.
{question}
{choices}
Usage
Using CLI
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets bhashabenchv1_legal \
--limit 10 # Remove this line for formal evaluation
Using Python
from evalscope import run_task
from evalscope.config import TaskConfig
task_cfg = TaskConfig(
model='YOUR_MODEL',
api_url='OPENAI_API_COMPAT_URL',
api_key='EMPTY_TOKEN',
datasets=['bhashabenchv1_legal'],
dataset_args={
'bhashabenchv1_legal': {
# subset_list: ['English', 'Hindi'] # optional, evaluate specific subsets
}
},
limit=10, # Remove this line for formal evaluation
)
run_task(task_cfg=task_cfg)