Buckets:
| import{s as we,o as je}from"../chunks/scheduler.505acc25.js";import{S as Ue,i as xe,e as f,s as o,c as w,h as Ce,a as y,d as a,b as m,f as ge,g as j,j as C,k as S,l as $e,m as r,n as U,o as M,u as ke,t as h,p as x,v as Je}from"../chunks/index.cd4a775d.js";import{C as Y}from"../chunks/CodeBlock.44d4d92a.js";import{D as Te}from"../chunks/DocNotebookDropdown.a1b725f3.js";import{F as We}from"../chunks/FrameworkSwitchCourse.4a53ccfc.js";import{H as Ze,E as _e}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.41736c0b.js";function ze(g){let n,i;return n=new Te({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/chapter4/section2_tf.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/chapter4/section2_tf.ipynb"}]}}),{c(){w(n.$$.fragment)},l(t){j(n.$$.fragment,t)},m(t,b){U(n,t,b),i=!0},i(t){i||(h(n.$$.fragment,t),i=!0)},o(t){M(n.$$.fragment,t),i=!1},d(t){x(n,t)}}}function Ve(g){let n,i;return n=new Te({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/chapter4/section2_pt.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/chapter4/section2_pt.ipynb"}]}}),{c(){w(n.$$.fragment)},l(t){j(n.$$.fragment,t)},m(t,b){U(n,t,b),i=!0},i(t){i||(h(n.$$.fragment,t),i=!0)},o(t){M(n.$$.fragment,t),i=!1},d(t){x(n,t)}}}function ve(g){let n,i,t,b='Hier empfehlen wir auch, dass man stattdessen die <a href="https://huggingface.co/transformers/model_doc/auto?highlight=auto#auto-classes" rel="nofollow"><code>TFAuto*</code> classes</a> benutzt, da diese architekturunabhängig sind. Das vorherige Code-Beispiel gilt nur für Checkpoints, die in die CamemBERT Architektur zu laden sind, aber mit den <code>TFAuto*</code> Klassen kann man Checkpoints einfach tauschen:',u,p,d;return n=new Y({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMENhbWVtYmVydFRva2VuaXplciUyQyUyMFRGQ2FtZW1iZXJ0Rm9yTWFza2VkTE0lMEElMEF0b2tlbml6ZXIlMjAlM0QlMjBDYW1lbWJlcnRUb2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKCUyMmNhbWVtYmVydC1iYXNlJTIyKSUwQW1vZGVsJTIwJTNEJTIwVEZDYW1lbWJlcnRGb3JNYXNrZWRMTS5mcm9tX3ByZXRyYWluZWQoJTIyY2FtZW1iZXJ0LWJhc2UlMjIp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> CamembertTokenizer, TFCamembertForMaskedLM | |
| tokenizer = CamembertTokenizer.from_pretrained(<span class="hljs-string">"camembert-base"</span>) | |
| model = TFCamembertForMaskedLM.from_pretrained(<span class="hljs-string">"camembert-base"</span>)`,wrap:!1}}),p=new Y({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBURkF1dG9Nb2RlbEZvck1hc2tlZExNJTBBJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQoJTIyY2FtZW1iZXJ0LWJhc2UlMjIpJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvck1hc2tlZExNLmZyb21fcHJldHJhaW5lZCglMjJjYW1lbWJlcnQtYmFzZSUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, TFAutoModelForMaskedLM | |
| tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">"camembert-base"</span>) | |
| model = TFAutoModelForMaskedLM.from_pretrained(<span class="hljs-string">"camembert-base"</span>)`,wrap:!1}}),{c(){w(n.$$.fragment),i=o(),t=f("p"),t.innerHTML=b,u=o(),w(p.$$.fragment)},l(s){j(n.$$.fragment,s),i=m(s),t=y(s,"P",{"data-svelte-h":!0}),C(t)!=="svelte-1xi50pm"&&(t.innerHTML=b),u=m(s),j(p.$$.fragment,s)},m(s,c){U(n,s,c),r(s,i,c),r(s,t,c),r(s,u,c),U(p,s,c),d=!0},i(s){d||(h(n.$$.fragment,s),h(p.$$.fragment,s),d=!0)},o(s){M(n.$$.fragment,s),M(p.$$.fragment,s),d=!1},d(s){s&&(a(i),a(t),a(u)),x(n,s),x(p,s)}}}function Ne(g){let n,i,t,b='Dennoch empfehlen wir, dass man die <a href="https://huggingface.co/transformers/model_doc/auto?highlight=auto#auto-classes" rel="nofollow"><code>Auto*</code> classes</a> stattdessen benutzt, da diese architekturunabhängig sind. Das vorherige Code-Beispiel gilt nur für Checkpoints, die in die CamemBERT Architektur zu laden sind, aber mit den <code>Auto*</code> Klassen kann man Checkpoints ziemlich einfach tauschen:',u,p,d;return n=new Y({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMENhbWVtYmVydFRva2VuaXplciUyQyUyMENhbWVtYmVydEZvck1hc2tlZExNJTBBJTBBdG9rZW5pemVyJTIwJTNEJTIwQ2FtZW1iZXJ0VG9rZW5pemVyLmZyb21fcHJldHJhaW5lZCglMjJjYW1lbWJlcnQtYmFzZSUyMiklMEFtb2RlbCUyMCUzRCUyMENhbWVtYmVydEZvck1hc2tlZExNLmZyb21fcHJldHJhaW5lZCglMjJjYW1lbWJlcnQtYmFzZSUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> CamembertTokenizer, CamembertForMaskedLM | |
| tokenizer = CamembertTokenizer.from_pretrained(<span class="hljs-string">"camembert-base"</span>) | |
| model = CamembertForMaskedLM.from_pretrained(<span class="hljs-string">"camembert-base"</span>)`,wrap:!1}}),p=new Y({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBBdXRvTW9kZWxGb3JNYXNrZWRMTSUwQSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKCUyMmNhbWVtYmVydC1iYXNlJTIyKSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yTWFza2VkTE0uZnJvbV9wcmV0cmFpbmVkKCUyMmNhbWVtYmVydC1iYXNlJTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, AutoModelForMaskedLM | |
| tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">"camembert-base"</span>) | |
| model = AutoModelForMaskedLM.from_pretrained(<span class="hljs-string">"camembert-base"</span>)`,wrap:!1}}),{c(){w(n.$$.fragment),i=o(),t=f("p"),t.innerHTML=b,u=o(),w(p.$$.fragment)},l(s){j(n.$$.fragment,s),i=m(s),t=y(s,"P",{"data-svelte-h":!0}),C(t)!=="svelte-j1ycsl"&&(t.innerHTML=b),u=m(s),j(p.$$.fragment,s)},m(s,c){U(n,s,c),r(s,i,c),r(s,t,c),r(s,u,c),U(p,s,c),d=!0},i(s){d||(h(n.$$.fragment,s),h(p.$$.fragment,s),d=!0)},o(s){M(n.$$.fragment,s),M(p.$$.fragment,s),d=!1},d(s){s&&(a(i),a(t),a(u)),x(n,s),x(p,s)}}}function Ee(g){let n,i,t,b,u,p,d,s,c,k,I,_,re="Der Model Hub erleichtert das Auswählen des passenden Modells, sodass es von downstream Libraries mit wenigen Codezeilen benutzt werden kann. Lass uns anschauen, wie genau man solche Modelle verwendet und wie man der Communinity zurück beitragen kann.",L,z,ie="Nehmen wir an, wir suchen nach einem französichbasierten Modell, das die “mask filling” Aufgabe kann.",R,$,ce='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/camembert.gif" alt="Selecting the Camembert model." width="80%"/>',D,V,oe="Wir wählen den <code>camembert-base</code> Checkpoint aus, um es zu auszuprobieren. Das Kennzeichen <code>camembert-base</code> ist alles, was wir brauchen, um loszulegen! Wie in früheren Kapiteln gezeigt wurde, können wir das Modell mit der <code>pipeline()</code> Funktion instanziieren:",H,v,q,N,P,E,me="So einfach kann man mit einer Pipeline ein Modell laden. Dabei muss man nur darauf achten, den passenden Checkpoint für die gewünschte Aufgabe zu selektieren. Zum Beispiel: Wir laden hier den <code>camembert-base</code> Checkpoint in die <code>fill-mask</code> Pipeline, was schon korrekt ist. Aber würden wir diesen Checkpoint in die <code>text-classification</code> Pipeline laden, wären die Ergebnisse völlig sinnlos, weil der “head” von <code>camembert-base</code> für diese Aufgabe einfach nicht passt! Wir empfehlen, den “Task Selector” auf der Hugging Face Hub Seite zu benutzen, um die richtigen Checkpoints auszuwählen:",K,W,pe='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/tasks.png" alt="The task selector on the web interface." width="80%"/>',O,B,ue="Du kannst auch den Checkpoint mit der Modell-Architektur direkt instanziieren:",ee,J,T,G,Z,de="<p>Wenn du ein vortrainiertes Modell verwendest, prüf erstmal, wie genau das traininert wurde, mit welchen Datensätzen, sowie seine Einschränkungen und Biases. All diese Informationen sollten auf der Modellbeschreibungskarte stehen.</p>",se,Q,te,X,ne;u=new We({props:{fw:g[0]}}),d=new Ze({props:{title:"Verwendung vortrainierter Modelle",local:"verwendung-vortrainierter-modelle",headingTag:"h1"}});const be=[Ve,ze],A=[];function Me(e,l){return e[0]==="pt"?0:1}c=Me(g),k=A[c]=be[c](g),v=new Y({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBY2FtZW1iZXJ0X2ZpbGxfbWFzayUyMCUzRCUyMHBpcGVsaW5lKCUyMmZpbGwtbWFzayUyMiUyQyUyMG1vZGVsJTNEJTIyY2FtZW1iZXJ0LWJhc2UlMjIpJTBBcmVzdWx0cyUyMCUzRCUyMGNhbWVtYmVydF9maWxsX21hc2soJTIyTGUlMjBjYW1lbWJlcnQlMjBlc3QlMjAlM0NtYXNrJTNFJTIwJTNBKSUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline | |
| camembert_fill_mask = pipeline(<span class="hljs-string">"fill-mask"</span>, model=<span class="hljs-string">"camembert-base"</span>) | |
| results = camembert_fill_mask(<span class="hljs-string">"Le camembert est <mask> :)"</span>)`,wrap:!1}}),N=new Y({props:{code:"JTVCJTBBJTIwJTIwJTdCJ3NlcXVlbmNlJyUzQSUyMCdMZSUyMGNhbWVtYmVydCUyMGVzdCUyMGQlQzMlQTlsaWNpZXV4JTIwJTNBKSclMkMlMjAnc2NvcmUnJTNBJTIwMC40OTA5MTAwNTMyNTMxNzM4MyUyQyUyMCd0b2tlbiclM0ElMjA3MjAwJTJDJTIwJ3Rva2VuX3N0ciclM0ElMjAnZCVDMyVBOWxpY2lldXgnJTdEJTJDJTIwJTBBJTIwJTIwJTdCJ3NlcXVlbmNlJyUzQSUyMCdMZSUyMGNhbWVtYmVydCUyMGVzdCUyMGV4Y2VsbGVudCUyMCUzQSknJTJDJTIwJ3Njb3JlJyUzQSUyMDAuMTA1NTY5NzQyNjE5OTkxMyUyQyUyMCd0b2tlbiclM0ElMjAyMTgzJTJDJTIwJ3Rva2VuX3N0ciclM0ElMjAnZXhjZWxsZW50JyU3RCUyQyUyMCUwQSUyMCUyMCU3QidzZXF1ZW5jZSclM0ElMjAnTGUlMjBjYW1lbWJlcnQlMjBlc3QlMjBzdWNjdWxlbnQlMjAlM0EpJyUyQyUyMCdzY29yZSclM0ElMjAwLjAzNDUzMzEzMTg2NzY0NzE3JTJDJTIwJ3Rva2VuJyUzQSUyMDI2MjAyJTJDJTIwJ3Rva2VuX3N0ciclM0ElMjAnc3VjY3VsZW50JyU3RCUyQyUyMCUwQSUyMCUyMCU3QidzZXF1ZW5jZSclM0ElMjAnTGUlMjBjYW1lbWJlcnQlMjBlc3QlMjBtZWlsbGV1ciUyMCUzQSknJTJDJTIwJ3Njb3JlJyUzQSUyMDAuMDMzMDMxNDExNDY4OTgyNyUyQyUyMCd0b2tlbiclM0ElMjA1MjglMkMlMjAndG9rZW5fc3RyJyUzQSUyMCdtZWlsbGV1ciclN0QlMkMlMjAlMEElMjAlMjAlN0Inc2VxdWVuY2UnJTNBJTIwJ0xlJTIwY2FtZW1iZXJ0JTIwZXN0JTIwcGFyZmFpdCUyMCUzQSknJTJDJTIwJ3Njb3JlJyUzQSUyMDAuMDMwMDc2NTAxODkxMDE2OTYlMkMlMjAndG9rZW4nJTNBJTIwMTY1NCUyQyUyMCd0b2tlbl9zdHInJTNBJTIwJ3BhcmZhaXQnJTdEJTBBJTVE",highlighted:`[ | |
| {<span class="hljs-string">'sequence'</span>: <span class="hljs-string">'Le camembert est délicieux :)'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.49091005325317383</span>, <span class="hljs-string">'token'</span>: <span class="hljs-number">7200</span>, <span class="hljs-string">'token_str'</span>: <span class="hljs-string">'délicieux'</span>}, | |
| {<span class="hljs-string">'sequence'</span>: <span class="hljs-string">'Le camembert est excellent :)'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.1055697426199913</span>, <span class="hljs-string">'token'</span>: <span class="hljs-number">2183</span>, <span class="hljs-string">'token_str'</span>: <span class="hljs-string">'excellent'</span>}, | |
| {<span class="hljs-string">'sequence'</span>: <span class="hljs-string">'Le camembert est succulent :)'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.03453313186764717</span>, <span class="hljs-string">'token'</span>: <span class="hljs-number">26202</span>, <span class="hljs-string">'token_str'</span>: <span class="hljs-string">'succulent'</span>}, | |
| {<span class="hljs-string">'sequence'</span>: <span class="hljs-string">'Le camembert est meilleur :)'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.0330314114689827</span>, <span class="hljs-string">'token'</span>: <span class="hljs-number">528</span>, <span class="hljs-string">'token_str'</span>: <span class="hljs-string">'meilleur'</span>}, | |
| {<span class="hljs-string">'sequence'</span>: <span class="hljs-string">'Le camembert est parfait :)'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.03007650189101696</span>, <span class="hljs-string">'token'</span>: <span class="hljs-number">1654</span>, <span class="hljs-string">'token_str'</span>: <span class="hljs-string">'parfait'</span>} | |
| ]`,wrap:!1}});const he=[Ne,ve],F=[];function fe(e,l){return e[0]==="pt"?0:1}return J=fe(g),T=F[J]=he[J](g),Q=new _e({props:{source:"https://github.com/huggingface/course/blob/main/chapters/de/chapter4/2.mdx"}}),{c(){n=f("meta"),i=o(),t=f("p"),b=o(),w(u.$$.fragment),p=o(),w(d.$$.fragment),s=o(),k.c(),I=o(),_=f("p"),_.textContent=re,L=o(),z=f("p"),z.textContent=ie,R=o(),$=f("div"),$.innerHTML=ce,D=o(),V=f("p"),V.innerHTML=oe,H=o(),w(v.$$.fragment),q=o(),w(N.$$.fragment),P=o(),E=f("p"),E.innerHTML=me,K=o(),W=f("div"),W.innerHTML=pe,O=o(),B=f("p"),B.textContent=ue,ee=o(),T.c(),G=o(),Z=f("blockquote"),Z.innerHTML=de,se=o(),w(Q.$$.fragment),te=o(),X=f("p"),this.h()},l(e){const l=Ce("svelte-u9bgzb",document.head);n=y(l,"META",{name:!0,content:!0}),l.forEach(a),i=m(e),t=y(e,"P",{}),ge(t).forEach(a),b=m(e),j(u.$$.fragment,e),p=m(e),j(d.$$.fragment,e),s=m(e),k.l(e),I=m(e),_=y(e,"P",{"data-svelte-h":!0}),C(_)!=="svelte-7y3kng"&&(_.textContent=re),L=m(e),z=y(e,"P",{"data-svelte-h":!0}),C(z)!=="svelte-bbbe5r"&&(z.textContent=ie),R=m(e),$=y(e,"DIV",{class:!0,"data-svelte-h":!0}),C($)!=="svelte-4k6hvy"&&($.innerHTML=ce),D=m(e),V=y(e,"P",{"data-svelte-h":!0}),C(V)!=="svelte-qzga3h"&&(V.innerHTML=oe),H=m(e),j(v.$$.fragment,e),q=m(e),j(N.$$.fragment,e),P=m(e),E=y(e,"P",{"data-svelte-h":!0}),C(E)!=="svelte-q2shzx"&&(E.innerHTML=me),K=m(e),W=y(e,"DIV",{class:!0,"data-svelte-h":!0}),C(W)!=="svelte-1cl7xbt"&&(W.innerHTML=pe),O=m(e),B=y(e,"P",{"data-svelte-h":!0}),C(B)!=="svelte-1epaz1v"&&(B.textContent=ue),ee=m(e),T.l(e),G=m(e),Z=y(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),C(Z)!=="svelte-1v4rd4h"&&(Z.innerHTML=de),se=m(e),j(Q.$$.fragment,e),te=m(e),X=y(e,"P",{}),ge(X).forEach(a),this.h()},h(){S(n,"name","hf:doc:metadata"),S(n,"content",Be),S($,"class","flex justify-center"),S(W,"class","flex justify-center"),S(Z,"class","tip")},m(e,l){$e(document.head,n),r(e,i,l),r(e,t,l),r(e,b,l),U(u,e,l),r(e,p,l),U(d,e,l),r(e,s,l),A[c].m(e,l),r(e,I,l),r(e,_,l),r(e,L,l),r(e,z,l),r(e,R,l),r(e,$,l),r(e,D,l),r(e,V,l),r(e,H,l),U(v,e,l),r(e,q,l),U(N,e,l),r(e,P,l),r(e,E,l),r(e,K,l),r(e,W,l),r(e,O,l),r(e,B,l),r(e,ee,l),F[J].m(e,l),r(e,G,l),r(e,Z,l),r(e,se,l),U(Q,e,l),r(e,te,l),r(e,X,l),ne=!0},p(e,[l]){const ye={};l&1&&(ye.fw=e[0]),u.$set(ye);let le=c;c=Me(e),c!==le&&(Je(),M(A[le],1,1,()=>{A[le]=null}),ke(),k=A[c],k||(k=A[c]=be[c](e),k.c()),h(k,1),k.m(I.parentNode,I));let ae=J;J=fe(e),J!==ae&&(Je(),M(F[ae],1,1,()=>{F[ae]=null}),ke(),T=F[J],T||(T=F[J]=he[J](e),T.c()),h(T,1),T.m(G.parentNode,G))},i(e){ne||(h(u.$$.fragment,e),h(d.$$.fragment,e),h(k),h(v.$$.fragment,e),h(N.$$.fragment,e),h(T),h(Q.$$.fragment,e),ne=!0)},o(e){M(u.$$.fragment,e),M(d.$$.fragment,e),M(k),M(v.$$.fragment,e),M(N.$$.fragment,e),M(T),M(Q.$$.fragment,e),ne=!1},d(e){e&&(a(i),a(t),a(b),a(p),a(s),a(I),a(_),a(L),a(z),a(R),a($),a(D),a(V),a(H),a(q),a(P),a(E),a(K),a(W),a(O),a(B),a(ee),a(G),a(Z),a(se),a(te),a(X)),a(n),x(u,e),x(d,e),A[c].d(e),x(v,e),x(N,e),F[J].d(e),x(Q,e)}}}const Be='{"title":"Verwendung vortrainierter Modelle","local":"verwendung-vortrainierter-modelle","sections":[],"depth":1}';function Qe(g,n,i){let t="pt";return je(()=>{const b=new URLSearchParams(window.location.search);i(0,t=b.get("fw")||"pt")}),[t]}class Se extends Ue{constructor(n){super(),xe(this,n,Qe,Ee,we,{})}}export{Se as component}; | |
Xet Storage Details
- Size:
- 15.9 kB
- Xet hash:
- adc301502b2d0b0090d28529e1aba8b0280423afca410b71f07b2545b042cbec
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.