ridvangndoan commited on
Commit
fb6bda9
·
verified ·
1 Parent(s): b6a51ed

Add app.py

Browse files
Files changed (1) hide show
  1. app.py +268 -0
app.py ADDED
@@ -0,0 +1,268 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import gradio as gr
3
+ import torch
4
+ import torch.nn as nn
5
+ import torch.optim as optim
6
+ from torch.optim.lr_scheduler import CosineAnnealingLR
7
+ import matplotlib.pyplot as plt
8
+ import numpy as np
9
+
10
+ class HolographicMasterCodeTransformer(nn.Module):
11
+ def __init__(self, input_dim=8, d_model=128, nhead=8, num_layers=6, output_dim=1, n_harmonics=4):
12
+ super().__init__()
13
+ self.d_model = d_model
14
+ self.n_harmonics = n_harmonics
15
+ self.alpha_0 = 1.0 / 137.035
16
+
17
+ self.input_proj = nn.Linear(input_dim, d_model)
18
+
19
+ encoder_layer = nn.TransformerEncoderLayer(
20
+ d_model=d_model,
21
+ nhead=nhead,
22
+ dim_feedforward=d_model * 4,
23
+ dropout=0.1,
24
+ activation='gelu',
25
+ batch_first=True,
26
+ norm_first=True
27
+ )
28
+ self.transformer = nn.TransformerEncoder(encoder_layer, num_layers=num_layers, enable_nested_tensor=False)
29
+
30
+ self.harmonic_weights = nn.Parameter(torch.randn(n_harmonics, d_model))
31
+
32
+ self.output_head = nn.Sequential(
33
+ nn.LayerNorm(d_model),
34
+ nn.Linear(d_model, d_model // 2),
35
+ nn.GELU(),
36
+ nn.Dropout(0.1),
37
+ nn.Linear(d_model // 2, output_dim)
38
+ )
39
+
40
+ def forward(self, x, alpha=None):
41
+ if alpha is None:
42
+ alpha = self.alpha_0
43
+
44
+ h = self.input_proj(x)
45
+ h = h.unsqueeze(1)
46
+ h = self.transformer(h)
47
+ h = h.squeeze(1)
48
+
49
+ psi = torch.zeros_like(h)
50
+ for n in range(self.n_harmonics):
51
+ phase = 2 * torch.pi * (n + 1) * (alpha - self.alpha_0) * 800.0
52
+ psi += self.harmonic_weights[n] * torch.cos(h * (n + 1) + phase)
53
+
54
+ alpha_dev = torch.abs(alpha - self.alpha_0)
55
+ security_factor = torch.exp(-300.0 * alpha_dev)
56
+
57
+ h = h + 0.35 * psi * security_factor
58
+ return self.output_head(h)
59
+
60
+ def holographic_reg(self):
61
+ reg = sum(torch.norm(w, p=1) for w in self.harmonic_weights)
62
+ return 0.0015 * reg / self.n_harmonics
63
+
64
+
65
+ def train_model(alpha_value, epochs):
66
+ """Modeli eğit ve loss grafiğini döndür"""
67
+ model = HolographicMasterCodeTransformer()
68
+ optimizer = optim.AdamW(model.parameters(), lr=0.001, weight_decay=1e-5)
69
+ scheduler = CosineAnnealingLR(optimizer, T_max=epochs, eta_min=1e-6)
70
+ criterion = nn.MSELoss()
71
+
72
+ torch.manual_seed(42)
73
+ X = torch.randn(300, 8)
74
+ y = torch.sin(X.sum(dim=1, keepdim=True)) * 0.9 + 0.05 * torch.randn(300, 1)
75
+
76
+ losses = []
77
+
78
+ for epoch in range(epochs):
79
+ optimizer.zero_grad()
80
+ pred = model(X, alpha=alpha_value)
81
+ loss = criterion(pred, y)
82
+ reg = model.holographic_reg()
83
+ total_loss = loss + reg
84
+
85
+ total_loss.backward()
86
+ torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)
87
+ optimizer.step()
88
+ scheduler.step()
89
+
90
+ losses.append(loss.item())
91
+
92
+ # Grafik oluştur
93
+ fig, ax = plt.subplots(figsize=(10, 6))
94
+ ax.plot(losses, linewidth=2, color='#FF6B6B')
95
+ ax.set_xlabel('Epoch', fontsize=12)
96
+ ax.set_ylabel('Loss', fontsize=12)
97
+ ax.set_title(f'Eğitim Süreci (α = {alpha_value:.8f})', fontsize=14)
98
+ ax.grid(True, alpha=0.3)
99
+ ax.set_yscale('log')
100
+
101
+ final_loss = losses[-1]
102
+
103
+ plt.close(fig) # Close the figure to free up memory
104
+ return fig, f"Final Loss: {final_loss:.6f}"
105
+
106
+
107
+ def compare_alphas(epochs):
108
+ """Farklı alpha değerlerini karşılaştır"""
109
+ alpha_values = {
110
+ "Nominal (1/137.035)": 1/137.035,
111
+ "Fiziksel (1/137.035999)": 1/137.035999,
112
+ "Sapma1 (1/137.000)": 1/137.000,
113
+ "Sapma2 (1/137.070)": 1/137.070
114
+ }
115
+
116
+ fig, ax = plt.subplots(figsize=(12, 7))
117
+ colors = ['#FF6B6B', '#4ECDC4', '#45B7D1', '#FFA07A']
118
+
119
+ results = {}
120
+
121
+ for (name, alpha_val), color in zip(alpha_values.items(), colors):
122
+ model = HolographicMasterCodeTransformer()
123
+ optimizer = optim.AdamW(model.parameters(), lr=0.001, weight_decay=1e-5)
124
+ scheduler = CosineAnnealingLR(optimizer, T_max=epochs, eta_min=1e-6)
125
+ criterion = nn.MSELoss()
126
+
127
+ torch.manual_seed(42)
128
+ X = torch.randn(300, 8)
129
+ y = torch.sin(X.sum(dim=1, keepdim=True)) * 0.9 + 0.05 * torch.randn(300, 1)
130
+
131
+ losses = []
132
+
133
+ for epoch in range(epochs):
134
+ optimizer.zero_grad()
135
+ pred = model(X, alpha=alpha_val)
136
+ loss = criterion(pred, y)
137
+ reg = model.holographic_reg()
138
+ total_loss = loss + reg
139
+
140
+ total_loss.backward()
141
+ torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)
142
+ optimizer.step()
143
+ scheduler.step()
144
+
145
+ losses.append(loss.item())
146
+
147
+ ax.plot(losses, label=name, linewidth=2.5, color=color)
148
+ results[name] = losses[-1]
149
+
150
+ ax.set_xlabel('Epoch', fontsize=12)
151
+ ax.set_ylabel('Loss', fontsize=12)
152
+ ax.set_title('Alpha Değerleri Karşılaştırması', fontsize=14)
153
+ ax.legend(fontsize=10)
154
+ ax.grid(True, alpha=0.3)
155
+ ax.set_yscale('log')
156
+
157
+ # Sonuçları metne dönüştür
158
+ results_text = "**Final Loss Değerleri:**\n\n"
159
+ for name, loss in sorted(results.items(), key=lambda x: x[1]):
160
+ results_text += f"• {name}: {loss:.6f}\n"
161
+
162
+ plt.close(fig) # Close the figure to free up memory
163
+ return fig, results_text
164
+
165
+
166
+ # Gradio Interface
167
+ with gr.Blocks(title="OmegaCode: Holographic Master Code") as demo: # Removed theme parameter from here based on Gradio 6.0 warning
168
+ gr.Markdown("""
169
+ # 🌌 OmegaCode: Evrensel Kaynak Kodun Holografik Korunumu
170
+
171
+ Bu uygulama, **Ω_v57** teorisini temel alan Holografik Master Code Transformer modelini etkileşimli bir şekilde test etmenizi sağlar.
172
+
173
+ **Teori Özeti:**
174
+ - **Master Code (Ψ)**: Evrenin temel titreşim dokusunu temsil eden harmonik dalga süperpozisyonu
175
+ - **Alpha (α) Güvenlik Kilidi**: İnce yapı sabiti değerindeki sapmalara karşı sistemi koruyan mekanizma
176
+ - **Ryu-Takayanagi Entanglement**: Karadelik ufkundaki minimal yüzey alanı üzerinden bilgi korunumu
177
+ - **Holografik AI**: Yapay zeka eğitiminde kuantum hata düzeltme benzeri etkileri
178
+ """)
179
+
180
+ with gr.Tabs():
181
+ with gr.Tab("Tek Alpha Eğitimi"):
182
+ gr.Markdown("### Belirli Bir Alpha Değeriyle Eğitim Yap")
183
+
184
+ with gr.Row():
185
+ alpha_input = gr.Number(
186
+ value=1/137.035,
187
+ label="Alpha Değeri",
188
+ info="Varsayılan: 1/137.035 (Nominal)"
189
+ )
190
+ epochs_input = gr.Slider(
191
+ minimum=50,
192
+ maximum=500,
193
+ value=150,
194
+ step=50,
195
+ label="Epoch Sayısı"
196
+ )
197
+
198
+ train_btn = gr.Button("Eğitimi Başlat", variant="primary", size="lg")
199
+
200
+ with gr.Row():
201
+ output_plot = gr.Plot(label="Loss Grafiği")
202
+ output_text = gr.Textbox(label="Sonuç", interactive=False)
203
+
204
+ train_btn.click(
205
+ fn=train_model,
206
+ inputs=[alpha_input, epochs_input],
207
+ outputs=[output_plot, output_text]
208
+ )
209
+
210
+ with gr.Tab("Alpha Karşılaştırması"):
211
+ gr.Markdown("### Farklı Alpha Değerlerini Karşılaştır")
212
+
213
+ epochs_compare = gr.Slider(
214
+ minimum=50,
215
+ maximum=300,
216
+ value=150,
217
+ step=50,
218
+ label="Epoch Sayısı"
219
+ )
220
+
221
+ compare_btn = gr.Button("Karşılaştırmayı Başlat", variant="primary", size="lg")
222
+
223
+ with gr.Row():
224
+ compare_plot = gr.Plot(label="Karşılaştırma Grafiği")
225
+ compare_text = gr.Markdown(label="Sonuçlar")
226
+
227
+ compare_btn.click(
228
+ fn=compare_alphas,
229
+ inputs=[epochs_compare],
230
+ outputs=[compare_plot, compare_text]
231
+ )
232
+
233
+ with gr.Tab("Teori Hakkında"):
234
+ gr.Markdown(r"""
235
+ ## Ω_v57 Teorisi Detayları
236
+
237
+ ### Master Code (Ψ)
238
+ Evrenin temel titreşim dokusunu temsil eden harmonik dalga süperpozisyonu:
239
+
240
+ $$\Psi(\mathbf{x}, t, lpha) = \sum_{n=1}^{N} A_n \cos(\mathbf{k}_n \cdot \mathbf{x} + \omega_n t + \phi_n(lpha))$$
241
+
242
+ ### Alpha Güvenlik Kilidi
243
+ İnce yapı sabiti α ≈ 1/137.035 değerindeki sapmalara karşı sistem kendini otomatik olarak korur:
244
+
245
+ $$\delta(lpha - lpha_0) imes \exp\left(- rac{d\Psi}{dlpha}
246
+
247
+ ### Ryu-Takayanagi Entanglement
248
+ Karadelik ufkundaki minimal yüzey alanı üzerinden kuantum dolaşıklığının geometrik temsili:
249
+
250
+ $$S_{ ext{ent}}^{ ext{RT}} = rac{ ext{Area}(\gamma_{ ext{min}})}{4 G_{13}}$$
251
+
252
+ ### Holografik AI Etkisi
253
+ Bu mekanizmalar, yapay zeka eğitiminde Loss Zeroing hızını %140 artırmaktadır.
254
+ """)
255
+
256
+ gr.Markdown("""
257
+ ---
258
+
259
+ **Proje Kaynakları:**
260
+ - GitHub: [OmegaCode Repository](https://github.com/KULLANICI_ADI/OmegaCode)
261
+ - Teori: Ω_v57 Holographic Master Code Framework
262
+ - Lisans: MIT
263
+ """)
264
+
265
+ if __name__ == "__main__":
266
+ demo.launch(theme=gr.themes.Soft()) # Moved theme parameter here based on Gradio 6.0 warning
267
+
268
+ # Dummy comment to force file modification for re-upload: v1.0.2