Views
No views yet
summerMC/summerV2 is an experimental causal language model based on a custom VanFastForCausalLM architecture.modeling_van_fast.py loading support| Item | Value |
|---|---|
| Model name | summerMC/summerV2 |
| Architecture | VanFastForCausalLM |
| Task | Causal language modeling |
| Framework | PyTorch / Hugging Face Transformers |
| Inference style | Autoregressive text generation |
| Cache support | KV-cache enabled |
| Primary language | English |
| Developer | First-year vocational school student, age 18 |
| Status | Experimental |
pip install -U torch transformers accelerate safetensors1import torch
2from transformers import AutoTokenizer, AutoModelForCausalLM
3
4model_id = "summerMC/summerV2"
5
6device = "cuda" if torch.cuda.is_available() else "cpu"
7dtype = torch.float32
8
9tokenizer = AutoTokenizer.from_pretrained(
10 model_id,
11 trust_remote_code=True,
12)
13
14model = AutoModelForCausalLM.from_pretrained(
15 model_id,
16 trust_remote_code=True,
17 torch_dtype=dtype,
18)
19
20model.to(device)
21model.eval()
22
23if tokenizer.pad_token is None:
24 tokenizer.pad_token = tokenizer.eos_token
25
26prompt = "Explain Transformer models in simple terms.\n\nAnswer:"
27
28inputs = tokenizer(
29 prompt,
30 return_tensors="pt",
31 add_special_tokens=False,
32).to(device)
33
34with torch.inference_mode():
35 outputs = model.generate(
36 **inputs,
37 max_new_tokens=120,
38 do_sample=True,
39 temperature=0.85,
40 top_k=80,
41 top_p=0.92,
42 repetition_penalty=1.25,
43 pad_token_id=tokenizer.pad_token_id,
44 eos_token_id=tokenizer.eos_token_id,
45 )
46
47text = tokenizer.decode(
48 outputs[0],
49 skip_special_tokens=True,
50 clean_up_tokenization_spaces=False,
51)
52
53print(text)modeling_van_fast.py.1import os
2import sys
3import json
4import importlib.util
5import torch
6from transformers import AutoTokenizer
7
8HF_OUT_DIR = "/content/van_fast_transformer/hf_compatible"
9MODELING_PATH = os.path.join(HF_OUT_DIR, "modeling_van_fast.py")
10CONFIG_PATH = os.path.join(HF_OUT_DIR, "config.json")
11
12DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
13DTYPE = torch.float32
14
15module_name = "modeling_van_fast_runtime"
16
17if module_name in sys.modules:
18 del sys.modules[module_name]
19
20spec = importlib.util.spec_from_file_location(module_name, MODELING_PATH)
21mod = importlib.util.module_from_spec(spec)
22sys.modules[module_name] = mod
23spec.loader.exec_module(mod)
24
25VanFastConfig = mod.VanFastConfig
26VanFastForCausalLM = mod.VanFastForCausalLM
27
28with open(CONFIG_PATH, "r", encoding="utf-8") as f:
29 cfg_json = json.load(f)
30
31cfg_json["use_cache"] = True
32cfg_json["tie_word_embeddings"] = False
33
34config = VanFastConfig(**cfg_json)
35config.use_cache = True
36
37tokenizer = AutoTokenizer.from_pretrained(
38 HF_OUT_DIR,
39 use_fast=True,
40 trust_remote_code=True,
41)
42
43if tokenizer.pad_token is None:
44 tokenizer.pad_token = tokenizer.eos_token
45
46model = VanFastForCausalLM.from_pretrained(
47 HF_OUT_DIR,
48 config=config,
49 torch_dtype=DTYPE,
50)
51
52model.to(DEVICE)
53model.eval()1import torch
2
3@torch.inference_mode()
4def test_kv_cache(prompt="Hello world"):
5 input_ids = tokenizer(
6 prompt,
7 return_tensors="pt",
8 add_special_tokens=False,
9 ).input_ids.to(model.device)
10
11 out = model(
12 input_ids=input_ids,
13 use_cache=True,
14 return_dict=True,
15 )
16
17 print("input shape:", tuple(input_ids.shape))
18 print("logits:", tuple(out.logits.shape))
19 print("past_key_values is None:", out.past_key_values is None)
20
21 if out.past_key_values is None:
22 raise RuntimeError("KV cache is inactive.")
23
24 print("layers:", len(out.past_key_values))
25
26 k0, v0 = out.past_key_values[0]
27 print("layer0 k:", tuple(k0.shape))
28 print("layer0 v:", tuple(v0.shape))
29
30 next_id = torch.argmax(out.logits[:, -1, :], dim=-1, keepdim=True)
31
32 out2 = model(
33 input_ids=next_id,
34 past_key_values=out.past_key_values,
35 use_cache=True,
36 return_dict=True,
37 )
38
39 k1, v1 = out2.past_key_values[0]
40 print("after decode layer0 k:", tuple(k1.shape))
41 print("after decode layer0 v:", tuple(v1.shape))
42 print("KV cache OK")
43
44test_kv_cache()1max_new_tokens = 160
2temperature = 0.85
3top_k = 80
4top_p = 0.92
5repetition_penalty = 1.35
6no_repeat_ngram_size = 31temperature = 0.7
2top_k = 50
3top_p = 0.9
4repetition_penalty = 1.41temperature = 1.0
2top_k = 100
3top_p = 0.95
4repetition_penalty = 1.21Explain Transformer models in simple terms.
2
3Answer:summerV2 is part of an experimental model-development line focused on fast training and inference for custom causal language models.1@misc{summerV2,
2 title = {summerMC/summerV2},
3 author = {summerMC},
4 year = {2026},
5 publisher = {Hugging Face},
6 howpublished = {\url{https://huggingface.co/summerMC/summerV2}}
7}