File size: 1,806 Bytes
056d8d3
d390139
b3722a8
 
d390139
b3722a8
 
 
18cbf00
3b3aaa9
18cbf00
3b3aaa9
056d8d3
 
b3722a8
 
 
 
49d0cfc
b3722a8
49d0cfc
056d8d3
b3722a8
49d0cfc
 
056d8d3
49d0cfc
 
b3722a8
 
 
 
49d0cfc
b3722a8
49d0cfc
b3722a8
49d0cfc
 
056d8d3
49d0cfc
 
b3722a8
056d8d3
b3722a8
 
49d0cfc
b3722a8
 
49d0cfc
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from pathlib import Path

import yaml
from huggingface_hub import HfApi, HfFileSystem, hf_hub_download

from mlip_arena.models import MLIP
from mlip_arena.models import REGISTRY as MODEL_REGISTRY

# from .run import md as MD

# __all__ = ["MD"]

with open(Path(__file__).parent / "registry.yaml") as f:
    REGISTRY = yaml.safe_load(f)


class Task:
    def __init__(self):
        self.name: str = self.__class__.__name__  # display name on the leaderboard

    def run_local(self, model: MLIP):
        """Run the task using the given model and return the results."""
        raise NotImplementedError

    def run_hf(self, model: MLIP):
        """Run the task using the given model and return the results."""
        raise NotImplementedError

        # Calcualte evaluation metrics and postprocessed data
        api = HfApi()
        api.upload_file(
            path_or_fileobj="results.json",
            path_in_repo=f"{self.__class__.__name__}/{model.__class__.__name__}/results.json",  # Upload to a specific folder
            repo_id="atomind/mlip-arena",
            repo_type="dataset",
        )

    def run_nersc(self, model: MLIP):
        """Run the task using the given model and return the results."""
        raise NotImplementedError

    def get_results(self):
        """Get the results from the task."""
        # fs = HfFileSystem()
        # files = fs.glob(f"datasets/atomind/mlip-arena/{self.__class__.__name__}/*/*.json")

        for model, metadata in MODEL_REGISTRY.items():
            results = hf_hub_download(
                repo_id="atomind/mlip-arena",
                filename="results.json",
                subfolder=f"{self.__class__.__name__}/{model}",
                repo_type="dataset",
                revision=None,
            )

        return results