Views
No views yet

gemma-3-270m-it to support a 1 Million Token Context Window.
This was achieved through Frequency Modulation (RoPE Scaling x128) and Self-Instruction Fine-tuning on synthetic logic chains.benchmark_results.json in this repo.1
2
3import torch
4from transformers import AutoModelForCausalLM, AutoTokenizer, AutoConfig, BitsAndBytesConfig
5
6# 1. اسم الموديل الخاص بك
7model_id = "loaiabdalslam/Ouroboros-1MContext-Gemma-270m"
8
9print(f"🌍 Connecting to Hugging Face: {model_id}...")
10
11def enable_infinite_context(config):
12 config.max_position_embeddings = 1048576
13 if hasattr(config, "rope_parameters") and config.rope_parameters:
14 for layer_type in config.rope_parameters:
15 # نتأكد أن التردد مضروب في 128
16 original_base = 10000.0 # التردد الأصلي
17 config.rope_parameters[layer_type]['base'] = original_base * 128.0
18 return config
19
20# 3. تحميل الكونفيج وتعديله
21try:
22 config = AutoConfig.from_pretrained(model_id, trust_remote_code=True)
23 config = enable_infinite_context(config)
24except:
25 # لو حصل مشكلة في التحميل، نستخدم الكونفيج الافتراضي ونعدله
26 print("⚠️ Note: Applying manual config patch...")
27
28# 4. تحميل الموديل (مع ضغط 4-bit لتوفير الرامات)
29bnb_config = BitsAndBytesConfig(
30 load_in_4bit=True,
31 bnb_4bit_compute_dtype=torch.bfloat16
32)
33
34model = AutoModelForCausalLM.from_pretrained(
35 model_id,
36 config=config,
37 quantization_config=bnb_config,
38 device_map="auto",
39 trust_remote_code=True
40)
41
42tokenizer = AutoTokenizer.from_pretrained(model_id)
43
44
45# برومبت بسيط للتجربة
46prompt_text = "Who are you and what makes your context window special?"
47
48messages = [{"role": "user", "content": prompt_text}]
49inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to(model.device)
50
51print("\n🤖 Ouroboros Generating...")
52with torch.no_grad():
53 outputs = model.generate(
54 inputs,
55 max_new_tokens=150,
56 do_sample=True,
57 temperature=0.7
58 )
59
60response = tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True)
61print(f"Answer:\n{response}")
62
63