File size: 12,362 Bytes
d23d598 67d44ce | 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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 | <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ALPHA-GPT β Certificate of a private model</title>
<style>
:root {
--ground:#0b0c0f; --panel:#101216; --ink:#ece9e1; --ink-2:#a7a99f;
--ink-3:#63656b; --rule:#1e2128; --rule-2:#2a2e37;
--seal:#a23842; --seal-2:#c25560; --verify:#7fae86;
--mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
--sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,sans-serif;
--maxw:70ch;
}
@media (prefers-color-scheme: light){
:root{ --ground:#efece3; --panel:#f8f6ef; --ink:#17181c; --ink-2:#4d4f57;
--ink-3:#8b8d8a; --rule:#dcd8cd; --rule-2:#cbc7ba; --seal:#8c2f39;
--seal-2:#a3414c; --verify:#3d7a54; }
}
:root[data-theme="dark"]{ --ground:#0b0c0f; --panel:#101216; --ink:#ece9e1;
--ink-2:#a7a99f; --ink-3:#63656b; --rule:#1e2128; --rule-2:#2a2e37;
--seal:#a23842; --seal-2:#c25560; --verify:#7fae86; }
:root[data-theme="light"]{ --ground:#efece3; --panel:#f8f6ef; --ink:#17181c;
--ink-2:#4d4f57; --ink-3:#8b8d8a; --rule:#dcd8cd; --rule-2:#cbc7ba;
--seal:#8c2f39; --seal-2:#a3414c; --verify:#3d7a54; }
*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--ground); color:var(--ink);
font-family:var(--sans); line-height:1.62; -webkit-font-smoothing:antialiased;
font-feature-settings:"kern" 1; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }
a{ color:inherit; }
::selection{ background:var(--seal); color:#fff; }
/* document frame */
.doc{ border-left:1px solid var(--rule); border-right:1px solid var(--rule);
max-width:calc(var(--maxw) + 56px); margin:0 auto; }
.toprule{ display:flex; justify-content:space-between; align-items:center;
font-family:var(--mono); font-size:.7rem; letter-spacing:.16em;
text-transform:uppercase; color:var(--ink-3); padding:18px 28px;
border-bottom:1px solid var(--rule); }
.toprule .dot{ color:var(--seal); }
header.hero{ padding:76px 0 60px; }
.kicker{ font-family:var(--mono); font-size:.72rem; letter-spacing:.22em;
text-transform:uppercase; color:var(--seal); margin:0 0 26px; }
h1{ font-size:clamp(2.7rem,8vw,5rem); line-height:.98; letter-spacing:-.035em;
font-weight:820; margin:0 0 26px; text-wrap:balance; }
h1 em{ font-style:normal; color:var(--ink-3); }
.lede{ font-size:clamp(1.08rem,2.3vw,1.3rem); color:var(--ink-2);
max-width:52ch; margin:0 0 38px; }
.actions{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.btn{ font-family:var(--mono); font-size:.82rem; letter-spacing:.04em;
text-decoration:none; padding:14px 22px; border:1px solid var(--rule-2);
display:inline-flex; align-items:center; gap:10px;
transition:border-color .15s ease, color .15s ease, background .15s ease; }
.btn .arw{ color:var(--seal); }
.btn.primary{ background:var(--seal); border-color:var(--seal); color:#fff; }
.btn.primary .arw{ color:#fff; }
.btn.primary:hover{ background:var(--seal-2); border-color:var(--seal-2); }
.btn.ghost:hover{ border-color:var(--ink-2); color:var(--ink); }
/* the seal block */
.seal{ position:relative; background:var(--panel); border:1px solid var(--rule-2);
padding:26px 26px 24px; margin:0; font-family:var(--mono); font-size:.82rem;
line-height:2; overflow-x:auto; }
.seal::before,.seal::after{ content:""; position:absolute; width:9px; height:9px;
border:1px solid var(--seal); }
.seal::before{ top:-1px; left:-1px; border-right:0; border-bottom:0; }
.seal::after{ bottom:-1px; right:-1px; border-left:0; border-top:0; }
.seal .stamp{ position:absolute; top:20px; right:24px; font-size:.64rem;
letter-spacing:.2em; text-transform:uppercase; color:var(--seal);
border:1px solid var(--seal); padding:4px 9px; transform:rotate(4deg);
border-radius:2px; }
.seal .k{ color:var(--ink-3); }
.seal .v{ color:var(--ink); }
.seal .ok{ color:var(--verify); }
.seal .hash{ color:var(--seal-2); word-break:break-all; }
section{ padding:52px 0; border-top:1px solid var(--rule); }
.clause{ font-family:var(--mono); font-size:.72rem; letter-spacing:.14em;
text-transform:uppercase; color:var(--ink-3); margin:0 0 18px; }
.clause b{ color:var(--seal); font-weight:600; }
h2{ font-size:clamp(1.6rem,3.4vw,2.15rem); line-height:1.08; letter-spacing:-.02em;
font-weight:760; margin:0 0 10px; text-wrap:balance; }
.sub{ color:var(--ink-3); margin:0 0 30px; font-size:.98rem; max-width:50ch; }
ol.steps{ list-style:none; margin:0; padding:0; counter-reset:st; }
ol.steps li{ counter-increment:st; display:grid; grid-template-columns:2.4rem 1fr;
gap:20px; padding:20px 0; border-top:1px solid var(--rule); align-items:baseline; }
ol.steps li:first-child{ border-top:0; }
ol.steps .idx{ font-family:var(--mono); font-size:.8rem; color:var(--seal);
font-variant-numeric:tabular-nums; }
ol.steps .idx::before{ content:"Β§" counter(st,decimal-leading-zero); }
ol.steps h3{ margin:0 0 5px; font-size:1.06rem; font-weight:640; }
ol.steps p{ margin:0; color:var(--ink-2); font-size:.96rem; }
ul.truth{ list-style:none; margin:0; padding:0; }
ul.truth li{ display:grid; grid-template-columns:1.4rem 1fr; gap:14px;
padding:14px 0; border-top:1px solid var(--rule); font-size:.98rem; color:var(--ink-2); }
ul.truth li:first-child{ border-top:0; }
ul.truth .m{ font-family:var(--mono); font-weight:700; line-height:1.5; }
ul.truth .m.y{ color:var(--verify); }
ul.truth .m.s{ color:var(--seal); }
ul.truth b{ color:var(--ink); font-weight:640; }
.who p{ color:var(--ink-2); margin:0 0 14px; font-size:1.02rem; }
.who p:last-child{ margin:0; }
.who b{ color:var(--ink); font-weight:600; }
.who .rule-word{ color:var(--seal); font-weight:600; }
.final{ text-align:left; padding:64px 0 20px; }
.final h2{ font-size:clamp(1.9rem,4.5vw,2.6rem); margin-bottom:14px; }
footer{ border-top:1px solid var(--rule); padding:26px 28px 56px;
font-family:var(--mono); font-size:.72rem; color:var(--ink-3);
letter-spacing:.04em; }
footer .sig{ color:var(--ink-2); }
footer p{ margin:14px 0 0; line-height:1.7; letter-spacing:0; }
.fade{ opacity:0; transform:translateY(10px); animation:rise .7s cubic-bezier(.2,.7,.2,1) forwards; }
.fade.d1{ animation-delay:.05s; } .fade.d2{ animation-delay:.13s; }
.fade.d3{ animation-delay:.21s; } .fade.d4{ animation-delay:.29s; }
@keyframes rise{ to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .fade{ animation:none; opacity:1; transform:none; } }
</style>
</head>
<body>
<div class="doc">
<div class="toprule">
<span>ALPHA-GPT</span>
<span><span class="dot">β</span> your export, made into a model</span>
</div>
<div class="wrap">
<header class="hero">
<p class="kicker fade">ChatGPT & Claude export β your own model</p>
<h1 class="fade d1">Everything you've said to ChatGPT,<br><em>turned into a model you run.</em></h1>
<p class="lede fade d2">ALPHA-GPT trains a small language model on your own ChatGPT and Claude history β your topics, your phrasing, your patterns β as a private model that lives and runs on your machine. Not a chatbot borrowed from a company. One made from your corpus.</p>
<div class="actions fade d3">
<a class="btn primary" href="mailto:j.skrobynets@gmail.com?subject=ALPHA-GPT%20%E2%80%94%20train%20my%20model&body=I%27d%20like%20to%20turn%20my%20ChatGPT%2FClaude%20export%20into%20my%20own%20model.">Train your model <span class="arw">β</span></a>
<a class="btn ghost" href="#how">How it works</a>
</div>
</header>
</div>
<div class="wrap">
<section style="border-top:0; padding-top:0;">
<div class="seal fade d4">
<span class="stamp">sealed</span>
<span class="k">issued_to</span> <span class="v">the machine you own</span><br>
<span class="k">model</span> <span class="v">alpha-gpt-Q4_K_M.gguf</span><br>
<span class="k">fingerprint</span> <span class="hash" id="hash">d0293826e6b4135fadccecc6d2ea3e5015ea40dcf84d4e0ed84ae4c708e35e8a</span><br>
<span class="k">uploaded</span> <span class="ok">never</span><br>
<span class="k">custody</span> <span class="ok">local Β· sole</span>
</div>
</section>
<section id="how">
<p class="clause">Clause <b>I</b> β How it is issued</p>
<h2>Three steps, none of them leave the room</h2>
<p class="sub">Your archive goes in. Every stage after runs on your hardware.</p>
<ol class="steps">
<li><span class="idx"></span><div><h3>Submit your archive</h3><p>Your ChatGPT or Claude export is parsed into training data locally. No upload, no account, no third party.</p></div></li>
<li><span class="idx"></span><div><h3>Train in place</h3><p>A LoRA adapter is fine-tuned on your own words, fused into an open base model, and quantized into one fast local file.</p></div></li>
<li><span class="idx"></span><div><h3>Take custody</h3><p>The model registers with Ollama and runs offline β shaped by your history, held by no one but you.</p></div></li>
</ol>
</section>
<section>
<p class="clause">Clause <b>II</b> β Proof of custody</p>
<h2>The privacy claim is an artifact, not a promise</h2>
<p class="sub">Every build emits a signed manifest carrying the model's fingerprint and its custody record β evidence you can file, not marketing you have to trust.</p>
<ul class="truth">
<li><span class="m y">β</span><span><b>The pipeline runs end-to-end.</b> Export β train β fuse β quantize β run, verified on real hardware.</span></li>
<li><span class="m y">β</span><span><b>The certificate is real.</b> Canonical fingerprint and an <span style="font-family:var(--mono)">uploaded: never</span> record on every build.</span></li>
<li><span class="m y">β</span><span><b>Private remote access.</b> Reach your model from your phone while the machine is on β token-sealed, still local.</span></li>
<li><span class="m s">β</span><span><b>One-command install & self-improvement.</b> In progress β the model consolidates your corrections over time.</span></li>
</ul>
</section>
<section>
<p class="clause">Clause <b>III</b> β Who this is written for</p>
<div class="who">
<p>If you are a <b>lawyer, therapist, or clinician</b>, sending client information to a cloud model is not a matter of taste β it is a matter of <span class="rule-word">rule</span>.</p>
<p>ALPHA-GPT keeps the model, the training data, and the inference on hardware you control, and hands you a certificate you can put in an audit file. Provably private β with the receipt to show for it.</p>
</div>
</section>
<section class="final">
<p class="clause">Clause <b>IV</b> β Execution</p>
<h2>Bring an export. Leave with a model only you hold.</h2>
<p class="sub">Early access is opening to a small first group.</p>
<div class="actions">
<a class="btn primary" href="mailto:j.skrobynets@gmail.com?subject=ALPHA-GPT%20%E2%80%94%20train%20my%20model&body=I%27d%20like%20to%20turn%20my%20ChatGPT%2FClaude%20export%20into%20my%20own%20model.">Train your model <span class="arw">β</span></a>
</div>
</section>
</div>
<footer>
<span class="sig">ALPHA-GPT</span> Β· runs on your machine Β· weights never uploaded
<p>Built on an open base model fine-tuned with your private data. Local-model quality; pair with retrieval for exact recall. Describes an early product in active development.</p>
</footer>
</div>
<script>
(function(){
if (window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
var el = document.getElementById("hash");
if (!el) return;
var final = el.textContent, chars = "0123456789abcdef", frame = 0;
var iv = setInterval(function(){
frame++;
var out = "";
for (var i=0;i<final.length;i++){
out += (i < frame*2) ? final[i] : chars[Math.floor(Math.random()*16)];
}
el.textContent = out;
if (frame*2 >= final.length){ el.textContent = final; clearInterval(iv); }
}, 34);
})();
</script>
</body>
</html>
|