Files
zen-blog/blog/federated-learning.txt

56 lines
27 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
1:"$Sreact.fragment"
2:I[106,["/_next/static/chunks/59d0ad1b64f8544e.js"],"RootProvider"]
3:I[53113,["/_next/static/chunks/4d80e004cf4896dd.js","/_next/static/chunks/350ee4303b732916.js"],"default"]
4:I[73211,["/_next/static/chunks/4d80e004cf4896dd.js","/_next/static/chunks/350ee4303b732916.js"],"default"]
5:I[10086,["/_next/static/chunks/59d0ad1b64f8544e.js","/_next/static/chunks/8de849ca74fc071f.js","/_next/static/chunks/e62b91212ee7f8ff.js","/_next/static/chunks/f19fe44237e54646.js","/_next/static/chunks/cb0a883bafeb6805.js"],""]
7:I[89923,["/_next/static/chunks/4d80e004cf4896dd.js","/_next/static/chunks/350ee4303b732916.js"],"OutletBoundary"]
8:"$Sreact.suspense"
a:I[89923,["/_next/static/chunks/4d80e004cf4896dd.js","/_next/static/chunks/350ee4303b732916.js"],"ViewportBoundary"]
c:I[89923,["/_next/static/chunks/4d80e004cf4896dd.js","/_next/static/chunks/350ee4303b732916.js"],"MetadataBoundary"]
e:I[6998,["/_next/static/chunks/4d80e004cf4896dd.js","/_next/static/chunks/350ee4303b732916.js"],"default"]
:HL["/_next/static/chunks/f2332aac77592f9d.css","style"]
0:{"P":null,"b":"i-dnJM_MIpJSOCQWNJVMq","c":["","blog","federated-learning"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","federated-learning","d"],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/f2332aac77592f9d.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/59d0ad1b64f8544e.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","main",null,{"className":"flex min-h-screen flex-col items-center justify-center px-4 text-center","children":[["$","div",null,{"className":"mb-8 opacity-20","children":["$","svg",null,{"width":"120","height":"120","viewBox":"0 0 120 120","fill":"none","aria-hidden":"true","children":["$","circle",null,{"cx":"60","cy":"60","r":"50","stroke":"currentColor","strokeWidth":"3","strokeLinecap":"round","strokeDasharray":"280 40"}]}]}],["$","p",null,{"className":"text-xs font-mono uppercase tracking-[0.3em] text-fd-muted-foreground mb-4","children":"404"}],["$","h1",null,{"className":"text-3xl font-semibold mb-3","children":"Page not found"}],["$","p",null,{"className":"text-fd-muted-foreground max-w-sm mb-10","children":"This page doesn't exist, or it may have moved. Try the documentation or head home."}],["$","div",null,{"className":"flex flex-wrap gap-3 justify-center","children":[["$","$L5",null,{"href":"/","className":"inline-flex items-center gap-2 rounded-lg bg-fd-primary text-fd-primary-foreground px-4 py-2 text-sm font-medium hover:opacity-90 transition","children":"Go home"}],["$","$L5",null,{"href":"/docs","className":"inline-flex items-center gap-2 rounded-lg border border-fd-border bg-fd-background px-4 py-2 text-sm font-medium hover:bg-fd-muted transition","children":"Documentation"}],["$","$L5",null,{"href":"/docs/models","className":"inline-flex items-center gap-2 rounded-lg border border-fd-border bg-fd-background px-4 py-2 text-sm font-medium hover:bg-fd-muted transition","children":"Browse models"}]]}],["$","p",null,{"className":"mt-16 text-xs font-mono text-fd-muted-foreground opacity-50","children":"zenlm.org"}]]}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$L6",[["$","script","script-0",{"src":"/_next/static/chunks/8de849ca74fc071f.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/e62b91212ee7f8ff.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/f19fe44237e54646.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/cb0a883bafeb6805.js","async":true,"nonce":"$undefined"}]],["$","$L7",null,{"children":["$","$8",null,{"name":"Next.MetadataOutlet","children":"$@9"}]}]]}],{},null,false,false]},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$La",null,{"children":"$Lb"}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$8",null,{"name":"Next.Metadata","children":"$Ld"}]}]}],null]}],false]],"m":"$undefined","G":["$e",[]],"S":true}
6:["$","main",null,{"className":"mx-auto w-full max-w-2xl px-4 py-16","children":[["$","$L5",null,{"href":"/blog","className":"inline-flex items-center gap-1.5 text-sm text-fd-muted-foreground hover:text-fd-foreground mb-10 transition-colors","children":"← Back to Blog"}],["$","div",null,{"className":"mb-8","children":[["$","time",null,{"className":"text-xs font-mono text-fd-muted-foreground uppercase tracking-wider","children":"May 8, 2022"}],["$","h1",null,{"className":"text-3xl font-bold mt-2 mb-3","children":"Federated Learning for Open AI"}],["$","p",null,{"className":"text-fd-muted-foreground text-lg mb-4","children":"How federated learning enables collaborative model training while preserving data privacy."}],["$","div",null,{"className":"flex items-center gap-3 pt-4 border-t border-fd-border","children":[["$","span",null,{"className":"text-sm text-fd-muted-foreground","children":["By ","Zach Kelling"]}],["$","div",null,{"className":"flex gap-1.5 ml-auto","children":[["$","span","Research",{"className":"text-[10px] font-mono uppercase tracking-wider bg-fd-muted text-fd-muted-foreground px-1.5 py-0.5 rounded","children":"Research"}],["$","span","Training",{"className":"text-[10px] font-mono uppercase tracking-wider bg-fd-muted text-fd-muted-foreground px-1.5 py-0.5 rounded","children":"Training"}],["$","span","Privacy",{"className":"text-[10px] font-mono uppercase tracking-wider bg-fd-muted text-fd-muted-foreground px-1.5 py-0.5 rounded","children":"Privacy"}]]}]]}]]}],["$","div",null,{"className":"prose dark:prose-invert max-w-none","children":[["$","p",null,{"children":"Training large language models requires vast amounts of data. That data often contains sensitive information. Federated learning offers a path to train on distributed, private data without centralizing it."}],"\n",["$","h2",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"the-centralization-problem","children":[["$","a",null,{"data-card":"","href":"#the-centralization-problem","className":"peer","children":"The Centralization Problem"}],["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}],"\n",["$","p",null,{"children":"Traditional ML training follows a simple pattern: collect data, aggregate it centrally, train models. This creates problems:"}],"\n",["$","ul",null,{"children":["\n",["$","li",null,{"children":[["$","strong",null,{"children":"Privacy risk"}]," : Sensitive data leaves user control"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Legal barriers"}]," : Regulations prevent data movement across jurisdictions"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Trust requirements"}]," : Data holders must trust the training party"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Single points of failure"}]," : Central aggregation creates vulnerabilities"]}],"\n"]}],"\n",["$","h2",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"federated-learning-basics","children":[["$","a",null,{"data-card":"","href":"#federated-learning-basics","className":"peer","children":"Federated Learning Basics"}],["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],"$Lf","$undefined"]}]]}],"\n","$L10","\n","$L11","\n","$L12","\n","$L13","\n","$L14","\n","$L15","\n","$L16","\n","$L17","\n","$L18","\n","$L19","\n","$L1a","\n","$L1b","\n","$L1c","\n","$L1d","\n","$L1e","\n","$L1f","\n","$L20","\n","$L21","\n","$L22","\n","$L23","\n","$L24","\n","$L25","\n","$L26","\n","$L27","\n","$L28","\n","$L29","\n","$L2a","\n","$L2b","\n","$L2c","\n","$L2d","\n","$L2e","\n","$L2f","\n","$L30","\n","$L31","\n","$L32","\n","$L33"]}]]}]
34:I[51504,["/_next/static/chunks/59d0ad1b64f8544e.js","/_next/static/chunks/8de849ca74fc071f.js","/_next/static/chunks/e62b91212ee7f8ff.js","/_next/static/chunks/f19fe44237e54646.js","/_next/static/chunks/cb0a883bafeb6805.js"],"CodeBlock"]
35:I[51504,["/_next/static/chunks/59d0ad1b64f8544e.js","/_next/static/chunks/8de849ca74fc071f.js","/_next/static/chunks/e62b91212ee7f8ff.js","/_next/static/chunks/f19fe44237e54646.js","/_next/static/chunks/cb0a883bafeb6805.js"],"Pre"]
f:["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}]
10:["$","p",null,{"children":"Federated learning inverts the pattern. Instead of bringing data to the model, we bring the model to the data."}]
11:["$","$L34",null,{"className":"shiki shiki-themes github-light github-dark","style":{"--shiki-light":"#24292e","--shiki-dark":"#e1e4e8","--shiki-light-bg":"#fff","--shiki-dark-bg":"#24292e"},"tabIndex":"0","icon":"<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>","children":["$","$L35",null,{"children":["$","code",null,{"children":[["$","span",null,{"className":"line","children":["$","span",null,{}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" +-----------+"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" | Central |"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" | Server |"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" +-----+-----+"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" |"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" +--------------+--------------+"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" | | |"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" +-----v-----+ +-----v-----+ +-----v-----+"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" | Client 1 | | Client 2 | | Client N |"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" | (Data A) | | (Data B) | | (Data N) |"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" +-----------+ +-----------+ +-----------+"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" "}]}]]}]}]}]
12:["$","ol",null,{"children":["\n",["$","li",null,{"children":"Central server distributes model weights"}],"\n",["$","li",null,{"children":"Clients train locally on their data"}],"\n",["$","li",null,{"children":"Clients send gradient updates (not data) back"}],"\n",["$","li",null,{"children":"Server aggregates updates into improved model"}],"\n",["$","li",null,{"children":"Repeat"}],"\n"]}]
13:["$","p",null,{"children":"Data never leaves client devices. Only model updates travel."}]
14:["$","h2",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"challenges-at-scale","children":[["$","a",null,{"data-card":"","href":"#challenges-at-scale","className":"peer","children":"Challenges at Scale"}],["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
15:["$","p",null,{"children":"Federated learning for LLMs faces unique challenges:"}]
16:["$","h3",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"communication-costs","children":[["$","a",null,{"data-card":"","href":"#communication-costs","className":"peer","children":"Communication Costs"}],["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
17:["$","p",null,{"children":"Model gradients are large. With billions of parameters, naive federation is impractical. We address this through:"}]
18:["$","ul",null,{"children":["\n",["$","li",null,{"children":[["$","strong",null,{"children":"Gradient compression"}]," : Sparsification and quantization reduce bandwidth by 100-1000x"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Asynchronous updates"}]," : Clients contribute when convenient, not in synchronized rounds"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Hierarchical aggregation"}]," : Regional aggregators reduce central server load"]}],"\n"]}]
19:["$","h3",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"heterogeneous-compute","children":[["$","a",null,{"data-card":"","href":"#heterogeneous-compute","className":"peer","children":"Heterogeneous Compute"}],["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
1a:["$","p",null,{"children":"Participants have varied hardware. A phone differs from a workstation differs from a server. Our approach:"}]
1b:["$","ul",null,{"children":["\n",["$","li",null,{"children":[["$","strong",null,{"children":"Adaptive batch sizes"}]," : Smaller devices process smaller batches"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Model sharding"}]," : Large models split across capable participants"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Contribution weighting"}]," : Update importance scales with compute contributed"]}],"\n"]}]
1c:["$","h3",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"data-heterogeneity","children":[["$","a",null,{"data-card":"","href":"#data-heterogeneity","className":"peer","children":"Data Heterogeneity"}],["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
1d:["$","p",null,{"children":"Different participants have different data distributions. This creates convergence challenges. Solutions:"}]
1e:["$","ul",null,{"children":["\n",["$","li",null,{"children":[["$","strong",null,{"children":"Personalization layers"}]," : Some parameters remain local"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Clustered federation"}]," : Similar participants form training groups"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Importance sampling"}]," : Under-represented distributions get higher weight"]}],"\n"]}]
1f:["$","h2",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"privacy-enhancements","children":[["$","a",null,{"data-card":"","href":"#privacy-enhancements","className":"peer","children":"Privacy Enhancements"}],["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
20:["$","p",null,{"children":"Basic federation protects raw data but gradients can leak information. We add:"}]
21:["$","h3",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"differential-privacy","children":[["$","a",null,{"data-card":"","href":"#differential-privacy","className":"peer","children":"Differential Privacy"}],["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
22:["$","p",null,{"children":"Noise added to gradients provides mathematical privacy guarantees. Each participant’s contribution becomes statistically indistinguishable."}]
23:["$","h3",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"secure-aggregation","children":[["$","a",null,{"data-card":"","href":"#secure-aggregation","className":"peer","children":"Secure Aggregation"}],["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
24:["$","p",null,{"children":"Cryptographic protocols ensure the server only sees aggregated updates, not individual contributions. Even a compromised server learns nothing about specific participants."}]
25:["$","h3",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"trusted-execution","children":[["$","a",null,{"data-card":"","href":"#trusted-execution","className":"peer","children":"Trusted Execution"}],["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
26:["$","p",null,{"children":"Hardware enclaves (SGX, TrustZone) provide additional isolation. Computation occurs in protected memory regions."}]
27:["$","h2",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"zen-federation-protocol","children":[["$","a",null,{"data-card":"","href":"#zen-federation-protocol","className":"peer","children":"Zen Federation Protocol"}],["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
28:["$","p",null,{"children":"We’ve developed a federation protocol specifically for language model training:"}]
29:["$","ol",null,{"children":["\n",["$","li",null,{"children":[["$","strong",null,{"children":"Enrollment"}]," : Participants register compute capacity and data characteristics"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Matching"}]," : Coordinator assigns participants to training cohorts"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Distribution"}]," : Model shards route to appropriate participants"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Training"}]," : Local training with privacy-preserving gradient computation"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Aggregation"}]," : Secure combination of participant updates"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Verification"}]," : Cryptographic proofs of correct computation"]}],"\n"]}]
2a:["$","p",null,{"children":"Early benchmarks show we achieve 85% of centralized training efficiency while maintaining strong privacy guarantees."}]
2b:["$","h2",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"join-the-network","children":[["$","a",null,{"data-card":"","href":"#join-the-network","className":"peer","children":"Join the Network"}],["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
2c:["$","p",null,{"children":"We’re opening the Zen federation network to participants. Contribute compute, contribute data (privately), contribute to open AI."}]
2d:["$","p",null,{"children":"Requirements:"}]
2e:["$","ul",null,{"children":["\n",["$","li",null,{"children":"Minimum 16GB RAM"}],"\n",["$","li",null,{"children":"Stable internet connection"}],"\n",["$","li",null,{"children":"Willingness to run our client software"}],"\n"]}]
2f:["$","p",null,{"children":"In return, participants receive:"}]
30:["$","ul",null,{"children":["\n",["$","li",null,{"children":"Governance tokens proportional to contribution"}],"\n",["$","li",null,{"children":"Early access to trained models"}],"\n",["$","li",null,{"children":"Recognition in model cards"}],"\n"]}]
31:["$","p",null,{"children":"Details at zen.ai/federate."}]
32:["$","hr",null,{}]
33:["$","p",null,{"children":["$","em",null,{"children":"Zach Kelling is a co-founder of Zoo Labs Foundation."}]}]
b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"#0A0A0A"}],["$","meta","3",{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"#fff"}]]
9:null
d:[["$","title","0",{"children":"Federated Learning for Open AI — Zen LM Blog | Zen LM"}],["$","meta","1",{"name":"description","content":"How federated learning enables collaborative model training while preserving data privacy."}],["$","meta","2",{"property":"og:title","content":"Zen LM - Open Foundation Models"}],["$","meta","3",{"property":"og:description","content":"Zen AI model family by Hanzo AI. 14 frontier models from 4B to 1T+ parameters for code, reasoning, vision, and multimodal tasks."}],["$","meta","4",{"property":"og:url","content":"https://zenlm.org"}],["$","meta","5",{"property":"og:site_name","content":"Zen LM"}],["$","meta","6",{"property":"og:type","content":"website"}],["$","meta","7",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","8",{"name":"twitter:site","content":"@zenlmorg"}],["$","meta","9",{"name":"twitter:creator","content":"@zenlmorg"}],["$","meta","10",{"name":"twitter:title","content":"Zen LM - Open Foundation Models"}],["$","meta","11",{"name":"twitter:description","content":"Zen AI model family by Hanzo AI. 14 frontier models from 4B to 1T+ parameters for code, reasoning, vision, and multimodal tasks."}]]