Buckets:
| import{s as Ws,o as Bs}from"../chunks/scheduler.893fe8c9.js";import{S as Ls,i as Fs,e as f,s as p,c as T,h as Ps,a as d,d as n,b as c,f as Hs,g as J,j as b,k as yt,l as Xs,m as a,n as U,o as m,D as L,t as M,p as j,E as F}from"../chunks/index.6ee278c6.js";import{C as Ys,H as bt,E as qs}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.49db99a6.js";import{Y as Ss}from"../chunks/Youtube.59d04f41.js";import{C as h}from"../chunks/CodeBlock.53bdcb3a.js";import{C as Rs}from"../chunks/CourseFloatingBanner.b902b8d5.js";import{F as Ks}from"../chunks/FrameworkSwitchCourse.77a18d50.js";function Os(y){let l,r;return l=new Rs({props:{chapter:2,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter2/section2_tf.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter2/section2_tf.ipynb"}]}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function en(y){let l,r;return l=new Rs({props:{chapter:2,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter2/section2_pt.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter2/section2_pt.ipynb"}]}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function tn(y){let l,r;return l=new Ss({props:{id:"wVN12smEvqg"}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function ln(y){let l,r;return l=new Ss({props:{id:"1pedAIvTWXk"}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function sn(y){let l,r;return l=new h({props:{code:"cmF3X2lucHV0cyUyMCUzRCUyMCU1QiUwQSUyMCUyMCUyMCUyMCUyMkkndmUlMjBiZWVuJTIwd2FpdGluZyUyMGZvciUyMGElMjBIdWdnaW5nRmFjZSUyMGNvdXJzZSUyMG15JTIwd2hvbGUlMjBsaWZlLiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMkklMjBoYXRlJTIwdGhpcyUyMHNvJTIwbXVjaCElMjIlMkMlMEElNUQlMEFpbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIocmF3X2lucHV0cyUyQyUyMHBhZGRpbmclM0RUcnVlJTJDJTIwdHJ1bmNhdGlvbiUzRFRydWUlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnRmJTIyKSUwQXByaW50KGlucHV0cyk=",highlighted:`raw_inputs = [ | |
| <span class="hljs-string">"I've been waiting for a HuggingFace course my whole life."</span>, | |
| <span class="hljs-string">"I hate this so much!"</span>, | |
| ] | |
| inputs = tokenizer(raw_inputs, padding=<span class="hljs-literal">True</span>, truncation=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">"tf"</span>) | |
| <span class="hljs-built_in">print</span>(inputs)`,wrap:!1}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function nn(y){let l,r;return l=new h({props:{code:"cmF3X2lucHV0cyUyMCUzRCUyMCU1QiUwQSUyMCUyMCUyMCUyMCUyMkkndmUlMjBiZWVuJTIwd2FpdGluZyUyMGZvciUyMGElMjBIdWdnaW5nRmFjZSUyMGNvdXJzZSUyMG15JTIwd2hvbGUlMjBsaWZlLiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMkklMjBoYXRlJTIwdGhpcyUyMHNvJTIwbXVjaCElMjIlMkMlMEElNUQlMEFpbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIocmF3X2lucHV0cyUyQyUyMHBhZGRpbmclM0RUcnVlJTJDJTIwdHJ1bmNhdGlvbiUzRFRydWUlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnB0JTIyKSUwQXByaW50KGlucHV0cyk=",highlighted:`raw_inputs = [ | |
| <span class="hljs-string">"I've been waiting for a HuggingFace course my whole life."</span>, | |
| <span class="hljs-string">"I hate this so much!"</span>, | |
| ] | |
| inputs = tokenizer(raw_inputs, padding=<span class="hljs-literal">True</span>, truncation=<span class="hljs-literal">True</span>, return_tensors=<span class="hljs-string">"pt"</span>) | |
| <span class="hljs-built_in">print</span>(inputs)`,wrap:!1}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function an(y){let l,r="Iată cum arată rezultatele ca tensori TensorFlow:",t,u,o;return u=new h({props:{code:"JTdCJTBBJTIwJTIwJTIwJTIwJ2lucHV0X2lkcyclM0ElMjAlM0N0Zi5UZW5zb3IlM0ElMjBzaGFwZSUzRCgyJTJDJTIwMTYpJTJDJTIwZHR5cGUlM0RpbnQzMiUyQyUyMG51bXB5JTNEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXJyYXkoJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwJTIwMTAxJTJDJTIwJTIwMTA0NSUyQyUyMCUyMDEwMDUlMkMlMjAlMjAyMzEwJTJDJTIwJTIwMjA0MiUyQyUyMCUyMDM0MDMlMkMlMjAlMjAyMDA1JTJDJTIwJTIwMTAzNyUyQyUyMDE3NjYyJTJDJTIwMTIxNzIlMkMlMjAlMjAyNjA3JTJDJTIwJTIwMjAyNiUyQyUyMCUyMDI4NzglMkMlMjAlMjAyMTY2JTJDJTIwJTIwMTAxMiUyQyUyMCUyMCUyMDEwMiU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1QiUyMCUyMDEwMSUyQyUyMCUyMDEwNDUlMkMlMjAlMjA1MjIzJTJDJTIwJTIwMjAyMyUyQyUyMCUyMDIwNjElMkMlMjAlMjAyMTcyJTJDJTIwJTIwJTIwOTk5JTJDJTIwJTIwJTIwMTAyJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUQlMkMlMjBkdHlwZSUzRGludDMyKSUzRSUyQyUyMCUwQSUyMCUyMCUyMCUyMCdhdHRlbnRpb25fbWFzayclM0ElMjAlM0N0Zi5UZW5zb3IlM0ElMjBzaGFwZSUzRCgyJTJDJTIwMTYpJTJDJTIwZHR5cGUlM0RpbnQzMiUyQyUyMG51bXB5JTNEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXJyYXkoJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1QjElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUQlMkMlMjBkdHlwZSUzRGludDMyKSUzRSUwQSU3RA==",highlighted:`{ | |
| <span class="hljs-string">'input_ids'</span>: <tf.Tensor: shape=(<span class="hljs-number">2</span>, <span class="hljs-number">16</span>), dtype=int32, numpy= | |
| array([ | |
| [ <span class="hljs-number">101</span>, <span class="hljs-number">1045</span>, <span class="hljs-number">1005</span>, <span class="hljs-number">2310</span>, <span class="hljs-number">2042</span>, <span class="hljs-number">3403</span>, <span class="hljs-number">2005</span>, <span class="hljs-number">1037</span>, <span class="hljs-number">17662</span>, <span class="hljs-number">12172</span>, <span class="hljs-number">2607</span>, <span class="hljs-number">2026</span>, <span class="hljs-number">2878</span>, <span class="hljs-number">2166</span>, <span class="hljs-number">1012</span>, <span class="hljs-number">102</span>], | |
| [ <span class="hljs-number">101</span>, <span class="hljs-number">1045</span>, <span class="hljs-number">5223</span>, <span class="hljs-number">2023</span>, <span class="hljs-number">2061</span>, <span class="hljs-number">2172</span>, <span class="hljs-number">999</span>, <span class="hljs-number">102</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>] | |
| ], dtype=int32)>, | |
| <span class="hljs-string">'attention_mask'</span>: <tf.Tensor: shape=(<span class="hljs-number">2</span>, <span class="hljs-number">16</span>), dtype=int32, numpy= | |
| array([ | |
| [<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>], | |
| [<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>] | |
| ], dtype=int32)> | |
| }`,wrap:!1}}),{c(){l=f("p"),l.textContent=r,t=p(),T(u.$$.fragment)},l(i){l=d(i,"P",{"data-svelte-h":!0}),b(l)!=="svelte-i4ylal"&&(l.textContent=r),t=c(i),J(u.$$.fragment,i)},m(i,w){a(i,l,w),a(i,t,w),U(u,i,w),o=!0},i(i){o||(M(u.$$.fragment,i),o=!0)},o(i){m(u.$$.fragment,i),o=!1},d(i){i&&(n(l),n(t)),j(u,i)}}}function rn(y){let l,r="Iată cum arată rezultatele ca tensori PyTorch:",t,u,o;return u=new h({props:{code:"JTdCJTBBJTIwJTIwJTIwJTIwJ2lucHV0X2lkcyclM0ElMjB0ZW5zb3IoJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwJTIwMTAxJTJDJTIwJTIwMTA0NSUyQyUyMCUyMDEwMDUlMkMlMjAlMjAyMzEwJTJDJTIwJTIwMjA0MiUyQyUyMCUyMDM0MDMlMkMlMjAlMjAyMDA1JTJDJTIwJTIwMTAzNyUyQyUyMDE3NjYyJTJDJTIwMTIxNzIlMkMlMjAyNjA3JTJDJTIwJTIwMjAyNiUyQyUyMCUyMDI4NzglMkMlMjAlMjAyMTY2JTJDJTIwJTIwMTAxMiUyQyUyMCUyMCUyMDEwMiU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1QiUyMCUyMDEwMSUyQyUyMCUyMDEwNDUlMkMlMjAlMjA1MjIzJTJDJTIwJTIwMjAyMyUyQyUyMCUyMDIwNjElMkMlMjAlMjAyMTcyJTJDJTIwJTIwJTIwOTk5JTJDJTIwJTIwJTIwMTAyJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlNUQlMEElMjAlMjAlMjAlMjAlNUQpJTJDJTIwJTBBJTIwJTIwJTIwJTIwJ2F0dGVudGlvbl9tYXNrJyUzQSUyMHRlbnNvciglNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUIxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTVEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCU1RCUwQSUyMCUyMCUyMCUyMCU1RCklMEElN0Q=",highlighted:`{ | |
| <span class="hljs-string">'input_ids'</span>: tensor([ | |
| [ <span class="hljs-number">101</span>, <span class="hljs-number">1045</span>, <span class="hljs-number">1005</span>, <span class="hljs-number">2310</span>, <span class="hljs-number">2042</span>, <span class="hljs-number">3403</span>, <span class="hljs-number">2005</span>, <span class="hljs-number">1037</span>, <span class="hljs-number">17662</span>, <span class="hljs-number">12172</span>, <span class="hljs-number">2607</span>, <span class="hljs-number">2026</span>, <span class="hljs-number">2878</span>, <span class="hljs-number">2166</span>, <span class="hljs-number">1012</span>, <span class="hljs-number">102</span>], | |
| [ <span class="hljs-number">101</span>, <span class="hljs-number">1045</span>, <span class="hljs-number">5223</span>, <span class="hljs-number">2023</span>, <span class="hljs-number">2061</span>, <span class="hljs-number">2172</span>, <span class="hljs-number">999</span>, <span class="hljs-number">102</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>] | |
| ]), | |
| <span class="hljs-string">'attention_mask'</span>: tensor([ | |
| [<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>], | |
| [<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>] | |
| ]) | |
| }`,wrap:!1}}),{c(){l=f("p"),l.textContent=r,t=p(),T(u.$$.fragment)},l(i){l=d(i,"P",{"data-svelte-h":!0}),b(l)!=="svelte-1v5wbf9"&&(l.textContent=r),t=c(i),J(u.$$.fragment,i)},m(i,w){a(i,l,w),a(i,t,w),U(u,i,w),o=!0},i(i){o||(M(u.$$.fragment,i),o=!0)},o(i){m(u.$$.fragment,i),o=!1},d(i){i&&(n(l),n(t)),j(u,i)}}}function un(y){let l,r="Putem descărca modelul nostru preantrenat în același mod în care am făcut-o cu tokenizatorul nostru. 🤗 Transformers oferă o clasă <code>TFAutoModel</code> care are și o metodă <code>from_pretrained</code>:",t,u,o;return u=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsJTBBJTBBY2hlY2twb2ludCUyMCUzRCUyMCUyMmRpc3RpbGJlcnQtYmFzZS11bmNhc2VkLWZpbmV0dW5lZC1zc3QtMi1lbmdsaXNoJTIyJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbC5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFAutoModel | |
| checkpoint = <span class="hljs-string">"distilbert-base-uncased-finetuned-sst-2-english"</span> | |
| model = TFAutoModel.from_pretrained(checkpoint)`,wrap:!1}}),{c(){l=f("p"),l.innerHTML=r,t=p(),T(u.$$.fragment)},l(i){l=d(i,"P",{"data-svelte-h":!0}),b(l)!=="svelte-4pat4u"&&(l.innerHTML=r),t=c(i),J(u.$$.fragment,i)},m(i,w){a(i,l,w),a(i,t,w),U(u,i,w),o=!0},i(i){o||(M(u.$$.fragment,i),o=!0)},o(i){m(u.$$.fragment,i),o=!1},d(i){i&&(n(l),n(t)),j(u,i)}}}function pn(y){let l,r="Putem descărca modelul nostru preantrenat în același mod în care am făcut-o cu tokenizatorul nostru. 🤗 Transformers oferă o clasă <code>AutoModel</code> care are și o metodă <code>from_pretrained()</code>:",t,u,o;return u=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbCUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3N0LTItZW5nbGlzaCUyMiUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModel | |
| checkpoint = <span class="hljs-string">"distilbert-base-uncased-finetuned-sst-2-english"</span> | |
| model = AutoModel.from_pretrained(checkpoint)`,wrap:!1}}),{c(){l=f("p"),l.innerHTML=r,t=p(),T(u.$$.fragment)},l(i){l=d(i,"P",{"data-svelte-h":!0}),b(l)!=="svelte-1q8q7eh"&&(l.innerHTML=r),t=c(i),J(u.$$.fragment,i)},m(i,w){a(i,l,w),a(i,t,w),U(u,i,w),o=!0},i(i){o||(M(u.$$.fragment,i),o=!0)},o(i){m(u.$$.fragment,i),o=!1},d(i){i&&(n(l),n(t)),j(u,i)}}}function cn(y){let l,r,t,u;return l=new h({props:{code:"b3V0cHV0cyUyMCUzRCUyMG1vZGVsKGlucHV0cyklMEFwcmludChvdXRwdXRzLmxhc3RfaGlkZGVuX3N0YXRlLnNoYXBlKQ==",highlighted:`outputs = model(inputs) | |
| <span class="hljs-built_in">print</span>(outputs.last_hidden_state.shape)`,wrap:!1}}),t=new h({props:{code:"KDIlMkMlMjAxNiUyQyUyMDc2OCk=",highlighted:'(<span class="hljs-number">2</span>, <span class="hljs-number">16</span>, <span class="hljs-number">768</span>)',wrap:!1}}),{c(){T(l.$$.fragment),r=p(),T(t.$$.fragment)},l(o){J(l.$$.fragment,o),r=c(o),J(t.$$.fragment,o)},m(o,i){U(l,o,i),a(o,r,i),U(t,o,i),u=!0},i(o){u||(M(l.$$.fragment,o),M(t.$$.fragment,o),u=!0)},o(o){m(l.$$.fragment,o),m(t.$$.fragment,o),u=!1},d(o){o&&n(r),j(l,o),j(t,o)}}}function on(y){let l,r,t,u;return l=new h({props:{code:"b3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqaW5wdXRzKSUwQXByaW50KG91dHB1dHMubGFzdF9oaWRkZW5fc3RhdGUuc2hhcGUp",highlighted:`outputs = model(**inputs) | |
| <span class="hljs-built_in">print</span>(outputs.last_hidden_state.shape)`,wrap:!1}}),t=new h({props:{code:"dG9yY2guU2l6ZSglNUIyJTJDJTIwMTYlMkMlMjA3NjglNUQp",highlighted:'torch.Size([<span class="hljs-number">2</span>, <span class="hljs-number">16</span>, <span class="hljs-number">768</span>])',wrap:!1}}),{c(){T(l.$$.fragment),r=p(),T(t.$$.fragment)},l(o){J(l.$$.fragment,o),r=c(o),J(t.$$.fragment,o)},m(o,i){U(l,o,i),a(o,r,i),U(t,o,i),u=!0},i(o){u||(M(l.$$.fragment,o),M(t.$$.fragment,o),u=!0)},o(o){m(l.$$.fragment,o),m(t.$$.fragment,o),u=!1},d(o){o&&n(r),j(l,o),j(t,o)}}}function mn(y){let l,r="Pentru exemplul nostru, vom avea nevoie de un model cu un head de clasificare a secvențelor (pentru a putea clasifica propozițiile ca fiind pozitive sau negative). Așadar, nu vom utiliza clasa <code>TFAutoModel</code>, ci <code>TFAutoModelForSequenceClassification</code>:",t,u,o;return u=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbiUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3N0LTItZW5nbGlzaCUyMiUwQW1vZGVsJTIwJTNEJTIwVEZBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQW91dHB1dHMlMjAlM0QlMjBtb2RlbChpbnB1dHMp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFAutoModelForSequenceClassification | |
| checkpoint = <span class="hljs-string">"distilbert-base-uncased-finetuned-sst-2-english"</span> | |
| model = TFAutoModelForSequenceClassification.from_pretrained(checkpoint) | |
| outputs = model(inputs)`,wrap:!1}}),{c(){l=f("p"),l.innerHTML=r,t=p(),T(u.$$.fragment)},l(i){l=d(i,"P",{"data-svelte-h":!0}),b(l)!=="svelte-1sftld7"&&(l.innerHTML=r),t=c(i),J(u.$$.fragment,i)},m(i,w){a(i,l,w),a(i,t,w),U(u,i,w),o=!0},i(i){o||(M(u.$$.fragment,i),o=!0)},o(i){m(u.$$.fragment,i),o=!1},d(i){i&&(n(l),n(t)),j(u,i)}}}function Mn(y){let l,r="Pentru exemplul nostru, vom avea nevoie de un model cu un head de clasificare a secvențelor (pentru a putea clasifica propozițiile ca fiind pozitive sau negative). Așadar, nu vom utiliza clasa <code>AutoModel</code>, ci <code>AutoModelForSequenceClassification</code>:",t,u,o;return u=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNzdC0yLWVuZ2xpc2glMjIlMEFtb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBb3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqaW5wdXRzKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForSequenceClassification | |
| checkpoint = <span class="hljs-string">"distilbert-base-uncased-finetuned-sst-2-english"</span> | |
| model = AutoModelForSequenceClassification.from_pretrained(checkpoint) | |
| outputs = model(**inputs)`,wrap:!1}}),{c(){l=f("p"),l.innerHTML=r,t=p(),T(u.$$.fragment)},l(i){l=d(i,"P",{"data-svelte-h":!0}),b(l)!=="svelte-1bhg9ur"&&(l.innerHTML=r),t=c(i),J(u.$$.fragment,i)},m(i,w){a(i,l,w),a(i,t,w),U(u,i,w),o=!0},i(i){o||(M(u.$$.fragment,i),o=!0)},o(i){m(u.$$.fragment,i),o=!1},d(i){i&&(n(l),n(t)),j(u,i)}}}function fn(y){let l,r;return l=new h({props:{code:"KDIlMkMlMjAyKQ==",highlighted:'(<span class="hljs-number">2</span>, <span class="hljs-number">2</span>)',wrap:!1}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function dn(y){let l,r;return l=new h({props:{code:"dG9yY2guU2l6ZSglNUIyJTJDJTIwMiU1RCk=",highlighted:'torch.Size([<span class="hljs-number">2</span>, <span class="hljs-number">2</span>])',wrap:!1}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function yn(y){let l,r;return l=new h({props:{code:"JTNDdGYuVGVuc29yJTNBJTIwc2hhcGUlM0QoMiUyQyUyMDIpJTJDJTIwZHR5cGUlM0RmbG9hdDMyJTJDJTIwbnVtcHklM0QlMEElMjAlMjAlMjAlMjBhcnJheSglNUIlNUItMS41NjA2OTkxJTJDJTIwJTIwMS42MTIyODQyJTVEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwNC4xNjkyMzElMjAlMkMlMjAtMy4zNDY0NDcyJTVEJTVEJTJDJTIwZHR5cGUlM0RmbG9hdDMyKSUzRQ==",highlighted:`<tf.Tensor: shape=(<span class="hljs-number">2</span>, <span class="hljs-number">2</span>), dtype=float32, numpy= | |
| array([[-<span class="hljs-number">1.5606991</span>, <span class="hljs-number">1.6122842</span>], | |
| [ <span class="hljs-number">4.169231</span> , -<span class="hljs-number">3.3464472</span>]], dtype=float32)>`,wrap:!1}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function bn(y){let l,r;return l=new h({props:{code:"dGVuc29yKCU1QiU1Qi0xLjU2MDclMkMlMjAlMjAxLjYxMjMlNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUIlMjA0LjE2OTIlMkMlMjAtMy4zNDY0JTVEJTVEJTJDJTIwZ3JhZF9mbiUzRCUzQ0FkZG1tQmFja3dhcmQlM0Up",highlighted:`tensor([[-<span class="hljs-number">1.5607</span>, <span class="hljs-number">1.6123</span>], | |
| [ <span class="hljs-number">4.1692</span>, -<span class="hljs-number">3.3464</span>]], grad_fn=<AddmmBackward>)`,wrap:!1}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function Tn(y){let l,r;return l=new h({props:{code:"aW1wb3J0JTIwdGVuc29yZmxvdyUyMGFzJTIwdGYlMEElMEFwcmVkaWN0aW9ucyUyMCUzRCUyMHRmLm1hdGguc29mdG1heChvdXRwdXRzLmxvZ2l0cyUyQyUyMGF4aXMlM0QtMSklMEFwcmludChwcmVkaWN0aW9ucyk=",highlighted:`<span class="hljs-keyword">import</span> tensorflow <span class="hljs-keyword">as</span> tf | |
| predictions = tf.math.softmax(outputs.logits, axis=-<span class="hljs-number">1</span>) | |
| <span class="hljs-built_in">print</span>(predictions)`,wrap:!1}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function Jn(y){let l,r;return l=new h({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEFwcmVkaWN0aW9ucyUyMCUzRCUyMHRvcmNoLm5uLmZ1bmN0aW9uYWwuc29mdG1heChvdXRwdXRzLmxvZ2l0cyUyQyUyMGRpbSUzRC0xKSUwQXByaW50KHByZWRpY3Rpb25zKQ==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| predictions = torch.nn.functional.softmax(outputs.logits, dim=-<span class="hljs-number">1</span>) | |
| <span class="hljs-built_in">print</span>(predictions)`,wrap:!1}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function Un(y){let l,r;return l=new h({props:{code:"dGYuVGVuc29yKCUwQSU1QiU1QjQuMDE5NTE2NzFlLTAyJTIwOS41OTgwNDgzM2UtMDElNUQlMEElMjAlNUI5Ljk5NDU1ODdlLTAxJTIwNS40NDE4NDI0ZS0wNCU1RCU1RCUyQyUyMHNoYXBlJTNEKDIlMkMlMjAyKSUyQyUyMGR0eXBlJTNEZmxvYXQzMik=",highlighted:`tf.Tensor( | |
| [[<span class="hljs-number">4.01951671e-02</span> <span class="hljs-number">9.59804833e-01</span>] | |
| [<span class="hljs-number">9.9945587e-01</span> <span class="hljs-number">5.4418424e-04</span>]], shape=(<span class="hljs-number">2</span>, <span class="hljs-number">2</span>), dtype=float32)`,wrap:!1}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function jn(y){let l,r;return l=new h({props:{code:"dGVuc29yKCU1QiU1QjQuMDE5NWUtMDIlMkMlMjA5LjU5ODBlLTAxJTVEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCOS45OTQ2ZS0wMSUyQyUyMDUuNDQxOGUtMDQlNUQlNUQlMkMlMjBncmFkX2ZuJTNEJTNDU29mdG1heEJhY2t3YXJkJTNFKQ==",highlighted:`tensor([[<span class="hljs-number">4.0195e-02</span>, <span class="hljs-number">9.5980e-01</span>], | |
| [<span class="hljs-number">9.9946e-01</span>, <span class="hljs-number">5.4418e-04</span>]], grad_fn=<SoftmaxBackward>)`,wrap:!1}}),{c(){T(l.$$.fragment)},l(t){J(l.$$.fragment,t)},m(t,u){U(l,t,u),r=!0},i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){m(l.$$.fragment,t),r=!1},d(t){j(l,t)}}}function wn(y){let l,r,t,u,o,i,w,Jt,K,Ut,_,C,at,P,xl="<p>Aceasta este prima secțiune în care conținutul este ușor diferit în funcție de utilizarea PyTorch sau TensorFlow. Schimbați comutatorul din partea de sus a titlului pentru a selecta platforma pe care o preferați!</p>",jt,k,$,rt,O,zl='Să începem cu un exemplu complet, aruncând o privire la ceea ce s-a întâmplat în spate atunci când am executat următorul cod în <a href="/course/chapter1">Capitolul 1</a>:',wt,ee,ht,te,Dl="și am obținut:",_t,le,Ct,se,Ql='După cum am văzut în <a href="/course/chapter1">Capitolul 1</a>, acest pipeline grupează trei etape: preprocesarea, trecerea intrărilor prin model și postprocesarea:',kt,X,Nl='<img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter2/full_nlp_pipeline.svg" alt="The full NLP pipeline: tokenization of text, conversion to IDs, and inference through the Transformer model and the model head."/> <img class="hidden dark:block" src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter2/full_nlp_pipeline-dark.svg" alt="The full NLP pipeline: tokenization of text, conversion to IDs, and inference through the Transformer model and the model head."/>',$t,ne,El="Să trecem rapid prin fiecare dintre acestea.",It,ae,gt,re,Gl="La fel ca alte rețele neuronale, modelele Transformer nu pot procesa direct text brut, astfel încât primul pas al pipeline-ului nostru este de a converti intrările de text în numere pe care modelul le poate înțelege. Pentru a face acest lucru, folosim un <em>tokenizer</em>, care va fi responsabil pentru:",vt,ie,Vl="<li>Împărțirea datelor de intrare în cuvinte, subcuvinte sau simboluri (cum ar fi punctuația) care se numesc <em>tokens</em></li> <li>Maparea fiecărui token într-un număr întreg</li> <li>Adăugarea de intrări suplimentare care pot fi utile pentru model</li>",At,ue,Zl='Toată această preprocesare trebuie efectuată exact în același mod ca atunci când modelul a fost preantrenat, așa că mai întâi trebuie să descărcăm aceste informații din <a href="https://huggingface.co/models" rel="nofollow">Model Hub</a>. Pentru a face acest lucru, folosim clasa <code>AutoTokenizer</code> și metoda sa <code>from_pretrained()</code>. Folosind numele checkpoint-ului modelului nostru, aceasta va prelua automat datele asociate cu tokenizer-ul modelului și le va stoca în cache (astfel încât acestea să fie descărcate doar prima dată când executați codul de mai jos).',xt,pe,Hl='Deoarece punctul de control implicit al pipeline-ului <code>sentiment-analysis</code> este <code>distilbert-base-uncased-finetuned-sst-2-english</code> (puteți vedea fișa modelului <a href="https://huggingface.co/distilbert-base-uncased-finetuned-sst-2-english" rel="nofollow">aici</a>), executăm următoarele:',zt,ce,Dt,oe,Sl="Odată ce avem tokenizatorul, putem să îi transmitem direct propozițiile noastre și vom primi înapoi un dicționar care este gata să fie introdus în modelul nostru! Singurul lucru rămas de făcut este să convertim lista de ID-uri de intrare în tensori.",Qt,me,Rl="Puteți utiliza 🤗 Transformers fără a trebui să vă faceți griji cu privire la cadrul ML utilizat ca backend; ar putea fi PyTorch sau TensorFlow, sau Flax pentru unele modele. Cu toate acestea, modelele Transformer acceptă numai <em>tensori</em> ca intrare. Dacă este prima dată când auziți despre tensori, vă puteți gândi la ei ca la array-uri NumPy. Un array NumPy poate fi un scalar (0D), un vector (1D), o matrice (2D) sau poate avea mai multe dimensiuni. Este de fapt un tensor; tensorii altor cadre ML se comportă similar și sunt de obicei la fel de simplu de instanțiat ca și array-urile NumPy.",Nt,Me,Wl="Pentru a specifica tipul de tensori pe care dorim să îi primim înapoi (PyTorch, TensorFlow sau NumPy simplu), folosim argumentul <code>return_tensors</code>:",Et,I,g,it,fe,Bl="Nu vă faceți încă griji cu privire la padding și trunchiere; le vom explica mai târziu. Principalele lucruri de reținut aici sunt că puteți trece o propoziție sau o listă de propoziții, precum și specificarea tipului de tensori pe care doriți să îi primiți înapoi (dacă nu este specificat niciun tip, veți primi o listă de liste ca rezultat).",Gt,v,A,ut,de,Ll="Rezultatul în sine este un dicționar care conține două chei, <code>input_ids</code> și <code>attention_mask</code>. <code>input_ids</code> conține două rânduri de numere întregi (unul pentru fiecare propoziție) care sunt identificatorii unici ai simbolurilor din fiecare propoziție. Vom explica ce este <code>attention_mask</code> mai târziu în acest capitol.",Vt,ye,Zt,x,z,pt,be,Fl="În acest fragment de cod, am descărcat același checkpoint pe care l-am folosit anterior în pipeline-ul nostru (de fapt, ar fi trebuit să fie deja în cache) și am instanțiat un model cu acesta.",Ht,Te,Pl="Această arhitectură conține doar modulul Transformer de bază: având în vedere anumite intrări, acesta produce ceea ce vom numi <em>stări ascunse</em>, cunoscute și ca <em>caracteristici</em>. Pentru fiecare intrare a modelului, vom extrage un vector multidimensional care reprezintă <strong>înțelegerea contextuală a intrării respective de către modelul Transformer</strong>.",St,Je,Xl="Dacă acest lucru nu are sens, nu vă faceți griji. Vom explica totul mai târziu.",Rt,Ue,Yl='Deși aceste stări ascunse pot fi utile pe cont propriu, ele sunt de obicei intrări pentru o altă parte a modelului, cunoscută sub numele de <em>head</em>. În <a href="/course/chapter1">Capitolul 1</a>, diferitele sarcini ar fi putut fi efectuate cu aceeași arhitectură, dar fiecăreia dintre aceste sarcini îi va fi asociat un head diferit.',Wt,je,Bt,we,ql="Vectorul emis de modulul Transformator este de obicei de dimensiuni mari. Acesta are în general trei dimensiuni:",Lt,he,Kl="<li><strong>Dimensiunea batch-ului</strong>: Numărul de secvențe prelucrate simultan (2 în exemplul nostru).</li> <li><strong>Lungimea secvenței</strong>: Lungimea reprezentării numerice a secvenței (16 în exemplul nostru).</li> <li><strong>Dimensiunea ascunsă</strong>: Dimensiunea vectorială a fiecărei intrări a modelului.</li>",Ft,_e,Ol="Se spune că este multidimensional din cauza ultimei valori. Dimensiunea ascunsă poate fi foarte mare (768 este comună pentru modelele mai mici, iar în modelele mai mari aceasta poate ajunge la 3072 sau mai mult).",Pt,Ce,es="Putem vedea acest lucru dacă introducem în modelul nostru intrările pe care le-am preprocesat:",Xt,D,Q,ct,ke,ts="Rețineți că ieșirile modelelor 🤗 Transformers se comportă ca <code>namedtuple</code>s sau dicționare. Puteți accesa elementele prin atribute (așa cum am făcut noi) sau prin cheie (<code>outputs[„last_hidden_state”]</code>), sau chiar prin index dacă știți exact unde se află lucrul pe care îl căutați (<code>outputs[0]</code>).",Yt,$e,qt,Ie,ls="Head-urile modelelor iau ca intrare vectorul multidimensional al stărilor ascunse și le proiectează pe o altă dimensiune. Acestea sunt de obicei compuse din unul sau câteva straturi liniare:",Kt,Y,ss='<img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter2/transformer_and_head.svg" alt="A Transformer network alongside its head."/> <img class="hidden dark:block" src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter2/transformer_and_head-dark.svg" alt="A Transformer network alongside its head."/>',Ot,ge,ns="Rezultatul modelului Transformer este trimis direct la head-ul modelului pentru a fi prelucrat.",el,ve,as="În această diagramă, modelul este reprezentat de stratul său de încorporare și de straturile următoare. Stratul de încorporare convertește fiecare ID de intrare din intrarea tokenizată într-un vector care reprezintă tokenul asociat. Straturile ulterioare manipulează acești vectori folosind mecanismul de atenție pentru a produce reprezentarea finală a propozițiilor.",tl,Ae,rs="Există multe arhitecturi diferite disponibile în 🤗 Transformers, fiecare fiind concepută în jurul abordării unei sarcini specifice. Iată o listă neexhaustivă:",ll,xe,is="<li><code>*Model</code> (extragerea stărilor ascunse)</li> <li><code>*ForCausalLM</code></li> <li><code>*ForMaskedLM</code></li> <li><code>*ForMultipleChoice</code></li> <li><code>*ForQuestionAnswering</code></li> <li><code>*ForSequenceClassification</code></li> <li><code>*ForTokenClassification</code></li> <li>și altele 🤗</li>",sl,N,E,ot,ze,us="Acum, dacă ne uităm la forma ieșirilor noastre, dimensiunea va fi mult mai mică: head-ul modelului ia ca intrare vectorii multidimensionali pe care i-am văzut înainte și scoate vectori care conțin două valori (una pentru fiecare etichetă):",nl,De,al,G,V,mt,Qe,ps="Deoarece avem doar două propoziții și două etichete, rezultatul pe care îl obținem din modelul nostru este de forma 2 x 2.",rl,Ne,il,Ee,cs="Valorile pe care le obținem ca rezultat al modelului nostru nu au neapărat sens în sine. Să aruncăm o privire:",ul,Ge,pl,Z,H,Mt,Ve,os='Modelul nostru a prezis <code>[-1.5607, 1.6123]</code> pentru prima propoziție și <code>[ 4.1692, -3.3464]</code> pentru cea de-a doua. Acestea nu sunt probabilități, ci <em>logits</em>, scorurile brute, nenormalizate, emise de ultimul strat al modelului. Pentru a fi convertite în probabilități, acestea trebuie să treacă printr-un strat <a href="https://en.wikipedia.org/wiki/Softmax_function" rel="nofollow">SoftMax</a> (toate modelele 🤗 Transformers produc logits, deoarece funcția de pierdere pentru formare va fuziona în general ultima funcție de activare, cum ar fi SoftMax, cu funcția de pierdere reală, cum ar fi entropia încrucișată):',cl,S,R,ft,W,B,dt,Ze,ms="Acum putem vedea că modelul a prezis <code>[0.0402, 0.9598]</code> pentru prima propoziție și <code>[0.9995, 0.0005]</code> pentru cea de-a doua. Acestea sunt scoruri de probabilitate care pot fi recunoscute.",ol,He,Ms="Pentru a obține etichetele corespunzătoare fiecărei poziții, putem inspecta atributul <code>id2label</code> din configurația modelului (mai multe despre acest lucru în secțiunea următoare):",ml,Se,Ml,Re,fl,We,fs="Acum putem concluziona că modelul a prezis următoarele:",dl,Be,ds="<li>Prima propoziție: NEGATIV: 0.0402, POZITIV: 0.9598</li> <li>A doua propoziție: NEGATIVĂ: 0.9995, POZITIVĂ: 0.0005</li>",yl,Le,ys="Am reprodus cu succes cele trei etape ale pipeline-ului: preprocesarea cu tokenizatoare, trecerea intrărilor prin model și postprocesarea! Acum haideți să analizăm în profunzime fiecare dintre aceste etape.",bl,q,bs="<p>✏️ <strong>Încercați!</strong> Alegeți două (sau mai multe) texte proprii și treceți-le prin conducta <code>sentiment-analysis</code>. Apoi repetați pașii pe care i-ați văzut aici și verificați dacă obțineți aceleași rezultate!</p>",Tl,Fe,Jl,Tt,Ul;o=new Ks({props:{fw:y[0]}}),w=new Ys({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),K=new bt({props:{title:"În spatele pipeline-ului",local:"în-spatele-pipeline-ului",headingTag:"h1"}});const Ts=[en,Os],Pe=[];function Js(e,s){return e[0]==="pt"?0:1}_=Js(y),C=Pe[_]=Ts[_](y);const Us=[ln,tn],Xe=[];function js(e,s){return e[0]==="pt"?0:1}k=js(y),$=Xe[k]=Us[k](y),ee=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBY2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKCUyMnNlbnRpbWVudC1hbmFseXNpcyUyMiklMEFjbGFzc2lmaWVyKCUwQSUyMCUyMCUyMCUyMCU1QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMkkndmUlMjBiZWVuJTIwd2FpdGluZyUyMGZvciUyMGElMjBIdWdnaW5nRmFjZSUyMGNvdXJzZSUyMG15JTIwd2hvbGUlMjBsaWZlLiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMkklMjBoYXRlJTIwdGhpcyUyMHNvJTIwbXVjaCElMjIlMkMlMEElMjAlMjAlMjAlMjAlNUQlMEEp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline | |
| classifier = pipeline(<span class="hljs-string">"sentiment-analysis"</span>) | |
| classifier( | |
| [ | |
| <span class="hljs-string">"I've been waiting for a HuggingFace course my whole life."</span>, | |
| <span class="hljs-string">"I hate this so much!"</span>, | |
| ] | |
| )`,wrap:!1}}),le=new h({props:{code:"JTVCJTdCJ2xhYmVsJyUzQSUyMCdQT1NJVElWRSclMkMlMjAnc2NvcmUnJTNBJTIwMC45NTk4MDQ3MTM3MjYwNDM3JTdEJTJDJTBBJTIwJTdCJ2xhYmVsJyUzQSUyMCdORUdBVElWRSclMkMlMjAnc2NvcmUnJTNBJTIwMC45OTk0NTU4MDk1OTMyMDA3JTdEJTVE",highlighted:`[{<span class="hljs-string">'label'</span>: <span class="hljs-string">'POSITIVE'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.9598047137260437</span>}, | |
| {<span class="hljs-string">'label'</span>: <span class="hljs-string">'NEGATIVE'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.9994558095932007</span>}]`,wrap:!1}}),ae=new bt({props:{title:"Preprocesarea cu un tokenizator",local:"preprocesarea-cu-un-tokenizator",headingTag:"h2"}}),ce=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEElMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNzdC0yLWVuZ2xpc2glMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer | |
| checkpoint = <span class="hljs-string">"distilbert-base-uncased-finetuned-sst-2-english"</span> | |
| tokenizer = AutoTokenizer.from_pretrained(checkpoint)`,wrap:!1}});const ws=[nn,sn],Ye=[];function hs(e,s){return e[0]==="pt"?0:1}I=hs(y),g=Ye[I]=ws[I](y);const _s=[rn,an],qe=[];function Cs(e,s){return e[0]==="pt"?0:1}v=Cs(y),A=qe[v]=_s[v](y),ye=new bt({props:{title:"Parcurgerea modelului",local:"parcurgerea-modelului",headingTag:"h2"}});const ks=[pn,un],Ke=[];function $s(e,s){return e[0]==="pt"?0:1}x=$s(y),z=Ke[x]=ks[x](y),je=new bt({props:{title:"Un vector multidimensional?",local:"un-vector-multidimensional",headingTag:"h3"}});const Is=[on,cn],Oe=[];function gs(e,s){return e[0]==="pt"?0:1}D=gs(y),Q=Oe[D]=Is[D](y),$e=new bt({props:{title:"Modele de head-uri: Înțelegerea numerelor",local:"modele-de-head-uri-înțelegerea-numerelor",headingTag:"h3"}});const vs=[Mn,mn],et=[];function As(e,s){return e[0]==="pt"?0:1}N=As(y),E=et[N]=vs[N](y),De=new h({props:{code:"cHJpbnQob3V0cHV0cy5sb2dpdHMuc2hhcGUp",highlighted:'<span class="hljs-built_in">print</span>(outputs.logits.shape)',wrap:!1}});const xs=[dn,fn],tt=[];function zs(e,s){return e[0]==="pt"?0:1}G=zs(y),V=tt[G]=xs[G](y),Ne=new bt({props:{title:"Postprocesarea rezultatului",local:"postprocesarea-rezultatului",headingTag:"h2"}}),Ge=new h({props:{code:"cHJpbnQob3V0cHV0cy5sb2dpdHMp",highlighted:'<span class="hljs-built_in">print</span>(outputs.logits)',wrap:!1}});const Ds=[bn,yn],lt=[];function Qs(e,s){return e[0]==="pt"?0:1}Z=Qs(y),H=lt[Z]=Ds[Z](y);const Ns=[Jn,Tn],st=[];function Es(e,s){return e[0]==="pt"?0:1}S=Es(y),R=st[S]=Ns[S](y);const Gs=[jn,Un],nt=[];function Vs(e,s){return e[0]==="pt"?0:1}return W=Vs(y),B=nt[W]=Gs[W](y),Se=new h({props:{code:"bW9kZWwuY29uZmlnLmlkMmxhYmVs",highlighted:"model.config.id2label",wrap:!1}}),Re=new h({props:{code:"JTdCMCUzQSUyMCdORUdBVElWRSclMkMlMjAxJTNBJTIwJ1BPU0lUSVZFJyU3RA==",highlighted:'{<span class="hljs-number">0</span>: <span class="hljs-string">'NEGATIVE'</span>, <span class="hljs-number">1</span>: <span class="hljs-string">'POSITIVE'</span>}',wrap:!1}}),Fe=new qs({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ro/chapter2/2.mdx"}}),{c(){l=f("meta"),r=p(),t=f("p"),u=p(),T(o.$$.fragment),i=p(),T(w.$$.fragment),Jt=p(),T(K.$$.fragment),Ut=p(),C.c(),at=p(),P=f("blockquote"),P.innerHTML=xl,jt=p(),$.c(),rt=p(),O=f("p"),O.innerHTML=zl,wt=p(),T(ee.$$.fragment),ht=p(),te=f("p"),te.textContent=Dl,_t=p(),T(le.$$.fragment),Ct=p(),se=f("p"),se.innerHTML=Ql,kt=p(),X=f("div"),X.innerHTML=Nl,$t=p(),ne=f("p"),ne.textContent=El,It=p(),T(ae.$$.fragment),gt=p(),re=f("p"),re.innerHTML=Gl,vt=p(),ie=f("ul"),ie.innerHTML=Vl,At=p(),ue=f("p"),ue.innerHTML=Zl,xt=p(),pe=f("p"),pe.innerHTML=Hl,zt=p(),T(ce.$$.fragment),Dt=p(),oe=f("p"),oe.textContent=Sl,Qt=p(),me=f("p"),me.innerHTML=Rl,Nt=p(),Me=f("p"),Me.innerHTML=Wl,Et=p(),g.c(),it=p(),fe=f("p"),fe.textContent=Bl,Gt=p(),A.c(),ut=p(),de=f("p"),de.innerHTML=Ll,Vt=p(),T(ye.$$.fragment),Zt=p(),z.c(),pt=p(),be=f("p"),be.textContent=Fl,Ht=p(),Te=f("p"),Te.innerHTML=Pl,St=p(),Je=f("p"),Je.textContent=Xl,Rt=p(),Ue=f("p"),Ue.innerHTML=Yl,Wt=p(),T(je.$$.fragment),Bt=p(),we=f("p"),we.textContent=ql,Lt=p(),he=f("ul"),he.innerHTML=Kl,Ft=p(),_e=f("p"),_e.textContent=Ol,Pt=p(),Ce=f("p"),Ce.textContent=es,Xt=p(),Q.c(),ct=p(),ke=f("p"),ke.innerHTML=ts,Yt=p(),T($e.$$.fragment),qt=p(),Ie=f("p"),Ie.textContent=ls,Kt=p(),Y=f("div"),Y.innerHTML=ss,Ot=p(),ge=f("p"),ge.textContent=ns,el=p(),ve=f("p"),ve.textContent=as,tl=p(),Ae=f("p"),Ae.textContent=rs,ll=p(),xe=f("ul"),xe.innerHTML=is,sl=p(),E.c(),ot=p(),ze=f("p"),ze.textContent=us,nl=p(),T(De.$$.fragment),al=p(),V.c(),mt=p(),Qe=f("p"),Qe.textContent=ps,rl=p(),T(Ne.$$.fragment),il=p(),Ee=f("p"),Ee.textContent=cs,ul=p(),T(Ge.$$.fragment),pl=p(),H.c(),Mt=p(),Ve=f("p"),Ve.innerHTML=os,cl=p(),R.c(),ft=p(),B.c(),dt=p(),Ze=f("p"),Ze.innerHTML=ms,ol=p(),He=f("p"),He.innerHTML=Ms,ml=p(),T(Se.$$.fragment),Ml=p(),T(Re.$$.fragment),fl=p(),We=f("p"),We.textContent=fs,dl=p(),Be=f("ul"),Be.innerHTML=ds,yl=p(),Le=f("p"),Le.textContent=ys,bl=p(),q=f("blockquote"),q.innerHTML=bs,Tl=p(),T(Fe.$$.fragment),Jl=p(),Tt=f("p"),this.h()},l(e){const s=Ps("svelte-u9bgzb",document.head);l=d(s,"META",{name:!0,content:!0}),s.forEach(n),r=c(e),t=d(e,"P",{}),Hs(t).forEach(n),u=c(e),J(o.$$.fragment,e),i=c(e),J(w.$$.fragment,e),Jt=c(e),J(K.$$.fragment,e),Ut=c(e),C.l(e),at=c(e),P=d(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),b(P)!=="svelte-12r330d"&&(P.innerHTML=xl),jt=c(e),$.l(e),rt=c(e),O=d(e,"P",{"data-svelte-h":!0}),b(O)!=="svelte-11d45zi"&&(O.innerHTML=zl),wt=c(e),J(ee.$$.fragment,e),ht=c(e),te=d(e,"P",{"data-svelte-h":!0}),b(te)!=="svelte-m83ozi"&&(te.textContent=Dl),_t=c(e),J(le.$$.fragment,e),Ct=c(e),se=d(e,"P",{"data-svelte-h":!0}),b(se)!=="svelte-1o0dpe7"&&(se.innerHTML=Ql),kt=c(e),X=d(e,"DIV",{class:!0,"data-svelte-h":!0}),b(X)!=="svelte-fbe70j"&&(X.innerHTML=Nl),$t=c(e),ne=d(e,"P",{"data-svelte-h":!0}),b(ne)!=="svelte-13vns1w"&&(ne.textContent=El),It=c(e),J(ae.$$.fragment,e),gt=c(e),re=d(e,"P",{"data-svelte-h":!0}),b(re)!=="svelte-f3ako0"&&(re.innerHTML=Gl),vt=c(e),ie=d(e,"UL",{"data-svelte-h":!0}),b(ie)!=="svelte-fzwlwt"&&(ie.innerHTML=Vl),At=c(e),ue=d(e,"P",{"data-svelte-h":!0}),b(ue)!=="svelte-1r8ozju"&&(ue.innerHTML=Zl),xt=c(e),pe=d(e,"P",{"data-svelte-h":!0}),b(pe)!=="svelte-9higtt"&&(pe.innerHTML=Hl),zt=c(e),J(ce.$$.fragment,e),Dt=c(e),oe=d(e,"P",{"data-svelte-h":!0}),b(oe)!=="svelte-1d1j7xz"&&(oe.textContent=Sl),Qt=c(e),me=d(e,"P",{"data-svelte-h":!0}),b(me)!=="svelte-13v05xp"&&(me.innerHTML=Rl),Nt=c(e),Me=d(e,"P",{"data-svelte-h":!0}),b(Me)!=="svelte-1v36pk4"&&(Me.innerHTML=Wl),Et=c(e),g.l(e),it=c(e),fe=d(e,"P",{"data-svelte-h":!0}),b(fe)!=="svelte-f0s2c6"&&(fe.textContent=Bl),Gt=c(e),A.l(e),ut=c(e),de=d(e,"P",{"data-svelte-h":!0}),b(de)!=="svelte-w8ucmi"&&(de.innerHTML=Ll),Vt=c(e),J(ye.$$.fragment,e),Zt=c(e),z.l(e),pt=c(e),be=d(e,"P",{"data-svelte-h":!0}),b(be)!=="svelte-15nuf2g"&&(be.textContent=Fl),Ht=c(e),Te=d(e,"P",{"data-svelte-h":!0}),b(Te)!=="svelte-c0e5t"&&(Te.innerHTML=Pl),St=c(e),Je=d(e,"P",{"data-svelte-h":!0}),b(Je)!=="svelte-80q3hn"&&(Je.textContent=Xl),Rt=c(e),Ue=d(e,"P",{"data-svelte-h":!0}),b(Ue)!=="svelte-1u7c6fj"&&(Ue.innerHTML=Yl),Wt=c(e),J(je.$$.fragment,e),Bt=c(e),we=d(e,"P",{"data-svelte-h":!0}),b(we)!=="svelte-1rt21zr"&&(we.textContent=ql),Lt=c(e),he=d(e,"UL",{"data-svelte-h":!0}),b(he)!=="svelte-qv3rka"&&(he.innerHTML=Kl),Ft=c(e),_e=d(e,"P",{"data-svelte-h":!0}),b(_e)!=="svelte-jcsn5k"&&(_e.textContent=Ol),Pt=c(e),Ce=d(e,"P",{"data-svelte-h":!0}),b(Ce)!=="svelte-mucy9n"&&(Ce.textContent=es),Xt=c(e),Q.l(e),ct=c(e),ke=d(e,"P",{"data-svelte-h":!0}),b(ke)!=="svelte-b29xip"&&(ke.innerHTML=ts),Yt=c(e),J($e.$$.fragment,e),qt=c(e),Ie=d(e,"P",{"data-svelte-h":!0}),b(Ie)!=="svelte-1uzktdy"&&(Ie.textContent=ls),Kt=c(e),Y=d(e,"DIV",{class:!0,"data-svelte-h":!0}),b(Y)!=="svelte-8mo6lt"&&(Y.innerHTML=ss),Ot=c(e),ge=d(e,"P",{"data-svelte-h":!0}),b(ge)!=="svelte-deuux2"&&(ge.textContent=ns),el=c(e),ve=d(e,"P",{"data-svelte-h":!0}),b(ve)!=="svelte-1e8ohcj"&&(ve.textContent=as),tl=c(e),Ae=d(e,"P",{"data-svelte-h":!0}),b(Ae)!=="svelte-11eakkd"&&(Ae.textContent=rs),ll=c(e),xe=d(e,"UL",{"data-svelte-h":!0}),b(xe)!=="svelte-4zwack"&&(xe.innerHTML=is),sl=c(e),E.l(e),ot=c(e),ze=d(e,"P",{"data-svelte-h":!0}),b(ze)!=="svelte-1l8u8o0"&&(ze.textContent=us),nl=c(e),J(De.$$.fragment,e),al=c(e),V.l(e),mt=c(e),Qe=d(e,"P",{"data-svelte-h":!0}),b(Qe)!=="svelte-pgym14"&&(Qe.textContent=ps),rl=c(e),J(Ne.$$.fragment,e),il=c(e),Ee=d(e,"P",{"data-svelte-h":!0}),b(Ee)!=="svelte-g9nzfb"&&(Ee.textContent=cs),ul=c(e),J(Ge.$$.fragment,e),pl=c(e),H.l(e),Mt=c(e),Ve=d(e,"P",{"data-svelte-h":!0}),b(Ve)!=="svelte-dllqx9"&&(Ve.innerHTML=os),cl=c(e),R.l(e),ft=c(e),B.l(e),dt=c(e),Ze=d(e,"P",{"data-svelte-h":!0}),b(Ze)!=="svelte-1jt7mpf"&&(Ze.innerHTML=ms),ol=c(e),He=d(e,"P",{"data-svelte-h":!0}),b(He)!=="svelte-17zq0ho"&&(He.innerHTML=Ms),ml=c(e),J(Se.$$.fragment,e),Ml=c(e),J(Re.$$.fragment,e),fl=c(e),We=d(e,"P",{"data-svelte-h":!0}),b(We)!=="svelte-1n38jpx"&&(We.textContent=fs),dl=c(e),Be=d(e,"UL",{"data-svelte-h":!0}),b(Be)!=="svelte-1sdhh4r"&&(Be.innerHTML=ds),yl=c(e),Le=d(e,"P",{"data-svelte-h":!0}),b(Le)!=="svelte-1114vuz"&&(Le.textContent=ys),bl=c(e),q=d(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),b(q)!=="svelte-cqz4vm"&&(q.innerHTML=bs),Tl=c(e),J(Fe.$$.fragment,e),Jl=c(e),Tt=d(e,"P",{}),Hs(Tt).forEach(n),this.h()},h(){yt(l,"name","hf:doc:metadata"),yt(l,"content",hn),yt(P,"class","tip"),yt(X,"class","flex justify-center"),yt(Y,"class","flex justify-center"),yt(q,"class","tip")},m(e,s){Xs(document.head,l),a(e,r,s),a(e,t,s),a(e,u,s),U(o,e,s),a(e,i,s),U(w,e,s),a(e,Jt,s),U(K,e,s),a(e,Ut,s),Pe[_].m(e,s),a(e,at,s),a(e,P,s),a(e,jt,s),Xe[k].m(e,s),a(e,rt,s),a(e,O,s),a(e,wt,s),U(ee,e,s),a(e,ht,s),a(e,te,s),a(e,_t,s),U(le,e,s),a(e,Ct,s),a(e,se,s),a(e,kt,s),a(e,X,s),a(e,$t,s),a(e,ne,s),a(e,It,s),U(ae,e,s),a(e,gt,s),a(e,re,s),a(e,vt,s),a(e,ie,s),a(e,At,s),a(e,ue,s),a(e,xt,s),a(e,pe,s),a(e,zt,s),U(ce,e,s),a(e,Dt,s),a(e,oe,s),a(e,Qt,s),a(e,me,s),a(e,Nt,s),a(e,Me,s),a(e,Et,s),Ye[I].m(e,s),a(e,it,s),a(e,fe,s),a(e,Gt,s),qe[v].m(e,s),a(e,ut,s),a(e,de,s),a(e,Vt,s),U(ye,e,s),a(e,Zt,s),Ke[x].m(e,s),a(e,pt,s),a(e,be,s),a(e,Ht,s),a(e,Te,s),a(e,St,s),a(e,Je,s),a(e,Rt,s),a(e,Ue,s),a(e,Wt,s),U(je,e,s),a(e,Bt,s),a(e,we,s),a(e,Lt,s),a(e,he,s),a(e,Ft,s),a(e,_e,s),a(e,Pt,s),a(e,Ce,s),a(e,Xt,s),Oe[D].m(e,s),a(e,ct,s),a(e,ke,s),a(e,Yt,s),U($e,e,s),a(e,qt,s),a(e,Ie,s),a(e,Kt,s),a(e,Y,s),a(e,Ot,s),a(e,ge,s),a(e,el,s),a(e,ve,s),a(e,tl,s),a(e,Ae,s),a(e,ll,s),a(e,xe,s),a(e,sl,s),et[N].m(e,s),a(e,ot,s),a(e,ze,s),a(e,nl,s),U(De,e,s),a(e,al,s),tt[G].m(e,s),a(e,mt,s),a(e,Qe,s),a(e,rl,s),U(Ne,e,s),a(e,il,s),a(e,Ee,s),a(e,ul,s),U(Ge,e,s),a(e,pl,s),lt[Z].m(e,s),a(e,Mt,s),a(e,Ve,s),a(e,cl,s),st[S].m(e,s),a(e,ft,s),nt[W].m(e,s),a(e,dt,s),a(e,Ze,s),a(e,ol,s),a(e,He,s),a(e,ml,s),U(Se,e,s),a(e,Ml,s),U(Re,e,s),a(e,fl,s),a(e,We,s),a(e,dl,s),a(e,Be,s),a(e,yl,s),a(e,Le,s),a(e,bl,s),a(e,q,s),a(e,Tl,s),U(Fe,e,s),a(e,Jl,s),a(e,Tt,s),Ul=!0},p(e,[s]){const Zs={};s&1&&(Zs.fw=e[0]),o.$set(Zs);let jl=_;_=Js(e),_!==jl&&(F(),m(Pe[jl],1,1,()=>{Pe[jl]=null}),L(),C=Pe[_],C||(C=Pe[_]=Ts[_](e),C.c()),M(C,1),C.m(at.parentNode,at));let wl=k;k=js(e),k!==wl&&(F(),m(Xe[wl],1,1,()=>{Xe[wl]=null}),L(),$=Xe[k],$||($=Xe[k]=Us[k](e),$.c()),M($,1),$.m(rt.parentNode,rt));let hl=I;I=hs(e),I!==hl&&(F(),m(Ye[hl],1,1,()=>{Ye[hl]=null}),L(),g=Ye[I],g||(g=Ye[I]=ws[I](e),g.c()),M(g,1),g.m(it.parentNode,it));let _l=v;v=Cs(e),v!==_l&&(F(),m(qe[_l],1,1,()=>{qe[_l]=null}),L(),A=qe[v],A||(A=qe[v]=_s[v](e),A.c()),M(A,1),A.m(ut.parentNode,ut));let Cl=x;x=$s(e),x!==Cl&&(F(),m(Ke[Cl],1,1,()=>{Ke[Cl]=null}),L(),z=Ke[x],z||(z=Ke[x]=ks[x](e),z.c()),M(z,1),z.m(pt.parentNode,pt));let kl=D;D=gs(e),D!==kl&&(F(),m(Oe[kl],1,1,()=>{Oe[kl]=null}),L(),Q=Oe[D],Q||(Q=Oe[D]=Is[D](e),Q.c()),M(Q,1),Q.m(ct.parentNode,ct));let $l=N;N=As(e),N!==$l&&(F(),m(et[$l],1,1,()=>{et[$l]=null}),L(),E=et[N],E||(E=et[N]=vs[N](e),E.c()),M(E,1),E.m(ot.parentNode,ot));let Il=G;G=zs(e),G!==Il&&(F(),m(tt[Il],1,1,()=>{tt[Il]=null}),L(),V=tt[G],V||(V=tt[G]=xs[G](e),V.c()),M(V,1),V.m(mt.parentNode,mt));let gl=Z;Z=Qs(e),Z!==gl&&(F(),m(lt[gl],1,1,()=>{lt[gl]=null}),L(),H=lt[Z],H||(H=lt[Z]=Ds[Z](e),H.c()),M(H,1),H.m(Mt.parentNode,Mt));let vl=S;S=Es(e),S!==vl&&(F(),m(st[vl],1,1,()=>{st[vl]=null}),L(),R=st[S],R||(R=st[S]=Ns[S](e),R.c()),M(R,1),R.m(ft.parentNode,ft));let Al=W;W=Vs(e),W!==Al&&(F(),m(nt[Al],1,1,()=>{nt[Al]=null}),L(),B=nt[W],B||(B=nt[W]=Gs[W](e),B.c()),M(B,1),B.m(dt.parentNode,dt))},i(e){Ul||(M(o.$$.fragment,e),M(w.$$.fragment,e),M(K.$$.fragment,e),M(C),M($),M(ee.$$.fragment,e),M(le.$$.fragment,e),M(ae.$$.fragment,e),M(ce.$$.fragment,e),M(g),M(A),M(ye.$$.fragment,e),M(z),M(je.$$.fragment,e),M(Q),M($e.$$.fragment,e),M(E),M(De.$$.fragment,e),M(V),M(Ne.$$.fragment,e),M(Ge.$$.fragment,e),M(H),M(R),M(B),M(Se.$$.fragment,e),M(Re.$$.fragment,e),M(Fe.$$.fragment,e),Ul=!0)},o(e){m(o.$$.fragment,e),m(w.$$.fragment,e),m(K.$$.fragment,e),m(C),m($),m(ee.$$.fragment,e),m(le.$$.fragment,e),m(ae.$$.fragment,e),m(ce.$$.fragment,e),m(g),m(A),m(ye.$$.fragment,e),m(z),m(je.$$.fragment,e),m(Q),m($e.$$.fragment,e),m(E),m(De.$$.fragment,e),m(V),m(Ne.$$.fragment,e),m(Ge.$$.fragment,e),m(H),m(R),m(B),m(Se.$$.fragment,e),m(Re.$$.fragment,e),m(Fe.$$.fragment,e),Ul=!1},d(e){e&&(n(r),n(t),n(u),n(i),n(Jt),n(Ut),n(at),n(P),n(jt),n(rt),n(O),n(wt),n(ht),n(te),n(_t),n(Ct),n(se),n(kt),n(X),n($t),n(ne),n(It),n(gt),n(re),n(vt),n(ie),n(At),n(ue),n(xt),n(pe),n(zt),n(Dt),n(oe),n(Qt),n(me),n(Nt),n(Me),n(Et),n(it),n(fe),n(Gt),n(ut),n(de),n(Vt),n(Zt),n(pt),n(be),n(Ht),n(Te),n(St),n(Je),n(Rt),n(Ue),n(Wt),n(Bt),n(we),n(Lt),n(he),n(Ft),n(_e),n(Pt),n(Ce),n(Xt),n(ct),n(ke),n(Yt),n(qt),n(Ie),n(Kt),n(Y),n(Ot),n(ge),n(el),n(ve),n(tl),n(Ae),n(ll),n(xe),n(sl),n(ot),n(ze),n(nl),n(al),n(mt),n(Qe),n(rl),n(il),n(Ee),n(ul),n(pl),n(Mt),n(Ve),n(cl),n(ft),n(dt),n(Ze),n(ol),n(He),n(ml),n(Ml),n(fl),n(We),n(dl),n(Be),n(yl),n(Le),n(bl),n(q),n(Tl),n(Jl),n(Tt)),n(l),j(o,e),j(w,e),j(K,e),Pe[_].d(e),Xe[k].d(e),j(ee,e),j(le,e),j(ae,e),j(ce,e),Ye[I].d(e),qe[v].d(e),j(ye,e),Ke[x].d(e),j(je,e),Oe[D].d(e),j($e,e),et[N].d(e),j(De,e),tt[G].d(e),j(Ne,e),j(Ge,e),lt[Z].d(e),st[S].d(e),nt[W].d(e),j(Se,e),j(Re,e),j(Fe,e)}}}const hn='{"title":"În spatele pipeline-ului","local":"în-spatele-pipeline-ului","sections":[{"title":"Preprocesarea cu un tokenizator","local":"preprocesarea-cu-un-tokenizator","sections":[],"depth":2},{"title":"Parcurgerea modelului","local":"parcurgerea-modelului","sections":[{"title":"Un vector multidimensional?","local":"un-vector-multidimensional","sections":[],"depth":3},{"title":"Modele de head-uri: Înțelegerea numerelor","local":"modele-de-head-uri-înțelegerea-numerelor","sections":[],"depth":3}],"depth":2},{"title":"Postprocesarea rezultatului","local":"postprocesarea-rezultatului","sections":[],"depth":2}],"depth":1}';function _n(y,l,r){let t="pt";return Bs(()=>{const u=new URLSearchParams(window.location.search);r(0,t=u.get("fw")||"pt")}),[t]}class xn extends Ls{constructor(l){super(),Fs(this,l,_n,wn,Ws,{})}}export{xn as component}; | |
Xet Storage Details
- Size:
- 52.5 kB
- Xet hash:
- 97925199f36285314920891a2966521715fdbbb37e30299f3ea9990cb6329fea
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.