File size: 1,193 Bytes
99b2bcd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"""Self-contained native Laya inference loader; no original base checkpoint needed."""
from pathlib import Path
import importlib.util
import json

def load_laya(directory=None, device="cpu"):
    import torch
    from transformers import AutoConfig, AutoModel, AutoTokenizer
    from safetensors.torch import load_file
    directory = Path(directory or Path(__file__).parent).resolve()
    spec = importlib.util.spec_from_file_location("_exported_laya_native", directory/"native_common.py")
    common = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(common)
    config = AutoConfig.from_pretrained(directory/"encoder", local_files_only=True)
    config.reference_compile = False
    encoder = AutoModel.from_config(config, attn_implementation="sdpa")
    native = json.loads((directory/"rl_agent_config.json").read_text())
    model = common.DecisionModel(encoder, native.get("head_layers", 2), len(native.get("act_costs", {}))+1)
    model.load_state_dict(load_file(str(directory/"model.safetensors")), strict=True)
    model.to(device).eval()
    tokenizer = AutoTokenizer.from_pretrained(directory/"tokenizer", local_files_only=True)
    return model, tokenizer, common