Buckets:

HuggingFaceDocBuilder's picture
download
raw
35.2 kB
import{s as Ws,o as Bs}from"../chunks/scheduler.505acc25.js";import{S as Rs,i as Ps,e as p,s as n,c as m,h as Fs,a as i,d as s,b as a,f as Ss,g as r,j as M,k as Ve,l as Xs,m as l,n as u,t as f,o,p as c}from"../chunks/index.821724d0.js";import{C as qs,H as Ne,E as Ys}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.14b6370b.js";import{Y as Ks}from"../chunks/Youtube.c5effbdd.js";import{C as y}from"../chunks/CodeBlock.af329cbd.js";import{C as Os}from"../chunks/CourseFloatingBanner.a3154b9b.js";import{F as el}from"../chunks/FrameworkSwitchCourse.fd0863d0.js";function tl(es){let T,Ee,h,Qe,d,Le,J,De,b,Ge,$,Ze,C,ze,g,ts='완전한 예제를 이용해, 아래의 <a href="/course/chapter1">제1단원</a> 코드를 수행했을 때 뒤에서 어떤 일이 일어나고 있는지 알아봅시다.',Se,x,We,v,ss="다음과 같은 출력이 나오게 됩니다.",Be,I,Re,k,ls='<a href="/course/chapter1">제1단원</a>에서 확인했듯이, 이 파이프라인 그룹은 세 단계(전처리, 모델에 입력 넣어주기, 후처리)를 함께 수행합니다.',Pe,U,ns='<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."/>',Fe,A,as="각 단계에 대해 빠르게 살펴보겠습니다.",Xe,_,qe,E,ps="다른 신경망처럼 Transformer 모델도 원시 텍스트를 바로 처리할 수 없기 때문에 파이프라인의 첫 번째 단계는 텍스트 입력을 모델이 이해할 수 있는 숫자로 변환하는 것입니다. 이 과정을 위해 다음 기능들을 수행하는 <em>토크나이저</em>를 사용합니다.",Ye,Q,is="<li>입력을 <em>토큰</em>이라고 부르는 단어나 하위 단어, 또는 심볼(예-구두점)로 분할</li> <li>각 토큰을 하나의 정수에 매핑</li> <li>모델에 유용할 수 있는 부가적인 입력 추가</li>",Ke,N,Ms='이 모든 전처리 과정은 모델이 사전학습될 때와 완전히 동일한 방식으로 진행되어야 하기 때문에 <a href="https://huggingface.co/models" rel="nofollow">Model Hub</a>에서 정보를 다운로드 해야합니다. 전처리를 위해 <code>AutoTokenizer</code> 클래스와 AutoTokenizer의 <code>from_pretrained()</code> 메서드를 사용합니다. 모델의 체크포인트 이름을 사용하여 모델의 토크나이저와 연관된 데이터를 자동으로 가져와 저장합니다. (따라서 아래 코드를 처음 실행할 때만 다운로드됩니다.)',Oe,H,ms='<code>sentiment-analysis</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>서 가능)이므로 아래 코드를 실행합니다.',et,V,tt,L,rs="토크나이저가 있다면 문장을 토크나이저에 입력하여 우리의 모델에 전달할 준비가 된 딕셔너리를 출력으로 얻게 됩니다! 남은 것은 입력 ID 목록을 tensor로 변환하는 것입니다.",st,D,us="여러분은 모델에 어떤 ML 프레임워크-PyTorch나 Flax가 백엔드로 사용되는지 걱정하지 않고 🤗 Transformers를 사용할 수 있습니다. 하지만 Transformer 모델은 <em>tensor</em>만을 입력으로 받습니다. 만약 tensor에 대해 처음 들어봤다면, NumPy 배열을 생각하면 됩니다. NumPy 배열은 스칼라(0D), 벡터(1D), 행렬(2D) 또는 더 많은 차원을 가질 수 있습니다. 이것은 사실상 텐서입니다. 다른 ML 프레임워크의 텐서도 유사하게 동작하며, NumPy 배열처럼 인스턴스화가 쉽습니다.",lt,G,fs="얻고자 하는 tensor의 타입(PyTorch, TensorFlow, 일반 NumPy)을 지정하기 위해, <code>return_tensors</code> 전달인자를 사용합니다.",nt,Z,at,z,os="padding과 truncation에 대해 벌써 걱정하지 마세요. 나중에 설명하도록 하겠습니다. 여기서 기억해야 할 중요한 점은 하나의 문장 또는 여러 개의 문장 리스트를 토크나이저 함수로 전달할 수 있을 뿐만 아니라 얻고 싶은 텐서 유형까지 지정할 수 있다는 것입니다. (텐서 유형이 지정되지 않으면 이중 리스트를 결과로 얻게 됩니다)",pt,S,it,W,cs="출력은 <code>input_ids</code>와 <code>attention_mask</code> 두 개의 키를 갖는 딕셔너리입니다. <code>input_ids</code>는 각 문장 내 토큰의 고유 식별자인 정수로 이루어진 2개의 행(한 행이 하나의 문장)을 가지고 있습니다. <code>attention_mask</code>는 이 장의 뒤쪽에서 설명할 것입니다.",Mt,B,mt,R,ys="토크나이저를 다운받은 방식과 동일한 방식으로 사전학습된 모델을 다운받을 수 있습니다. 🤗 Transformers는 <code>from_pretrained</code> 메서드를 가진 <code>AutoModel</code> 클래스를 제공합니다.",rt,P,ut,F,Ts="이 코드 스니펫에서 이전 파이프라인에서 사용된 것과 동일한 체크포인트를 다운로드(실제로는 이미 저장되어 있어야 합니다)하고 그것으로 모델을 인스턴스화했습니다.",ft,X,hs="해당 아키텍처는 기본 Transformer 모듈만 포함하고 있습니다. 입력이 주어지면 <em>features</em>라고도 불리는 <em>hidden states</em>를 출력합니다. 각 모델의 입력에 대해 <strong>Transformer 모델에 의해 수행된 입력의 문맥적 이해</strong>로 표현할 수 있는 고차원 벡터를 가져옵니다.",ot,q,ds="이 내용이 이해되지 않더라도 걱정하지 마세요. 뒤에서 설명할 것입니다.",ct,Y,Us='이러한 hidden states는 그 자체로 유용할 수 있지만 일반적으로 <em>head</em>라고 알려진 모델의 다른 부분에 입력으로 들어갑니다. <a href="/course/chapter1">제1단원</a>에서, 동일한 구조로 다른 태스크를 수행할 수 있었는데 이 태스크들은 서로 다른 헤드와 연관되어 있습니다.',yt,K,Tt,O,js="Transformer 모듈에 의한 출력 벡터는 일반적으로 크며 보통 3개의 차원을 가집니다.",ht,ee,ws="<li><strong>Batch size</strong>: 한 번에 처리되는 시퀀스의 수 (예제에서는 2)</li> <li><strong>Sequence length</strong>: 시퀀스의 숫자 표현 길이 (예제에서는 16)</li> <li><strong>Hidden size</strong>: 각 모델 입력 벡터 차원</li>",dt,te,Js="위에서 마지막 값으로 인해 “고차원”이라고 불립니다. hidden size는 매우 클 수 있습니다 (작은 모델은 768이 일반적이며 큰 모델은 3072나 그 이상의 값이 될 수 있습니다)",Ut,se,bs="전처리 과정을 거친 입력을 모델로 넘기면 아래 결과를 확인할 수 있습니다.",jt,le,wt,ne,Jt,ae,$s="🤗 Transformers 모델의 출력은 <code>namedtuple</code> 또는 딕셔너리 형태입니다. 속성이나 키(<code>outputs[&quot;last_hidden_state&quot;]</code>)를 이용해 요소에 접근할 수 있고 찾고자 하는 것의 정확한 위치를 안다면 인덱스(<code>outputs[0]</code>)도 사용할 수 있습니다.",bt,pe,$t,ie,Cs="모델 헤드는 hidden state의 고차원 벡터를 입력으로 받아 다른 차원으로 투영합니다. 모델 헤드는 보통 하나 이상의 선형 레이어로 이루어져 있습니다.",Ct,j,gs='<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."/>',gt,Me,xs="Transformer 모델의 출력은 처리할 모델 헤드로 바로 전달됩니다.",xt,me,vs="이 다이어그램에서, 모델은 모델의 임베딩 레이어와 후속 레이어로 표현됩니다. 임베딩 레이어는 토큰화된 각각의 입력 ID를 연관된 토큰을 나타내는 벡터로 변환합니다. 후속 레이어는 문장의 최종 표현을 만들기 위해 어텐션 메커니즘을 이용해 이 벡터들을 처리합니다.",vt,re,Is="🤗 Transformer에는 다양한 아키텍처가 있으며, 각각의 아키텍처는 특정 작업을 처리하도록 설계되었습니다. 아래는 일부 아키텍처입니다.",It,ue,ks="<li><code>*Model</code> (retrieve the hidden states)</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>",kt,fe,As="이 예제를 위해서는 문장을 긍정 또는 부정으로 분류할 수 있게 하는 시퀀스 분류 헤드를 가진 모델이 필요합니다. 따라서 <code>AutoModel</code> 클래스가 아닌 <code>AutoModelForSequenceClassification</code>을 사용할 것입니다.",At,oe,_t,ce,_s="출력 형태를 보면 차원이 훨씬 적은 것을 알 수 있습니다. 모델 헤드는 이전에 봤던 고차원 벡터를 입력으로 받아 2개의 값(레이블 당 하나)으로 이루어진 벡터를 출력합니다.",Et,ye,Qt,Te,Nt,he,Es="우리는 2개의 문장과 2개의 레이블만 있기 때문에 모델로부터 얻은 출력 형태는 2 x 2입니다.",Ht,de,Vt,Ue,Qs="모델의 출력 값이 그 자체로 의미있는 것은 아닙니다. 한 번 보도록 합시다.",Lt,je,Dt,we,Gt,Je,Ns='모델은 첫 번째 문장에 대해 <code>[-1.5607, 1.6123]</code>으로 예측했고 두 번째 문장에 대해 <code>[ 4.1692, -3.3464]</code>으로 예측했습니다. 이 값들은 확률이 아니라 모델의 마지막 층에 의해 출력된 정규화되지 않은 점수인 <em>logits</em>입니다. 확률로 변환되기 위해 logits은 <a href="https://en.wikipedia.org/wiki/Softmax_function" rel="nofollow">SoftMax</a> 층을 거쳐야 합니다. 학습을 위한 손실 함수가 일반적으로 SoftMax와 같은 마지막 활성함수와 교차 엔트로피와 같은 실제 손실 함수를 모두 사용하기 때문에 모든 🤗 Transformers 모델의 출력은 logit입니다.',Zt,be,zt,$e,St,Ce,Hs="모델은 첫 번째 문장에 대해 <code>[0.0402, 0.9598]</code>로 예측했고 두 번째 모델에 대해 <code>[0.9995, 0.0005]</code>로 예측했습니다. 이 값들은 확실하게 확률값입니다.",Wt,ge,Vs="각 위치에 해당하는 레이블을 얻기 위해, 모델 config의 <code>id2label</code> 속성을 살펴봅시다. Config에 대한 더 많은 내용은 다음 섹션에서 진행됩니다.",Bt,xe,Rt,ve,Pt,Ie,Ls="모델의 예측 결과를 아래처럼 결론 지을 수 있습니다.",Ft,ke,Ds="<li>첫 번째 문장: NEGATIVE: 0.0402, POSITIVE: 0.9598</li> <li>두 번째 문장: NEGATIVE: 0.9995, POSITIVE: 0.0005</li>",Xt,Ae,Gs="파이프라인 세 단계인 토크나이저를 이용한 전처리, 모델에 입력 넣어주기, 후처리를 성공적으로 재현했습니다! 이제 각 단계별로 좀 더 깊게 알아보는 시간을 가져봅시다.",qt,w,Zs="<p>✏️ <strong>직접 해보세요!</strong> 2개 이상의 문장을 골라 <code>sentiment-analysis</code> 파이프라인을 적용해보세요. 이 챕터에서 본 내용을 그대로 수행해보고 같은 결과가 나오는지 확인해보세요!</p>",Yt,_e,Kt,He,Ot;return d=new el({props:{fw:es[0]}}),J=new qs({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),b=new Ne({props:{title:"파이프라인 내부 동작 과정",local:"behind-the-pipeline",headingTag:"h1"}}),$=new Os({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=new Ks({props:{id:"1pedAIvTWXk"}}),x=new y({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}}),I=new y({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}}),_=new Ne({props:{title:"토크나이저를 이용한 전처리",local:"preprocessing-with-a-tokenizer",headingTag:"h2"}}),V=new y({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}}),Z=new y({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}}),S=new y({props:{code:"JTdCJTBBJTIwJTIwJTIwJTIwJ2lucHV0X2lkcyclM0ElMjB0ZW5zb3IoJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwJTIwMTAxJTJDJTIwJTIwMTA0NSUyQyUyMCUyMDEwMDUlMkMlMjAlMjAyMzEwJTJDJTIwJTIwMjA0MiUyQyUyMCUyMDM0MDMlMkMlMjAlMjAyMDA1JTJDJTIwJTIwMTAzNyUyQyUyMDE3NjYyJTJDJTIwMTIxNzIlMkMlMjAyNjA3JTJDJTIwJTIwMjAyNiUyQyUyMCUyMDI4NzglMkMlMjAlMjAyMTY2JTJDJTIwJTIwMTAxMiUyQyUyMCUyMCUyMDEwMiU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1QiUyMCUyMDEwMSUyQyUyMCUyMDEwNDUlMkMlMjAlMjA1MjIzJTJDJTIwJTIwMjAyMyUyQyUyMCUyMDIwNjElMkMlMjAlMjAyMTcyJTJDJTIwJTIwJTIwOTk5JTJDJTIwJTIwJTIwMTAyJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMDAlNUQlMEElMjAlMjAlMjAlMjAlNUQpJTJDJTIwJTBBJTIwJTIwJTIwJTIwJ2F0dGVudGlvbl9tYXNrJyUzQSUyMHRlbnNvciglNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUIxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTVEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCU1RCUwQSUyMCUyMCUyMCUyMCU1RCklMEElN0Q=",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">1</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>]
])
}`,wrap:!1}}),B=new Ne({props:{title:"모델 살펴보기",local:"going-through-the-model",headingTag:"h2"}}),P=new y({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}}),K=new Ne({props:{title:"고차원 벡터란?",local:"a-high-dimensional-vector",headingTag:"h3"}}),le=new y({props:{code:"b3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqaW5wdXRzKSUwQXByaW50KG91dHB1dHMubGFzdF9oaWRkZW5fc3RhdGUuc2hhcGUp",highlighted:`outputs = model(**inputs)
<span class="hljs-built_in">print</span>(outputs.last_hidden_state.shape)`,wrap:!1}}),ne=new y({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}}),pe=new Ne({props:{title:"모델 헤드: 숫자로 이해하기",local:"model-heads-making-sense-out-of-numbers",headingTag:"h3"}}),oe=new y({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}}),ye=new y({props:{code:"cHJpbnQob3V0cHV0cy5sb2dpdHMuc2hhcGUp",highlighted:'<span class="hljs-built_in">print</span>(outputs.logits.shape)',wrap:!1}}),Te=new y({props:{code:"dG9yY2guU2l6ZSglNUIyJTJDJTIwMiU1RCk=",highlighted:'torch.Size([<span class="hljs-number">2</span>, <span class="hljs-number">2</span>])',wrap:!1}}),de=new Ne({props:{title:"출력 후처리",local:"postprocessing-the-output",headingTag:"h2"}}),je=new y({props:{code:"cHJpbnQob3V0cHV0cy5sb2dpdHMp",highlighted:'<span class="hljs-built_in">print</span>(outputs.logits)',wrap:!1}}),we=new y({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}}),be=new y({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}}),$e=new y({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}}),xe=new y({props:{code:"bW9kZWwuY29uZmlnLmlkMmxhYmVs",highlighted:"model.config.id2label",wrap:!1}}),ve=new y({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}}),_e=new Ys({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ko/chapter2/2.mdx"}}),{c(){T=p("meta"),Ee=n(),h=p("p"),Qe=n(),m(d.$$.fragment),Le=n(),m(J.$$.fragment),De=n(),m(b.$$.fragment),Ge=n(),m($.$$.fragment),Ze=n(),m(C.$$.fragment),ze=n(),g=p("p"),g.innerHTML=ts,Se=n(),m(x.$$.fragment),We=n(),v=p("p"),v.textContent=ss,Be=n(),m(I.$$.fragment),Re=n(),k=p("p"),k.innerHTML=ls,Pe=n(),U=p("div"),U.innerHTML=ns,Fe=n(),A=p("p"),A.textContent=as,Xe=n(),m(_.$$.fragment),qe=n(),E=p("p"),E.innerHTML=ps,Ye=n(),Q=p("ul"),Q.innerHTML=is,Ke=n(),N=p("p"),N.innerHTML=Ms,Oe=n(),H=p("p"),H.innerHTML=ms,et=n(),m(V.$$.fragment),tt=n(),L=p("p"),L.textContent=rs,st=n(),D=p("p"),D.innerHTML=us,lt=n(),G=p("p"),G.innerHTML=fs,nt=n(),m(Z.$$.fragment),at=n(),z=p("p"),z.textContent=os,pt=n(),m(S.$$.fragment),it=n(),W=p("p"),W.innerHTML=cs,Mt=n(),m(B.$$.fragment),mt=n(),R=p("p"),R.innerHTML=ys,rt=n(),m(P.$$.fragment),ut=n(),F=p("p"),F.textContent=Ts,ft=n(),X=p("p"),X.innerHTML=hs,ot=n(),q=p("p"),q.textContent=ds,ct=n(),Y=p("p"),Y.innerHTML=Us,yt=n(),m(K.$$.fragment),Tt=n(),O=p("p"),O.textContent=js,ht=n(),ee=p("ul"),ee.innerHTML=ws,dt=n(),te=p("p"),te.textContent=Js,Ut=n(),se=p("p"),se.textContent=bs,jt=n(),m(le.$$.fragment),wt=n(),m(ne.$$.fragment),Jt=n(),ae=p("p"),ae.innerHTML=$s,bt=n(),m(pe.$$.fragment),$t=n(),ie=p("p"),ie.textContent=Cs,Ct=n(),j=p("div"),j.innerHTML=gs,gt=n(),Me=p("p"),Me.textContent=xs,xt=n(),me=p("p"),me.textContent=vs,vt=n(),re=p("p"),re.textContent=Is,It=n(),ue=p("ul"),ue.innerHTML=ks,kt=n(),fe=p("p"),fe.innerHTML=As,At=n(),m(oe.$$.fragment),_t=n(),ce=p("p"),ce.textContent=_s,Et=n(),m(ye.$$.fragment),Qt=n(),m(Te.$$.fragment),Nt=n(),he=p("p"),he.textContent=Es,Ht=n(),m(de.$$.fragment),Vt=n(),Ue=p("p"),Ue.textContent=Qs,Lt=n(),m(je.$$.fragment),Dt=n(),m(we.$$.fragment),Gt=n(),Je=p("p"),Je.innerHTML=Ns,Zt=n(),m(be.$$.fragment),zt=n(),m($e.$$.fragment),St=n(),Ce=p("p"),Ce.innerHTML=Hs,Wt=n(),ge=p("p"),ge.innerHTML=Vs,Bt=n(),m(xe.$$.fragment),Rt=n(),m(ve.$$.fragment),Pt=n(),Ie=p("p"),Ie.textContent=Ls,Ft=n(),ke=p("ul"),ke.innerHTML=Ds,Xt=n(),Ae=p("p"),Ae.textContent=Gs,qt=n(),w=p("blockquote"),w.innerHTML=Zs,Yt=n(),m(_e.$$.fragment),Kt=n(),He=p("p"),this.h()},l(e){const t=Fs("svelte-u9bgzb",document.head);T=i(t,"META",{name:!0,content:!0}),t.forEach(s),Ee=a(e),h=i(e,"P",{}),Ss(h).forEach(s),Qe=a(e),r(d.$$.fragment,e),Le=a(e),r(J.$$.fragment,e),De=a(e),r(b.$$.fragment,e),Ge=a(e),r($.$$.fragment,e),Ze=a(e),r(C.$$.fragment,e),ze=a(e),g=i(e,"P",{"data-svelte-h":!0}),M(g)!=="svelte-g9xmns"&&(g.innerHTML=ts),Se=a(e),r(x.$$.fragment,e),We=a(e),v=i(e,"P",{"data-svelte-h":!0}),M(v)!=="svelte-wl1uu7"&&(v.textContent=ss),Be=a(e),r(I.$$.fragment,e),Re=a(e),k=i(e,"P",{"data-svelte-h":!0}),M(k)!=="svelte-1mqnegy"&&(k.innerHTML=ls),Pe=a(e),U=i(e,"DIV",{class:!0,"data-svelte-h":!0}),M(U)!=="svelte-fbe70j"&&(U.innerHTML=ns),Fe=a(e),A=i(e,"P",{"data-svelte-h":!0}),M(A)!=="svelte-vi0ems"&&(A.textContent=as),Xe=a(e),r(_.$$.fragment,e),qe=a(e),E=i(e,"P",{"data-svelte-h":!0}),M(E)!=="svelte-e4ngzp"&&(E.innerHTML=ps),Ye=a(e),Q=i(e,"UL",{"data-svelte-h":!0}),M(Q)!=="svelte-cxgkxr"&&(Q.innerHTML=is),Ke=a(e),N=i(e,"P",{"data-svelte-h":!0}),M(N)!=="svelte-w17t67"&&(N.innerHTML=Ms),Oe=a(e),H=i(e,"P",{"data-svelte-h":!0}),M(H)!=="svelte-79gaho"&&(H.innerHTML=ms),et=a(e),r(V.$$.fragment,e),tt=a(e),L=i(e,"P",{"data-svelte-h":!0}),M(L)!=="svelte-1rskcen"&&(L.textContent=rs),st=a(e),D=i(e,"P",{"data-svelte-h":!0}),M(D)!=="svelte-t2ia6n"&&(D.innerHTML=us),lt=a(e),G=i(e,"P",{"data-svelte-h":!0}),M(G)!=="svelte-yp4x9m"&&(G.innerHTML=fs),nt=a(e),r(Z.$$.fragment,e),at=a(e),z=i(e,"P",{"data-svelte-h":!0}),M(z)!=="svelte-12luxqf"&&(z.textContent=os),pt=a(e),r(S.$$.fragment,e),it=a(e),W=i(e,"P",{"data-svelte-h":!0}),M(W)!=="svelte-y7j4z7"&&(W.innerHTML=cs),Mt=a(e),r(B.$$.fragment,e),mt=a(e),R=i(e,"P",{"data-svelte-h":!0}),M(R)!=="svelte-9oefvu"&&(R.innerHTML=ys),rt=a(e),r(P.$$.fragment,e),ut=a(e),F=i(e,"P",{"data-svelte-h":!0}),M(F)!=="svelte-1iij98n"&&(F.textContent=Ts),ft=a(e),X=i(e,"P",{"data-svelte-h":!0}),M(X)!=="svelte-1m8n2tn"&&(X.innerHTML=hs),ot=a(e),q=i(e,"P",{"data-svelte-h":!0}),M(q)!=="svelte-xwzhyw"&&(q.textContent=ds),ct=a(e),Y=i(e,"P",{"data-svelte-h":!0}),M(Y)!=="svelte-1j1df6u"&&(Y.innerHTML=Us),yt=a(e),r(K.$$.fragment,e),Tt=a(e),O=i(e,"P",{"data-svelte-h":!0}),M(O)!=="svelte-118vqvh"&&(O.textContent=js),ht=a(e),ee=i(e,"UL",{"data-svelte-h":!0}),M(ee)!=="svelte-1yer64p"&&(ee.innerHTML=ws),dt=a(e),te=i(e,"P",{"data-svelte-h":!0}),M(te)!=="svelte-1ldcz1p"&&(te.textContent=Js),Ut=a(e),se=i(e,"P",{"data-svelte-h":!0}),M(se)!=="svelte-foiu8f"&&(se.textContent=bs),jt=a(e),r(le.$$.fragment,e),wt=a(e),r(ne.$$.fragment,e),Jt=a(e),ae=i(e,"P",{"data-svelte-h":!0}),M(ae)!=="svelte-it37lc"&&(ae.innerHTML=$s),bt=a(e),r(pe.$$.fragment,e),$t=a(e),ie=i(e,"P",{"data-svelte-h":!0}),M(ie)!=="svelte-13d2s5r"&&(ie.textContent=Cs),Ct=a(e),j=i(e,"DIV",{class:!0,"data-svelte-h":!0}),M(j)!=="svelte-8mo6lt"&&(j.innerHTML=gs),gt=a(e),Me=i(e,"P",{"data-svelte-h":!0}),M(Me)!=="svelte-k1g54v"&&(Me.textContent=xs),xt=a(e),me=i(e,"P",{"data-svelte-h":!0}),M(me)!=="svelte-did2wt"&&(me.textContent=vs),vt=a(e),re=i(e,"P",{"data-svelte-h":!0}),M(re)!=="svelte-1bvhwer"&&(re.textContent=Is),It=a(e),ue=i(e,"UL",{"data-svelte-h":!0}),M(ue)!=="svelte-nf90ig"&&(ue.innerHTML=ks),kt=a(e),fe=i(e,"P",{"data-svelte-h":!0}),M(fe)!=="svelte-vxxqdi"&&(fe.innerHTML=As),At=a(e),r(oe.$$.fragment,e),_t=a(e),ce=i(e,"P",{"data-svelte-h":!0}),M(ce)!=="svelte-19v4iwk"&&(ce.textContent=_s),Et=a(e),r(ye.$$.fragment,e),Qt=a(e),r(Te.$$.fragment,e),Nt=a(e),he=i(e,"P",{"data-svelte-h":!0}),M(he)!=="svelte-vcufcz"&&(he.textContent=Es),Ht=a(e),r(de.$$.fragment,e),Vt=a(e),Ue=i(e,"P",{"data-svelte-h":!0}),M(Ue)!=="svelte-1fm5gwp"&&(Ue.textContent=Qs),Lt=a(e),r(je.$$.fragment,e),Dt=a(e),r(we.$$.fragment,e),Gt=a(e),Je=i(e,"P",{"data-svelte-h":!0}),M(Je)!=="svelte-a9kzjr"&&(Je.innerHTML=Ns),Zt=a(e),r(be.$$.fragment,e),zt=a(e),r($e.$$.fragment,e),St=a(e),Ce=i(e,"P",{"data-svelte-h":!0}),M(Ce)!=="svelte-1l62ze"&&(Ce.innerHTML=Hs),Wt=a(e),ge=i(e,"P",{"data-svelte-h":!0}),M(ge)!=="svelte-16uv0pg"&&(ge.innerHTML=Vs),Bt=a(e),r(xe.$$.fragment,e),Rt=a(e),r(ve.$$.fragment,e),Pt=a(e),Ie=i(e,"P",{"data-svelte-h":!0}),M(Ie)!=="svelte-1qu5r5q"&&(Ie.textContent=Ls),Ft=a(e),ke=i(e,"UL",{"data-svelte-h":!0}),M(ke)!=="svelte-a79kkl"&&(ke.innerHTML=Ds),Xt=a(e),Ae=i(e,"P",{"data-svelte-h":!0}),M(Ae)!=="svelte-sdsvbv"&&(Ae.textContent=Gs),qt=a(e),w=i(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),M(w)!=="svelte-b62x8u"&&(w.innerHTML=Zs),Yt=a(e),r(_e.$$.fragment,e),Kt=a(e),He=i(e,"P",{}),Ss(He).forEach(s),this.h()},h(){Ve(T,"name","hf:doc:metadata"),Ve(T,"content",sl),Ve(U,"class","flex justify-center"),Ve(j,"class","flex justify-center"),Ve(w,"class","tip")},m(e,t){Xs(document.head,T),l(e,Ee,t),l(e,h,t),l(e,Qe,t),u(d,e,t),l(e,Le,t),u(J,e,t),l(e,De,t),u(b,e,t),l(e,Ge,t),u($,e,t),l(e,Ze,t),u(C,e,t),l(e,ze,t),l(e,g,t),l(e,Se,t),u(x,e,t),l(e,We,t),l(e,v,t),l(e,Be,t),u(I,e,t),l(e,Re,t),l(e,k,t),l(e,Pe,t),l(e,U,t),l(e,Fe,t),l(e,A,t),l(e,Xe,t),u(_,e,t),l(e,qe,t),l(e,E,t),l(e,Ye,t),l(e,Q,t),l(e,Ke,t),l(e,N,t),l(e,Oe,t),l(e,H,t),l(e,et,t),u(V,e,t),l(e,tt,t),l(e,L,t),l(e,st,t),l(e,D,t),l(e,lt,t),l(e,G,t),l(e,nt,t),u(Z,e,t),l(e,at,t),l(e,z,t),l(e,pt,t),u(S,e,t),l(e,it,t),l(e,W,t),l(e,Mt,t),u(B,e,t),l(e,mt,t),l(e,R,t),l(e,rt,t),u(P,e,t),l(e,ut,t),l(e,F,t),l(e,ft,t),l(e,X,t),l(e,ot,t),l(e,q,t),l(e,ct,t),l(e,Y,t),l(e,yt,t),u(K,e,t),l(e,Tt,t),l(e,O,t),l(e,ht,t),l(e,ee,t),l(e,dt,t),l(e,te,t),l(e,Ut,t),l(e,se,t),l(e,jt,t),u(le,e,t),l(e,wt,t),u(ne,e,t),l(e,Jt,t),l(e,ae,t),l(e,bt,t),u(pe,e,t),l(e,$t,t),l(e,ie,t),l(e,Ct,t),l(e,j,t),l(e,gt,t),l(e,Me,t),l(e,xt,t),l(e,me,t),l(e,vt,t),l(e,re,t),l(e,It,t),l(e,ue,t),l(e,kt,t),l(e,fe,t),l(e,At,t),u(oe,e,t),l(e,_t,t),l(e,ce,t),l(e,Et,t),u(ye,e,t),l(e,Qt,t),u(Te,e,t),l(e,Nt,t),l(e,he,t),l(e,Ht,t),u(de,e,t),l(e,Vt,t),l(e,Ue,t),l(e,Lt,t),u(je,e,t),l(e,Dt,t),u(we,e,t),l(e,Gt,t),l(e,Je,t),l(e,Zt,t),u(be,e,t),l(e,zt,t),u($e,e,t),l(e,St,t),l(e,Ce,t),l(e,Wt,t),l(e,ge,t),l(e,Bt,t),u(xe,e,t),l(e,Rt,t),u(ve,e,t),l(e,Pt,t),l(e,Ie,t),l(e,Ft,t),l(e,ke,t),l(e,Xt,t),l(e,Ae,t),l(e,qt,t),l(e,w,t),l(e,Yt,t),u(_e,e,t),l(e,Kt,t),l(e,He,t),Ot=!0},p(e,[t]){const zs={};t&1&&(zs.fw=e[0]),d.$set(zs)},i(e){Ot||(f(d.$$.fragment,e),f(J.$$.fragment,e),f(b.$$.fragment,e),f($.$$.fragment,e),f(C.$$.fragment,e),f(x.$$.fragment,e),f(I.$$.fragment,e),f(_.$$.fragment,e),f(V.$$.fragment,e),f(Z.$$.fragment,e),f(S.$$.fragment,e),f(B.$$.fragment,e),f(P.$$.fragment,e),f(K.$$.fragment,e),f(le.$$.fragment,e),f(ne.$$.fragment,e),f(pe.$$.fragment,e),f(oe.$$.fragment,e),f(ye.$$.fragment,e),f(Te.$$.fragment,e),f(de.$$.fragment,e),f(je.$$.fragment,e),f(we.$$.fragment,e),f(be.$$.fragment,e),f($e.$$.fragment,e),f(xe.$$.fragment,e),f(ve.$$.fragment,e),f(_e.$$.fragment,e),Ot=!0)},o(e){o(d.$$.fragment,e),o(J.$$.fragment,e),o(b.$$.fragment,e),o($.$$.fragment,e),o(C.$$.fragment,e),o(x.$$.fragment,e),o(I.$$.fragment,e),o(_.$$.fragment,e),o(V.$$.fragment,e),o(Z.$$.fragment,e),o(S.$$.fragment,e),o(B.$$.fragment,e),o(P.$$.fragment,e),o(K.$$.fragment,e),o(le.$$.fragment,e),o(ne.$$.fragment,e),o(pe.$$.fragment,e),o(oe.$$.fragment,e),o(ye.$$.fragment,e),o(Te.$$.fragment,e),o(de.$$.fragment,e),o(je.$$.fragment,e),o(we.$$.fragment,e),o(be.$$.fragment,e),o($e.$$.fragment,e),o(xe.$$.fragment,e),o(ve.$$.fragment,e),o(_e.$$.fragment,e),Ot=!1},d(e){e&&(s(Ee),s(h),s(Qe),s(Le),s(De),s(Ge),s(Ze),s(ze),s(g),s(Se),s(We),s(v),s(Be),s(Re),s(k),s(Pe),s(U),s(Fe),s(A),s(Xe),s(qe),s(E),s(Ye),s(Q),s(Ke),s(N),s(Oe),s(H),s(et),s(tt),s(L),s(st),s(D),s(lt),s(G),s(nt),s(at),s(z),s(pt),s(it),s(W),s(Mt),s(mt),s(R),s(rt),s(ut),s(F),s(ft),s(X),s(ot),s(q),s(ct),s(Y),s(yt),s(Tt),s(O),s(ht),s(ee),s(dt),s(te),s(Ut),s(se),s(jt),s(wt),s(Jt),s(ae),s(bt),s($t),s(ie),s(Ct),s(j),s(gt),s(Me),s(xt),s(me),s(vt),s(re),s(It),s(ue),s(kt),s(fe),s(At),s(_t),s(ce),s(Et),s(Qt),s(Nt),s(he),s(Ht),s(Vt),s(Ue),s(Lt),s(Dt),s(Gt),s(Je),s(Zt),s(zt),s(St),s(Ce),s(Wt),s(ge),s(Bt),s(Rt),s(Pt),s(Ie),s(Ft),s(ke),s(Xt),s(Ae),s(qt),s(w),s(Yt),s(Kt),s(He)),s(T),c(d,e),c(J,e),c(b,e),c($,e),c(C,e),c(x,e),c(I,e),c(_,e),c(V,e),c(Z,e),c(S,e),c(B,e),c(P,e),c(K,e),c(le,e),c(ne,e),c(pe,e),c(oe,e),c(ye,e),c(Te,e),c(de,e),c(je,e),c(we,e),c(be,e),c($e,e),c(xe,e),c(ve,e),c(_e,e)}}}const sl='{"title":"파이프라인 내부 동작 과정","local":"behind-the-pipeline","sections":[{"title":"토크나이저를 이용한 전처리","local":"preprocessing-with-a-tokenizer","sections":[],"depth":2},{"title":"모델 살펴보기","local":"going-through-the-model","sections":[{"title":"고차원 벡터란?","local":"a-high-dimensional-vector","sections":[],"depth":3},{"title":"모델 헤드: 숫자로 이해하기","local":"model-heads-making-sense-out-of-numbers","sections":[],"depth":3}],"depth":2},{"title":"출력 후처리","local":"postprocessing-the-output","sections":[],"depth":2}],"depth":1}';function ll(es,T,Ee){let h="pt";return Bs(()=>{const Qe=new URLSearchParams(window.location.search);Ee(0,h=Qe.get("fw")||"pt")}),[h]}class ul extends Rs{constructor(T){super(),Ps(this,T,ll,tl,Ws,{})}}export{ul as component};

Xet Storage Details

Size:
35.2 kB
·
Xet hash:
c2db44b0e2f945a58dba2fba93b9605568f9e9674328c82db83d3ab32e1fd1fb

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.