File size: 1,936 Bytes
61e43e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
58
59
60
"""Transformers-compatible Multiscreen implementation.

This package ports the core architecture from ``dieOD/multiscreen-pytorch`` to
Hugging Face Transformers-style ``PreTrainedConfig`` / ``PreTrainedModel``
classes.
"""

from .configuration_multiscreen import MultiscreenConfig
from .compile_utils import find_msvc_cl, load_vcvars_env, setup_compile_env
from .data import PackedTextDataset
from .modeling_multiscreen import (
    GatedScreeningBlock,
    MultiscreenForCausalLM,
    MultiscreenLayer,
    MultiscreenModel,
    MultiscreenPreTrainedModel,
    ScreeningCache,
    convert_original_state_dict_for_causal_lm,
    convert_original_state_dict_for_model,
)

__version__ = "0.1.2"

__all__ = [
    "MultiscreenConfig",
    "MultiscreenPreTrainedModel",
    "MultiscreenModel",
    "MultiscreenForCausalLM",
    "MultiscreenLayer",
    "GatedScreeningBlock",
    "ScreeningCache",
    "convert_original_state_dict_for_causal_lm",
    "convert_original_state_dict_for_model",
    "PackedTextDataset",
    "find_msvc_cl",
    "load_vcvars_env",
    "setup_compile_env",
    "register_multiscreen_auto_classes",
]


def register_multiscreen_auto_classes() -> None:
    """Register Multiscreen with Transformers auto classes in this process.

    Use this when loading local checkpoints without ``trust_remote_code`` and
    without installing the model into a Transformers source tree::

        from multiscreen_transformers import register_multiscreen_auto_classes
        register_multiscreen_auto_classes()

        from transformers import AutoModelForCausalLM
        model = AutoModelForCausalLM.from_pretrained("./checkpoint")
    """

    from transformers import AutoConfig, AutoModel, AutoModelForCausalLM

    AutoConfig.register(MultiscreenConfig.model_type, MultiscreenConfig)
    AutoModel.register(MultiscreenConfig, MultiscreenModel)
    AutoModelForCausalLM.register(MultiscreenConfig, MultiscreenForCausalLM)