mirror of
https://github.com/zenlm/zen-blog.git
synced 2026-11-03 14:11:45 +00:00
51 lines
21 KiB
Plaintext
51 lines
21 KiB
Plaintext
1:"$Sreact.fragment"
|
||
2: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"],""]
|
||
2d: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"]
|
||
2e: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"]
|
||
2f:I[89923,["/_next/static/chunks/4d80e004cf4896dd.js","/_next/static/chunks/350ee4303b732916.js"],"OutletBoundary"]
|
||
30:"$Sreact.suspense"
|
||
0:{"buildId":"i-dnJM_MIpJSOCQWNJVMq","rsc":["$","$1","c",{"children":[["$","main",null,{"className":"mx-auto w-full max-w-2xl px-4 py-16","children":[["$","$L2",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,{"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,{"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"}],"$L3","$undefined"]}]]}],"\n","$L4","\n","$L5","\n","$L6","\n","$L7","\n","$L8","\n","$L9","\n","$La","\n","$Lb","\n","$Lc","\n","$Ld","\n","$Le","\n","$Lf","\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"]}]]}],["$L28","$L29","$L2a","$L2b"],"$L2c"]}],"loading":null,"isPartial":false}
|
||
3:["$","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"}]
|
||
4:["$","p",null,{"children":"Federated learning inverts the pattern. Instead of bringing data to the model, we bring the model to the data."}]
|
||
5:["$","$L2d",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":["$","$L2e",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":" "}]}]]}]}]}]
|
||
6:["$","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"]}]
|
||
7:["$","p",null,{"children":"Data never leaves client devices. Only model updates travel."}]
|
||
8:["$","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,{"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"]}]]}]
|
||
9:["$","p",null,{"children":"Federated learning for LLMs faces unique challenges:"}]
|
||
a:["$","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,{"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"]}]]}]
|
||
b:["$","p",null,{"children":"Model gradients are large. With billions of parameters, naive federation is impractical. We address this through:"}]
|
||
c:["$","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"]}]
|
||
d:["$","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,{"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"]}]]}]
|
||
e:["$","p",null,{"children":"Participants have varied hardware. A phone differs from a workstation differs from a server. Our approach:"}]
|
||
f:["$","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"]}]
|
||
10:["$","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,{"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"]}]]}]
|
||
11:["$","p",null,{"children":"Different participants have different data distributions. This creates convergence challenges. Solutions:"}]
|
||
12:["$","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"]}]
|
||
13:["$","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,{"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"]}]]}]
|
||
14:["$","p",null,{"children":"Basic federation protects raw data but gradients can leak information. We add:"}]
|
||
15:["$","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,{"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"]}]]}]
|
||
16:["$","p",null,{"children":"Noise added to gradients provides mathematical privacy guarantees. Each participant’s contribution becomes statistically indistinguishable."}]
|
||
17:["$","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,{"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"]}]]}]
|
||
18:["$","p",null,{"children":"Cryptographic protocols ensure the server only sees aggregated updates, not individual contributions. Even a compromised server learns nothing about specific participants."}]
|
||
19:["$","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,{"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":"Hardware enclaves (SGX, TrustZone) provide additional isolation. Computation occurs in protected memory regions."}]
|
||
1b:["$","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,{"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"]}]]}]
|
||
1c:["$","p",null,{"children":"We’ve developed a federation protocol specifically for language model training:"}]
|
||
1d:["$","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"]}]
|
||
1e:["$","p",null,{"children":"Early benchmarks show we achieve 85% of centralized training efficiency while maintaining strong privacy guarantees."}]
|
||
1f:["$","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,{"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":"We’re opening the Zen federation network to participants. Contribute compute, contribute data (privately), contribute to open AI."}]
|
||
21:["$","p",null,{"children":"Requirements:"}]
|
||
22:["$","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"]}]
|
||
23:["$","p",null,{"children":"In return, participants receive:"}]
|
||
24:["$","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"]}]
|
||
25:["$","p",null,{"children":"Details at zen.ai/federate."}]
|
||
26:["$","hr",null,{}]
|
||
27:["$","p",null,{"children":["$","em",null,{"children":"Zach Kelling is a co-founder of Zoo Labs Foundation."}]}]
|
||
28:["$","script","script-0",{"src":"/_next/static/chunks/8de849ca74fc071f.js","async":true}]
|
||
29:["$","script","script-1",{"src":"/_next/static/chunks/e62b91212ee7f8ff.js","async":true}]
|
||
2a:["$","script","script-2",{"src":"/_next/static/chunks/f19fe44237e54646.js","async":true}]
|
||
2b:["$","script","script-3",{"src":"/_next/static/chunks/cb0a883bafeb6805.js","async":true}]
|
||
2c:["$","$L2f",null,{"children":["$","$30",null,{"name":"Next.MetadataOutlet","children":"$@31"}]}]
|
||
31:null
|