Buckets:
| import{s as Me,n as ke,o as ue}from"../chunks/scheduler.f3b1e791.js";import{S as ye,i as je,e as r,s,c as o,h as fe,a as i,d as t,b as a,f as de,g as p,j as X,k as me,l as we,m as n,n as c,t as d,o as m,p as M}from"../chunks/index.023a9934.js";import{C as Te}from"../chunks/CopyLLMTxtMenu.c780467c.js";import{C as E}from"../chunks/CodeBlock.fc650646.js";import{H as te,E as Je}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.fb377ec3.js";function he(ne){let k,L,W,V,u,Z,y,x,j,se=`Projects that use <code>setuptools</code> can lock the kernel versions that should be | |
| used. First specify the accepted versions in <code>pyproject.toml</code> and make | |
| sure that <code>kernels</code> is a build dependency:`,H,f,q,w,ae=`Then run <code>kernels lock .</code> in the project directory. This generates a <code>kernels.lock</code> file with | |
| the locked revisions. The locked revision will be used when loading a kernel with | |
| <a href="/docs/kernels/pr_607/en/api/kernels#kernels.get_locked_kernel">get_locked_kernel()</a>:`,R,T,Q,J,re=`<strong>Note:</strong> the lock file is included in the package metadata, so it will only be visible | |
| to <code>kernels</code> after doing an (editable or regular) installation of your project.`,G,h,F,g,oe=`Locking is also supported for kernel layers. To use locked layers, register them | |
| with the <a href="/docs/kernels/pr_607/en/api/layers#kernels.LockedLayerRepository">LockedLayerRepository</a> class:`,N,b,S,$,ie=`Similarly, you can use the <a href="/docs/kernels/pr_607/en/api/layers#kernels.LockedFuncRepository">LockedFuncRepository</a> class to lock kernel function | |
| versions:`,z,_,P,I,Y,A,pe=`Locked kernels can be pre-downloaded by running <code>kernels download .</code> in your | |
| project directory. This will download the kernels to your local Hugging Face | |
| Hub cache.`,D,U,ce=`The pre-downloaded kernels are used by the <a href="/docs/kernels/pr_607/en/api/kernels#kernels.get_locked_kernel">get_locked_kernel()</a> function. | |
| <a href="/docs/kernels/pr_607/en/api/kernels#kernels.get_locked_kernel">get_locked_kernel()</a> will download a kernel when it is not pre-downloaded. If you | |
| want kernel loading to error when a kernel is not pre-downloaded, you can use | |
| the <a href="/docs/kernels/pr_607/en/api/kernels#kernels.load_kernel">load_kernel()</a> function instead:`,O,v,K,C,ee,B,le;return u=new Te({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),y=new te({props:{title:"Locking kernel/layer versions",local:"locking-kernellayer-versions",headingTag:"h1"}}),f=new E({props:{code:"JTVCYnVpbGQtc3lzdGVtJTVEJTBBcmVxdWlyZXMlMjAlM0QlMjAlNUIlMjJrZXJuZWxzJTIyJTJDJTIwJTIyc2V0dXB0b29scyUyMiU1RCUwQWJ1aWxkLWJhY2tlbmQlMjAlM0QlMjAlMjJzZXR1cHRvb2xzLmJ1aWxkX21ldGElMjIlMEElMEElNUJ0b29sLmtlcm5lbHMuZGVwZW5kZW5jaWVzJTVEJTBBJTIya2VybmVscy1jb21tdW5pdHklMkZhY3RpdmF0aW9uJTIyJTIwJTNEJTIwMQ==",highlighted:`<span class="hljs-section">[build-system]</span> | |
| <span class="hljs-attr">requires</span> = [<span class="hljs-string">"kernels"</span>, <span class="hljs-string">"setuptools"</span>] | |
| <span class="hljs-attr">build-backend</span> = <span class="hljs-string">"setuptools.build_meta"</span> | |
| <span class="hljs-section">[tool.kernels.dependencies]</span> | |
| <span class="hljs-attr">"kernels-community/activation"</span> = <span class="hljs-number">1</span>`,lang:"toml",wrap:!1}}),T=new E({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBnZXRfbG9ja2VkX2tlcm5lbCUwQSUwQWFjdGl2YXRpb24lMjAlM0QlMjBnZXRfbG9ja2VkX2tlcm5lbCglMjJrZXJuZWxzLWNvbW11bml0eSUyRmFjdGl2YXRpb24lMjIp",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> get_locked_kernel | |
| activation = get_locked_kernel(<span class="hljs-string">"kernels-community/activation"</span>)`,lang:"python",wrap:!1}}),h=new te({props:{title:"Locked kernel layers",local:"locked-kernel-layers",headingTag:"h2"}}),b=new E({props:{code:"a2VybmVsX2xheWVyX21hcHBpbmclMjAlM0QlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjJTaWx1QW5kTXVsJTIyJTNBJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyY3VkYSUyMiUzQSUyMExvY2tlZExheWVyUmVwb3NpdG9yeSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXBvX2lkJTNEJTIya2VybmVscy1jb21tdW5pdHklMkZhY3RpdmF0aW9uJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbGF5ZXJfbmFtZSUzRCUyMlNpbHVBbmRNdWwlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjApJTBBJTIwJTIwJTIwJTIwJTdEJTBBJTdEJTBBJTBBcmVnaXN0ZXJfa2VybmVsX21hcHBpbmcoa2VybmVsX2xheWVyX21hcHBpbmcp",highlighted:`kernel_layer_mapping = { | |
| <span class="hljs-string">"SiluAndMul"</span>: { | |
| <span class="hljs-string">"cuda"</span>: LockedLayerRepository( | |
| repo_id=<span class="hljs-string">"kernels-community/activation"</span>, | |
| layer_name=<span class="hljs-string">"SiluAndMul"</span>, | |
| ) | |
| } | |
| } | |
| register_kernel_mapping(kernel_layer_mapping)`,lang:"python",wrap:!1}}),_=new E({props:{code:"a2VybmVsX2xheWVyX21hcHBpbmclMjAlM0QlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjJzaWx1X2FuZF9tdWwlMjIlM0ElMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJjdWRhJTIyJTNBJTIwTG9ja2VkRnVuY1JlcG9zaXRvcnkoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVwb19pZCUzRCUyMmtlcm5lbHMtY29tbXVuaXR5JTJGYWN0aXZhdGlvbiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZ1bmNfbmFtZSUzRCUyMnNpbHVfYW5kX211bCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCklMEElMjAlMjAlMjAlMjAlN0QlMEElN0QlMEElMEFyZWdpc3Rlcl9rZXJuZWxfbWFwcGluZyhrZXJuZWxfbGF5ZXJfbWFwcGluZyk=",highlighted:`kernel_layer_mapping = { | |
| <span class="hljs-string">"silu_and_mul"</span>: { | |
| <span class="hljs-string">"cuda"</span>: LockedFuncRepository( | |
| repo_id=<span class="hljs-string">"kernels-community/activation"</span>, | |
| func_name=<span class="hljs-string">"silu_and_mul"</span>, | |
| ) | |
| } | |
| } | |
| register_kernel_mapping(kernel_layer_mapping)`,lang:"python",wrap:!1}}),I=new te({props:{title:"Pre-downloading locked kernels",local:"pre-downloading-locked-kernels",headingTag:"h2"}}),v=new E({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBsb2FkX2tlcm5lbCUwQSUwQWFjdGl2YXRpb24lMjAlM0QlMjBsb2FkX2tlcm5lbCglMjJrZXJuZWxzLWNvbW11bml0eSUyRmFjdGl2YXRpb24lMjIp",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> load_kernel | |
| activation = load_kernel(<span class="hljs-string">"kernels-community/activation"</span>)`,lang:"python",wrap:!1}}),C=new Je({props:{source:"https://github.com/huggingface/kernels/blob/main/docs/source/locking.md"}}),{c(){k=r("meta"),L=s(),W=r("p"),V=s(),o(u.$$.fragment),Z=s(),o(y.$$.fragment),x=s(),j=r("p"),j.innerHTML=se,H=s(),o(f.$$.fragment),q=s(),w=r("p"),w.innerHTML=ae,R=s(),o(T.$$.fragment),Q=s(),J=r("p"),J.innerHTML=re,G=s(),o(h.$$.fragment),F=s(),g=r("p"),g.innerHTML=oe,N=s(),o(b.$$.fragment),S=s(),$=r("p"),$.innerHTML=ie,z=s(),o(_.$$.fragment),P=s(),o(I.$$.fragment),Y=s(),A=r("p"),A.innerHTML=pe,D=s(),U=r("p"),U.innerHTML=ce,O=s(),o(v.$$.fragment),K=s(),o(C.$$.fragment),ee=s(),B=r("p"),this.h()},l(e){const l=fe("svelte-u9bgzb",document.head);k=i(l,"META",{name:!0,content:!0}),l.forEach(t),L=a(e),W=i(e,"P",{}),de(W).forEach(t),V=a(e),p(u.$$.fragment,e),Z=a(e),p(y.$$.fragment,e),x=a(e),j=i(e,"P",{"data-svelte-h":!0}),X(j)!=="svelte-1u8xcar"&&(j.innerHTML=se),H=a(e),p(f.$$.fragment,e),q=a(e),w=i(e,"P",{"data-svelte-h":!0}),X(w)!=="svelte-tlfpvx"&&(w.innerHTML=ae),R=a(e),p(T.$$.fragment,e),Q=a(e),J=i(e,"P",{"data-svelte-h":!0}),X(J)!=="svelte-1kzu0g5"&&(J.innerHTML=re),G=a(e),p(h.$$.fragment,e),F=a(e),g=i(e,"P",{"data-svelte-h":!0}),X(g)!=="svelte-joh6de"&&(g.innerHTML=oe),N=a(e),p(b.$$.fragment,e),S=a(e),$=i(e,"P",{"data-svelte-h":!0}),X($)!=="svelte-15yucit"&&($.innerHTML=ie),z=a(e),p(_.$$.fragment,e),P=a(e),p(I.$$.fragment,e),Y=a(e),A=i(e,"P",{"data-svelte-h":!0}),X(A)!=="svelte-1xujnj6"&&(A.innerHTML=pe),D=a(e),U=i(e,"P",{"data-svelte-h":!0}),X(U)!=="svelte-jt4i7u"&&(U.innerHTML=ce),O=a(e),p(v.$$.fragment,e),K=a(e),p(C.$$.fragment,e),ee=a(e),B=i(e,"P",{}),de(B).forEach(t),this.h()},h(){me(k,"name","hf:doc:metadata"),me(k,"content",ge)},m(e,l){we(document.head,k),n(e,L,l),n(e,W,l),n(e,V,l),c(u,e,l),n(e,Z,l),c(y,e,l),n(e,x,l),n(e,j,l),n(e,H,l),c(f,e,l),n(e,q,l),n(e,w,l),n(e,R,l),c(T,e,l),n(e,Q,l),n(e,J,l),n(e,G,l),c(h,e,l),n(e,F,l),n(e,g,l),n(e,N,l),c(b,e,l),n(e,S,l),n(e,$,l),n(e,z,l),c(_,e,l),n(e,P,l),c(I,e,l),n(e,Y,l),n(e,A,l),n(e,D,l),n(e,U,l),n(e,O,l),c(v,e,l),n(e,K,l),c(C,e,l),n(e,ee,l),n(e,B,l),le=!0},p:ke,i(e){le||(d(u.$$.fragment,e),d(y.$$.fragment,e),d(f.$$.fragment,e),d(T.$$.fragment,e),d(h.$$.fragment,e),d(b.$$.fragment,e),d(_.$$.fragment,e),d(I.$$.fragment,e),d(v.$$.fragment,e),d(C.$$.fragment,e),le=!0)},o(e){m(u.$$.fragment,e),m(y.$$.fragment,e),m(f.$$.fragment,e),m(T.$$.fragment,e),m(h.$$.fragment,e),m(b.$$.fragment,e),m(_.$$.fragment,e),m(I.$$.fragment,e),m(v.$$.fragment,e),m(C.$$.fragment,e),le=!1},d(e){e&&(t(L),t(W),t(V),t(Z),t(x),t(j),t(H),t(q),t(w),t(R),t(Q),t(J),t(G),t(F),t(g),t(N),t(S),t($),t(z),t(P),t(Y),t(A),t(D),t(U),t(O),t(K),t(ee),t(B)),t(k),M(u,e),M(y,e),M(f,e),M(T,e),M(h,e),M(b,e),M(_,e),M(I,e),M(v,e),M(C,e)}}}const ge='{"title":"Locking kernel/layer versions","local":"locking-kernellayer-versions","sections":[{"title":"Locked kernel layers","local":"locked-kernel-layers","sections":[],"depth":2},{"title":"Pre-downloading locked kernels","local":"pre-downloading-locked-kernels","sections":[],"depth":2}],"depth":1}';function be(ne){return ue(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ve extends ye{constructor(k){super(),je(this,k,be,he,Me,{})}}export{ve as component}; | |
Xet Storage Details
- Size:
- 9.66 kB
- Xet hash:
- 0e78d37f1848bf8905f5d5317ece89c322b0115a56c4af73855516b518f1edb8
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.