Buckets:
| import{s as Wt,o as zt,n as Bt}from"../chunks/scheduler.37c15a92.js";import{S as Lt,i as Ft,g as f,s as c,r as J,A as Xt,h as T,f as n,c as M,j as Vt,u as U,x as b,k as Js,y as Yt,a,v as j,t as o,b as L,d as m,w,m as Pt,n as qt,p as F}from"../chunks/index.7cb9c9b8.js";import{T as Ht}from"../chunks/Tip.d10b3fc9.js";import{Y as Rt}from"../chunks/Youtube.8666c400.js";import{C as h}from"../chunks/CodeBlock.abae2786.js";import{C as St}from"../chunks/CourseFloatingBanner.df82c153.js";import{F as Kt}from"../chunks/FrameworkSwitchCourse.97630871.js";import{H as fl,E as Ot}from"../chunks/getInferenceSnippets.a2135f3c.js";function en(y){let s,p;return s=new St({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(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function ln(y){let s,p;return s=new St({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(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function sn(y){let s;return{c(){s=Pt("ここは、PyTorchとTensorFlowのどちらを使うかによって内容が少し異なる最初のセクションです。タイトルの上にあるスイッチを切り替えて、好きなプラットフォームを選んでください!")},l(p){s=qt(p,"ここは、PyTorchとTensorFlowのどちらを使うかによって内容が少し異なる最初のセクションです。タイトルの上にあるスイッチを切り替えて、好きなプラットフォームを選んでください!")},m(p,l){a(p,s,l)},d(p){p&&n(s)}}}function tn(y){let s,p;return s=new Rt({props:{id:"wVN12smEvqg"}}),{c(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function nn(y){let s,p;return s=new Rt({props:{id:"1pedAIvTWXk"}}),{c(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function an(y){let s,p;return s=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(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function pn(y){let s,p;return s=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(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function rn(y){let s,p="TensorFlowのテンソルとしての結果は、以下のようになります。",l,i,u;return i=new h({props:{code:"JTdCJTBBJTIwJTIwJTIwJTIwJ2lucHV0X2lkcyclM0ElMjAlM0N0Zi5UZW5zb3IlM0ElMjBzaGFwZSUzRCgyJTJDJTIwMTYpJTJDJTIwZHR5cGUlM0RpbnQzMiUyQyUyMG51bXB5JTNEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXJyYXkoJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwJTIwMTAxJTJDJTIwJTIwMTA0NSUyQyUyMCUyMDEwMDUlMkMlMjAlMjAyMzEwJTJDJTIwJTIwMjA0MiUyQyUyMCUyMDM0MDMlMkMlMjAlMjAyMDA1JTJDJTIwJTIwMTAzNyUyQyUyMDE3NjYyJTJDJTIwMTIxNzIlMkMlMjAlMjAyNjA3JTJDJTIwJTIwMjAyNiUyQyUyMCUyMDI4NzglMkMlMjAlMjAyMTY2JTJDJTIwJTIwMTAxMiUyQyUyMCUyMCUyMDEwMiU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1QiUyMCUyMDEwMSUyQyUyMCUyMDEwNDUlMkMlMjAlMjA1MjIzJTJDJTIwJTIwMjAyMyUyQyUyMCUyMDIwNjElMkMlMjAlMjAyMTcyJTJDJTIwJTIwJTIwOTk5JTJDJTIwJTIwJTIwMTAyJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUQlMkMlMjBkdHlwZSUzRGludDMyKSUzRSUyQyUyMCUwQSUyMCUyMCUyMCUyMCdhdHRlbnRpb25fbWFzayclM0ElMjAlM0N0Zi5UZW5zb3IlM0ElMjBzaGFwZSUzRCgyJTJDJTIwMTYpJTJDJTIwZHR5cGUlM0RpbnQzMiUyQyUyMG51bXB5JTNEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXJyYXkoJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1QjElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUQlMkMlMjBkdHlwZSUzRGludDMyKSUzRSUwQSU3RA==",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">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)> | |
| }`,wrap:!1}}),{c(){s=f("p"),s.textContent=p,l=c(),J(i.$$.fragment)},l(r){s=T(r,"P",{"data-svelte-h":!0}),b(s)!=="svelte-dc00a9"&&(s.textContent=p),l=M(r),U(i.$$.fragment,r)},m(r,d){a(r,s,d),a(r,l,d),j(i,r,d),u=!0},i(r){u||(m(i.$$.fragment,r),u=!0)},o(r){o(i.$$.fragment,r),u=!1},d(r){r&&(n(s),n(l)),w(i,r)}}}function cn(y){let s,p="PyTorchのテンソルとしての結果は、以下のようになります。",l,i,u;return i=new h({props:{code:"JTdCJTBBJTIwJTIwJTIwJTIwJ2lucHV0X2lkcyclM0ElMjB0ZW5zb3IoJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwJTIwMTAxJTJDJTIwJTIwMTA0NSUyQyUyMCUyMDEwMDUlMkMlMjAlMjAyMzEwJTJDJTIwJTIwMjA0MiUyQyUyMCUyMDM0MDMlMkMlMjAlMjAyMDA1JTJDJTIwJTIwMTAzNyUyQyUyMDE3NjYyJTJDJTIwMTIxNzIlMkMlMjAyNjA3JTJDJTIwJTIwMjAyNiUyQyUyMCUyMDI4NzglMkMlMjAlMjAyMTY2JTJDJTIwJTIwMTAxMiUyQyUyMCUyMCUyMDEwMiU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1QiUyMCUyMDEwMSUyQyUyMCUyMDEwNDUlMkMlMjAlMjA1MjIzJTJDJTIwJTIwMjAyMyUyQyUyMCUyMDIwNjElMkMlMjAlMjAyMTcyJTJDJTIwJTIwJTIwOTk5JTJDJTIwJTIwJTIwMTAyJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlNUQlMEElMjAlMjAlMjAlMjAlNUQpJTJDJTIwJTBBJTIwJTIwJTIwJTIwJ2F0dGVudGlvbl9tYXNrJyUzQSUyMHRlbnNvciglNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUIxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTVEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCU1RCUwQSUyMCUyMCUyMCUyMCU1RCklMEElN0Q=",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">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=f("p"),s.textContent=p,l=c(),J(i.$$.fragment)},l(r){s=T(r,"P",{"data-svelte-h":!0}),b(s)!=="svelte-1hqocw1"&&(s.textContent=p),l=M(r),U(i.$$.fragment,r)},m(r,d){a(r,s,d),a(r,l,d),j(i,r,d),u=!0},i(r){u||(m(i.$$.fragment,r),u=!0)},o(r){o(i.$$.fragment,r),u=!1},d(r){r&&(n(s),n(l)),w(i,r)}}}function Mn(y){let s,p="トークナイザで行ったのと同じ方法で事前学習したモデルをダウンロードすることができます。🤗 Transformers は <code>TFAutoModel</code> クラスを提供しており、このクラスは <code>from_pretrained</code> メソッドも持っています。",l,i,u;return i=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(){s=f("p"),s.innerHTML=p,l=c(),J(i.$$.fragment)},l(r){s=T(r,"P",{"data-svelte-h":!0}),b(s)!=="svelte-1pgp0r5"&&(s.innerHTML=p),l=M(r),U(i.$$.fragment,r)},m(r,d){a(r,s,d),a(r,l,d),j(i,r,d),u=!0},i(r){u||(m(i.$$.fragment,r),u=!0)},o(r){o(i.$$.fragment,r),u=!1},d(r){r&&(n(s),n(l)),w(i,r)}}}function un(y){let s,p="トークナイザで行ったのと同じ方法で事前学習したモデルをダウンロードすることができます。🤗 Transformersは <code>AutoModel</code> クラスを提供しており、このクラスは <code>from_pretrained()</code> メソッドも持っています。",l,i,u;return i=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(){s=f("p"),s.innerHTML=p,l=c(),J(i.$$.fragment)},l(r){s=T(r,"P",{"data-svelte-h":!0}),b(s)!=="svelte-8e1kri"&&(s.innerHTML=p),l=M(r),U(i.$$.fragment,r)},m(r,d){a(r,s,d),a(r,l,d),j(i,r,d),u=!0},i(r){u||(m(i.$$.fragment,r),u=!0)},o(r){o(i.$$.fragment,r),u=!1},d(r){r&&(n(s),n(l)),w(i,r)}}}function on(y){let s,p,l,i;return s=new h({props:{code:"b3V0cHV0cyUyMCUzRCUyMG1vZGVsKGlucHV0cyklMEFwcmludChvdXRwdXRzLmxhc3RfaGlkZGVuX3N0YXRlLnNoYXBlKQ==",highlighted:`outputs = model(inputs) | |
| <span class="hljs-built_in">print</span>(outputs.last_hidden_state.shape)`,wrap:!1}}),l=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(){J(s.$$.fragment),p=c(),J(l.$$.fragment)},l(u){U(s.$$.fragment,u),p=M(u),U(l.$$.fragment,u)},m(u,r){j(s,u,r),a(u,p,r),j(l,u,r),i=!0},i(u){i||(m(s.$$.fragment,u),m(l.$$.fragment,u),i=!0)},o(u){o(s.$$.fragment,u),o(l.$$.fragment,u),i=!1},d(u){u&&n(p),w(s,u),w(l,u)}}}function mn(y){let s,p,l,i;return s=new h({props:{code:"b3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqaW5wdXRzKSUwQXByaW50KG91dHB1dHMubGFzdF9oaWRkZW5fc3RhdGUuc2hhcGUp",highlighted:`outputs = model(**inputs) | |
| <span class="hljs-built_in">print</span>(outputs.last_hidden_state.shape)`,wrap:!1}}),l=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(){J(s.$$.fragment),p=c(),J(l.$$.fragment)},l(u){U(s.$$.fragment,u),p=M(u),U(l.$$.fragment,u)},m(u,r){j(s,u,r),a(u,p,r),j(l,u,r),i=!0},i(u){i||(m(s.$$.fragment,u),m(l.$$.fragment,u),i=!0)},o(u){o(s.$$.fragment,u),o(l.$$.fragment,u),i=!1},d(u){u&&n(p),w(s,u),w(l,u)}}}function yn(y){let s,p="今回の例では、文章分類のヘッドを持つモデルが必要になります(文章をポジティブかネガティブかに分類することができます)。そこで、実際には <code>TFAutoModel</code> クラスではなく、 <code>TFAutoModelForSequenceClassification</code> クラスを利用することになります。",l,i,u;return i=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(){s=f("p"),s.innerHTML=p,l=c(),J(i.$$.fragment)},l(r){s=T(r,"P",{"data-svelte-h":!0}),b(s)!=="svelte-y8w12f"&&(s.innerHTML=p),l=M(r),U(i.$$.fragment,r)},m(r,d){a(r,s,d),a(r,l,d),j(i,r,d),u=!0},i(r){u||(m(i.$$.fragment,r),u=!0)},o(r){o(i.$$.fragment,r),u=!1},d(r){r&&(n(s),n(l)),w(i,r)}}}function fn(y){let s,p="今回の例では、文章分類のヘッドを持つモデルが必要になります(文章をポジティブかネガティブかに分類できるようにするため)。そのため、実際には <code>AutoModel</code> クラスではなく、 <code>AutoModelForSequenceClassification</code> クラスを使用することになります。",l,i,u;return i=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(){s=f("p"),s.innerHTML=p,l=c(),J(i.$$.fragment)},l(r){s=T(r,"P",{"data-svelte-h":!0}),b(s)!=="svelte-qkb1tx"&&(s.innerHTML=p),l=M(r),U(i.$$.fragment,r)},m(r,d){a(r,s,d),a(r,l,d),j(i,r,d),u=!0},i(r){u||(m(i.$$.fragment,r),u=!0)},o(r){o(i.$$.fragment,r),u=!1},d(r){r&&(n(s),n(l)),w(i,r)}}}function Tn(y){let s,p;return s=new h({props:{code:"KDIlMkMlMjAyKQ==",highlighted:'(<span class="hljs-number">2</span>, <span class="hljs-number">2</span>)',wrap:!1}}),{c(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function bn(y){let s,p;return s=new h({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(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function Jn(y){let s,p;return s=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(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function Un(y){let s,p;return s=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(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function jn(y){let s,p;return s=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(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function wn(y){let s,p;return s=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(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function dn(y){let s,p;return s=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(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function hn(y){let s,p;return s=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(){J(s.$$.fragment)},l(l){U(s.$$.fragment,l)},m(l,i){j(s,l,i),p=!0},i(l){p||(m(s.$$.fragment,l),p=!0)},o(l){o(s.$$.fragment,l),p=!1},d(l){w(s,l)}}}function _n(y){let s,p="✏️ <strong>試してみよう!</strong> 自分でテキストを2つ(またはそれ以上)用意し、<code>sentiment-analysis</code> pipelineで実行します。そして、ここで見た手順を自分で再現して、同様な結果が得られるかどうか確認してみましょう!";return{c(){s=f("p"),s.innerHTML=p},l(l){s=T(l,"P",{"data-svelte-h":!0}),b(s)!=="svelte-10661ah"&&(s.innerHTML=p)},m(l,i){a(l,s,i)},p:Bt,d(l){l&&n(s)}}}function $n(y){let s,p,l,i,u,r,d,bl,_,$,nl,X,Jl,C,k,al,K,As='まずは例として、<a href="/course/chapter1">Chapter1</a>で次のコードを実行したときに、その裏で何が起こったかを見てみましょう。',Ul,O,jl,ee,vs="そして、その出力は以下のようになります。",wl,le,dl,se,xs='<a href="/course/chapter1">第1章</a>で見たように、このpipelineは、前処理、モデルへの入力、後処理の3つのステップをグループ化したものです。',hl,Y,Qs='<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."/>',_l,te,Ns="早速、それぞれを確認してみましょう。",$l,ne,Cl,ae,Ds="他のニューラルネットワークのように、Transformerのモデルは生のテキストを直接処理できないので、今回のpipelineの最初のステップは、テキストの入力をモデルが理解できる数値に変換することです。これを行うために我々は<em>トークナイザ</em> を使用します。<em>トークナイザ</em> は、以下の処理を担います。",kl,pe,Es="<li>入力を単語、サブワード、記号(句読点など)に分割する。それらを<em>トークン</em>と呼ぶ。</li> <li>各トークンを整数にマッピングする。</li> <li>モデルにとって有用な追加の入力を付け足す。</li>",Il,re,Gs='この前処理はモデルが事前学習されたときと全く同じ方法で行われる必要があるので、まず<a href="https://huggingface.co/models" rel="nofollow">Model Hub</a>から情報をダウンロードする必要があります。これを行うには、<code>AutoTokenizer</code> クラスとその <code>from_pretrained()</code> メソッドを使用します。モデルのチェックポイント名を使って、モデルのトークナイザに関連するデータを自動的に取得し、キャッシュします (従って、以下のコードを最初に実行したときにのみダウンロードされます)。',gl,ie,Zs='<code>sentiment-analysis</code> のpipelineのデフォルトのチェックポイントは、<code>distilbert-base-uncased-finetuned-sst-2-english</code> なので (そのモデルカードは <a href="https://huggingface.co/distilbert-base-uncased-finetuned-sst-2-english" rel="nofollow">ここ</a> で見られます)、次のように実行します。',Al,ce,vl,Me,Vs="トークナイザがあれば、文章を直接トークナイザに渡し、モデルに与える準備ができた辞書データに変換することができます! あとは入力IDのリストをテンソルに変換するだけです。",xl,ue,Hs="🤗 Transformerは、どのMLフレームワークをバックエンドとして使うかを気にせず使うことができます。PyTorchやTensorFlow、モデルによってはFlaxかもしれません。しかし、Transformerのモデルは、入力として<em>テンソル</em>しか受け付けません。もしテンソルに聞き馴染みがない場合は、NumPy配列を代わりに考えてもらうと良いかもしれません。NumPyの配列はスカラー(0次元)、ベクトル(1次元)、行列(2次元)、あるいはもっと多くの次元を持つことができます。これは事実上テンソルです。他のMLフレームワークのテンソルも同様な振る舞いをし、通常はNumPy配列と同じくらい簡単にインスタンス化することができます。",Ql,oe,Rs="返したいテンソルの種類(PyTorch、TensorFlow、あるいは素のNumPy)を指定するには、<code>return_tensors</code> 引数を用います。",Nl,I,g,pl,me,Ss="パディングや切り捨てなどの処理についてはまだ心配しなくて大丈夫です。これらは後で説明します。ここで覚えておくべきことは、1つの文か文のリストを渡せることと、返したいテンソルの型を指定することです(型を渡さなければ、結果としてリストのリストを得ることになります)。",Dl,A,v,rl,ye,Ws="出力自体は、<code>input_ids</code> と <code>attention_mask</code> という2つのキーを持つ辞書です。<code>input_ids</code> には2行の整数値(各文章に1つずつ)が含まれており、各文章に含まれるトークンを一意に識別することができます。<code>attention_mask</code> が何であるかは、この章の後半で説明します。",El,fe,Gl,x,Q,il,Te,zs="このコードスニペットでは、以前pipelineで使用したのと同じチェックポイントをダウンロードし(実際には既にキャッシュされているはずです)、それを使ってモデルをインスタンス化しています。",Zl,be,Bs="このアーキテクチャには基本的なTransformerモジュールだけが含まれており、いくつかの入力が与えられると、<em>隠れ状態(hidden states)</em>(<em>特徴量</em>とも呼ばれます)と呼ばれるものを出力します。各モデルの入力に対して、我々は<strong>Transformerモデルによるその入力の文脈的理解</strong>を表す高次元ベクトルを取り出します。",Vl,Je,Ls="もしこれが理解できなくても、心配しないでください。後ですべて説明します。",Hl,Ue,Fs='これらの隠れ状態はそれ自体で役に立つこともありますが、通常は<em>head</em>と呼ばれるモデルの別の部分への入力となります。<a href="/course/chapter1">第1章</a> では、異なるタスクでも同じアーキテクチャで実行されたかもしれませんが、これらのタスクにはそれぞれ異なるヘッドが使用されています。',Rl,je,Sl,we,Xs="Transformerモジュールが出力するベクトルは通常大きなものです。一般的に3つの次元を持ちます。",Wl,de,Ys="<li><strong>Batch size</strong>: 一度に処理する系列の数(この例では2)。</li> <li><strong>Sequence length</strong>: 系列の数値表現の長さ(この例では16)。</li> <li><strong>Hidden size</strong>: 各モデル入力のベクトル次元。</li>",zl,he,Ps="Hidden sizeが大きいと「高次元」と言われます。Hidden sizeは非常に大きくすることができます(小さいモデルでは768が一般的で、大きいモデルでは3072以上に達することがあります)。",Bl,_e,qs="前処理をした入力をモデルに与えてみると、このことがわかります。",Ll,N,D,cl,$e,Ks="🤗 Transformersモデルの出力は <code>namedtuple</code> や辞書のように動作することに注意してください。(私たちが行った)属性や(<code>outputs["last_hidden_state"]</code>のような)キー、あるいは探しているものがどこにあるか正確に知っていれば(<code>outputs[0]</code>のような)インデックスによって要素にアクセスすることが可能です。",Fl,Ce,Xl,ke,Os="モデルヘッドは高次元の隠れ状態ベクトルを入力として受け取り、それを異なる次元に射影します。モデルヘッドは、通常、1つまたはいくつかの線形層で構成されます。",Yl,P,et='<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."/>',Pl,Ie,lt="Transformerモデルの出力は直接モデルヘッドに送られ、処理されます。",ql,ge,st="この図では、モデルはその埋め込み層とそれに続く層で表現されています。埋め込み層は、トークン化された入力の各入力IDを、紐付いたトークンを表すベクトルに変換します。後続の層はアテンション機構を用いてそれらのベクトルを操作し、最終的な文の表現を生成します。",Kl,Ae,tt="🤗 Transformers には多くの異なるアーキテクチャがあり、それぞれが特定のタスクに取り組むために設計されています。以下はその一部のリストです。",Ol,ve,nt="<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>",es,E,G,Ml,xe,at="ここで、入力の形を見ると、次元がかなり小さくなっています。モデルヘッドは、先ほどの高次元ベクトルを入力とし、2つの値(1ラベルにつき1つ)を含むベクトルを出力します。",ls,Qe,ss,Z,V,ul,Ne,pt="2つの文と2つのラベルがあるので、このモデルから得られる結果は2x2の形状です。",ts,De,ns,Ee,rt="モデルから出力される値は、それ自体では必ずしも意味をなしません。その例を見てみましょう。",as,Ge,ps,H,R,ol,Ze,it='我々のモデルは最初の文を<code>[-1.5607, 1.6123]</code>、2番目の文を<code>[ 4.1692, -3.3464]</code>と予測しました。これは確率ではなく<em>logits</em>であり、モデルの最終層が出力した正規化されていない生のスコアです。確率に変換するためには、<a href="https://en.wikipedia.org/wiki/Softmax_function" rel="nofollow">SoftMax</a>層を通る必要があります(すべての🤗 Transformersモデルはlogitsを出力します。学習用の損失関数は通常、SoftMaxなどの最後の活性化関数とクロスエントロピーのような実際の損失関数が融合されるためです)。',rs,S,W,ml,z,B,yl,Ve,ct="このモデルは、最初の文は<code>[0.0402, 0.9598]</code>、2番目の文は<code>[0.9995, 0.0005]</code>と予測したことがわかるでしょう。これらは確率のスコアです。",is,He,Mt="以下では、各ポジションに対応するラベルを得るには、モデル設定の <code>id2label</code> 属性を調べます(これについては次のセクションで詳しく説明します)。",cs,Re,Ms,Se,us,We,ut="これで、このモデルは次のように予測したと結論づけることができます。",os,ze,ot="<li>最初の文: ネガティブ: 0.0402、ポジティブ: 0.9598</li> <li>第二文: ネガティブ: 0.9995、 ポジティブ: 0.0005</li>",ms,Be,mt="これで、pipelineの3つのステップ、すなわち、トークナイザによる前処理、モデルへの入力、そして後処理がうまく再現できました。この先では、それぞれのステップをより深く掘り下げていきましょう。",ys,q,fs,Le,Ts,Tl,bs;u=new Kt({props:{fw:y[0]}}),d=new fl({props:{title:"pipelineの裏側",local:"pipelineの裏側",headingTag:"h1"}});const yt=[ln,en],Fe=[];function ft(e,t){return e[0]==="pt"?0:1}_=ft(y),$=Fe[_]=yt[_](y),X=new Ht({props:{$$slots:{default:[sn]},$$scope:{ctx:y}}});const Tt=[nn,tn],Xe=[];function bt(e,t){return e[0]==="pt"?0:1}C=bt(y),k=Xe[C]=Tt[C](y),O=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}}),ne=new fl({props:{title:"トークナイザを用いた前処理",local:"トークナイザを用いた前処理",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 Jt=[pn,an],Ye=[];function Ut(e,t){return e[0]==="pt"?0:1}I=Ut(y),g=Ye[I]=Jt[I](y);const jt=[cn,rn],Pe=[];function wt(e,t){return e[0]==="pt"?0:1}A=wt(y),v=Pe[A]=jt[A](y),fe=new fl({props:{title:"モデルの使い方",local:"モデルの使い方",headingTag:"h2"}});const dt=[un,Mn],qe=[];function ht(e,t){return e[0]==="pt"?0:1}x=ht(y),Q=qe[x]=dt[x](y),je=new fl({props:{title:"高次元ベクトル?",local:"高次元ベクトル",headingTag:"h3"}});const _t=[mn,on],Ke=[];function $t(e,t){return e[0]==="pt"?0:1}N=$t(y),D=Ke[N]=_t[N](y),Ce=new fl({props:{title:"モデルヘッド(Model heads): 数値の意味を理解する",local:"モデルヘッドmodel-heads-数値の意味を理解する",headingTag:"h3"}});const Ct=[fn,yn],Oe=[];function kt(e,t){return e[0]==="pt"?0:1}E=kt(y),G=Oe[E]=Ct[E](y),Qe=new h({props:{code:"cHJpbnQob3V0cHV0cy5sb2dpdHMuc2hhcGUp",highlighted:'<span class="hljs-built_in">print</span>(outputs.logits.shape)',wrap:!1}});const It=[bn,Tn],el=[];function gt(e,t){return e[0]==="pt"?0:1}Z=gt(y),V=el[Z]=It[Z](y),De=new fl({props:{title:"出力の後処理",local:"出力の後処理",headingTag:"h2"}}),Ge=new h({props:{code:"cHJpbnQob3V0cHV0cy5sb2dpdHMp",highlighted:'<span class="hljs-built_in">print</span>(outputs.logits)',wrap:!1}});const At=[Un,Jn],ll=[];function vt(e,t){return e[0]==="pt"?0:1}H=vt(y),R=ll[H]=At[H](y);const xt=[wn,jn],sl=[];function Qt(e,t){return e[0]==="pt"?0:1}S=Qt(y),W=sl[S]=xt[S](y);const Nt=[hn,dn],tl=[];function Dt(e,t){return e[0]==="pt"?0:1}return z=Dt(y),B=tl[z]=Nt[z](y),Re=new h({props:{code:"bW9kZWwuY29uZmlnLmlkMmxhYmVs",highlighted:"model.config.id2label",wrap:!1}}),Se=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}}),q=new Ht({props:{$$slots:{default:[_n]},$$scope:{ctx:y}}}),Le=new Ot({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ja/chapter2/2.mdx"}}),{c(){s=f("meta"),p=c(),l=f("p"),i=c(),J(u.$$.fragment),r=c(),J(d.$$.fragment),bl=c(),$.c(),nl=c(),J(X.$$.fragment),Jl=c(),k.c(),al=c(),K=f("p"),K.innerHTML=As,Ul=c(),J(O.$$.fragment),jl=c(),ee=f("p"),ee.textContent=vs,wl=c(),J(le.$$.fragment),dl=c(),se=f("p"),se.innerHTML=xs,hl=c(),Y=f("div"),Y.innerHTML=Qs,_l=c(),te=f("p"),te.textContent=Ns,$l=c(),J(ne.$$.fragment),Cl=c(),ae=f("p"),ae.innerHTML=Ds,kl=c(),pe=f("ul"),pe.innerHTML=Es,Il=c(),re=f("p"),re.innerHTML=Gs,gl=c(),ie=f("p"),ie.innerHTML=Zs,Al=c(),J(ce.$$.fragment),vl=c(),Me=f("p"),Me.textContent=Vs,xl=c(),ue=f("p"),ue.innerHTML=Hs,Ql=c(),oe=f("p"),oe.innerHTML=Rs,Nl=c(),g.c(),pl=c(),me=f("p"),me.textContent=Ss,Dl=c(),v.c(),rl=c(),ye=f("p"),ye.innerHTML=Ws,El=c(),J(fe.$$.fragment),Gl=c(),Q.c(),il=c(),Te=f("p"),Te.textContent=zs,Zl=c(),be=f("p"),be.innerHTML=Bs,Vl=c(),Je=f("p"),Je.textContent=Ls,Hl=c(),Ue=f("p"),Ue.innerHTML=Fs,Rl=c(),J(je.$$.fragment),Sl=c(),we=f("p"),we.textContent=Xs,Wl=c(),de=f("ul"),de.innerHTML=Ys,zl=c(),he=f("p"),he.textContent=Ps,Bl=c(),_e=f("p"),_e.textContent=qs,Ll=c(),D.c(),cl=c(),$e=f("p"),$e.innerHTML=Ks,Fl=c(),J(Ce.$$.fragment),Xl=c(),ke=f("p"),ke.textContent=Os,Yl=c(),P=f("div"),P.innerHTML=et,Pl=c(),Ie=f("p"),Ie.textContent=lt,ql=c(),ge=f("p"),ge.textContent=st,Kl=c(),Ae=f("p"),Ae.textContent=tt,Ol=c(),ve=f("ul"),ve.innerHTML=nt,es=c(),G.c(),Ml=c(),xe=f("p"),xe.textContent=at,ls=c(),J(Qe.$$.fragment),ss=c(),V.c(),ul=c(),Ne=f("p"),Ne.textContent=pt,ts=c(),J(De.$$.fragment),ns=c(),Ee=f("p"),Ee.textContent=rt,as=c(),J(Ge.$$.fragment),ps=c(),R.c(),ol=c(),Ze=f("p"),Ze.innerHTML=it,rs=c(),W.c(),ml=c(),B.c(),yl=c(),Ve=f("p"),Ve.innerHTML=ct,is=c(),He=f("p"),He.innerHTML=Mt,cs=c(),J(Re.$$.fragment),Ms=c(),J(Se.$$.fragment),us=c(),We=f("p"),We.textContent=ut,os=c(),ze=f("ul"),ze.innerHTML=ot,ms=c(),Be=f("p"),Be.textContent=mt,ys=c(),J(q.$$.fragment),fs=c(),J(Le.$$.fragment),Ts=c(),Tl=f("p"),this.h()},l(e){const t=Xt("svelte-u9bgzb",document.head);s=T(t,"META",{name:!0,content:!0}),t.forEach(n),p=M(e),l=T(e,"P",{}),Vt(l).forEach(n),i=M(e),U(u.$$.fragment,e),r=M(e),U(d.$$.fragment,e),bl=M(e),$.l(e),nl=M(e),U(X.$$.fragment,e),Jl=M(e),k.l(e),al=M(e),K=T(e,"P",{"data-svelte-h":!0}),b(K)!=="svelte-1sol6sr"&&(K.innerHTML=As),Ul=M(e),U(O.$$.fragment,e),jl=M(e),ee=T(e,"P",{"data-svelte-h":!0}),b(ee)!=="svelte-1r7bisc"&&(ee.textContent=vs),wl=M(e),U(le.$$.fragment,e),dl=M(e),se=T(e,"P",{"data-svelte-h":!0}),b(se)!=="svelte-deaiqm"&&(se.innerHTML=xs),hl=M(e),Y=T(e,"DIV",{class:!0,"data-svelte-h":!0}),b(Y)!=="svelte-fbe70j"&&(Y.innerHTML=Qs),_l=M(e),te=T(e,"P",{"data-svelte-h":!0}),b(te)!=="svelte-1vkvovj"&&(te.textContent=Ns),$l=M(e),U(ne.$$.fragment,e),Cl=M(e),ae=T(e,"P",{"data-svelte-h":!0}),b(ae)!=="svelte-fmtapy"&&(ae.innerHTML=Ds),kl=M(e),pe=T(e,"UL",{"data-svelte-h":!0}),b(pe)!=="svelte-s3jgi8"&&(pe.innerHTML=Es),Il=M(e),re=T(e,"P",{"data-svelte-h":!0}),b(re)!=="svelte-gcu5n7"&&(re.innerHTML=Gs),gl=M(e),ie=T(e,"P",{"data-svelte-h":!0}),b(ie)!=="svelte-1y4xx9b"&&(ie.innerHTML=Zs),Al=M(e),U(ce.$$.fragment,e),vl=M(e),Me=T(e,"P",{"data-svelte-h":!0}),b(Me)!=="svelte-13tfgw9"&&(Me.textContent=Vs),xl=M(e),ue=T(e,"P",{"data-svelte-h":!0}),b(ue)!=="svelte-qenkr7"&&(ue.innerHTML=Hs),Ql=M(e),oe=T(e,"P",{"data-svelte-h":!0}),b(oe)!=="svelte-u9iviz"&&(oe.innerHTML=Rs),Nl=M(e),g.l(e),pl=M(e),me=T(e,"P",{"data-svelte-h":!0}),b(me)!=="svelte-1ek9tod"&&(me.textContent=Ss),Dl=M(e),v.l(e),rl=M(e),ye=T(e,"P",{"data-svelte-h":!0}),b(ye)!=="svelte-lyupo7"&&(ye.innerHTML=Ws),El=M(e),U(fe.$$.fragment,e),Gl=M(e),Q.l(e),il=M(e),Te=T(e,"P",{"data-svelte-h":!0}),b(Te)!=="svelte-1l0mpb8"&&(Te.textContent=zs),Zl=M(e),be=T(e,"P",{"data-svelte-h":!0}),b(be)!=="svelte-1i3fqtb"&&(be.innerHTML=Bs),Vl=M(e),Je=T(e,"P",{"data-svelte-h":!0}),b(Je)!=="svelte-lpn8mk"&&(Je.textContent=Ls),Hl=M(e),Ue=T(e,"P",{"data-svelte-h":!0}),b(Ue)!=="svelte-1e4ih18"&&(Ue.innerHTML=Fs),Rl=M(e),U(je.$$.fragment,e),Sl=M(e),we=T(e,"P",{"data-svelte-h":!0}),b(we)!=="svelte-un6i59"&&(we.textContent=Xs),Wl=M(e),de=T(e,"UL",{"data-svelte-h":!0}),b(de)!=="svelte-118xab0"&&(de.innerHTML=Ys),zl=M(e),he=T(e,"P",{"data-svelte-h":!0}),b(he)!=="svelte-yu01ek"&&(he.textContent=Ps),Bl=M(e),_e=T(e,"P",{"data-svelte-h":!0}),b(_e)!=="svelte-b0eozs"&&(_e.textContent=qs),Ll=M(e),D.l(e),cl=M(e),$e=T(e,"P",{"data-svelte-h":!0}),b($e)!=="svelte-kmz8n9"&&($e.innerHTML=Ks),Fl=M(e),U(Ce.$$.fragment,e),Xl=M(e),ke=T(e,"P",{"data-svelte-h":!0}),b(ke)!=="svelte-1k4850h"&&(ke.textContent=Os),Yl=M(e),P=T(e,"DIV",{class:!0,"data-svelte-h":!0}),b(P)!=="svelte-8mo6lt"&&(P.innerHTML=et),Pl=M(e),Ie=T(e,"P",{"data-svelte-h":!0}),b(Ie)!=="svelte-18u58rm"&&(Ie.textContent=lt),ql=M(e),ge=T(e,"P",{"data-svelte-h":!0}),b(ge)!=="svelte-1qr9w5k"&&(ge.textContent=st),Kl=M(e),Ae=T(e,"P",{"data-svelte-h":!0}),b(Ae)!=="svelte-19ppf9"&&(Ae.textContent=tt),Ol=M(e),ve=T(e,"UL",{"data-svelte-h":!0}),b(ve)!=="svelte-79gp53"&&(ve.innerHTML=nt),es=M(e),G.l(e),Ml=M(e),xe=T(e,"P",{"data-svelte-h":!0}),b(xe)!=="svelte-rpv44l"&&(xe.textContent=at),ls=M(e),U(Qe.$$.fragment,e),ss=M(e),V.l(e),ul=M(e),Ne=T(e,"P",{"data-svelte-h":!0}),b(Ne)!=="svelte-i9fnzo"&&(Ne.textContent=pt),ts=M(e),U(De.$$.fragment,e),ns=M(e),Ee=T(e,"P",{"data-svelte-h":!0}),b(Ee)!=="svelte-sk5zs4"&&(Ee.textContent=rt),as=M(e),U(Ge.$$.fragment,e),ps=M(e),R.l(e),ol=M(e),Ze=T(e,"P",{"data-svelte-h":!0}),b(Ze)!=="svelte-m1j3nb"&&(Ze.innerHTML=it),rs=M(e),W.l(e),ml=M(e),B.l(e),yl=M(e),Ve=T(e,"P",{"data-svelte-h":!0}),b(Ve)!=="svelte-zii9wq"&&(Ve.innerHTML=ct),is=M(e),He=T(e,"P",{"data-svelte-h":!0}),b(He)!=="svelte-1k97w67"&&(He.innerHTML=Mt),cs=M(e),U(Re.$$.fragment,e),Ms=M(e),U(Se.$$.fragment,e),us=M(e),We=T(e,"P",{"data-svelte-h":!0}),b(We)!=="svelte-jrlq7e"&&(We.textContent=ut),os=M(e),ze=T(e,"UL",{"data-svelte-h":!0}),b(ze)!=="svelte-1s9lekd"&&(ze.innerHTML=ot),ms=M(e),Be=T(e,"P",{"data-svelte-h":!0}),b(Be)!=="svelte-1su1vug"&&(Be.textContent=mt),ys=M(e),U(q.$$.fragment,e),fs=M(e),U(Le.$$.fragment,e),Ts=M(e),Tl=T(e,"P",{}),Vt(Tl).forEach(n),this.h()},h(){Js(s,"name","hf:doc:metadata"),Js(s,"content",Cn),Js(Y,"class","flex justify-center"),Js(P,"class","flex justify-center")},m(e,t){Yt(document.head,s),a(e,p,t),a(e,l,t),a(e,i,t),j(u,e,t),a(e,r,t),j(d,e,t),a(e,bl,t),Fe[_].m(e,t),a(e,nl,t),j(X,e,t),a(e,Jl,t),Xe[C].m(e,t),a(e,al,t),a(e,K,t),a(e,Ul,t),j(O,e,t),a(e,jl,t),a(e,ee,t),a(e,wl,t),j(le,e,t),a(e,dl,t),a(e,se,t),a(e,hl,t),a(e,Y,t),a(e,_l,t),a(e,te,t),a(e,$l,t),j(ne,e,t),a(e,Cl,t),a(e,ae,t),a(e,kl,t),a(e,pe,t),a(e,Il,t),a(e,re,t),a(e,gl,t),a(e,ie,t),a(e,Al,t),j(ce,e,t),a(e,vl,t),a(e,Me,t),a(e,xl,t),a(e,ue,t),a(e,Ql,t),a(e,oe,t),a(e,Nl,t),Ye[I].m(e,t),a(e,pl,t),a(e,me,t),a(e,Dl,t),Pe[A].m(e,t),a(e,rl,t),a(e,ye,t),a(e,El,t),j(fe,e,t),a(e,Gl,t),qe[x].m(e,t),a(e,il,t),a(e,Te,t),a(e,Zl,t),a(e,be,t),a(e,Vl,t),a(e,Je,t),a(e,Hl,t),a(e,Ue,t),a(e,Rl,t),j(je,e,t),a(e,Sl,t),a(e,we,t),a(e,Wl,t),a(e,de,t),a(e,zl,t),a(e,he,t),a(e,Bl,t),a(e,_e,t),a(e,Ll,t),Ke[N].m(e,t),a(e,cl,t),a(e,$e,t),a(e,Fl,t),j(Ce,e,t),a(e,Xl,t),a(e,ke,t),a(e,Yl,t),a(e,P,t),a(e,Pl,t),a(e,Ie,t),a(e,ql,t),a(e,ge,t),a(e,Kl,t),a(e,Ae,t),a(e,Ol,t),a(e,ve,t),a(e,es,t),Oe[E].m(e,t),a(e,Ml,t),a(e,xe,t),a(e,ls,t),j(Qe,e,t),a(e,ss,t),el[Z].m(e,t),a(e,ul,t),a(e,Ne,t),a(e,ts,t),j(De,e,t),a(e,ns,t),a(e,Ee,t),a(e,as,t),j(Ge,e,t),a(e,ps,t),ll[H].m(e,t),a(e,ol,t),a(e,Ze,t),a(e,rs,t),sl[S].m(e,t),a(e,ml,t),tl[z].m(e,t),a(e,yl,t),a(e,Ve,t),a(e,is,t),a(e,He,t),a(e,cs,t),j(Re,e,t),a(e,Ms,t),j(Se,e,t),a(e,us,t),a(e,We,t),a(e,os,t),a(e,ze,t),a(e,ms,t),a(e,Be,t),a(e,ys,t),j(q,e,t),a(e,fs,t),j(Le,e,t),a(e,Ts,t),a(e,Tl,t),bs=!0},p(e,[t]){const Et={};t&1&&(Et.fw=e[0]),u.$set(Et);let Us=_;_=ft(e),_!==Us&&(F(),o(Fe[Us],1,1,()=>{Fe[Us]=null}),L(),$=Fe[_],$||($=Fe[_]=yt[_](e),$.c()),m($,1),$.m(nl.parentNode,nl));const Gt={};t&2&&(Gt.$$scope={dirty:t,ctx:e}),X.$set(Gt);let js=C;C=bt(e),C!==js&&(F(),o(Xe[js],1,1,()=>{Xe[js]=null}),L(),k=Xe[C],k||(k=Xe[C]=Tt[C](e),k.c()),m(k,1),k.m(al.parentNode,al));let ws=I;I=Ut(e),I!==ws&&(F(),o(Ye[ws],1,1,()=>{Ye[ws]=null}),L(),g=Ye[I],g||(g=Ye[I]=Jt[I](e),g.c()),m(g,1),g.m(pl.parentNode,pl));let ds=A;A=wt(e),A!==ds&&(F(),o(Pe[ds],1,1,()=>{Pe[ds]=null}),L(),v=Pe[A],v||(v=Pe[A]=jt[A](e),v.c()),m(v,1),v.m(rl.parentNode,rl));let hs=x;x=ht(e),x!==hs&&(F(),o(qe[hs],1,1,()=>{qe[hs]=null}),L(),Q=qe[x],Q||(Q=qe[x]=dt[x](e),Q.c()),m(Q,1),Q.m(il.parentNode,il));let _s=N;N=$t(e),N!==_s&&(F(),o(Ke[_s],1,1,()=>{Ke[_s]=null}),L(),D=Ke[N],D||(D=Ke[N]=_t[N](e),D.c()),m(D,1),D.m(cl.parentNode,cl));let $s=E;E=kt(e),E!==$s&&(F(),o(Oe[$s],1,1,()=>{Oe[$s]=null}),L(),G=Oe[E],G||(G=Oe[E]=Ct[E](e),G.c()),m(G,1),G.m(Ml.parentNode,Ml));let Cs=Z;Z=gt(e),Z!==Cs&&(F(),o(el[Cs],1,1,()=>{el[Cs]=null}),L(),V=el[Z],V||(V=el[Z]=It[Z](e),V.c()),m(V,1),V.m(ul.parentNode,ul));let ks=H;H=vt(e),H!==ks&&(F(),o(ll[ks],1,1,()=>{ll[ks]=null}),L(),R=ll[H],R||(R=ll[H]=At[H](e),R.c()),m(R,1),R.m(ol.parentNode,ol));let Is=S;S=Qt(e),S!==Is&&(F(),o(sl[Is],1,1,()=>{sl[Is]=null}),L(),W=sl[S],W||(W=sl[S]=xt[S](e),W.c()),m(W,1),W.m(ml.parentNode,ml));let gs=z;z=Dt(e),z!==gs&&(F(),o(tl[gs],1,1,()=>{tl[gs]=null}),L(),B=tl[z],B||(B=tl[z]=Nt[z](e),B.c()),m(B,1),B.m(yl.parentNode,yl));const Zt={};t&2&&(Zt.$$scope={dirty:t,ctx:e}),q.$set(Zt)},i(e){bs||(m(u.$$.fragment,e),m(d.$$.fragment,e),m($),m(X.$$.fragment,e),m(k),m(O.$$.fragment,e),m(le.$$.fragment,e),m(ne.$$.fragment,e),m(ce.$$.fragment,e),m(g),m(v),m(fe.$$.fragment,e),m(Q),m(je.$$.fragment,e),m(D),m(Ce.$$.fragment,e),m(G),m(Qe.$$.fragment,e),m(V),m(De.$$.fragment,e),m(Ge.$$.fragment,e),m(R),m(W),m(B),m(Re.$$.fragment,e),m(Se.$$.fragment,e),m(q.$$.fragment,e),m(Le.$$.fragment,e),bs=!0)},o(e){o(u.$$.fragment,e),o(d.$$.fragment,e),o($),o(X.$$.fragment,e),o(k),o(O.$$.fragment,e),o(le.$$.fragment,e),o(ne.$$.fragment,e),o(ce.$$.fragment,e),o(g),o(v),o(fe.$$.fragment,e),o(Q),o(je.$$.fragment,e),o(D),o(Ce.$$.fragment,e),o(G),o(Qe.$$.fragment,e),o(V),o(De.$$.fragment,e),o(Ge.$$.fragment,e),o(R),o(W),o(B),o(Re.$$.fragment,e),o(Se.$$.fragment,e),o(q.$$.fragment,e),o(Le.$$.fragment,e),bs=!1},d(e){e&&(n(p),n(l),n(i),n(r),n(bl),n(nl),n(Jl),n(al),n(K),n(Ul),n(jl),n(ee),n(wl),n(dl),n(se),n(hl),n(Y),n(_l),n(te),n($l),n(Cl),n(ae),n(kl),n(pe),n(Il),n(re),n(gl),n(ie),n(Al),n(vl),n(Me),n(xl),n(ue),n(Ql),n(oe),n(Nl),n(pl),n(me),n(Dl),n(rl),n(ye),n(El),n(Gl),n(il),n(Te),n(Zl),n(be),n(Vl),n(Je),n(Hl),n(Ue),n(Rl),n(Sl),n(we),n(Wl),n(de),n(zl),n(he),n(Bl),n(_e),n(Ll),n(cl),n($e),n(Fl),n(Xl),n(ke),n(Yl),n(P),n(Pl),n(Ie),n(ql),n(ge),n(Kl),n(Ae),n(Ol),n(ve),n(es),n(Ml),n(xe),n(ls),n(ss),n(ul),n(Ne),n(ts),n(ns),n(Ee),n(as),n(ps),n(ol),n(Ze),n(rs),n(ml),n(yl),n(Ve),n(is),n(He),n(cs),n(Ms),n(us),n(We),n(os),n(ze),n(ms),n(Be),n(ys),n(fs),n(Ts),n(Tl)),n(s),w(u,e),w(d,e),Fe[_].d(e),w(X,e),Xe[C].d(e),w(O,e),w(le,e),w(ne,e),w(ce,e),Ye[I].d(e),Pe[A].d(e),w(fe,e),qe[x].d(e),w(je,e),Ke[N].d(e),w(Ce,e),Oe[E].d(e),w(Qe,e),el[Z].d(e),w(De,e),w(Ge,e),ll[H].d(e),sl[S].d(e),tl[z].d(e),w(Re,e),w(Se,e),w(q,e),w(Le,e)}}}const Cn='{"title":"pipelineの裏側","local":"pipelineの裏側","sections":[{"title":"トークナイザを用いた前処理","local":"トークナイザを用いた前処理","sections":[],"depth":2},{"title":"モデルの使い方","local":"モデルの使い方","sections":[{"title":"高次元ベクトル?","local":"高次元ベクトル","sections":[],"depth":3},{"title":"モデルヘッド(Model heads): 数値の意味を理解する","local":"モデルヘッドmodel-heads-数値の意味を理解する","sections":[],"depth":3}],"depth":2},{"title":"出力の後処理","local":"出力の後処理","sections":[],"depth":2}],"depth":1}';function kn(y,s,p){let l="pt";return zt(()=>{const i=new URLSearchParams(window.location.search);p(0,l=i.get("fw")||"pt")}),[l]}class En extends Lt{constructor(s){super(),Ft(this,s,kn,$n,Wt,{})}}export{En as component}; | |
Xet Storage Details
- Size:
- 54.3 kB
- Xet hash:
- 37f8710808418e7e6f29f8549db06e81c203e4ff4b5a7b1ea97c69b429a211cc
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.