File size: 1,802 Bytes
c162771
1547ed2
fa55745
 
1547ed2
fa55745
 
 
1485b15
 
 
 
c162771
 
fa55745
 
 
 
d98d701
fa55745
d98d701
c162771
fa55745
d98d701
 
c162771
d98d701
 
fa55745
 
 
 
d98d701
fa55745
d98d701
fa55745
d98d701
 
c162771
d98d701
 
fa55745
c162771
fa55745
 
d98d701
fa55745
 
d98d701
 
 
 
 
 
 
 
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