Framework Definition File (FDF)#

Framework Definition Files are YAML configuration files that integrate evaluation frameworks into NeMo Evaluator. They define framework metadata, execution commands, and evaluation tasks.

New to FDFs? Learn about the concepts and architecture before creating one.

Prerequisites#

Before creating an FDF, you should:

  • Understand YAML syntax and structure

  • Be familiar with your evaluation framework’s CLI interface

  • Have basic knowledge of Jinja2 templating

  • Know the API endpoint types your framework supports

Getting Started#

Creating your first FDF? Follow this sequence:

  1. Framework Section - Define framework metadata

  2. Defaults Section - Configure command templates and parameters

  3. Evaluations Section - Define evaluation tasks

  4. Integration with Eval Factory - Integrate with Eval Factory

Need help? Refer to Troubleshooting for debugging common issues.

Complete Example#

The FDF follows a hierarchical structure with three main sections. Here’s a minimal but complete example:

# 1. Framework Identification
framework:
  name: my-custom-eval
  pkg_name: my_custom_eval
  full_name: My Custom Evaluation Framework
  description: Evaluates domain-specific capabilities
  url: https://github.com/example/my-eval

# 2. Default Command and Configuration
defaults:
  command: >-
    {% if target.api_endpoint.api_key is not none %}export API_KEY=${{target.api_endpoint.api_key}} && {% endif %}
    my-eval-cli --model {{target.api_endpoint.model_id}} 
                --task {{config.params.task}}
                --output {{config.output_dir}}
  
  config:
    params:
      temperature: 0.0
      max_new_tokens: 1024
  
  target:
    api_endpoint:
      type: chat
      supported_endpoint_types:
        - chat
        - completions

# 3. Evaluation Types
evaluations:
  - name: my_task_1
    description: First evaluation task
    defaults:
      config:
        type: my_task_1
        supported_endpoint_types:
          - chat
        params:
          task: my_task_1

Reference Documentation#

Framework Section

Define framework metadata including name, package information, and repository URL.

Framework Section
Defaults Section

Configure default parameters, command templates, and target endpoint settings.

Defaults Section
Evaluations Section

Define specific evaluation types with task-specific configurations and parameters.

Evaluations Section
Advanced Features

Use conditionals, parameter inheritance, and dynamic configuration in your FDF.

Advanced Features
Integration

Learn how to integrate your FDF with the Eval Factory system.

Integration with Eval Factory
Troubleshooting

Debug common issues with template errors, parameters, and validation.

Troubleshooting