import{s as Pl,o as ql,n as Kl}from"../chunks/scheduler.39a43cde.js";import{S as Ol,i as en,g as u,s as i,r as J,m as Ll,A as tn,h as M,f as y,c as o,j as I,u as U,n as Fl,x as T,k as C,y as a,a as g,v as j,t as d,b as q,d as m,w,p as K}from"../chunks/index.23ec2204.js";import{T as Bl}from"../chunks/Tip.99600415.js";import{Y as Xl}from"../chunks/Youtube.70c27fbc.js";import{C as $}from"../chunks/CodeBlock.bc48cdff.js";import{C as Yl}from"../chunks/CourseFloatingBanner.c5f43a8d.js";import{F as sn}from"../chunks/FrameworkSwitchCourse.9ca78d26.js";import{H as $t}from"../chunks/Heading.c42e7061.js";function ln(h){let s,n;return s=new Yl({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/fa/chapter2/section2_tf.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fa/chapter2/section2_tf.ipynb"}]}}),{c(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function nn(h){let s,n;return s=new Yl({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/fa/chapter2/section2_pt.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fa/chapter2/section2_pt.ipynb"}]}}),{c(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function an(h){let s;return{c(){s=Ll("این اولین بخشی است که محتوای آن بسته به اینکه از پایتورچ یا تِنسورفِلو استفاده می‌کنید کمی متفاوت است. از سویچ بالای صفحه برای انتخاب پلتفرمی که ترجیح می‌دهید استفاده کنید!")},l(n){s=Fl(n,"این اولین بخشی است که محتوای آن بسته به اینکه از پایتورچ یا تِنسورفِلو استفاده می‌کنید کمی متفاوت است. از سویچ بالای صفحه برای انتخاب پلتفرمی که ترجیح می‌دهید استفاده کنید!")},m(n,t){g(n,s,t)},d(n){n&&y(s)}}}function rn(h){let s,n;return s=new Xl({props:{id:"wVN12smEvqg"}}),{c(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function cn(h){let s,n;return s=new Xl({props:{id:"1pedAIvTWXk"}}),{c(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function pn(h){let s,n;return s=new $({props:{code:"cmF3X2lucHV0cyUyMCUzRCUyMCU1QiUwQSUyMCUyMCUyMCUyMCUyMkkndmUlMjBiZWVuJTIwd2FpdGluZyUyMGZvciUyMGElMjBIdWdnaW5nRmFjZSUyMGNvdXJzZSUyMG15JTIwd2hvbGUlMjBsaWZlLiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMkklMjBoYXRlJTIwdGhpcyUyMHNvJTIwbXVjaCElMjIlMkMlMEElNUQlMEFpbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIocmF3X2lucHV0cyUyQyUyMHBhZGRpbmclM0RUcnVlJTJDJTIwdHJ1bmNhdGlvbiUzRFRydWUlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnRmJTIyKSUwQXByaW50KGlucHV0cyk=",highlighted:`raw_inputs = [
    <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>,
    <span class="hljs-string">&quot;I hate this so much!&quot;</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">&quot;tf&quot;</span>)
<span class="hljs-built_in">print</span>(inputs)`,wrap:!1}}),{c(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function on(h){let s,n;return s=new $({props:{code:"cmF3X2lucHV0cyUyMCUzRCUyMCU1QiUwQSUyMCUyMCUyMCUyMCUyMkkndmUlMjBiZWVuJTIwd2FpdGluZyUyMGZvciUyMGElMjBIdWdnaW5nRmFjZSUyMGNvdXJzZSUyMG15JTIwd2hvbGUlMjBsaWZlLiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMkklMjBoYXRlJTIwdGhpcyUyMHNvJTIwbXVjaCElMjIlMkMlMEElNUQlMEFpbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIocmF3X2lucHV0cyUyQyUyMHBhZGRpbmclM0RUcnVlJTJDJTIwdHJ1bmNhdGlvbiUzRFRydWUlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnB0JTIyKSUwQXByaW50KGlucHV0cyk=",highlighted:`raw_inputs = [
    <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>,
    <span class="hljs-string">&quot;I hate this so much!&quot;</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">&quot;pt&quot;</span>)
<span class="hljs-built_in">print</span>(inputs)`,wrap:!1}}),{c(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function un(h){let s,n="خروجی تِنسورهای تِنسورفِلو به این شکل است:",t,c,p,b;return p=new $({props:{code:"JTdCJTBBJTIwJTIwJTIwJTIwJ2lucHV0X2lkcyclM0ElMjAlM0N0Zi5UZW5zb3IlM0ElMjBzaGFwZSUzRCgyJTJDJTIwMTYpJTJDJTIwZHR5cGUlM0RpbnQzMiUyQyUyMG51bXB5JTNEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXJyYXkoJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwJTIwMTAxJTJDJTIwJTIwMTA0NSUyQyUyMCUyMDEwMDUlMkMlMjAlMjAyMzEwJTJDJTIwJTIwMjA0MiUyQyUyMCUyMDM0MDMlMkMlMjAlMjAyMDA1JTJDJTIwJTIwMTAzNyUyQyUyMDE3NjYyJTJDJTIwMTIxNzIlMkMlMjAlMjAyNjA3JTJDJTIwJTIwMjAyNiUyQyUyMCUyMDI4NzglMkMlMjAlMjAyMTY2JTJDJTIwJTIwMTAxMiUyQyUyMCUyMCUyMDEwMiU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1QiUyMCUyMDEwMSUyQyUyMCUyMDEwNDUlMkMlMjAlMjA1MjIzJTJDJTIwJTIwMjAyMyUyQyUyMCUyMDIwNjElMkMlMjAlMjAyMTcyJTJDJTIwJTIwJTIwOTk5JTJDJTIwJTIwJTIwMTAyJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUQlMkMlMjBkdHlwZSUzRGludDMyKSUzRSUyQyUwQSUyMCUyMCUyMCUyMCdhdHRlbnRpb25fbWFzayclM0ElMjAlM0N0Zi5UZW5zb3IlM0ElMjBzaGFwZSUzRCgyJTJDJTIwMTYpJTJDJTIwZHR5cGUlM0RpbnQzMiUyQyUyMG51bXB5JTNEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXJyYXkoJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1QjElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUQlMkMlMjBkdHlwZSUzRGludDMyKSUzRSUwQSU3RA==",highlighted:`{
    <span class="hljs-string">&#x27;input_ids&#x27;</span>: &lt;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)&gt;,
    <span class="hljs-string">&#x27;attention_mask&#x27;</span>: &lt;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">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-number">0</span>]
        ], dtype=int32)&gt;
}`,wrap:!1}}),{c(){s=u("p"),s.textContent=n,t=i(),c=u("div"),J(p.$$.fragment),this.h()},l(e){s=M(e,"P",{"data-svelte-h":!0}),T(s)!=="svelte-g0tbuv"&&(s.textContent=n),t=o(e),c=M(e,"DIV",{dir:!0});var f=I(c);U(p.$$.fragment,f),f.forEach(y),this.h()},h(){C(c,"dir","ltr")},m(e,f){g(e,s,f),g(e,t,f),g(e,c,f),j(p,c,null),b=!0},i(e){b||(m(p.$$.fragment,e),b=!0)},o(e){d(p.$$.fragment,e),b=!1},d(e){e&&(y(s),y(t),y(c)),w(p)}}}function Mn(h){let s,n="خروجی تِنسورهای پایتورچ به این شکل است:",t,c,p,b;return p=new $({props:{code:"JTdCJTBBJTIwJTIwJTIwJTIwJ2lucHV0X2lkcyclM0ElMjB0ZW5zb3IoJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwJTIwMTAxJTJDJTIwJTIwMTA0NSUyQyUyMCUyMDEwMDUlMkMlMjAlMjAyMzEwJTJDJTIwJTIwMjA0MiUyQyUyMCUyMDM0MDMlMkMlMjAlMjAyMDA1JTJDJTIwJTIwMTAzNyUyQyUyMDE3NjYyJTJDJTIwMTIxNzIlMkMlMjAyNjA3JTJDJTIwJTIwMjAyNiUyQyUyMCUyMDI4NzglMkMlMjAlMjAyMTY2JTJDJTIwJTIwMTAxMiUyQyUyMCUyMCUyMDEwMiU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1QiUyMCUyMDEwMSUyQyUyMCUyMDEwNDUlMkMlMjAlMjA1MjIzJTJDJTIwJTIwMjAyMyUyQyUyMCUyMDIwNjElMkMlMjAlMjAyMTcyJTJDJTIwJTIwJTIwOTk5JTJDJTIwJTIwJTIwMTAyJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlNUQlMEElMjAlMjAlMjAlMjAlNUQpJTJDJTBBJTIwJTIwJTIwJTIwJ2F0dGVudGlvbl9tYXNrJyUzQSUyMHRlbnNvciglNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUIxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTVEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCU1RCUwQSUyMCUyMCUyMCUyMCU1RCklMEElN0Q=",highlighted:`{
    <span class="hljs-string">&#x27;input_ids&#x27;</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">&#x27;attention_mask&#x27;</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">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-number">0</span>]
    ])
}`,wrap:!1}}),{c(){s=u("p"),s.textContent=n,t=i(),c=u("div"),J(p.$$.fragment),this.h()},l(e){s=M(e,"P",{"data-svelte-h":!0}),T(s)!=="svelte-sncp1g"&&(s.textContent=n),t=o(e),c=M(e,"DIV",{dir:!0});var f=I(c);U(p.$$.fragment,f),f.forEach(y),this.h()},h(){C(c,"dir","ltr")},m(e,f){g(e,s,f),g(e,t,f),g(e,c,f),j(p,c,null),b=!0},i(e){b||(m(p.$$.fragment,e),b=!0)},o(e){d(p.$$.fragment,e),b=!1},d(e){e&&(y(s),y(t),y(c)),w(p)}}}function dn(h){let s,n='می‌توانیم مدل از پیش تعلیم دیده را، همانند آنچه در مورد توکِنایزر انجام شد، دانلود کنیم. ترنسوفورمرهای هاگینگ‌فِیس کلاس <code>TFAutoModel</code> را ارا‌ئه می‌دهد که آن هم تابعی به نام <span dir="ltr"><code>from_pretrained()</code></span> دارد:',t,c,p,b;return p=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsJTBBJTBBY2hlY2twb2ludCUyMCUzRCUyMCUyMmRpc3RpbGJlcnQtYmFzZS11bmNhc2VkLWZpbmV0dW5lZC1zc3QtMi1lbmdsaXNoJTIyJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbC5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFAutoModel

checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
model = TFAutoModel.from_pretrained(checkpoint)`,wrap:!1}}),{c(){s=u("p"),s.innerHTML=n,t=i(),c=u("div"),J(p.$$.fragment),this.h()},l(e){s=M(e,"P",{"data-svelte-h":!0}),T(s)!=="svelte-6xeou"&&(s.innerHTML=n),t=o(e),c=M(e,"DIV",{dir:!0});var f=I(c);U(p.$$.fragment,f),f.forEach(y),this.h()},h(){C(c,"dir","ltr")},m(e,f){g(e,s,f),g(e,t,f),g(e,c,f),j(p,c,null),b=!0},i(e){b||(m(p.$$.fragment,e),b=!0)},o(e){d(p.$$.fragment,e),b=!1},d(e){e&&(y(s),y(t),y(c)),w(p)}}}function mn(h){let s,n='می‌توانیم مدل از پیش تعلیم دیده را، همانند آن چه در مورد توکِنایزر انجام شد، دانلود کنیم. ترنسوفورمرهای هاگینگ‌فِیس کلاس <code>AutoModel</code> را ارا‌ئه می‌دهد که آن هم تابعی به نام <span dir="ltr"><code>from_pretrained()</code></span> دارد:',t,c,p,b;return p=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbCUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3N0LTItZW5nbGlzaCUyMiUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModel

checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
model = AutoModel.from_pretrained(checkpoint)`,wrap:!1}}),{c(){s=u("p"),s.innerHTML=n,t=i(),c=u("div"),J(p.$$.fragment),this.h()},l(e){s=M(e,"P",{"data-svelte-h":!0}),T(s)!=="svelte-174s3c6"&&(s.innerHTML=n),t=o(e),c=M(e,"DIV",{dir:!0});var f=I(c);U(p.$$.fragment,f),f.forEach(y),this.h()},h(){C(c,"dir","ltr")},m(e,f){g(e,s,f),g(e,t,f),g(e,c,f),j(p,c,null),b=!0},i(e){b||(m(p.$$.fragment,e),b=!0)},o(e){d(p.$$.fragment,e),b=!1},d(e){e&&(y(s),y(t),y(c)),w(p)}}}function hn(h){let s,n,t,c;return s=new $({props:{code:"b3V0cHV0cyUyMCUzRCUyMG1vZGVsKGlucHV0cyklMEFwcmludChvdXRwdXRzLmxhc3RfaGlkZGVuX3N0YXRlLnNoYXBlKQ==",highlighted:`outputs = model(inputs)
<span class="hljs-built_in">print</span>(outputs.last_hidden_state.shape)`,wrap:!1}}),t=new $({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(){J(s.$$.fragment),n=i(),J(t.$$.fragment)},l(p){U(s.$$.fragment,p),n=o(p),U(t.$$.fragment,p)},m(p,b){j(s,p,b),g(p,n,b),j(t,p,b),c=!0},i(p){c||(m(s.$$.fragment,p),m(t.$$.fragment,p),c=!0)},o(p){d(s.$$.fragment,p),d(t.$$.fragment,p),c=!1},d(p){p&&y(n),w(s,p),w(t,p)}}}function yn(h){let s,n,t,c;return s=new $({props:{code:"b3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqaW5wdXRzKSUwQXByaW50KG91dHB1dHMubGFzdF9oaWRkZW5fc3RhdGUuc2hhcGUp",highlighted:`outputs = model(**inputs)
<span class="hljs-built_in">print</span>(outputs.last_hidden_state.shape)`,wrap:!1}}),t=new $({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(){J(s.$$.fragment),n=i(),J(t.$$.fragment)},l(p){U(s.$$.fragment,p),n=o(p),U(t.$$.fragment,p)},m(p,b){j(s,p,b),g(p,n,b),j(t,p,b),c=!0},i(p){c||(m(s.$$.fragment,p),m(t.$$.fragment,p),c=!0)},o(p){d(s.$$.fragment,p),d(t.$$.fragment,p),c=!1},d(p){p&&y(n),w(s,p),w(t,p)}}}function fn(h){let s,n="برای این مثال، نیازمند مدلی با سَر مخصوص دسته‌بندی رشته‌ها (برای تشخیص منفی یا مثبت بودن جملات) هستیم. پس به جای کلاس <code>TFAutoModel</code> از کلاس <code>TFAutoModelForSequenceClassification</code> استفاده می‌کنیم:",t,c,p,b;return p=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbiUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1maW5ldHVuZWQtc3N0LTItZW5nbGlzaCUyMiUwQW1vZGVsJTIwJTNEJTIwVEZBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQW91dHB1dHMlMjAlM0QlMjBtb2RlbChpbnB1dHMp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFAutoModelForSequenceClassification

checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
model = TFAutoModelForSequenceClassification.from_pretrained(checkpoint)
outputs = model(inputs)`,wrap:!1}}),{c(){s=u("p"),s.innerHTML=n,t=i(),c=u("div"),J(p.$$.fragment),this.h()},l(e){s=M(e,"P",{"data-svelte-h":!0}),T(s)!=="svelte-ksgvvn"&&(s.innerHTML=n),t=o(e),c=M(e,"DIV",{dir:!0});var f=I(c);U(p.$$.fragment,f),f.forEach(y),this.h()},h(){C(c,"dir","ltr")},m(e,f){g(e,s,f),g(e,t,f),g(e,c,f),j(p,c,null),b=!0},i(e){b||(m(p.$$.fragment,e),b=!0)},o(e){d(p.$$.fragment,e),b=!1},d(e){e&&(y(s),y(t),y(c)),w(p)}}}function Tn(h){let s,n="برای این مثال، نیازمند مدلی با سَر مخصوص دسته‌بندی رشته‌ها (برای تشخیص منفی یا مثبت بودن جملات) هستیم. پس به جای کلاس <code>AutoModel</code> از کلاس <code>AutoModelForSequenceClassification</code> استفاده می‌کنیم:",t,c,p,b;return p=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNzdC0yLWVuZ2xpc2glMjIlMEFtb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBb3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqaW5wdXRzKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForSequenceClassification

checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
model = AutoModelForSequenceClassification.from_pretrained(checkpoint)
outputs = model(**inputs)`,wrap:!1}}),{c(){s=u("p"),s.innerHTML=n,t=i(),c=u("div"),J(p.$$.fragment),this.h()},l(e){s=M(e,"P",{"data-svelte-h":!0}),T(s)!=="svelte-16a98u3"&&(s.innerHTML=n),t=o(e),c=M(e,"DIV",{dir:!0});var f=I(c);U(p.$$.fragment,f),f.forEach(y),this.h()},h(){C(c,"dir","ltr")},m(e,f){g(e,s,f),g(e,t,f),g(e,c,f),j(p,c,null),b=!0},i(e){b||(m(p.$$.fragment,e),b=!0)},o(e){d(p.$$.fragment,e),b=!1},d(e){e&&(y(s),y(t),y(c)),w(p)}}}function bn(h){let s,n;return s=new $({props:{code:"KDIlMkMlMjAyKQ==",highlighted:'(<span class="hljs-number">2</span>, <span class="hljs-number">2</span>)',wrap:!1}}),{c(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function Jn(h){let s,n;return s=new $({props:{code:"dG9yY2guU2l6ZSglNUIyJTJDJTIwMiU1RCk=",highlighted:'torch.Size([<span class="hljs-number">2</span>, <span class="hljs-number">2</span>])',wrap:!1}}),{c(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function Un(h){let s,n;return s=new $({props:{code:"JTNDdGYuVGVuc29yJTNBJTIwc2hhcGUlM0QoMiUyQyUyMDIpJTJDJTIwZHR5cGUlM0RmbG9hdDMyJTJDJTIwbnVtcHklM0QlMEElMjAlMjAlMjAlMjBhcnJheSglNUIlNUItMS41NjA2OTkxJTJDJTIwJTIwMS42MTIyODQyJTVEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwNC4xNjkyMzElMjAlMkMlMjAtMy4zNDY0NDcyJTVEJTVEJTJDJTIwZHR5cGUlM0RmbG9hdDMyKSUzRQ==",highlighted:`&lt;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)&gt;`,wrap:!1}}),{c(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function jn(h){let s,n;return s=new $({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=&lt;AddmmBackward&gt;)`,wrap:!1}}),{c(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function wn(h){let s,n;return s=new $({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(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function gn(h){let s,n;return s=new $({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(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function _n(h){let s,n;return s=new $({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(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function $n(h){let s,n;return s=new $({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=&lt;SoftmaxBackward&gt;)`,wrap:!1}}),{c(){J(s.$$.fragment)},l(t){U(s.$$.fragment,t)},m(t,c){j(s,t,c),n=!0},i(t){n||(m(s.$$.fragment,t),n=!0)},o(t){d(s.$$.fragment,t),n=!1},d(t){w(s,t)}}}function Cn(h){let s,n="✏️ <strong>خودتان امتحان کنید!</strong> دو نوشته از خودتان (یا حتی بیشتر) را از خط تولید <code>sentiment-analysis</code> بگذرانید. سپس مراحلی که در اینجا دیدیم را تکرار کنید و بررسی کنید که نتایج همان هستند!";return{c(){s=u("p"),s.innerHTML=n},l(t){s=M(t,"P",{"data-svelte-h":!0}),T(s)!=="svelte-l9f6il"&&(s.innerHTML=n)},m(t,c){g(t,s,c)},p:Kl,d(t){t&&y(s)}}}function In(h){let s,n,t,c,p,b,e,f,k,v,Ct,se,Et,A,x,It,Ne,Zs='بگذارید با یک مثال کامل شروع کنیم. نگاهی می‌اندازیم به آنچه در پشت صحنه در اثر اجرای این قطعه کد در <a href="/course/chapter1">فصل اول</a> رخ داد:',Nt,Ve,ie,Vt,Ge,Hs="این خروجی را دریافت کردیم:",Gt,Ze,oe,Zt,He,Rs="همان طور که در در فصل اول دیدیم، این خط تولید از سه مرحله تشکیل شده است: پیش‌پردازش، پردازش ورودی‌ها در مدل و پس‌پردازش.",Ht,ue,Ss='<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."/>',Rt,Re,Ws="به صورت خلاصه هرکدام از این مراحل را بررسی می‌کنیم.",St,Me,Wt,Se,zs="مثل شبکه‌های عصبی دیگر، مدل‌های ترنسفورمر هم نمی‌توانند نوشته خام را پردازش کنند. پس اولین قدم در خط تولید ما، تبدیل نوشته خام ورودی به اعدادی است که مدل قادر به فهم آنها باشد. برای این کار از یک <em>توکِنایزر</em> استفاده می‌کنیم، که مسئولیت‌های زیر را بر عهده دارد:",zt,We,Bs="<li>شکستن نوشته به کلمات، زیرکلمات و علامت‌ها (مانند علائم نگارشی) که به آنها ‌<em>توکِن</em> می‌گوییم.</li> <li>انتخاب عدد صحیح معادل برای هر توکِن.</li> <li>اضافه‌کردن ورودی‌های دیگری که ممکن است برای مدل مفید باشند.</li>",Bt,ze,Ls='همه مراحل این پیش‌پردازش باید دقیقا همان طور که قبلا هنگام تعلیم مدل انجام شده، دنبال شوند. این اطلاعات در <a href="https://huggingface.co/models" rel="nofollow">هاب مدل‌ها</a> موجود است و توسط تابع <span dir="ltr"><code>from_pretrained()</code></span> از کلاس <code>AutoTokenizer</code> دانلود می‌شود. با استفاده از نام کامل مدل که شامل نقطه تعلیم است، این تابع به صورت خودکار داده‌های توکِنایزر مدل را دریافت نموده و در سیستم شما ذخیره می‌کند. به این ترتیب این داده‌ها فقط بار اولی که کد زیر را اجرا می‌کنید دانلود می‌شوند.',Lt,Be,Fs='خط تولید <code>تحلیل احساسات</code> نقطه تعلیم پیش‌فرضی به نام <code>distilbert-base-uncased-finetuned-sst-2-english</code> دارد. صفحه توضیحات این مدل را می‌توانید در <a href="https://huggingface.co/distilbert-base-uncased-finetuned-sst-2-english" rel="nofollow">اینجا مشاهده کنید</a>. با اجرای کد زیر آن را دانلود می‌کنیم:',Ft,Le,de,Xt,Fe,Xs="پس از دریافت توکِنایزر، می‌توانیم جملات خود را مستقیماً وارد آن کنیم و دیکشنری خروجی را دریافت کنیم که آماده است تا به عنوان ورودی مدل مورد استفاده قرار گیرد! تنها کار باقی مانده، تبدیل لیست شناسه‌های ورودی به تِنسور است.",Yt,Xe,Ys="شما می‌توانید از ترنسفورمرهای هاگینگ‌فِیس بدون اطلاع از اینکه کدام فریمورک یادگیری ماشین در پشت صحنه درگیر می‌شود استفاده کنید. ممکن است از پایتورچ، تِنسورفِلو یا حتی فلَکس برای بعضی مدل‌ها استفاده شده باشد. با این وجود، مدل‌های ترسفورمر فقط <em>تِنسور</em>‌ها را به عنوان ورودی قبول می‌کنند. اگر این بار اولی است که کلمه تِنسور را می‌شنوید، تصور کنید مانند آرایه‌های NumPy هستند. این آرایه‌ها می‌توانند عددی (تک بُعدی)، برداری (یک بُعدی)، ماتریس (دو بُعدی) یا با ابعاد بیشتر باشند. آن‌ها در واقع تِنسور هستند و تِنسورها در فریمورک‌های یادگیری ماشین رفتاری شبیه به آرایه‌های NumPy دارند و به همان سادگی هم ساخته می‌شوند.",Pt,Ye,Ps="برای مشخص کردن نوع تِنسوری که می‌خواهیم به عنوان خروجی دریافت کنیم (پایتورچ، تِنسورفِلو یا NumPy ساده)، از آرگومان <code>return_tensors</code> استفاده می‌کنیم:",qt,me,D,Q,Kt,Pe,qs="هنوز لازم نیست نگران آرگومان‌های <code>padding</code> و <code>truncation</code> باشید؛ زیرا بعدتر به آنها خواهیم پرداخت. مسئله اصلی که باید به به خاطر بسپارید، امکان دادن جمله یا آرایه‌ای از جمله‌ها به عنوان ورودی و مشخص کردن نوع تِنسورهای خروجی است. اگر نوع خروجی را مشخص نکنید، لیستی از لیست‌ها را دریافت خواهید کرد.",Ot,E,N,kt,qe,Ks="خروجی یک دیکشنری با دو کلید <code>input_ids</code> و <code>attention_mask</code> است. <code>input_ids</code> دو ردیف عدد صحیح (یک ردیف برای هر جمله) است که شناسه‌های منحصر به فرد توکِن‌های هر جمله هستند. <code>attention_mask</code> را بعدتر در همین فصل توضیح خواهیم داد.",es,he,ts,V,G,vt,Ke,Os="در این قطعه کد، همان نقطه تعلیمی که  قبلا در خط تولید استفاده کردیم را دانلود کرده و مدلی جدید بر اساس آن می‌سازیم. این نقطه تعلیم احتمالا قبلا دانلود شده و در سیستم شما موجود است؛ پس نیازی به دانلود مجدد ندارد.",ss,Oe,el="این معماری تنها شامل ماژول پایهٔ ترنسفورمر است: با دریافت ورودی،‌ تنها <em>وضعیت پنهان</em> را در خروجی تحویل می‌دهد. به این وضعیت‌های پنهان، <em>فیچر</em> هم می‌گوییم. برای هر ورودی مدل، برداری با بُعد بالا دریافت می‌کنیم که معادل «درک کلی مدل ترنسفورمر از آن ورودی» است.",ls,et,tl="نگران نباشید اگر درک این مفاهیم سخت است. همه آنها را بعدتر توضیح خواهیم داد.",ns,tt,sl='با وجود آنکه وضعیت‌های پنهان به خودی خود هم مفید هستند، آن‌ها معمولا ورودی بخش دیگری از مدل به نام <em>سَر مدل</em> هستند. در <a href="/course/chapter1">فصل اول</a>، می‌توانستیم همه مسائل مختلف را توسط تنها یک معماری حل کنیم، و سپس خروجی را به سر متفاوتی در ادامه مدل پاس بدهیم.',as,ye,rs,st,ll="خروجی ماژول <code>Transformer</code> معمولا تِنسوری بزرگ است که اکثراً سه بُعد دارد:",cs,lt,nl="<li><strong>اندازه بتچ</strong>: تعداد رشته‌های مورد پردازش در یک دسته، که در مثال ما دو عدد است.</li> <li><strong>طول رشته</strong>: تعداد بردار‌های عددی معادل هر رشته‌، که در مثال ما ۱۶ است.</li> <li><strong>اندازه پنهان</strong>: ابعاد بردار نماینده هر ورودی مدل.</li>",ps,nt,al="به خاطر همین مقدار آخر به این تِنسور «بُعد بالا» می‌گوییم. اندازه پنهان می‌تواند بسیار بزرگ باشد (معمولا ۷۶۸ برای مدل‌های کوچک‌تر، و در مدل‌های بزرگ‌تر این عدد به ۳۰۷۲ یا بیشتر هم می‌رسد).",is,at,rl="با پاس دادن ورودی‌های پیش‌پردازش شده به مدل خود می‌توانیم این تِنسور را ببینیم:",os,fe,Z,H,us,rt,cl="توجه کنید که خروجی‌های ترنسفورمرهای هاگینگ‌فِیس، رفتاری شبیه <code>namedtuple</code>‌ یا دیکشنری‌ دارند. شما می‌توانید به هر عضو، با استفاده از نامش (مانند آنچه ما انجام دادیم) یا با کلیدش (<code>outputs[&quot;last_hidden_state&quot;]</code>) یا حتی اگر دقیقاً از مکان آن اطلاع دارید با اندیس‌اش (<code>outputs[0]</code>) دسترسی پیدا کنید.",Ms,Te,ds,ct,pl="قسمت سَر، بردارهای بُعد بالای وضعیت پنهان را به عنوان ورودی می‌پذیرد و آنها را به بُعدی دیگر می‌برد. سَرها معمولا از یک یا چند لایه خطی تشکیل شده‌اند.",ms,be,il='<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."/>',hs,pt,ol="خروجی مدل ترنسفورمر، مستقیماً به سَر مدل برای پردازش پاس داده می‌شود. در این نمودار، مدل ترنسفورمر به لایه embeddings و لایه‌های بعدی آن تقسیم شده است. لایه embeddings هر شناسه ورودی در ورودی توکِن‌شده را به یک بردار که نماینده آن توکِن است تبدیل می‌کند. لایه‌های بعدی با دستکاری در این بردار‌ها توسط مکانیزم توجه، شکل پایانی بردار نماینده جملات را تولید می‌کنند.",ys,it,ul="تعداد زیادی از معماری‌‌های مختلف در ترنسفورمر‌های هاگینگ‌فِیس موجود است و هرکدام برای حل یک مسئله خاص طراحی شده‌اند. در این‌جا فهرست کوتاهی از‌ آنها را می‌آوریم:",fs,ot,Ml="<li><code>*Model</code> (برای دسترسی به وضعیت‌های پنهان)</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>و نمونه‌های دیگر در ‌هاگینگ‌فِیس</li>",Ts,R,S,At,ut,dl="اگر نگاهی به شکل ورودی‌ها بیاندازیم، خواهیم دید که حالا تعداد ابعاد آنها بسیار کمتر است: قسمت سَر مدل، بردارهای بُعد بالایی که قبلا دیدیم را به عنوان ورودی دریافت کرده و در خروجی خود، بردارهایی با دو عضو (یکی به ازای هر برچسب دسته‌بندی) تولید می‌کند.",bs,ee,Je,Js,W,z,Us,Mt,ml="از آنجا که ما تنها دو جمله و دو برچسب ممکن داشتیم، خروجی مدل ما شکل ۲ در ۲ دارد.",js,Ue,ws,dt,hl="مقادیری که به عنوان خروجی از مدل‌ دریافت می‌کنیم به خودی خود قابل درک نیستند. بگذارید نگاهی به آن‌ها بیندازیم:",gs,te,je,_s,B,L,$s,mt,yl='پیش‌بینی مدل ما برای جمله اول <span dir="ltr"><code>[-1.5607, 1.6123]</code></span> و برای جمله دوم <span dir="ltr"><code>[4.1692, -3.3464]</code></span> است. این‌ خروجی‌ها مقادیر آماری نیستند. به این مقادیر <em>لوجیت</em> می‌گوییم. مقادیری خام و نرمال‌نشده که خروجی آخرین لایه مدل هستند. برای تبدیل به مقادیر آماری باید این مقادیر را از یک لایه‌ <a href="https://en.wikipedia.org/wiki/Softmax_function" rel="nofollow">سافت‌مکس</a> بگذرانیم. تمام ترنسفورمرهای هاگینگ‌فِیس در خروجی لوجیت تولید می‌کنند زیرا معمولا تابع هزینه مورد استفاده در تعلیم مدل، آخرین تابع فعال‌سازی (مانند سافت‌مکس‌) را با تابع هزینه مدل (مانند آنتروپی متقابل) ترکیب می‌کند.',Cs,O,F,X,xt,Y,P,Is,ht,fl='حالا می‌ببینیم که پیش‌بینی مدل برای جمله اول <span dir="ltr"><code>[0.0402, 0.9598]</code></span> و برای جمله دوم <span dir="ltr"><code>[0.9995, 0.0005]</code></span> است. این‌ها مقادیر آشنای آماری (به فرم احتمال) هستند.',ks,yt,Tl="برای تبدیل این مقادیر به برچسب دسته تشخیص داده شده می‌توانیم از ویژگی <code>id2label</code> تنظیمات مدل استفاده کنیم (در بخش بعدی بیشتر در این مورد صحبت خواهیم کرد):",vs,le,we,As,ge,xs,ft,bl="اکنون مشخص است که پیش‌بینی‌های مدل از این قرار هستند:",Ds,Tt,Jl="<li>جمله اول: NEGATIVE: 0.0402, POSITIVE: 0.9598</li> <li>جمله دوم: NEGATIVE: 0.9995, POSITIVE: 0.0005</li>",Qs,bt,Ul="ما با موفقیت سه مرحله خط تولید را در اینجا نشان دادیم: پیش‌پردازش توسط توکِنایزرها، گذر ورودی‌ها از مدل و پس‌پردازش! اکنون زمان آن فرا رسیده که به شکلی عمیق‌تر وارد هر یک از این مراحل شویم.",Es,ne,Dt,gt,Qt;p=new sn({props:{fw:h[0]}});const jl=[nn,ln],_e=[];function wl(r,_){return r[0]==="pt"?0:1}k=wl(h),v=_e[k]=jl[k](h),se=new Bl({props:{$$slots:{default:[an]},$$scope:{ctx:h}}});const gl=[cn,rn],$e=[];function _l(r,_){return r[0]==="pt"?0:1}A=_l(h),x=$e[A]=gl[A](h),ie=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBY2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKCUyMnNlbnRpbWVudC1hbmFseXNpcyUyMiklMEFjbGFzc2lmaWVyKCUwQSUyMCUyMCUyMCUyMCU1QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMkkndmUlMjBiZWVuJTIwd2FpdGluZyUyMGZvciUyMGElMjBIdWdnaW5nRmFjZSUyMGNvdXJzZSUyMG15JTIwd2hvbGUlMjBsaWZlLiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMkklMjBoYXRlJTIwdGhpcyUyMHNvJTIwbXVjaCElMjIlMkMlMEElMjAlMjAlMjAlMjAlNUQlMEEp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

classifier = pipeline(<span class="hljs-string">&quot;sentiment-analysis&quot;</span>)
classifier(
    [
        <span class="hljs-string">&quot;I&#x27;ve been waiting for a HuggingFace course my whole life.&quot;</span>,
        <span class="hljs-string">&quot;I hate this so much!&quot;</span>,
    ]
)`,wrap:!1}}),oe=new $({props:{code:"JTVCJTdCJ2xhYmVsJyUzQSUyMCdQT1NJVElWRSclMkMlMjAnc2NvcmUnJTNBJTIwMC45NTk4MDQ3MTM3MjYwNDM3JTdEJTJDJTBBJTIwJTdCJ2xhYmVsJyUzQSUyMCdORUdBVElWRSclMkMlMjAnc2NvcmUnJTNBJTIwMC45OTk0NTU4MDk1OTMyMDA3JTdEJTVE",highlighted:`[{<span class="hljs-string">&#x27;label&#x27;</span>: <span class="hljs-string">&#x27;POSITIVE&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.9598047137260437</span>},
 {<span class="hljs-string">&#x27;label&#x27;</span>: <span class="hljs-string">&#x27;NEGATIVE&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.9994558095932007</span>}]`,wrap:!1}}),Me=new $t({props:{title:"پیش‌پردازش با توکِنایزر",local:"پیشپردازش-با-توکنایزر",headingTag:"h2"}}),de=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEElMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQtZmluZXR1bmVkLXNzdC0yLWVuZ2xpc2glMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer

checkpoint = <span class="hljs-string">&quot;distilbert-base-uncased-finetuned-sst-2-english&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(checkpoint)`,wrap:!1}});const $l=[on,pn],Ce=[];function Cl(r,_){return r[0]==="pt"?0:1}D=Cl(h),Q=Ce[D]=$l[D](h);const Il=[Mn,un],Ie=[];function kl(r,_){return r[0]==="pt"?0:1}E=kl(h),N=Ie[E]=Il[E](h),he=new $t({props:{title:"گذر از مدل",local:"گذر-از-مدل",headingTag:"h2"}});const vl=[mn,dn],ke=[];function Al(r,_){return r[0]==="pt"?0:1}V=Al(h),G=ke[V]=vl[V](h),ye=new $t({props:{title:"بردار‌های با بُعد بالا؟",local:"بردارهای-با-بعد-بالا",headingTag:"h3"}});const xl=[yn,hn],ve=[];function Dl(r,_){return r[0]==="pt"?0:1}Z=Dl(h),H=ve[Z]=xl[Z](h),Te=new $t({props:{title:"سَر مدل: درک اعداد درون مدل",local:"سر-مدل-درک-اعداد-درون-مدل",headingTag:"h3"}});const Ql=[Tn,fn],Ae=[];function El(r,_){return r[0]==="pt"?0:1}R=El(h),S=Ae[R]=Ql[R](h),Je=new $({props:{code:"cHJpbnQob3V0cHV0cy5sb2dpdHMuc2hhcGUp",highlighted:'<span class="hljs-built_in">print</span>(outputs.logits.shape)',wrap:!1}});const Nl=[Jn,bn],xe=[];function Vl(r,_){return r[0]==="pt"?0:1}W=Vl(h),z=xe[W]=Nl[W](h),Ue=new $t({props:{title:"پس‌پردازش خروجی",local:"پسپردازش-خروجی",headingTag:"h2"}}),je=new $({props:{code:"cHJpbnQob3V0cHV0cy5sb2dpdHMp",highlighted:'<span class="hljs-built_in">print</span>(outputs.logits)',wrap:!1}});const Gl=[jn,Un],De=[];function Zl(r,_){return r[0]==="pt"?0:1}B=Zl(h),L=De[B]=Gl[B](h);const Hl=[gn,wn],Qe=[];function Rl(r,_){return r[0]==="pt"?0:1}F=Rl(h),X=Qe[F]=Hl[F](h);const Sl=[$n,_n],Ee=[];function Wl(r,_){return r[0]==="pt"?0:1}return Y=Wl(h),P=Ee[Y]=Sl[Y](h),we=new $({props:{code:"bW9kZWwuY29uZmlnLmlkMmxhYmVs",highlighted:"model.config.id2label",wrap:!1}}),ge=new $({props:{code:"JTdCMCUzQSUyMCdORUdBVElWRSclMkMlMjAxJTNBJTIwJ1BPU0lUSVZFJyU3RA==",highlighted:'{<span class="hljs-number">0</span>: <span class="hljs-string">&#x27;NEGATIVE&#x27;</span>, <span class="hljs-number">1</span>: <span class="hljs-string">&#x27;POSITIVE&#x27;</span>}',wrap:!1}}),ne=new Bl({props:{$$slots:{default:[Cn]},$$scope:{ctx:h}}}),{c(){s=u("meta"),n=i(),t=u("p"),c=i(),J(p.$$.fragment),b=i(),e=u("div"),f=Ll(`# پشت صحنه خط تولید
`),v.c(),Ct=i(),J(se.$$.fragment),Et=i(),x.c(),It=i(),Ne=u("p"),Ne.innerHTML=Zs,Nt=i(),Ve=u("div"),J(ie.$$.fragment),Vt=i(),Ge=u("p"),Ge.textContent=Hs,Gt=i(),Ze=u("div"),J(oe.$$.fragment),Zt=i(),He=u("p"),He.textContent=Rs,Ht=i(),ue=u("div"),ue.innerHTML=Ss,Rt=i(),Re=u("p"),Re.textContent=Ws,St=i(),J(Me.$$.fragment),Wt=i(),Se=u("p"),Se.innerHTML=zs,zt=i(),We=u("ul"),We.innerHTML=Bs,Bt=i(),ze=u("p"),ze.innerHTML=Ls,Lt=i(),Be=u("p"),Be.innerHTML=Fs,Ft=i(),Le=u("div"),J(de.$$.fragment),Xt=i(),Fe=u("p"),Fe.textContent=Xs,Yt=i(),Xe=u("p"),Xe.innerHTML=Ys,Pt=i(),Ye=u("p"),Ye.innerHTML=Ps,qt=i(),me=u("div"),Q.c(),Kt=i(),Pe=u("p"),Pe.innerHTML=qs,Ot=i(),N.c(),kt=i(),qe=u("p"),qe.innerHTML=Ks,es=i(),J(he.$$.fragment),ts=i(),G.c(),vt=i(),Ke=u("p"),Ke.textContent=Os,ss=i(),Oe=u("p"),Oe.innerHTML=el,ls=i(),et=u("p"),et.textContent=tl,ns=i(),tt=u("p"),tt.innerHTML=sl,as=i(),J(ye.$$.fragment),rs=i(),st=u("p"),st.innerHTML=ll,cs=i(),lt=u("ul"),lt.innerHTML=nl,ps=i(),nt=u("p"),nt.textContent=al,is=i(),at=u("p"),at.textContent=rl,os=i(),fe=u("div"),H.c(),us=i(),rt=u("p"),rt.innerHTML=cl,Ms=i(),J(Te.$$.fragment),ds=i(),ct=u("p"),ct.textContent=pl,ms=i(),be=u("div"),be.innerHTML=il,hs=i(),pt=u("p"),pt.textContent=ol,ys=i(),it=u("p"),it.textContent=ul,fs=i(),ot=u("ul"),ot.innerHTML=Ml,Ts=i(),S.c(),At=i(),ut=u("p"),ut.textContent=dl,bs=i(),ee=u("div"),J(Je.$$.fragment),Js=i(),z.c(),Us=i(),Mt=u("p"),Mt.textContent=ml,js=i(),J(Ue.$$.fragment),ws=i(),dt=u("p"),dt.textContent=hl,gs=i(),te=u("div"),J(je.$$.fragment),_s=i(),L.c(),$s=i(),mt=u("p"),mt.innerHTML=yl,Cs=i(),O=u("div"),X.c(),xt=i(),P.c(),Is=i(),ht=u("p"),ht.innerHTML=fl,ks=i(),yt=u("p"),yt.innerHTML=Tl,vs=i(),le=u("div"),J(we.$$.fragment),As=i(),J(ge.$$.fragment),xs=i(),ft=u("p"),ft.textContent=bl,Ds=i(),Tt=u("ul"),Tt.innerHTML=Jl,Qs=i(),bt=u("p"),bt.textContent=Ul,Es=i(),J(ne.$$.fragment),Dt=i(),gt=u("p"),this.h()},l(r){const _=tn("svelte-u9bgzb",document.head);s=M(_,"META",{name:!0,content:!0}),_.forEach(y),n=o(r),t=M(r,"P",{}),I(t).forEach(y),c=o(r),U(p.$$.fragment,r),b=o(r),e=M(r,"DIV",{dir:!0});var l=I(e);f=Fl(l,`# پشت صحنه خط تولید
`),v.l(l),Ct=o(l),U(se.$$.fragment,l),Et=o(l),x.l(l),It=o(l),Ne=M(l,"P",{"data-svelte-h":!0}),T(Ne)!=="svelte-1epixyy"&&(Ne.innerHTML=Zs),Nt=o(l),Ve=M(l,"DIV",{dir:!0});var Jt=I(Ve);U(ie.$$.fragment,Jt),Jt.forEach(y),Vt=o(l),Ge=M(l,"P",{"data-svelte-h":!0}),T(Ge)!=="svelte-1muwpc4"&&(Ge.textContent=Hs),Gt=o(l),Ze=M(l,"DIV",{dir:!0});var _t=I(Ze);U(oe.$$.fragment,_t),_t.forEach(y),Zt=o(l),He=M(l,"P",{"data-svelte-h":!0}),T(He)!=="svelte-cdujf8"&&(He.textContent=Rs),Ht=o(l),ue=M(l,"DIV",{class:!0,"data-svelte-h":!0}),T(ue)!=="svelte-fbe70j"&&(ue.innerHTML=Ss),Rt=o(l),Re=M(l,"P",{"data-svelte-h":!0}),T(Re)!=="svelte-ytifni"&&(Re.textContent=Ws),St=o(l),U(Me.$$.fragment,l),Wt=o(l),Se=M(l,"P",{"data-svelte-h":!0}),T(Se)!=="svelte-z1xc96"&&(Se.innerHTML=zs),zt=o(l),We=M(l,"UL",{"data-svelte-h":!0}),T(We)!=="svelte-fu8hvq"&&(We.innerHTML=Bs),Bt=o(l),ze=M(l,"P",{"data-svelte-h":!0}),T(ze)!=="svelte-j0c9hw"&&(ze.innerHTML=Ls),Lt=o(l),Be=M(l,"P",{"data-svelte-h":!0}),T(Be)!=="svelte-1klgpqn"&&(Be.innerHTML=Fs),Ft=o(l),Le=M(l,"DIV",{dir:!0});var Ut=I(Le);U(de.$$.fragment,Ut),Ut.forEach(y),Xt=o(l),Fe=M(l,"P",{"data-svelte-h":!0}),T(Fe)!=="svelte-15grxvd"&&(Fe.textContent=Xs),Yt=o(l),Xe=M(l,"P",{"data-svelte-h":!0}),T(Xe)!=="svelte-rfdykz"&&(Xe.innerHTML=Ys),Pt=o(l),Ye=M(l,"P",{"data-svelte-h":!0}),T(Ye)!=="svelte-xxscdu"&&(Ye.innerHTML=Ps),qt=o(l),me=M(l,"DIV",{dir:!0});var jt=I(me);Q.l(jt),jt.forEach(y),Kt=o(l),Pe=M(l,"P",{"data-svelte-h":!0}),T(Pe)!=="svelte-kdgpht"&&(Pe.innerHTML=qs),Ot=o(l),N.l(l),kt=o(l),qe=M(l,"P",{"data-svelte-h":!0}),T(qe)!=="svelte-1lxdqk5"&&(qe.innerHTML=Ks),es=o(l),U(he.$$.fragment,l),ts=o(l),G.l(l),vt=o(l),Ke=M(l,"P",{"data-svelte-h":!0}),T(Ke)!=="svelte-1q2nc9h"&&(Ke.textContent=Os),ss=o(l),Oe=M(l,"P",{"data-svelte-h":!0}),T(Oe)!=="svelte-19tv7wu"&&(Oe.innerHTML=el),ls=o(l),et=M(l,"P",{"data-svelte-h":!0}),T(et)!=="svelte-srg1hl"&&(et.textContent=tl),ns=o(l),tt=M(l,"P",{"data-svelte-h":!0}),T(tt)!=="svelte-1p91pya"&&(tt.innerHTML=sl),as=o(l),U(ye.$$.fragment,l),rs=o(l),st=M(l,"P",{"data-svelte-h":!0}),T(st)!=="svelte-4khzvk"&&(st.innerHTML=ll),cs=o(l),lt=M(l,"UL",{"data-svelte-h":!0}),T(lt)!=="svelte-1ach96z"&&(lt.innerHTML=nl),ps=o(l),nt=M(l,"P",{"data-svelte-h":!0}),T(nt)!=="svelte-12u2n7u"&&(nt.textContent=al),is=o(l),at=M(l,"P",{"data-svelte-h":!0}),T(at)!=="svelte-121mfn6"&&(at.textContent=rl),os=o(l),fe=M(l,"DIV",{dir:!0});var wt=I(fe);H.l(wt),wt.forEach(y),us=o(l),rt=M(l,"P",{"data-svelte-h":!0}),T(rt)!=="svelte-l6tn2"&&(rt.innerHTML=cl),Ms=o(l),U(Te.$$.fragment,l),ds=o(l),ct=M(l,"P",{"data-svelte-h":!0}),T(ct)!=="svelte-129b5ji"&&(ct.textContent=pl),ms=o(l),be=M(l,"DIV",{class:!0,"data-svelte-h":!0}),T(be)!=="svelte-8mo6lt"&&(be.innerHTML=il),hs=o(l),pt=M(l,"P",{"data-svelte-h":!0}),T(pt)!=="svelte-1sgdez2"&&(pt.textContent=ol),ys=o(l),it=M(l,"P",{"data-svelte-h":!0}),T(it)!=="svelte-huwdeu"&&(it.textContent=ul),fs=o(l),ot=M(l,"UL",{"data-svelte-h":!0}),T(ot)!=="svelte-ooaqgd"&&(ot.innerHTML=Ml),Ts=o(l),S.l(l),At=o(l),ut=M(l,"P",{"data-svelte-h":!0}),T(ut)!=="svelte-1mdl3h4"&&(ut.textContent=dl),bs=o(l),ee=M(l,"DIV",{dir:!0});var ae=I(ee);U(Je.$$.fragment,ae),Js=o(ae),z.l(ae),ae.forEach(y),Us=o(l),Mt=M(l,"P",{"data-svelte-h":!0}),T(Mt)!=="svelte-1o7lqeq"&&(Mt.textContent=ml),js=o(l),U(Ue.$$.fragment,l),ws=o(l),dt=M(l,"P",{"data-svelte-h":!0}),T(dt)!=="svelte-15gxham"&&(dt.textContent=hl),gs=o(l),te=M(l,"DIV",{dir:!0});var re=I(te);U(je.$$.fragment,re),_s=o(re),L.l(re),re.forEach(y),$s=o(l),mt=M(l,"P",{"data-svelte-h":!0}),T(mt)!=="svelte-1ege2rn"&&(mt.innerHTML=yl),Cs=o(l),O=M(l,"DIV",{dir:!0});var ce=I(O);X.l(ce),xt=o(ce),P.l(ce),ce.forEach(y),Is=o(l),ht=M(l,"P",{"data-svelte-h":!0}),T(ht)!=="svelte-1dgcjnd"&&(ht.innerHTML=fl),ks=o(l),yt=M(l,"P",{"data-svelte-h":!0}),T(yt)!=="svelte-1acq99c"&&(yt.innerHTML=Tl),vs=o(l),le=M(l,"DIV",{dir:!0});var pe=I(le);U(we.$$.fragment,pe),As=o(pe),U(ge.$$.fragment,pe),pe.forEach(y),xs=o(l),ft=M(l,"P",{"data-svelte-h":!0}),T(ft)!=="svelte-z616lg"&&(ft.textContent=bl),Ds=o(l),Tt=M(l,"UL",{"data-svelte-h":!0}),T(Tt)!=="svelte-ekwdcz"&&(Tt.innerHTML=Jl),Qs=o(l),bt=M(l,"P",{"data-svelte-h":!0}),T(bt)!=="svelte-10nkrjb"&&(bt.textContent=Ul),Es=o(l),U(ne.$$.fragment,l),l.forEach(y),Dt=o(r),gt=M(r,"P",{}),I(gt).forEach(y),this.h()},h(){C(s,"name","hf:doc:metadata"),C(s,"content",kn),C(Ve,"dir","ltr"),C(Ze,"dir","ltr"),C(ue,"class","flex justify-center"),C(Le,"dir","ltr"),C(me,"dir","ltr"),C(fe,"dir","ltr"),C(be,"class","flex justify-center"),C(ee,"dir","ltr"),C(te,"dir","ltr"),C(O,"dir","ltr"),C(le,"dir","ltr"),C(e,"dir","rtl")},m(r,_){a(document.head,s),g(r,n,_),g(r,t,_),g(r,c,_),j(p,r,_),g(r,b,_),g(r,e,_),a(e,f),_e[k].m(e,null),a(e,Ct),j(se,e,null),a(e,Et),$e[A].m(e,null),a(e,It),a(e,Ne),a(e,Nt),a(e,Ve),j(ie,Ve,null),a(e,Vt),a(e,Ge),a(e,Gt),a(e,Ze),j(oe,Ze,null),a(e,Zt),a(e,He),a(e,Ht),a(e,ue),a(e,Rt),a(e,Re),a(e,St),j(Me,e,null),a(e,Wt),a(e,Se),a(e,zt),a(e,We),a(e,Bt),a(e,ze),a(e,Lt),a(e,Be),a(e,Ft),a(e,Le),j(de,Le,null),a(e,Xt),a(e,Fe),a(e,Yt),a(e,Xe),a(e,Pt),a(e,Ye),a(e,qt),a(e,me),Ce[D].m(me,null),a(e,Kt),a(e,Pe),a(e,Ot),Ie[E].m(e,null),a(e,kt),a(e,qe),a(e,es),j(he,e,null),a(e,ts),ke[V].m(e,null),a(e,vt),a(e,Ke),a(e,ss),a(e,Oe),a(e,ls),a(e,et),a(e,ns),a(e,tt),a(e,as),j(ye,e,null),a(e,rs),a(e,st),a(e,cs),a(e,lt),a(e,ps),a(e,nt),a(e,is),a(e,at),a(e,os),a(e,fe),ve[Z].m(fe,null),a(e,us),a(e,rt),a(e,Ms),j(Te,e,null),a(e,ds),a(e,ct),a(e,ms),a(e,be),a(e,hs),a(e,pt),a(e,ys),a(e,it),a(e,fs),a(e,ot),a(e,Ts),Ae[R].m(e,null),a(e,At),a(e,ut),a(e,bs),a(e,ee),j(Je,ee,null),a(ee,Js),xe[W].m(ee,null),a(e,Us),a(e,Mt),a(e,js),j(Ue,e,null),a(e,ws),a(e,dt),a(e,gs),a(e,te),j(je,te,null),a(te,_s),De[B].m(te,null),a(e,$s),a(e,mt),a(e,Cs),a(e,O),Qe[F].m(O,null),a(O,xt),Ee[Y].m(O,null),a(e,Is),a(e,ht),a(e,ks),a(e,yt),a(e,vs),a(e,le),j(we,le,null),a(le,As),j(ge,le,null),a(e,xs),a(e,ft),a(e,Ds),a(e,Tt),a(e,Qs),a(e,bt),a(e,Es),j(ne,e,null),g(r,Dt,_),g(r,gt,_),Qt=!0},p(r,[_]){const l={};_&1&&(l.fw=r[0]),p.$set(l);let Jt=k;k=wl(r),k!==Jt&&(K(),d(_e[Jt],1,1,()=>{_e[Jt]=null}),q(),v=_e[k],v||(v=_e[k]=jl[k](r),v.c()),m(v,1),v.m(e,Ct));const _t={};_&2&&(_t.$$scope={dirty:_,ctx:r}),se.$set(_t);let Ut=A;A=_l(r),A!==Ut&&(K(),d($e[Ut],1,1,()=>{$e[Ut]=null}),q(),x=$e[A],x||(x=$e[A]=gl[A](r),x.c()),m(x,1),x.m(e,It));let jt=D;D=Cl(r),D!==jt&&(K(),d(Ce[jt],1,1,()=>{Ce[jt]=null}),q(),Q=Ce[D],Q||(Q=Ce[D]=$l[D](r),Q.c()),m(Q,1),Q.m(me,null));let wt=E;E=kl(r),E!==wt&&(K(),d(Ie[wt],1,1,()=>{Ie[wt]=null}),q(),N=Ie[E],N||(N=Ie[E]=Il[E](r),N.c()),m(N,1),N.m(e,kt));let ae=V;V=Al(r),V!==ae&&(K(),d(ke[ae],1,1,()=>{ke[ae]=null}),q(),G=ke[V],G||(G=ke[V]=vl[V](r),G.c()),m(G,1),G.m(e,vt));let re=Z;Z=Dl(r),Z!==re&&(K(),d(ve[re],1,1,()=>{ve[re]=null}),q(),H=ve[Z],H||(H=ve[Z]=xl[Z](r),H.c()),m(H,1),H.m(fe,null));let ce=R;R=El(r),R!==ce&&(K(),d(Ae[ce],1,1,()=>{Ae[ce]=null}),q(),S=Ae[R],S||(S=Ae[R]=Ql[R](r),S.c()),m(S,1),S.m(e,At));let pe=W;W=Vl(r),W!==pe&&(K(),d(xe[pe],1,1,()=>{xe[pe]=null}),q(),z=xe[W],z||(z=xe[W]=Nl[W](r),z.c()),m(z,1),z.m(ee,null));let Ns=B;B=Zl(r),B!==Ns&&(K(),d(De[Ns],1,1,()=>{De[Ns]=null}),q(),L=De[B],L||(L=De[B]=Gl[B](r),L.c()),m(L,1),L.m(te,null));let Vs=F;F=Rl(r),F!==Vs&&(K(),d(Qe[Vs],1,1,()=>{Qe[Vs]=null}),q(),X=Qe[F],X||(X=Qe[F]=Hl[F](r),X.c()),m(X,1),X.m(O,xt));let Gs=Y;Y=Wl(r),Y!==Gs&&(K(),d(Ee[Gs],1,1,()=>{Ee[Gs]=null}),q(),P=Ee[Y],P||(P=Ee[Y]=Sl[Y](r),P.c()),m(P,1),P.m(O,null));const zl={};_&2&&(zl.$$scope={dirty:_,ctx:r}),ne.$set(zl)},i(r){Qt||(m(p.$$.fragment,r),m(v),m(se.$$.fragment,r),m(x),m(ie.$$.fragment,r),m(oe.$$.fragment,r),m(Me.$$.fragment,r),m(de.$$.fragment,r),m(Q),m(N),m(he.$$.fragment,r),m(G),m(ye.$$.fragment,r),m(H),m(Te.$$.fragment,r),m(S),m(Je.$$.fragment,r),m(z),m(Ue.$$.fragment,r),m(je.$$.fragment,r),m(L),m(X),m(P),m(we.$$.fragment,r),m(ge.$$.fragment,r),m(ne.$$.fragment,r),Qt=!0)},o(r){d(p.$$.fragment,r),d(v),d(se.$$.fragment,r),d(x),d(ie.$$.fragment,r),d(oe.$$.fragment,r),d(Me.$$.fragment,r),d(de.$$.fragment,r),d(Q),d(N),d(he.$$.fragment,r),d(G),d(ye.$$.fragment,r),d(H),d(Te.$$.fragment,r),d(S),d(Je.$$.fragment,r),d(z),d(Ue.$$.fragment,r),d(je.$$.fragment,r),d(L),d(X),d(P),d(we.$$.fragment,r),d(ge.$$.fragment,r),d(ne.$$.fragment,r),Qt=!1},d(r){r&&(y(n),y(t),y(c),y(b),y(e),y(Dt),y(gt)),y(s),w(p,r),_e[k].d(),w(se),$e[A].d(),w(ie),w(oe),w(Me),w(de),Ce[D].d(),Ie[E].d(),w(he),ke[V].d(),w(ye),ve[Z].d(),w(Te),Ae[R].d(),w(Je),xe[W].d(),w(Ue),w(je),De[B].d(),Qe[F].d(),Ee[Y].d(),w(we),w(ge),w(ne)}}}const kn='{"title":"پیش‌پردازش با توکِنایزر","local":"پیشپردازش-با-توکنایزر","sections":[],"depth":2}';function vn(h,s,n){let t="pt";return ql(()=>{const c=new URLSearchParams(window.location.search);n(0,t=c.get("fw")||"pt")}),[t]}class Zn extends Ol{constructor(s){super(),en(this,s,vn,In,Pl,{})}}export{Zn as component};
