You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- 🌐 **Multi-Scenario Coverage:** Extensive support for diverse domains including Agent, text, code, math, and multimodal tasks. 👉 [Explore Supported Scenarios](./docs/built_in_graders/overview.md)
93
-
- 🔄 **Holistic Agent Evaluation:** Beyond final outcomes, we assess the entire lifecycle—including trajectories, Memory, Reflection, and Tool Use. 👉 [Agent Lifecycle Evaluation](./docs/built_in_graders/agent_graders.md)
92
+
- 🌐 **Multi-Scenario Coverage:** Extensive support for diverse domains including Agent, text, code, math, and multimodal tasks. 👉 [Explore Supported Scenarios](https://modelscope.github.io/OpenJudge/built_in_graders/overview/)
93
+
- 🔄 **Holistic Agent Evaluation:** Beyond final outcomes, we assess the entire lifecycle—including trajectories, Memory, Reflection, and Tool Use. 👉 [Agent Lifecycle Evaluation](https://modelscope.github.io/OpenJudge/built_in_graders/agent_graders/)
94
94
- ✅ **Quality Assurance:** Every grader comes with benchmark datasets and pytest integration for validation. 👉 [View Benchmark Datasets](https://huggingface.co/datasets/agentscope-ai/OpenJudge)
95
95
96
96
97
97
### 🛠️ Flexible Grader Building Methods
98
98
Choose the build method that fits your requirements:
99
-
***Customization:** Easily extend or modify pre-defined graders to fit your specific needs. 👉 [Custom Grader Development Guide](./docs/building_graders/create_custom_graders.md)
100
-
***Data-Driven Rubrics:** Have a few examples but no clear rules? Use our tools to automatically generate white-box evaluation criteria (Rubrics) based on your data.👉 [Automatic Rubric Generation Tutorial](./docs/building_graders/generate_graders_from_data.md)
99
+
***Customization:** Easily extend or modify pre-defined graders to fit your specific needs. 👉 [Custom Grader Development Guide](https://modelscope.github.io/OpenJudge/building_graders/create_custom_graders/)
100
+
***Data-Driven Rubrics:** Have a few examples but no clear rules? Use our tools to automatically generate white-box evaluation criteria (Rubrics) based on your data.👉 [Automatic Rubric Generation Tutorial](https://modelscope.github.io/OpenJudge/building_graders/generate_graders_from_data/)
101
101
***Training Judge Models ( Coming Soon🚀):** For high-scale and specialized scenarios, we are developing the capability to train dedicated Judge models. Support for SFT, Bradley-Terry models, and Reinforcement Learning workflows is on the way to help you build high-performance, domain-specific graders.
102
102
103
103
@@ -122,7 +122,7 @@ We're actively building seamless connectors for mainstream observability platfor
122
122
pip install py-openjudge
123
123
```
124
124
125
-
> 💡 More installation methods can be found in the [Quickstart Guide](./docs/get_started/quickstart.md).
125
+
> 💡 More installation methods can be found in the [Quickstart Guide](https://modelscope.github.io/OpenJudge/get_started/quickstart/#installation).
126
126
127
127
---
128
128
@@ -156,7 +156,7 @@ if __name__ == "__main__":
156
156
asyncio.run(main())
157
157
```
158
158
159
-
> 📚 Complete Quickstart can be found in the [Quickstart Guide](./docs/get_started/quickstart.md).
159
+
> 📚 Complete Quickstart can be found in the [Quickstart Guide](https://modelscope.github.io/OpenJudge/get_started/quickstart/).
160
160
161
161
---
162
162
@@ -184,7 +184,7 @@ We love your input! We want to make contributing to OpenJudge as easy and transp
184
184
> **📝 Improving Docs** — Clearer explanations or better examples are always welcome
185
185
> **💡 Proposing Features** — Have ideas for new integrations? Let's discuss!
186
186
187
-
📖 See full [Contributing Guidelines](./docs/community/contributing.md) for coding standards and PR process.
187
+
📖 See full [Contributing Guidelines](https://modelscope.github.io/OpenJudge/community/contributing/) for coding standards and PR process.
188
188
189
189
---
190
190
@@ -204,7 +204,7 @@ pip install rm-gallery
204
204
205
205
We preserved the source code of **v0.1.7 (the latest v0.1.x release)** in the [`v0.1.7-legacy` branch](https://github.com/modelscope/OpenJudge/tree/v0.1.7-legacy).
206
206
207
-
-**Migrate to v0.2.0 (recommended)**: follow the **[Installation](#-installation)** section above, then walk through **[Quickstart](#-quickstart)** (or the full [Quickstart Guide](./docs/get_started/quickstart.md)) to update your imports / usage.
207
+
-**Migrate to v0.2.0 (recommended)**: follow the **[Installation](#-installation)** section above, then walk through **[Quickstart](#-quickstart)** (or the full [Quickstart Guide](https://modelscope.github.io/OpenJudge/get_started/quickstart/)) to update your imports / usage.
208
208
209
209
If you run into migration issues, please [open an issue](https://github.com/modelscope/OpenJudge/issues) with your minimal repro and current version.
Copy file name to clipboardExpand all lines: docs/get_started/core_concepts.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -50,7 +50,7 @@ Flexible [data mapping](#data-mapping) ensures your existing data formats can be
50
50
51
51
Based on your evaluation purpose, you can choose the appropriate assessment approach:
52
52
53
-
-**Code-Based graders**: For objective, quantitative evaluations using the [FunctionGrader](../../openjudge/graders/function_grader.py), these graders use predefined functions or algorithms to compute scores. These graders are deterministic and fast, ideal for metrics like exact match, format validation, or simple checks. This approach is best suited for quantitative analysis where you need consistent, reproducible results based on mathematical or logical operations.
53
+
-**Code-Based graders**: For objective, quantitative evaluations using the [FunctionGrader](https://github.com/modelscope/OpenJudge/blob/main/openjudge/graders/function_grader.py), these graders use predefined functions or algorithms to compute scores. These graders are deterministic and fast, ideal for metrics like exact match, format validation, or simple checks. This approach is best suited for quantitative analysis where you need consistent, reproducible results based on mathematical or logical operations.
54
54
55
55
```python
56
56
# A simple function grader that checks if response contains reference answer
-**LLM-Based graders**: For subjective, qualitative evaluations using the [LLMGrader](../../openjudge/graders/llm_grader.py), these graders leverage large language models to perform sophisticated evaluations. These graders can assess complex qualities like helpfulness, safety, or coherence by using natural language understanding. This approach is best suited for qualitative analysis where nuanced understanding is required, such as evaluating the helpfulness of responses, detecting subtle hallucinations, or assessing the quality of creative content.
63
+
-**LLM-Based graders**: For subjective, qualitative evaluations using the [LLMGrader](https://github.com/modelscope/OpenJudge/blob/main/openjudge/graders/llm_grader.py), these graders leverage large language models to perform sophisticated evaluations. These graders can assess complex qualities like helpfulness, safety, or coherence by using natural language understanding. This approach is best suited for qualitative analysis where nuanced understanding is required, such as evaluating the helpfulness of responses, detecting subtle hallucinations, or assessing the quality of creative content.
64
64
65
65
```python
66
66
# An LLM grader that evaluates helpfulness of responses
Based on the evaluation purpose, you can choose the appropriate evaluation mode. Each mode produces specific output types:
73
73
74
-
-**Pointwise evaluation**: Assesses individual samples independently, generating a score for each input-output pair. This approach is suitable for quantitative assessment of individual responses, producing a [GraderScore](../../openjudge/graders/schema.py) for each sample.
74
+
-**Pointwise evaluation**: Assesses individual samples independently, generating a score for each input-output pair. This approach is suitable for quantitative assessment of individual responses, producing a [GraderScore](https://github.com/modelscope/OpenJudge/blob/main/openjudge/graders/schema.py) for each sample.
75
75
76
-
-**Listwise evaluation**: Ranks multiple samples relative to each other, comparing several responses to the same query. This approach generates relative rankings rather than absolute scores, producing a [GraderRank](../../openjudge/graders/schema.py) that indicates the relative quality of responses.
76
+
-**Listwise evaluation**: Ranks multiple samples relative to each other, comparing several responses to the same query. This approach generates relative rankings rather than absolute scores, producing a [GraderRank](https://github.com/modelscope/OpenJudge/blob/main/openjudge/graders/schema.py) that indicates the relative quality of responses.
77
77
78
78
### Understanding Results
79
79
@@ -121,7 +121,7 @@ For detailed instructions on creating custom graders, please refer to the [Build
121
121
122
122
## How Runners Use Graders
123
123
124
-
The [GradingRunner](../../openjudge/runner/grading_runner.py) is the central execution engine of OpenJudge that orchestrates the evaluation process across multiple graders. It acts as the conductor of an orchestra, coordinating all the different graders to create a harmonious evaluation process. The GradingRunner is specifically designed to serve Graders by providing the infrastructure they need to operate efficiently and effectively. It serves Graders by providing execution orchestration, data mapping services, concurrency management, result aggregation, and resource optimization to execute graders concurrently and maximize throughput.
124
+
The [GradingRunner](https://github.com/modelscope/OpenJudge/blob/main/openjudge/runner/grading_runner.py) is the central execution engine of OpenJudge that orchestrates the evaluation process across multiple graders. It acts as the conductor of an orchestra, coordinating all the different graders to create a harmonious evaluation process. The GradingRunner is specifically designed to serve Graders by providing the infrastructure they need to operate efficiently and effectively. It serves Graders by providing execution orchestration, data mapping services, concurrency management, result aggregation, and resource optimization to execute graders concurrently and maximize throughput.
125
125
126
126
To better understand how Runners use Graders, let's look at a complete configuration example:
127
127
@@ -188,7 +188,7 @@ Types of mappers include:
188
188
189
189
#### Aggregation Configuration
190
190
191
-
After running multiple graders, you might want to combine their results into a single score. The [aggregator submodule](../../openjudge/runner/aggregator/) provides components that take multiple grader results and combine them into a unified result:
191
+
After running multiple graders, you might want to combine their results into a single score. The [aggregator submodule](https://github.com/modelscope/OpenJudge/tree/main/openjudge/runner/aggregator/) provides components that take multiple grader results and combine them into a unified result:
192
192
193
193
-**WeightedSumAggregator**: Combining results using weighted averages. In our example, we assign 60% weight to helpfulness and 40% to relevance: `WeightedSumAggregator(weights={"helpfulness": 0.6, "relevance": 0.4})`
194
194
-**MaxAggregator**: Taking the maximum score among all graders
@@ -208,11 +208,11 @@ Concurrency control enables efficient processing of large datasets while maintai
208
208
209
209
## How to Analyze Grader
210
210
211
-
After running evaluations with the **GradingRunner**, you can use the [analyzer module](../../openjudge/analyzer/) to process the results and gain deeper insights. Analyzers are optional components that help you understand your evaluation results better and assess the quality of your graders.
211
+
After running evaluations with the **GradingRunner**, you can use the [analyzer module](https://github.com/modelscope/OpenJudge/tree/main/openjudge/analyzer/) to process the results and gain deeper insights. Analyzers are optional components that help you understand your evaluation results better and assess the quality of your graders.
212
212
213
213
Types of analyzers include:
214
-
-**Statistical analyzers**: Compute statistics on evaluation results (e.g., [DistributionAnalyzer](../../openjudge/analyzer/statistical/distribution_analyzer.py)) to understand score distributions and identify potential issues with grader consistency
215
-
-**Validation analyzers**: Compare evaluation results with reference labels (e.g., [AccuracyAnalyzer](../../openjudge/analyzer/validation/accuracy_analyzer.py), [F1ScoreAnalyzer](../../openjudge/analyzer/validation/f1_score_analyzer.py)) to measure how well your graders correlate with known ground truth
214
+
-**Statistical analyzers**: Compute statistics on evaluation results (e.g., [DistributionAnalyzer](https://github.com/modelscope/OpenJudge/blob/main/openjudge/analyzer/statistical/distribution_analyzer.py)) to understand score distributions and identify potential issues with grader consistency
215
+
-**Validation analyzers**: Compare evaluation results with reference labels (e.g., [AccuracyAnalyzer](https://github.com/modelscope/OpenJudge/blob/main/openjudge/analyzer/validation/accuracy_analyzer.py), [F1ScoreAnalyzer](https://github.com/modelscope/OpenJudge/blob/main/openjudge/analyzer/validation/f1_score_analyzer.py)) to measure how well your graders correlate with known ground truth
216
216
217
217
These analyzers help you:
218
218
- Evaluate the effectiveness of your graders by comparing their outputs to known standards
0 commit comments