Buckets:
| import{s as vt,n as Nt,o as Vt}from"../chunks/scheduler.505acc25.js";import{S as Gt,i as Et,e as p,s as n,c,h as Xt,a as M,d as l,b as a,f as Zt,g as r,j as i,k as U,l as Wt,m as t,n as y,t as m,o as j,p as u}from"../chunks/index.821724d0.js";import{C as zt,H as o,E as Ht}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.52230fa1.js";import{Y as Xl}from"../chunks/Youtube.c5effbdd.js";import{C as J}from"../chunks/CodeBlock.bb854011.js";import{C as Dt}from"../chunks/CourseFloatingBanner.5b49904d.js";import{Q as le}from"../chunks/Question.33cf0d1a.js";function St(Wl){let T,te,se,ne,k,ae,I,pe,A,Me,Q,zl='<a href="/course/chapter2">이전 챕터</a>의 예제에 이어서, 한 배치에서 시퀀스 분류기를 훈련하는 방법은 다음과 같습니다.',ie,_,ce,B,Hl="물론 두 문장만으로 모델을 훈련하는 것으로는 매우 좋은 결과를 얻을 수 없습니다. 더 나은 결과를 얻으려면 더 큰 데이터 세트를 준비해야 합니다.",re,R,Dl='이 섹션에서는 William B. Dolan과 Chris Brockett의 <a href="https://www.aclweb.org/anthology/I05-5002.pdf" rel="nofollow">논문</a>에서 소개된 MRPC(Microsoft Research Paraphrase Corpus) 데이터 세트를 예제로 사용하겠습니다. 이 데이터 세트는 5,801개의 문장 쌍으로 구성되어 있으며, 각 쌍이 패러프레이즈인지 아닌지를 나타내는 레이블이 있습니다(즉, 두 문장이 같은 의미인지). 이 챕터에서 이 데이터 세트를 선택한 이유는 작은 데이터 세트이므로 훈련 실험을 하기에 쉽기 때문입니다.',ye,Z,me,v,je,N,Sl='Hub에는 모델뿐만 아니라 다양한 언어로 된 여러 데이터 세트도 있습니다. <a href="https://huggingface.co/datasets" rel="nofollow">여기</a>에서 데이터 세트를 찾아볼 수 있으며, 이 섹션을 완료한 후에는 새로운 데이터 세트를 로드하고 처리해보는 것을 권장합니다(<a href="https://huggingface.co/docs/datasets/loading" rel="nofollow">여기</a>에서 일반적인 문서를 참조하세요). 하지만 지금은 MRPC 데이터 세트에 집중해보겠습니다! 이것은 <a href="https://gluebenchmark.com/" rel="nofollow">GLUE 벤치마크</a>를 구성하는 10개 데이터 세트 중 하나로, 10개의 서로 다른 텍스트 분류 작업에 걸쳐 ML 모델의 성능을 측정하는 데 사용되는 학술적 벤치마크입니다.',ue,V,Ll="🤗 Datasets 라이브러리는 Hub에서 데이터 세트를 다운로드하고 캐시하는 매우 간단한 명령을 제공합니다. MRPC 데이터 세트를 다음과 같이 다운로드할 수 있습니다.",Je,d,ql='<p>💡 <strong>추가 자료</strong>: 더 많은 데이터 세트 로딩 기법과 예제를 보려면 <a href="https://huggingface.co/docs/datasets/" rel="nofollow">🤗 Datasets 문서</a>를 확인하세요.</p>',Ue,G,oe,E,Te,X,Yl="보시다시피, 훈련 세트, 검증 세트, 테스트 세트가 포함된 <code>DatasetDict</code> 객체를 얻습니다. 각각은 여러 열(<code>sentence1</code>, <code>sentence2</code>, <code>label</code>, <code>idx</code>)과 가변적인 행 수를 포함하며, 이는 각 세트의 요소 수입니다(따라서 훈련 세트에는 3,668개의 문장 쌍이, 검증 세트에는 408개가, 테스트 세트에는 1,725개가 있습니다).",de,h,Fl="<p>이 명령은 기본적으로 <em>~/.cache/huggingface/datasets</em>에 데이터 세트를 다운로드하고 캐시합니다. 2장에서 언급했듯이 <code>HF_HOME</code> 환경 변수를 설정하여 캐시 폴더를 맞춤 설정할 수 있습니다.</p>",he,W,Pl="딕셔너리처럼 인덱싱하여 <code>raw_datasets</code> 객체의 각 문장 쌍에 접근할 수 있습니다.",fe,z,be,H,we,D,Kl="레이블이 이미 정수로 되어 있으므로 여기서 전처리를 할 필요가 없습니다. 어떤 정수가 어떤 레이블에 해당하는지 알아보려면 <code>raw_train_dataset</code>의 <code>features</code>를 검사하면 됩니다. 이것은 각 열의 타입을 알려줍니다.",xe,S,$e,L,Ce,q,Ol="내부적으로 <code>label</code>은 <code>ClassLabel</code> 타입이며, 정수와 레이블 이름의 매핑이 <em>names</em> 폴더에 저장되어 있습니다. <code>0</code>은 <code>not_equivalent</code>에, <code>1</code>은 <code>equivalent</code>에 해당합니다.",ge,f,st="<p>✏️ <strong>직접 해보기!</strong> 훈련 세트의 15번째 요소와 검증 세트의 87번째 요소를 살펴보세요. 그들의 레이블은 무엇인가요?</p>",ke,Y,Ie,F,Ae,P,et='데이터 세트를 전처리하려면 텍스트를 모델이 이해할 수 있는 숫자로 변환해야 합니다. <a href="/course/chapter2">이전 챕터</a>에서 보았듯이, 이는 토크나이저로 수행됩니다. 토크나이저에 한 문장이나 문장 목록을 입력할 수 있으므로, 다음과 같이 각 쌍의 모든 첫 번째 문장과 모든 두 번째 문장을 직접 토큰화할 수 있습니다.',Qe,K,_e,b,lt='<p>💡 <strong>심화 학습</strong>: 더 고급 토큰화 기법과 다양한 토크나이저가 작동하는 방식을 이해하려면 <a href="https://huggingface.co/docs/transformers/main/en/tokenizer_summary" rel="nofollow">🤗 Tokenizers 문서</a>와 <a href="https://huggingface.co/learn/cookbook/en/advanced_rag#tokenization-strategies" rel="nofollow">쿡북의 토큰화 가이드</a>를 살펴보세요.</p>',Be,O,tt="하지만 두 시퀀스를 모델에 전달하기만 해서는 두 문장이 패러프레이즈인지 아닌지 예측할 수 없습니다. 두 시퀀스를 쌍으로 처리하고 적절한 전처리를 적용해야 합니다. 다행히 토크나이저는 한 쌍의 시퀀스를 받아서 BERT 모델이 기대하는 방식으로 준비할 수도 있습니다.",Re,ss,Ze,es,ve,ls,nt='<a href="/course/chapter2">2장</a>에서 <code>input_ids</code>와 <code>attention_mask</code> 키에 대해 논의했지만, <code>token_type_ids</code>에 대한 이야기는 미뤄두었습니다. 이 예제에서 이것은 입력의 어느 부분이 첫 번째 문장이고 어느 부분이 두 번째 문장인지 모델에 알려주는 역할을 합니다.',Ne,w,at="<p>✏️ <strong>직접 해보기!</strong> 훈련 세트의 15번째 요소를 가져와서 두 문장을 따로따로 토큰화하고 쌍으로도 토큰화해보세요. 두 결과의 차이점은 무엇인가요?</p>",Ve,ts,pt="<code>input_ids</code> 안의 ID를 다시 단어로 디코딩하면",Ge,ns,Ee,as,Mt="다음을 얻습니다.",Xe,ps,We,Ms,it="따라서 모델은 두 문장이 있을 때 입력이 <code>[CLS] sentence1 [SEP] sentence2 [SEP]</code> 형태이기를 기대한다는 것을 알 수 있습니다. 이를 <code>token_type_ids</code>와 맞춰보면",ze,is,He,cs,ct="보시다시피, <code>[CLS] sentence1 [SEP]</code>에 해당하는 입력 부분은 모두 토큰 타입 ID가 <code>0</code>이고, <code>sentence2 [SEP]</code>에 해당하는 다른 부분들은 모두 토큰 타입 ID가 <code>1</code>입니다.",De,rs,rt="다른 체크포인트(checkpoint)를 선택하면 토큰화된 입력에 <code>token_type_ids</code>가 반드시 있지는 않다는 점에 주의하세요(예를 들어, DistilBERT 모델을 사용하면 반환되지 않습니다). 모델이 사전 훈련 중에 이를 본 적이 있어서 무엇을 해야 할지 알 때만 반환됩니다.",Se,ys,yt='여기서 BERT는 토큰 타입 ID로 사전 훈련되었으며, <a href="/course/chapter1">1장</a>에서 이야기한 마스크드 언어 모델링 목표 외에도 <em>다음 문장 예측</em>이라는 추가 목표를 가지고 있습니다. 이 작업의 목표는 문장 쌍 간의 관계를 모델링하는 것입니다.',Le,ms,mt="다음 문장 예측에서는 모델에 문장 쌍(무작위로 마스킹된 토큰과 함께)이 제공되고 두 번째 문장이 첫 번째 문장을 따르는지 예측하도록 요청받습니다. 작업을 쉽지 않게 만들기 위해, 절반의 경우에는 문장들이 추출된 원본 문서에서 서로를 따르고, 나머지 절반의 경우에는 두 문장이 서로 다른 문서에서 나옵니다.",qe,js,jt="일반적으로 토큰화된 입력에 <code>token_type_ids</code>가 있는지 여부에 대해 걱정할 필요는 없습니다. 토크나이저와 모델에 동일한 체크포인트(checkpoint)를 사용하는 한, 토크나이저가 모델에 제공해야 할 것을 알고 있으므로 모든 것이 잘 될 것입니다.",Ye,us,ut='이제 토크나이저가 한 쌍의 문장을 어떻게 처리할 수 있는지 보았으므로, 이를 사용하여 전체 데이터 세트를 토큰화할 수 있습니다: <a href="/course/chapter2">이전 챕터</a>에서처럼, 첫 번째 문장 목록과 두 번째 문장 목록을 제공하여 토크나이저에 문장 쌍 목록을 입력할 수 있습니다. 이는 <a href="/course/chapter2">2장</a>에서 본 패딩과 생략 옵션과도 호환됩니다. 따라서 훈련 데이터 세트를 전처리하는 한 가지 방법은',Fe,Js,Pe,Us,Jt='이것은 잘 작동하지만, 딕셔너리(키는 <code>input_ids</code>, <code>attention_mask</code>, <code>token_type_ids</code>이고 값은 목록의 목록)를 반환한다는 단점이 있습니다. 또한 토큰화 중에 전체 데이터 세트를 메모리에 저장할 수 있는 충분한 RAM이 있는 경우에만 작동합니다(🤗 Datasets 라이브러리의 데이터 세트는 디스크에 저장된 <a href="https://arrow.apache.org/" rel="nofollow">Apache Arrow</a> 파일이므로, 요청한 샘플만 메모리에 로드됩니다).',Ke,os,Ut='데이터를 데이터 세트로 유지하려면 <a href="https://huggingface.co/docs/datasets/package_reference/main_classes#datasets.Dataset.map" rel="nofollow"><code>Dataset.map()</code></a> 메소드를 사용하겠습니다. 이는 토큰화 이상의 전처리가 필요한 경우 추가적인 유연성도 제공합니다. <code>map()</code> 메소드는 데이터 세트의 각 요소에 함수를 적용하여 작동하므로, 입력을 토큰화하는 함수를 정의해보겠습니다.',Oe,Ts,sl,ds,ot='이 함수는 딕셔너리(데이터 세트의 항목과 같은)를 받아서 <code>input_ids</code>, <code>attention_mask</code>, <code>token_type_ids</code> 키가 있는 새 딕셔너리를 반환합니다. <code>example</code> 딕셔너리에 여러 샘플이 포함되어 있어도(각 키가 문장 목록으로) 작동한다는 점에 주목하세요. 앞서 본 것처럼 <code>tokenizer</code>는 문장 쌍의 목록에서 작동하기 때문입니다. 이를 통해 <code>map()</code> 호출에서 <code>batched=True</code> 옵션을 사용할 수 있으며, 이는 토큰화를 크게 가속화할 것입니다. <code>tokenizer</code>는 <a href="https://github.com/huggingface/tokenizers" rel="nofollow">🤗 Tokenizers</a> 라이브러리의 Rust로 작성된 토크나이저로 뒷받침됩니다. 이 토크나이저는 매우 빠를 수 있지만, 한 번에 많은 입력을 제공해야만 그렇습니다.',el,hs,Tt="지금은 토큰화 함수에서 <code>padding</code> 인수를 빼둔 것에 주목하세요. 모든 샘플을 최대 길이로 패딩하는 것은 효율적이지 않기 때문입니다. 배치를 만들 때 샘플을 패딩하는 것이 더 좋습니다. 그러면 해당 배치의 최대 길이까지만 패딩하면 되고, 전체 데이터 세트의 최대 길이까지 패딩할 필요가 없기 때문입니다. 입력의 길이가 매우 다양할 때 많은 시간과 처리 능력을 절약할 수 있습니다!",ll,x,dt='<p>📚 <strong>성능 팁</strong>: 효율적인 데이터 처리 기법에 대한 자세한 내용은 <a href="https://huggingface.co/docs/datasets/about_arrow" rel="nofollow">🤗 Datasets 성능 가이드</a>에서 배울 수 있습니다.</p>',tl,fs,ht="다음은 모든 데이터 세트에 토큰화 함수를 한 번에 적용하는 방법입니다. <code>map</code> 호출에서 <code>batched=True</code>를 사용하므로 함수가 데이터 세트의 각 요소에 개별적으로가 아니라 여러 요소에 한 번에 적용됩니다. 이를 통해 더 빠른 전처리가 가능합니다.",nl,bs,al,ws,ft="🤗 Datasets 라이브러리가 이 처리를 적용하는 방식은 전처리 함수가 반환하는 딕셔너리의 각 키에 대해 데이터 세트에 새 필드를 추가하는 것입니다.",pl,xs,Ml,$s,bt="<code>num_proc</code> 인수를 전달하여 <code>map()</code>으로 전처리 함수를 적용할 때 멀티프로세싱을 사용할 수도 있습니다. 🤗 Tokenizers 라이브러리가 이미 여러 스레드를 사용하여 샘플을 더 빠르게 토큰화하므로 여기서는 이를 사용하지 않았지만, 이 라이브러리가 뒷받침하는 빠른 토크나이저를 사용하지 않는다면 전처리 속도를 높일 수 있습니다.",il,Cs,wt="우리의 <code>tokenize_function</code>은 <code>input_ids</code>, <code>attention_mask</code>, <code>token_type_ids</code> 키가 있는 딕셔너리를 반환하므로, 이 세 필드가 데이터 세트의 모든 분할에 추가됩니다. 전처리 함수가 <code>map()</code>을 적용한 데이터 세트의 기존 키에 대한 새 값을 반환한다면 기존 필드를 변경할 수도 있었을 것입니다.",cl,gs,xt="마지막으로 해야 할 일은 요소들을 배치로 묶을 때 모든 예제를 가장 긴 요소의 길이로 패딩하는 것입니다 — 이 기법을 <em>동적 패딩</em>이라고 합니다.",rl,ks,yl,Is,ml,As,$t="배치 내에서 샘플들을 함께 배치하는 역할을 하는 함수를 <em>collate function</em>이라고 합니다. 이는 <code>DataLoader</code>를 구축할 때 전달할 수 있는 인수로, 기본값은 샘플을 PyTorch 텐서로 변환하고 연결하는 함수입니다(요소가 목록, 튜플 또는 딕셔너리인 경우 재귀적으로). 우리의 경우 입력이 모두 같은 크기가 아니므로 이것은 불가능할 것입니다. 우리는 의도적으로 패딩을 연기하여 각 배치에서만 필요에 따라 적용하고 많은 패딩이 있는 지나치게 긴 입력을 피했습니다. 이것은 훈련을 상당히 가속화할 것이지만, TPU에서 훈련하는 경우 문제를 일으킬 수 있다는 점에 주의하세요 — TPU는 추가 패딩이 필요하더라도 고정된 모양을 선호합니다.",jl,$,Ct='<p>🚀 <strong>최적화 가이드</strong>: 패딩 전략과 TPU 고려사항을 포함한 훈련 성능 최적화에 대한 자세한 내용은 <a href="https://huggingface.co/docs/transformers/main/en/performance" rel="nofollow">🤗 Transformers 성능 문서</a>를 참조하세요.</p>',ul,Qs,gt="실제로 이를 수행하려면 함께 배치하려는 데이터 세트 항목에 적절한 양의 패딩을 적용할 collate function을 정의해야 합니다. 다행히 🤗 Transformers 라이브러리는 <code>DataCollatorWithPadding</code>을 통해 이러한 함수를 제공합니다. 인스턴스화할 때 토크나이저를 받아서(어떤 패딩 토큰을 사용할지, 모델이 입력의 왼쪽 또는 오른쪽에 패딩을 기대하는지 알기 위해) 필요한 모든 것을 수행합니다.",Jl,_s,Ul,Bs,kt="이 새로운 도구를 테스트하기 위해, 함께 배치하고 싶은 훈련 세트에서 몇 개의 샘플을 가져와보겠습니다. 여기서는 <code>idx</code>, <code>sentence1</code>, <code>sentence2</code> 열을 제거합니다. 이들은 필요하지 않고 문자열을 포함하고 있으며(문자열로는 텐서를 만들 수 없음), 배치의 각 항목 길이를 살펴보겠습니다.",ol,Rs,Tl,Zs,dl,vs,It="당연히 32부터 67까지 다양한 길이의 샘플을 얻습니다. 동적 패딩은 이 배치의 샘플들이 모두 배치 내 최대 길이인 67로 패딩되어야 함을 의미합니다. 동적 패딩이 없다면, 모든 샘플이 전체 데이터 세트의 최대 길이나 모델이 받을 수 있는 최대 길이로 패딩되어야 할 것입니다. <code>data_collator</code>가 배치를 동적으로 올바르게 패딩하는지 다시 확인해보겠습니다.",hl,Ns,fl,Vs,bl,Gs,At="좋아 보입니다! 이제 원시 텍스트에서 모델이 처리할 수 있는 배치까지 만들었으므로, 미세 조정할 준비가 되었습니다!",wl,C,Qt='<p>✏️ <strong>직접 해보기!</strong> GLUE SST-2 데이터 세트에서 전처리를 복제해보세요. 쌍이 아닌 단일 문장으로 구성되어 있어 약간 다르지만, 나머지는 동일하게 보일 것입니다. 더 어려운 도전을 위해서는 GLUE 작업 중 어떤 것에서도 작동하는 전처리 함수를 작성해보세요.</p> <p>📖 <strong>추가 연습</strong>: <a href="https://huggingface.co/docs/transformers/main/en/notebooks" rel="nofollow">🤗 Transformers 예제</a>에서 이러한 실습 예제들을 확인해보세요.</p>',xl,Es,_t="완벽합니다! 이제 🤗 Datasets 라이브러리의 최신 모범 사례로 데이터를 전처리했으므로, 최신 Trainer API를 사용하여 모델을 훈련할 준비가 되었습니다. 다음 섹션에서는 Hugging Face 생태계에서 사용할 수 있는 최신 기능과 최적화를 사용하여 모델을 효과적으로 미세 조정하는 방법을 보여드리겠습니다.",$l,Xs,Cl,Ws,Bt="데이터 처리 개념에 대한 이해도를 테스트해보세요.",gl,zs,kl,Hs,Il,Ds,Al,Ss,Ql,Ls,_l,qs,Bl,Ys,Rl,Fs,Zl,Ps,vl,Ks,Nl,g,Rt="<p>💡 <strong>핵심 요점</strong></p> <ul><li>전처리를 훨씬 빠르게 하려면 <code>Dataset.map()</code>에서 <code>batched=True</code>를 사용하세요</li> <li><code>DataCollatorWithPadding</code>을 사용한 동적 패딩이 고정 길이 패딩보다 효율적입니다</li> <li>모델의 추론 결과물(수치적 텐서, 올바른 열 이름)에 맞게 항상 데이터를 전처리하세요</li> <li>🤗 Datasets 라이브러리는 대규모 효율적인 데이터 처리를 위한 강력한 도구를 제공합니다</li></ul>",Vl,Os,Gl,ee,El;return k=new zt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),I=new o({props:{title:"데이터 처리",local:"processing-the-data",headingTag:"h1"}}),A=new Dt({props:{chapter:3,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/chapter3/section2.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter3/section2.ipynb"}]}}),_=new J({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwdG9yY2gub3B0aW0lMjBpbXBvcnQlMjBBZGFtVyUwQWZyb20lMjB0cmFuc2Zvcm1lcnMlMjBpbXBvcnQlMjBBdXRvVG9rZW5pemVyJTJDJTIwQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbiUwQSUwQSUyMyUyMCVFQyU5RCVCNCVFQyVBMCU4NCVFQSVCMyVCQyUyMCVFQiU4RiU5OSVFQyU5RCVCQyUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJiZXJ0LWJhc2UtdW5jYXNlZCUyMiUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQXNlcXVlbmNlcyUyMCUzRCUyMCU1QiUwQSUyMCUyMCUyMCUyMCUyMkkndmUlMjBiZWVuJTIwd2FpdGluZyUyMGZvciUyMGElMjBIdWdnaW5nRmFjZSUyMGNvdXJzZSUyMG15JTIwd2hvbGUlMjBsaWZlLiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMlRoaXMlMjBjb3Vyc2UlMjBpcyUyMGFtYXppbmchJTIyJTJDJTBBJTVEJTBBYmF0Y2glMjAlM0QlMjB0b2tlbml6ZXIoc2VxdWVuY2VzJTJDJTIwcGFkZGluZyUzRFRydWUlMkMlMjB0cnVuY2F0aW9uJTNEVHJ1ZSUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIycHQlMjIpJTBBJTBBJTIzJTIwJUVDJTk3JUFDJUVBJUI4JUIwJUVBJUIwJTgwJTIwJUVDJTgzJTg4JUVCJUExJTlDJUVDJTlBJUI0JTIwJUVCJUI2JTgwJUVCJUI2JTg0JTBBYmF0Y2glNUIlMjJsYWJlbHMlMjIlNUQlMjAlM0QlMjB0b3JjaC50ZW5zb3IoJTVCMSUyQyUyMDElNUQpJTBBJTBBb3B0aW1pemVyJTIwJTNEJTIwQWRhbVcobW9kZWwucGFyYW1ldGVycygpKSUwQWxvc3MlMjAlM0QlMjBtb2RlbCgqKmJhdGNoKS5sb3NzJTBBbG9zcy5iYWNrd2FyZCgpJTBBb3B0aW1pemVyLnN0ZXAoKQ==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> torch.optim <span class="hljs-keyword">import</span> AdamW | |
| <span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, AutoModelForSequenceClassification | |
| <span class="hljs-comment"># 이전과 동일</span> | |
| checkpoint = <span class="hljs-string">"bert-base-uncased"</span> | |
| tokenizer = AutoTokenizer.from_pretrained(checkpoint) | |
| model = AutoModelForSequenceClassification.from_pretrained(checkpoint) | |
| sequences = [ | |
| <span class="hljs-string">"I've been waiting for a HuggingFace course my whole life."</span>, | |
| <span class="hljs-string">"This course is amazing!"</span>, | |
| ] | |
| batch = tokenizer(sequences, 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-comment"># 여기가 새로운 부분</span> | |
| batch[<span class="hljs-string">"labels"</span>] = torch.tensor([<span class="hljs-number">1</span>, <span class="hljs-number">1</span>]) | |
| optimizer = AdamW(model.parameters()) | |
| loss = model(**batch).loss | |
| loss.backward() | |
| optimizer.step()`,wrap:!1}}),Z=new o({props:{title:"Hub에서 데이터 세트 가져오기",local:"loading-a-dataset-from-the-hub",headingTag:"h3"}}),v=new Xl({props:{id:"_BZearw7f0w"}}),G=new J({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBJTBBcmF3X2RhdGFzZXRzJTIwJTNEJTIwbG9hZF9kYXRhc2V0KCUyMmdsdWUlMjIlMkMlMjAlMjJtcnBjJTIyKSUwQXJhd19kYXRhc2V0cw==",highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset | |
| raw_datasets = load_dataset(<span class="hljs-string">"glue"</span>, <span class="hljs-string">"mrpc"</span>) | |
| raw_datasets`,wrap:!1}}),E=new J({props:{code:"RGF0YXNldERpY3QoJTdCJTBBJTIwJTIwJTIwJTIwdHJhaW4lM0ElMjBEYXRhc2V0KCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZlYXR1cmVzJTNBJTIwJTVCJ3NlbnRlbmNlMSclMkMlMjAnc2VudGVuY2UyJyUyQyUyMCdsYWJlbCclMkMlMjAnaWR4JyU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG51bV9yb3dzJTNBJTIwMzY2OCUwQSUyMCUyMCUyMCUyMCU3RCklMEElMjAlMjAlMjAlMjB2YWxpZGF0aW9uJTNBJTIwRGF0YXNldCglN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBmZWF0dXJlcyUzQSUyMCU1QidzZW50ZW5jZTEnJTJDJTIwJ3NlbnRlbmNlMiclMkMlMjAnbGFiZWwnJTJDJTIwJ2lkeCclNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBudW1fcm93cyUzQSUyMDQwOCUwQSUyMCUyMCUyMCUyMCU3RCklMEElMjAlMjAlMjAlMjB0ZXN0JTNBJTIwRGF0YXNldCglN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBmZWF0dXJlcyUzQSUyMCU1QidzZW50ZW5jZTEnJTJDJTIwJ3NlbnRlbmNlMiclMkMlMjAnbGFiZWwnJTJDJTIwJ2lkeCclNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBudW1fcm93cyUzQSUyMDE3MjUlMEElMjAlMjAlMjAlMjAlN0QpJTBBJTdEKQ==",highlighted:`DatasetDict({ | |
| train: Dataset({ | |
| features: [<span class="hljs-string">'sentence1'</span>, <span class="hljs-string">'sentence2'</span>, <span class="hljs-string">'label'</span>, <span class="hljs-string">'idx'</span>], | |
| num_rows: <span class="hljs-number">3668</span> | |
| }) | |
| validation: Dataset({ | |
| features: [<span class="hljs-string">'sentence1'</span>, <span class="hljs-string">'sentence2'</span>, <span class="hljs-string">'label'</span>, <span class="hljs-string">'idx'</span>], | |
| num_rows: <span class="hljs-number">408</span> | |
| }) | |
| test: Dataset({ | |
| features: [<span class="hljs-string">'sentence1'</span>, <span class="hljs-string">'sentence2'</span>, <span class="hljs-string">'label'</span>, <span class="hljs-string">'idx'</span>], | |
| num_rows: <span class="hljs-number">1725</span> | |
| }) | |
| })`,wrap:!1}}),z=new J({props:{code:"cmF3X3RyYWluX2RhdGFzZXQlMjAlM0QlMjByYXdfZGF0YXNldHMlNUIlMjJ0cmFpbiUyMiU1RCUwQXJhd190cmFpbl9kYXRhc2V0JTVCMCU1RA==",highlighted:`raw_train_dataset = raw_datasets[<span class="hljs-string">"train"</span>] | |
| raw_train_dataset[<span class="hljs-number">0</span>]`,wrap:!1}}),H=new J({props:{code:"JTdCJ2lkeCclM0ElMjAwJTJDJTBBJTIwJ2xhYmVsJyUzQSUyMDElMkMlMEElMjAnc2VudGVuY2UxJyUzQSUyMCdBbXJvemklMjBhY2N1c2VkJTIwaGlzJTIwYnJvdGhlciUyMCUyQyUyMHdob20lMjBoZSUyMGNhbGxlZCUyMCUyMiUyMHRoZSUyMHdpdG5lc3MlMjAlMjIlMjAlMkMlMjBvZiUyMGRlbGliZXJhdGVseSUyMGRpc3RvcnRpbmclMjBoaXMlMjBldmlkZW5jZSUyMC4nJTJDJTBBJTIwJ3NlbnRlbmNlMiclM0ElMjAnUmVmZXJyaW5nJTIwdG8lMjBoaW0lMjBhcyUyMG9ubHklMjAlMjIlMjB0aGUlMjB3aXRuZXNzJTIwJTIyJTIwJTJDJTIwQW1yb3ppJTIwYWNjdXNlZCUyMGhpcyUyMGJyb3RoZXIlMjBvZiUyMGRlbGliZXJhdGVseSUyMGRpc3RvcnRpbmclMjBoaXMlMjBldmlkZW5jZSUyMC4nJTdE",highlighted:`{<span class="hljs-string">'idx'</span>: <span class="hljs-number">0</span>, | |
| <span class="hljs-string">'label'</span>: <span class="hljs-number">1</span>, | |
| <span class="hljs-string">'sentence1'</span>: <span class="hljs-string">'Amrozi accused his brother , whom he called " the witness " , of deliberately distorting his evidence .'</span>, | |
| <span class="hljs-string">'sentence2'</span>: <span class="hljs-string">'Referring to him as only " the witness " , Amrozi accused his brother of deliberately distorting his evidence .'</span>}`,wrap:!1}}),S=new J({props:{code:"cmF3X3RyYWluX2RhdGFzZXQuZmVhdHVyZXM=",highlighted:"raw_train_dataset.features",wrap:!1}}),L=new J({props:{code:"JTdCJ3NlbnRlbmNlMSclM0ElMjBWYWx1ZShkdHlwZSUzRCdzdHJpbmcnJTJDJTIwaWQlM0ROb25lKSUyQyUwQSUyMCdzZW50ZW5jZTInJTNBJTIwVmFsdWUoZHR5cGUlM0Qnc3RyaW5nJyUyQyUyMGlkJTNETm9uZSklMkMlMEElMjAnbGFiZWwnJTNBJTIwQ2xhc3NMYWJlbChudW1fY2xhc3NlcyUzRDIlMkMlMjBuYW1lcyUzRCU1Qidub3RfZXF1aXZhbGVudCclMkMlMjAnZXF1aXZhbGVudCclNUQlMkMlMjBuYW1lc19maWxlJTNETm9uZSUyQyUyMGlkJTNETm9uZSklMkMlMEElMjAnaWR4JyUzQSUyMFZhbHVlKGR0eXBlJTNEJ2ludDMyJyUyQyUyMGlkJTNETm9uZSklN0Q=",highlighted:`{<span class="hljs-string">'sentence1'</span>: Value(dtype=<span class="hljs-string">'string'</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>), | |
| <span class="hljs-string">'sentence2'</span>: Value(dtype=<span class="hljs-string">'string'</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>), | |
| <span class="hljs-string">'label'</span>: ClassLabel(num_classes=<span class="hljs-number">2</span>, names=[<span class="hljs-string">'not_equivalent'</span>, <span class="hljs-string">'equivalent'</span>], names_file=<span class="hljs-literal">None</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>), | |
| <span class="hljs-string">'idx'</span>: Value(dtype=<span class="hljs-string">'int32'</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>)}`,wrap:!1}}),Y=new o({props:{title:"데이터 세트 전처리",local:"preprocessing-a-dataset",headingTag:"h3"}}),F=new Xl({props:{id:"0u3ioSwev3s"}}),K=new J({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEElMEFjaGVja3BvaW50JTIwJTNEJTIwJTIyYmVydC1iYXNlLXVuY2FzZWQlMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQXRva2VuaXplZF9zZW50ZW5jZXNfMSUyMCUzRCUyMHRva2VuaXplcihyYXdfZGF0YXNldHMlNUIlMjJ0cmFpbiUyMiU1RCU1QiUyMnNlbnRlbmNlMSUyMiU1RCklMEF0b2tlbml6ZWRfc2VudGVuY2VzXzIlMjAlM0QlMjB0b2tlbml6ZXIocmF3X2RhdGFzZXRzJTVCJTIydHJhaW4lMjIlNUQlNUIlMjJzZW50ZW5jZTIlMjIlNUQp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer | |
| checkpoint = <span class="hljs-string">"bert-base-uncased"</span> | |
| tokenizer = AutoTokenizer.from_pretrained(checkpoint) | |
| tokenized_sentences_1 = tokenizer(raw_datasets[<span class="hljs-string">"train"</span>][<span class="hljs-string">"sentence1"</span>]) | |
| tokenized_sentences_2 = tokenizer(raw_datasets[<span class="hljs-string">"train"</span>][<span class="hljs-string">"sentence2"</span>])`,wrap:!1}}),ss=new J({props:{code:"aW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKCUyMlRoaXMlMjBpcyUyMHRoZSUyMGZpcnN0JTIwc2VudGVuY2UuJTIyJTJDJTIwJTIyVGhpcyUyMGlzJTIwdGhlJTIwc2Vjb25kJTIwb25lLiUyMiklMEFpbnB1dHM=",highlighted:`inputs = tokenizer(<span class="hljs-string">"This is the first sentence."</span>, <span class="hljs-string">"This is the second one."</span>) | |
| inputs`,wrap:!1}}),es=new J({props:{code:"JTdCJTIwJTBBJTIwJTIwJ2lucHV0X2lkcyclM0ElMjAlNUIxMDElMkMlMjAyMDIzJTJDJTIwMjAwMyUyQyUyMDE5OTYlMkMlMjAyMDM0JTJDJTIwNjI1MSUyQyUyMDEwMTIlMkMlMjAxMDIlMkMlMjAyMDIzJTJDJTIwMjAwMyUyQyUyMDE5OTYlMkMlMjAyMTE3JTJDJTIwMjAyOCUyQyUyMDEwMTIlMkMlMjAxMDIlNUQlMkMlMEElMjAlMjAndG9rZW5fdHlwZV9pZHMnJTNBJTIwJTVCMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTVEJTJDJTBBJTIwJTIwJ2F0dGVudGlvbl9tYXNrJyUzQSUyMCU1QjElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSUyQyUyMDElMkMlMjAxJTJDJTIwMSU1RCUwQSU3RA==",highlighted:`{ | |
| <span class="hljs-string">'input_ids'</span>: [<span class="hljs-number">101</span>, <span class="hljs-number">2023</span>, <span class="hljs-number">2003</span>, <span class="hljs-number">1996</span>, <span class="hljs-number">2034</span>, <span class="hljs-number">6251</span>, <span class="hljs-number">1012</span>, <span class="hljs-number">102</span>, <span class="hljs-number">2023</span>, <span class="hljs-number">2003</span>, <span class="hljs-number">1996</span>, <span class="hljs-number">2117</span>, <span class="hljs-number">2028</span>, <span class="hljs-number">1012</span>, <span class="hljs-number">102</span>], | |
| <span class="hljs-string">'token_type_ids'</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">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-string">'attention_mask'</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>] | |
| }`,wrap:!1}}),ns=new J({props:{code:"dG9rZW5pemVyLmNvbnZlcnRfaWRzX3RvX3Rva2VucyhpbnB1dHMlNUIlMjJpbnB1dF9pZHMlMjIlNUQp",highlighted:'tokenizer.convert_ids_to_tokens(inputs[<span class="hljs-string">"input_ids"</span>])',wrap:!1}}),ps=new J({props:{code:"JTVCJyU1QkNMUyU1RCclMkMlMjAndGhpcyclMkMlMjAnaXMnJTJDJTIwJ3RoZSclMkMlMjAnZmlyc3QnJTJDJTIwJ3NlbnRlbmNlJyUyQyUyMCcuJyUyQyUyMCclNUJTRVAlNUQnJTJDJTIwJ3RoaXMnJTJDJTIwJ2lzJyUyQyUyMCd0aGUnJTJDJTIwJ3NlY29uZCclMkMlMjAnb25lJyUyQyUyMCcuJyUyQyUyMCclNUJTRVAlNUQnJTVE",highlighted:'[<span class="hljs-string">'[CLS]'</span>, <span class="hljs-string">'this'</span>, <span class="hljs-string">'is'</span>, <span class="hljs-string">'the'</span>, <span class="hljs-string">'first'</span>, <span class="hljs-string">'sentence'</span>, <span class="hljs-string">'.'</span>, <span class="hljs-string">'[SEP]'</span>, <span class="hljs-string">'this'</span>, <span class="hljs-string">'is'</span>, <span class="hljs-string">'the'</span>, <span class="hljs-string">'second'</span>, <span class="hljs-string">'one'</span>, <span class="hljs-string">'.'</span>, <span class="hljs-string">'[SEP]'</span>]',wrap:!1}}),is=new J({props:{code:"JTVCJyU1QkNMUyU1RCclMkMlMjAndGhpcyclMkMlMjAnaXMnJTJDJTIwJ3RoZSclMkMlMjAnZmlyc3QnJTJDJTIwJ3NlbnRlbmNlJyUyQyUyMCcuJyUyQyUyMCclNUJTRVAlNUQnJTJDJTIwJ3RoaXMnJTJDJTIwJ2lzJyUyQyUyMCd0aGUnJTJDJTIwJ3NlY29uZCclMkMlMjAnb25lJyUyQyUyMCcuJyUyQyUyMCclNUJTRVAlNUQnJTVEJTBBJTVCJTIwJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAwJTJDJTIwJTIwJTIwMCUyQyUyMCUyMCUyMCUyMCUyMCUyMCUyMDAlMkMlMjAlMjAlMjAlMjAlMjAlMjAxJTJDJTIwJTIwJTIwJTIwMSUyQyUyMCUyMCUyMCUyMCUyMDElMkMlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAxJTJDJTIwJTIwJTIwJTIwJTIwMSUyQyUyMCUyMCUyMDElMkMlMjAlMjAlMjAlMjAlMjAlMjAlMjAxJTVE",highlighted:`[<span class="hljs-string">'[CLS]'</span>, <span class="hljs-string">'this'</span>, <span class="hljs-string">'is'</span>, <span class="hljs-string">'the'</span>, <span class="hljs-string">'first'</span>, <span class="hljs-string">'sentence'</span>, <span class="hljs-string">'.'</span>, <span class="hljs-string">'[SEP]'</span>, <span class="hljs-string">'this'</span>, <span class="hljs-string">'is'</span>, <span class="hljs-string">'the'</span>, <span class="hljs-string">'second'</span>, <span class="hljs-string">'one'</span>, <span class="hljs-string">'.'</span>, <span class="hljs-string">'[SEP]'</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">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>]`,wrap:!1}}),Js=new J({props:{code:"dG9rZW5pemVkX2RhdGFzZXQlMjAlM0QlMjB0b2tlbml6ZXIoJTBBJTIwJTIwJTIwJTIwcmF3X2RhdGFzZXRzJTVCJTIydHJhaW4lMjIlNUQlNUIlMjJzZW50ZW5jZTElMjIlNUQlMkMlMEElMjAlMjAlMjAlMjByYXdfZGF0YXNldHMlNUIlMjJ0cmFpbiUyMiU1RCU1QiUyMnNlbnRlbmNlMiUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMHBhZGRpbmclM0RUcnVlJTJDJTBBJTIwJTIwJTIwJTIwdHJ1bmNhdGlvbiUzRFRydWUlMkMlMEEp",highlighted:`tokenized_dataset = tokenizer( | |
| raw_datasets[<span class="hljs-string">"train"</span>][<span class="hljs-string">"sentence1"</span>], | |
| raw_datasets[<span class="hljs-string">"train"</span>][<span class="hljs-string">"sentence2"</span>], | |
| padding=<span class="hljs-literal">True</span>, | |
| truncation=<span class="hljs-literal">True</span>, | |
| )`,wrap:!1}}),Ts=new J({props:{code:"ZGVmJTIwdG9rZW5pemVfZnVuY3Rpb24oZXhhbXBsZSklM0ElMEElMjAlMjAlMjAlMjByZXR1cm4lMjB0b2tlbml6ZXIoZXhhbXBsZSU1QiUyMnNlbnRlbmNlMSUyMiU1RCUyQyUyMGV4YW1wbGUlNUIlMjJzZW50ZW5jZTIlMjIlNUQlMkMlMjB0cnVuY2F0aW9uJTNEVHJ1ZSk=",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">tokenize_function</span>(<span class="hljs-params">example</span>): | |
| <span class="hljs-keyword">return</span> tokenizer(example[<span class="hljs-string">"sentence1"</span>], example[<span class="hljs-string">"sentence2"</span>], truncation=<span class="hljs-literal">True</span>)`,wrap:!1}}),bs=new J({props:{code:"dG9rZW5pemVkX2RhdGFzZXRzJTIwJTNEJTIwcmF3X2RhdGFzZXRzLm1hcCh0b2tlbml6ZV9mdW5jdGlvbiUyQyUyMGJhdGNoZWQlM0RUcnVlKSUwQXRva2VuaXplZF9kYXRhc2V0cw==",highlighted:`tokenized_datasets = raw_datasets.<span class="hljs-built_in">map</span>(tokenize_function, batched=<span class="hljs-literal">True</span>) | |
| tokenized_datasets`,wrap:!1}}),xs=new J({props:{code:"RGF0YXNldERpY3QoJTdCJTBBJTIwJTIwJTIwJTIwdHJhaW4lM0ElMjBEYXRhc2V0KCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZlYXR1cmVzJTNBJTIwJTVCJ2F0dGVudGlvbl9tYXNrJyUyQyUyMCdpZHgnJTJDJTIwJ2lucHV0X2lkcyclMkMlMjAnbGFiZWwnJTJDJTIwJ3NlbnRlbmNlMSclMkMlMjAnc2VudGVuY2UyJyUyQyUyMCd0b2tlbl90eXBlX2lkcyclNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBudW1fcm93cyUzQSUyMDM2NjglMEElMjAlMjAlMjAlMjAlN0QpJTBBJTIwJTIwJTIwJTIwdmFsaWRhdGlvbiUzQSUyMERhdGFzZXQoJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmVhdHVyZXMlM0ElMjAlNUInYXR0ZW50aW9uX21hc2snJTJDJTIwJ2lkeCclMkMlMjAnaW5wdXRfaWRzJyUyQyUyMCdsYWJlbCclMkMlMjAnc2VudGVuY2UxJyUyQyUyMCdzZW50ZW5jZTInJTJDJTIwJ3Rva2VuX3R5cGVfaWRzJyU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG51bV9yb3dzJTNBJTIwNDA4JTBBJTIwJTIwJTIwJTIwJTdEKSUwQSUyMCUyMCUyMCUyMHRlc3QlM0ElMjBEYXRhc2V0KCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZlYXR1cmVzJTNBJTIwJTVCJ2F0dGVudGlvbl9tYXNrJyUyQyUyMCdpZHgnJTJDJTIwJ2lucHV0X2lkcyclMkMlMjAnbGFiZWwnJTJDJTIwJ3NlbnRlbmNlMSclMkMlMjAnc2VudGVuY2UyJyUyQyUyMCd0b2tlbl90eXBlX2lkcyclNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBudW1fcm93cyUzQSUyMDE3MjUlMEElMjAlMjAlMjAlMjAlN0QpJTBBJTdEKQ==",highlighted:`DatasetDict({ | |
| train: Dataset({ | |
| features: [<span class="hljs-string">'attention_mask'</span>, <span class="hljs-string">'idx'</span>, <span class="hljs-string">'input_ids'</span>, <span class="hljs-string">'label'</span>, <span class="hljs-string">'sentence1'</span>, <span class="hljs-string">'sentence2'</span>, <span class="hljs-string">'token_type_ids'</span>], | |
| num_rows: <span class="hljs-number">3668</span> | |
| }) | |
| validation: Dataset({ | |
| features: [<span class="hljs-string">'attention_mask'</span>, <span class="hljs-string">'idx'</span>, <span class="hljs-string">'input_ids'</span>, <span class="hljs-string">'label'</span>, <span class="hljs-string">'sentence1'</span>, <span class="hljs-string">'sentence2'</span>, <span class="hljs-string">'token_type_ids'</span>], | |
| num_rows: <span class="hljs-number">408</span> | |
| }) | |
| test: Dataset({ | |
| features: [<span class="hljs-string">'attention_mask'</span>, <span class="hljs-string">'idx'</span>, <span class="hljs-string">'input_ids'</span>, <span class="hljs-string">'label'</span>, <span class="hljs-string">'sentence1'</span>, <span class="hljs-string">'sentence2'</span>, <span class="hljs-string">'token_type_ids'</span>], | |
| num_rows: <span class="hljs-number">1725</span> | |
| }) | |
| })`,wrap:!1}}),ks=new o({props:{title:"동적 패딩",local:"dynamic-padding",headingTag:"h5"}}),Is=new Xl({props:{id:"7q5NyFT8REg"}}),_s=new J({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMERhdGFDb2xsYXRvcldpdGhQYWRkaW5nJTBBJTBBZGF0YV9jb2xsYXRvciUyMCUzRCUyMERhdGFDb2xsYXRvcldpdGhQYWRkaW5nKHRva2VuaXplciUzRHRva2VuaXplcik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> DataCollatorWithPadding | |
| data_collator = DataCollatorWithPadding(tokenizer=tokenizer)`,wrap:!1}}),Rs=new J({props:{code:"c2FtcGxlcyUyMCUzRCUyMHRva2VuaXplZF9kYXRhc2V0cyU1QiUyMnRyYWluJTIyJTVEJTVCJTNBOCU1RCUwQXNhbXBsZXMlMjAlM0QlMjAlN0JrJTNBJTIwdiUyMGZvciUyMGslMkMlMjB2JTIwaW4lMjBzYW1wbGVzLml0ZW1zKCklMjBpZiUyMGslMjBub3QlMjBpbiUyMCU1QiUyMmlkeCUyMiUyQyUyMCUyMnNlbnRlbmNlMSUyMiUyQyUyMCUyMnNlbnRlbmNlMiUyMiU1RCU3RCUwQSU1Qmxlbih4KSUyMGZvciUyMHglMjBpbiUyMHNhbXBsZXMlNUIlMjJpbnB1dF9pZHMlMjIlNUQlNUQ=",highlighted:`samples = tokenized_datasets[<span class="hljs-string">"train"</span>][:<span class="hljs-number">8</span>] | |
| samples = {k: v <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> samples.items() <span class="hljs-keyword">if</span> k <span class="hljs-keyword">not</span> <span class="hljs-keyword">in</span> [<span class="hljs-string">"idx"</span>, <span class="hljs-string">"sentence1"</span>, <span class="hljs-string">"sentence2"</span>]} | |
| [<span class="hljs-built_in">len</span>(x) <span class="hljs-keyword">for</span> x <span class="hljs-keyword">in</span> samples[<span class="hljs-string">"input_ids"</span>]]`,wrap:!1}}),Zs=new J({props:{code:"JTVCNTAlMkMlMjA1OSUyQyUyMDQ3JTJDJTIwNjclMkMlMjA1OSUyQyUyMDUwJTJDJTIwNjIlMkMlMjAzMiU1RA==",highlighted:'[<span class="hljs-number">50</span>, <span class="hljs-number">59</span>, <span class="hljs-number">47</span>, <span class="hljs-number">67</span>, <span class="hljs-number">59</span>, <span class="hljs-number">50</span>, <span class="hljs-number">62</span>, <span class="hljs-number">32</span>]',wrap:!1}}),Ns=new J({props:{code:"YmF0Y2glMjAlM0QlMjBkYXRhX2NvbGxhdG9yKHNhbXBsZXMpJTBBJTdCayUzQSUyMHYuc2hhcGUlMjBmb3IlMjBrJTJDJTIwdiUyMGluJTIwYmF0Y2guaXRlbXMoKSU3RA==",highlighted:`batch = data_collator(samples) | |
| {k: v.shape <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> batch.items()}`,wrap:!1}}),Vs=new J({props:{code:"JTdCJ2F0dGVudGlvbl9tYXNrJyUzQSUyMHRvcmNoLlNpemUoJTVCOCUyQyUyMDY3JTVEKSUyQyUwQSUyMCdpbnB1dF9pZHMnJTNBJTIwdG9yY2guU2l6ZSglNUI4JTJDJTIwNjclNUQpJTJDJTBBJTIwJ3Rva2VuX3R5cGVfaWRzJyUzQSUyMHRvcmNoLlNpemUoJTVCOCUyQyUyMDY3JTVEKSUyQyUwQSUyMCdsYWJlbHMnJTNBJTIwdG9yY2guU2l6ZSglNUI4JTVEKSU3RA==",highlighted:`{<span class="hljs-string">'attention_mask'</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">67</span>]), | |
| <span class="hljs-string">'input_ids'</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">67</span>]), | |
| <span class="hljs-string">'token_type_ids'</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">67</span>]), | |
| <span class="hljs-string">'labels'</span>: torch.Size([<span class="hljs-number">8</span>])}`,wrap:!1}}),Xs=new o({props:{title:"섹션 퀴즈",local:"section-quiz",headingTag:"h2"}}),zs=new o({props:{title:"1. batched=True 와 함께 Dataset.map() 을 사용하는 주요 장점은 무엇인가요?",local:"1-batchedtrue-와-함께-datasetmap-을-사용하는-주요-장점은-무엇인가요",headingTag:"h3"}}),Hs=new le({props:{choices:[{text:"메모리를 덜 사용합니다.",explain:"더 메모리 효율적일 수 있지만, 이것이 주요 장점은 아닙니다."},{text:"여러 예제를 한 번에 처리하여 토큰화를 훨씬 빠르게 만듭니다.",explain:"정답입니다! 배치로 처리하면 빠른 토크나이저가 여러 예제를 동시에 작업할 수 있어 속도가 크게 향상됩니다.",correct:!0},{text:"자동으로 패딩을 처리해줍니다.",explain:"배치 처리가 자동으로 패딩을 처리하지는 않습니다 - 그것은 데이터 콜레이터가 수행합니다."},{text:"데이터를 PyTorch 텐서로 변환합니다.",explain:"텐서 변환은 형식을 설정할 때 발생하며, 배치 매핑 중에는 발생하지 않습니다."}]}}),Ds=new o({props:{title:"2. 데이터 세트의 최대 길이로 모든 시퀀스를 패딩하는 대신 동적 패딩을 사용하는 이유는 무엇인가요?",local:"2-데이터-세트의-최대-길이로-모든-시퀀스를-패딩하는-대신-동적-패딩을-사용하는-이유는-무엇인가요",headingTag:"h3"}}),Ss=new le({props:{choices:[{text:"동적 패딩이 모델 아키텍처에 의해 요구됩니다.",explain:"아니요, 모델은 고정 패딩과 동적 패딩을 모두 처리할 수 있습니다."},{text:"각 배치의 최대 길이까지만 패딩하여 계산 오버헤드를 줄입니다.",explain:"정답입니다! 동적 패딩은 데이터 세트 최대값이 아닌 배치 최대값까지만 패딩하여 패딩 토큰에 대한 불필요한 계산을 피합니다.",correct:!0},{text:"모델 정확도를 향상시킵니다.",explain:"패딩 전략은 모델 정확도에 직접적인 영향을 주지 않습니다."},{text:"DataCollatorWithPadding을 사용할 때 필수입니다.",explain:"DataCollatorWithPadding이 동적 패딩을 가능하게 하지만, 원한다면 여전히 고정 패딩을 사용할 수 있습니다."}]}}),Ls=new o({props:{title:"3. BERT 토큰화에서 token_type_ids 필드는 무엇을 나타내나요?",local:"3-bert-토큰화에서-tokentypeids-필드는-무엇을-나타내나요",headingTag:"h3"}}),qs=new le({props:{choices:[{text:"시퀀스에서 각 토큰의 위치입니다.",explain:"그것은 위치 임베딩이지, token_type_ids가 아닙니다."},{text:"문장 쌍을 처리할 때 각 토큰이 어느 문장에 속하는지를 나타냅니다.",explain:"정답입니다! token_type_ids는 문장 쌍 작업에서 첫 번째 문장(0)과 두 번째 문장(1)을 구분합니다.",correct:!0},{text:"각 토큰의 어텐션 마스크입니다.",explain:"어텐션 마스크는 어떤 토큰에 주의를 기울일지 나타내는 별도의 필드입니다."},{text:"각 토큰의 어휘 ID입니다.",explain:"그것은 token_type_ids가 아닌 input_ids 필드입니다."}]}}),Ys=new o({props:{title:"4. load_dataset('glue', 'mrpc') 로 데이터 세트를 로딩할 때 두 번째 인수는 무엇을 지정하나요?",local:"4-loaddatasetglue-mrpc-로-데이터-세트를-로딩할-때-두-번째-인수는-무엇을-지정하나요",headingTag:"h3"}}),Fs=new le({props:{choices:[{text:"로딩할 데이터 세트의 버전입니다.",explain:"버전 지정은 다른 매개변수를 사용합니다."},{text:"GLUE 벤치마크 내의 특정 작업 또는 하위 집합입니다.",explain:"정답입니다! MRPC는 더 큰 GLUE 벤치마크 컬렉션 내의 특정 작업 중 하나입니다.",correct:!0},{text:"데이터 세트의 분할(train/validation/test)입니다.",explain:"분할은 로딩 후에 접근하며, load_dataset 호출에서 지정하지 않습니다."},{text:"데이터를 반환할 형식입니다.",explain:"형식은 로딩 후 set_format() 메소드를 사용하여 설정합니다."}]}}),Ps=new o({props:{title:"5. 훈련 전에 ‘sentence1’과 ‘sentence2’ 같은 열을 제거하는 목적은 무엇인가요?",local:"5-훈련-전에-sentence1과-sentence2-같은-열을-제거하는-목적은-무엇인가요",headingTag:"h3"}}),Ks=new le({props:{choices:[{text:"훈련 중 메모리를 절약하기 위해서입니다.",explain:"약간의 메모리는 절약되지만, 이것이 주된 이유는 아닙니다."},{text:"모델이 이러한 원시 텍스트 열을 예상하지 않고 오류가 발생할 수 있기 때문입니다.",explain:"정답입니다! 모델은 원시 텍스트 문자열이 아닌 수치적 텐서를 예상합니다. 텍스트 열을 유지하면 오류가 발생할 것입니다.",correct:!0},{text:"이러한 열들이 평가에 필요하지 않기 때문입니다.",explain:"사실이긴 하지만, 주된 이유는 모델이 원시 텍스트를 처리할 수 없다는 것입니다."},{text:"훈련 속도를 크게 향상시키기 때문입니다.",explain:"호환되지 않는 데이터 타입으로 인한 오류 방지에 비해 속도 향상은 미미합니다."}]}}),Os=new Ht({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ko/chapter3/2.mdx"}}),{c(){T=p("meta"),te=n(),se=p("p"),ne=n(),c(k.$$.fragment),ae=n(),c(I.$$.fragment),pe=n(),c(A.$$.fragment),Me=n(),Q=p("p"),Q.innerHTML=zl,ie=n(),c(_.$$.fragment),ce=n(),B=p("p"),B.textContent=Hl,re=n(),R=p("p"),R.innerHTML=Dl,ye=n(),c(Z.$$.fragment),me=n(),c(v.$$.fragment),je=n(),N=p("p"),N.innerHTML=Sl,ue=n(),V=p("p"),V.textContent=Ll,Je=n(),d=p("blockquote"),d.innerHTML=ql,Ue=n(),c(G.$$.fragment),oe=n(),c(E.$$.fragment),Te=n(),X=p("p"),X.innerHTML=Yl,de=n(),h=p("blockquote"),h.innerHTML=Fl,he=n(),W=p("p"),W.innerHTML=Pl,fe=n(),c(z.$$.fragment),be=n(),c(H.$$.fragment),we=n(),D=p("p"),D.innerHTML=Kl,xe=n(),c(S.$$.fragment),$e=n(),c(L.$$.fragment),Ce=n(),q=p("p"),q.innerHTML=Ol,ge=n(),f=p("blockquote"),f.innerHTML=st,ke=n(),c(Y.$$.fragment),Ie=n(),c(F.$$.fragment),Ae=n(),P=p("p"),P.innerHTML=et,Qe=n(),c(K.$$.fragment),_e=n(),b=p("blockquote"),b.innerHTML=lt,Be=n(),O=p("p"),O.textContent=tt,Re=n(),c(ss.$$.fragment),Ze=n(),c(es.$$.fragment),ve=n(),ls=p("p"),ls.innerHTML=nt,Ne=n(),w=p("blockquote"),w.innerHTML=at,Ve=n(),ts=p("p"),ts.innerHTML=pt,Ge=n(),c(ns.$$.fragment),Ee=n(),as=p("p"),as.textContent=Mt,Xe=n(),c(ps.$$.fragment),We=n(),Ms=p("p"),Ms.innerHTML=it,ze=n(),c(is.$$.fragment),He=n(),cs=p("p"),cs.innerHTML=ct,De=n(),rs=p("p"),rs.innerHTML=rt,Se=n(),ys=p("p"),ys.innerHTML=yt,Le=n(),ms=p("p"),ms.textContent=mt,qe=n(),js=p("p"),js.innerHTML=jt,Ye=n(),us=p("p"),us.innerHTML=ut,Fe=n(),c(Js.$$.fragment),Pe=n(),Us=p("p"),Us.innerHTML=Jt,Ke=n(),os=p("p"),os.innerHTML=Ut,Oe=n(),c(Ts.$$.fragment),sl=n(),ds=p("p"),ds.innerHTML=ot,el=n(),hs=p("p"),hs.innerHTML=Tt,ll=n(),x=p("blockquote"),x.innerHTML=dt,tl=n(),fs=p("p"),fs.innerHTML=ht,nl=n(),c(bs.$$.fragment),al=n(),ws=p("p"),ws.textContent=ft,pl=n(),c(xs.$$.fragment),Ml=n(),$s=p("p"),$s.innerHTML=bt,il=n(),Cs=p("p"),Cs.innerHTML=wt,cl=n(),gs=p("p"),gs.innerHTML=xt,rl=n(),c(ks.$$.fragment),yl=n(),c(Is.$$.fragment),ml=n(),As=p("p"),As.innerHTML=$t,jl=n(),$=p("blockquote"),$.innerHTML=Ct,ul=n(),Qs=p("p"),Qs.innerHTML=gt,Jl=n(),c(_s.$$.fragment),Ul=n(),Bs=p("p"),Bs.innerHTML=kt,ol=n(),c(Rs.$$.fragment),Tl=n(),c(Zs.$$.fragment),dl=n(),vs=p("p"),vs.innerHTML=It,hl=n(),c(Ns.$$.fragment),fl=n(),c(Vs.$$.fragment),bl=n(),Gs=p("p"),Gs.textContent=At,wl=n(),C=p("blockquote"),C.innerHTML=Qt,xl=n(),Es=p("p"),Es.textContent=_t,$l=n(),c(Xs.$$.fragment),Cl=n(),Ws=p("p"),Ws.textContent=Bt,gl=n(),c(zs.$$.fragment),kl=n(),c(Hs.$$.fragment),Il=n(),c(Ds.$$.fragment),Al=n(),c(Ss.$$.fragment),Ql=n(),c(Ls.$$.fragment),_l=n(),c(qs.$$.fragment),Bl=n(),c(Ys.$$.fragment),Rl=n(),c(Fs.$$.fragment),Zl=n(),c(Ps.$$.fragment),vl=n(),c(Ks.$$.fragment),Nl=n(),g=p("blockquote"),g.innerHTML=Rt,Vl=n(),c(Os.$$.fragment),Gl=n(),ee=p("p"),this.h()},l(s){const e=Xt("svelte-u9bgzb",document.head);T=M(e,"META",{name:!0,content:!0}),e.forEach(l),te=a(s),se=M(s,"P",{}),Zt(se).forEach(l),ne=a(s),r(k.$$.fragment,s),ae=a(s),r(I.$$.fragment,s),pe=a(s),r(A.$$.fragment,s),Me=a(s),Q=M(s,"P",{"data-svelte-h":!0}),i(Q)!=="svelte-18n4e1w"&&(Q.innerHTML=zl),ie=a(s),r(_.$$.fragment,s),ce=a(s),B=M(s,"P",{"data-svelte-h":!0}),i(B)!=="svelte-1yvacnx"&&(B.textContent=Hl),re=a(s),R=M(s,"P",{"data-svelte-h":!0}),i(R)!=="svelte-6tmng3"&&(R.innerHTML=Dl),ye=a(s),r(Z.$$.fragment,s),me=a(s),r(v.$$.fragment,s),je=a(s),N=M(s,"P",{"data-svelte-h":!0}),i(N)!=="svelte-1quhi9e"&&(N.innerHTML=Sl),ue=a(s),V=M(s,"P",{"data-svelte-h":!0}),i(V)!=="svelte-1b27c1z"&&(V.textContent=Ll),Je=a(s),d=M(s,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),i(d)!=="svelte-1ozd536"&&(d.innerHTML=ql),Ue=a(s),r(G.$$.fragment,s),oe=a(s),r(E.$$.fragment,s),Te=a(s),X=M(s,"P",{"data-svelte-h":!0}),i(X)!=="svelte-1f0x3aj"&&(X.innerHTML=Yl),de=a(s),h=M(s,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),i(h)!=="svelte-19kzq7y"&&(h.innerHTML=Fl),he=a(s),W=M(s,"P",{"data-svelte-h":!0}),i(W)!=="svelte-nbm9uo"&&(W.innerHTML=Pl),fe=a(s),r(z.$$.fragment,s),be=a(s),r(H.$$.fragment,s),we=a(s),D=M(s,"P",{"data-svelte-h":!0}),i(D)!=="svelte-11hwp3u"&&(D.innerHTML=Kl),xe=a(s),r(S.$$.fragment,s),$e=a(s),r(L.$$.fragment,s),Ce=a(s),q=M(s,"P",{"data-svelte-h":!0}),i(q)!=="svelte-1i632h4"&&(q.innerHTML=Ol),ge=a(s),f=M(s,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),i(f)!=="svelte-1tty9ej"&&(f.innerHTML=st),ke=a(s),r(Y.$$.fragment,s),Ie=a(s),r(F.$$.fragment,s),Ae=a(s),P=M(s,"P",{"data-svelte-h":!0}),i(P)!=="svelte-72w04v"&&(P.innerHTML=et),Qe=a(s),r(K.$$.fragment,s),_e=a(s),b=M(s,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),i(b)!=="svelte-1plvekp"&&(b.innerHTML=lt),Be=a(s),O=M(s,"P",{"data-svelte-h":!0}),i(O)!=="svelte-1gliuzv"&&(O.textContent=tt),Re=a(s),r(ss.$$.fragment,s),Ze=a(s),r(es.$$.fragment,s),ve=a(s),ls=M(s,"P",{"data-svelte-h":!0}),i(ls)!=="svelte-1dayjrj"&&(ls.innerHTML=nt),Ne=a(s),w=M(s,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),i(w)!=="svelte-qa76e3"&&(w.innerHTML=at),Ve=a(s),ts=M(s,"P",{"data-svelte-h":!0}),i(ts)!=="svelte-fp8ycy"&&(ts.innerHTML=pt),Ge=a(s),r(ns.$$.fragment,s),Ee=a(s),as=M(s,"P",{"data-svelte-h":!0}),i(as)!=="svelte-1a5aa9u"&&(as.textContent=Mt),Xe=a(s),r(ps.$$.fragment,s),We=a(s),Ms=M(s,"P",{"data-svelte-h":!0}),i(Ms)!=="svelte-tqglnc"&&(Ms.innerHTML=it),ze=a(s),r(is.$$.fragment,s),He=a(s),cs=M(s,"P",{"data-svelte-h":!0}),i(cs)!=="svelte-13qt3k3"&&(cs.innerHTML=ct),De=a(s),rs=M(s,"P",{"data-svelte-h":!0}),i(rs)!=="svelte-1x3j9xz"&&(rs.innerHTML=rt),Se=a(s),ys=M(s,"P",{"data-svelte-h":!0}),i(ys)!=="svelte-16t7d1w"&&(ys.innerHTML=yt),Le=a(s),ms=M(s,"P",{"data-svelte-h":!0}),i(ms)!=="svelte-mmugyu"&&(ms.textContent=mt),qe=a(s),js=M(s,"P",{"data-svelte-h":!0}),i(js)!=="svelte-9ytk6a"&&(js.innerHTML=jt),Ye=a(s),us=M(s,"P",{"data-svelte-h":!0}),i(us)!=="svelte-1lt9uol"&&(us.innerHTML=ut),Fe=a(s),r(Js.$$.fragment,s),Pe=a(s),Us=M(s,"P",{"data-svelte-h":!0}),i(Us)!=="svelte-1qzyd20"&&(Us.innerHTML=Jt),Ke=a(s),os=M(s,"P",{"data-svelte-h":!0}),i(os)!=="svelte-rdvnbx"&&(os.innerHTML=Ut),Oe=a(s),r(Ts.$$.fragment,s),sl=a(s),ds=M(s,"P",{"data-svelte-h":!0}),i(ds)!=="svelte-f19j5a"&&(ds.innerHTML=ot),el=a(s),hs=M(s,"P",{"data-svelte-h":!0}),i(hs)!=="svelte-1if9us4"&&(hs.innerHTML=Tt),ll=a(s),x=M(s,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),i(x)!=="svelte-17egja"&&(x.innerHTML=dt),tl=a(s),fs=M(s,"P",{"data-svelte-h":!0}),i(fs)!=="svelte-1qq8yfu"&&(fs.innerHTML=ht),nl=a(s),r(bs.$$.fragment,s),al=a(s),ws=M(s,"P",{"data-svelte-h":!0}),i(ws)!=="svelte-1uiluni"&&(ws.textContent=ft),pl=a(s),r(xs.$$.fragment,s),Ml=a(s),$s=M(s,"P",{"data-svelte-h":!0}),i($s)!=="svelte-1irxq8x"&&($s.innerHTML=bt),il=a(s),Cs=M(s,"P",{"data-svelte-h":!0}),i(Cs)!=="svelte-15wpq8c"&&(Cs.innerHTML=wt),cl=a(s),gs=M(s,"P",{"data-svelte-h":!0}),i(gs)!=="svelte-1qi6gn3"&&(gs.innerHTML=xt),rl=a(s),r(ks.$$.fragment,s),yl=a(s),r(Is.$$.fragment,s),ml=a(s),As=M(s,"P",{"data-svelte-h":!0}),i(As)!=="svelte-1yf9txj"&&(As.innerHTML=$t),jl=a(s),$=M(s,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),i($)!=="svelte-ichobf"&&($.innerHTML=Ct),ul=a(s),Qs=M(s,"P",{"data-svelte-h":!0}),i(Qs)!=="svelte-ae4z87"&&(Qs.innerHTML=gt),Jl=a(s),r(_s.$$.fragment,s),Ul=a(s),Bs=M(s,"P",{"data-svelte-h":!0}),i(Bs)!=="svelte-1r7taxf"&&(Bs.innerHTML=kt),ol=a(s),r(Rs.$$.fragment,s),Tl=a(s),r(Zs.$$.fragment,s),dl=a(s),vs=M(s,"P",{"data-svelte-h":!0}),i(vs)!=="svelte-rpp9y6"&&(vs.innerHTML=It),hl=a(s),r(Ns.$$.fragment,s),fl=a(s),r(Vs.$$.fragment,s),bl=a(s),Gs=M(s,"P",{"data-svelte-h":!0}),i(Gs)!=="svelte-1ccey19"&&(Gs.textContent=At),wl=a(s),C=M(s,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),i(C)!=="svelte-7zfxut"&&(C.innerHTML=Qt),xl=a(s),Es=M(s,"P",{"data-svelte-h":!0}),i(Es)!=="svelte-furr9b"&&(Es.textContent=_t),$l=a(s),r(Xs.$$.fragment,s),Cl=a(s),Ws=M(s,"P",{"data-svelte-h":!0}),i(Ws)!=="svelte-1jo93me"&&(Ws.textContent=Bt),gl=a(s),r(zs.$$.fragment,s),kl=a(s),r(Hs.$$.fragment,s),Il=a(s),r(Ds.$$.fragment,s),Al=a(s),r(Ss.$$.fragment,s),Ql=a(s),r(Ls.$$.fragment,s),_l=a(s),r(qs.$$.fragment,s),Bl=a(s),r(Ys.$$.fragment,s),Rl=a(s),r(Fs.$$.fragment,s),Zl=a(s),r(Ps.$$.fragment,s),vl=a(s),r(Ks.$$.fragment,s),Nl=a(s),g=M(s,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),i(g)!=="svelte-1hnxiut"&&(g.innerHTML=Rt),Vl=a(s),r(Os.$$.fragment,s),Gl=a(s),ee=M(s,"P",{}),Zt(ee).forEach(l),this.h()},h(){U(T,"name","hf:doc:metadata"),U(T,"content",Lt),U(d,"class","tip"),U(h,"class","tip"),U(f,"class","tip"),U(b,"class","tip"),U(w,"class","tip"),U(x,"class","tip"),U($,"class","tip"),U(C,"class","tip"),U(g,"class","tip")},m(s,e){Wt(document.head,T),t(s,te,e),t(s,se,e),t(s,ne,e),y(k,s,e),t(s,ae,e),y(I,s,e),t(s,pe,e),y(A,s,e),t(s,Me,e),t(s,Q,e),t(s,ie,e),y(_,s,e),t(s,ce,e),t(s,B,e),t(s,re,e),t(s,R,e),t(s,ye,e),y(Z,s,e),t(s,me,e),y(v,s,e),t(s,je,e),t(s,N,e),t(s,ue,e),t(s,V,e),t(s,Je,e),t(s,d,e),t(s,Ue,e),y(G,s,e),t(s,oe,e),y(E,s,e),t(s,Te,e),t(s,X,e),t(s,de,e),t(s,h,e),t(s,he,e),t(s,W,e),t(s,fe,e),y(z,s,e),t(s,be,e),y(H,s,e),t(s,we,e),t(s,D,e),t(s,xe,e),y(S,s,e),t(s,$e,e),y(L,s,e),t(s,Ce,e),t(s,q,e),t(s,ge,e),t(s,f,e),t(s,ke,e),y(Y,s,e),t(s,Ie,e),y(F,s,e),t(s,Ae,e),t(s,P,e),t(s,Qe,e),y(K,s,e),t(s,_e,e),t(s,b,e),t(s,Be,e),t(s,O,e),t(s,Re,e),y(ss,s,e),t(s,Ze,e),y(es,s,e),t(s,ve,e),t(s,ls,e),t(s,Ne,e),t(s,w,e),t(s,Ve,e),t(s,ts,e),t(s,Ge,e),y(ns,s,e),t(s,Ee,e),t(s,as,e),t(s,Xe,e),y(ps,s,e),t(s,We,e),t(s,Ms,e),t(s,ze,e),y(is,s,e),t(s,He,e),t(s,cs,e),t(s,De,e),t(s,rs,e),t(s,Se,e),t(s,ys,e),t(s,Le,e),t(s,ms,e),t(s,qe,e),t(s,js,e),t(s,Ye,e),t(s,us,e),t(s,Fe,e),y(Js,s,e),t(s,Pe,e),t(s,Us,e),t(s,Ke,e),t(s,os,e),t(s,Oe,e),y(Ts,s,e),t(s,sl,e),t(s,ds,e),t(s,el,e),t(s,hs,e),t(s,ll,e),t(s,x,e),t(s,tl,e),t(s,fs,e),t(s,nl,e),y(bs,s,e),t(s,al,e),t(s,ws,e),t(s,pl,e),y(xs,s,e),t(s,Ml,e),t(s,$s,e),t(s,il,e),t(s,Cs,e),t(s,cl,e),t(s,gs,e),t(s,rl,e),y(ks,s,e),t(s,yl,e),y(Is,s,e),t(s,ml,e),t(s,As,e),t(s,jl,e),t(s,$,e),t(s,ul,e),t(s,Qs,e),t(s,Jl,e),y(_s,s,e),t(s,Ul,e),t(s,Bs,e),t(s,ol,e),y(Rs,s,e),t(s,Tl,e),y(Zs,s,e),t(s,dl,e),t(s,vs,e),t(s,hl,e),y(Ns,s,e),t(s,fl,e),y(Vs,s,e),t(s,bl,e),t(s,Gs,e),t(s,wl,e),t(s,C,e),t(s,xl,e),t(s,Es,e),t(s,$l,e),y(Xs,s,e),t(s,Cl,e),t(s,Ws,e),t(s,gl,e),y(zs,s,e),t(s,kl,e),y(Hs,s,e),t(s,Il,e),y(Ds,s,e),t(s,Al,e),y(Ss,s,e),t(s,Ql,e),y(Ls,s,e),t(s,_l,e),y(qs,s,e),t(s,Bl,e),y(Ys,s,e),t(s,Rl,e),y(Fs,s,e),t(s,Zl,e),y(Ps,s,e),t(s,vl,e),y(Ks,s,e),t(s,Nl,e),t(s,g,e),t(s,Vl,e),y(Os,s,e),t(s,Gl,e),t(s,ee,e),El=!0},p:Nt,i(s){El||(m(k.$$.fragment,s),m(I.$$.fragment,s),m(A.$$.fragment,s),m(_.$$.fragment,s),m(Z.$$.fragment,s),m(v.$$.fragment,s),m(G.$$.fragment,s),m(E.$$.fragment,s),m(z.$$.fragment,s),m(H.$$.fragment,s),m(S.$$.fragment,s),m(L.$$.fragment,s),m(Y.$$.fragment,s),m(F.$$.fragment,s),m(K.$$.fragment,s),m(ss.$$.fragment,s),m(es.$$.fragment,s),m(ns.$$.fragment,s),m(ps.$$.fragment,s),m(is.$$.fragment,s),m(Js.$$.fragment,s),m(Ts.$$.fragment,s),m(bs.$$.fragment,s),m(xs.$$.fragment,s),m(ks.$$.fragment,s),m(Is.$$.fragment,s),m(_s.$$.fragment,s),m(Rs.$$.fragment,s),m(Zs.$$.fragment,s),m(Ns.$$.fragment,s),m(Vs.$$.fragment,s),m(Xs.$$.fragment,s),m(zs.$$.fragment,s),m(Hs.$$.fragment,s),m(Ds.$$.fragment,s),m(Ss.$$.fragment,s),m(Ls.$$.fragment,s),m(qs.$$.fragment,s),m(Ys.$$.fragment,s),m(Fs.$$.fragment,s),m(Ps.$$.fragment,s),m(Ks.$$.fragment,s),m(Os.$$.fragment,s),El=!0)},o(s){j(k.$$.fragment,s),j(I.$$.fragment,s),j(A.$$.fragment,s),j(_.$$.fragment,s),j(Z.$$.fragment,s),j(v.$$.fragment,s),j(G.$$.fragment,s),j(E.$$.fragment,s),j(z.$$.fragment,s),j(H.$$.fragment,s),j(S.$$.fragment,s),j(L.$$.fragment,s),j(Y.$$.fragment,s),j(F.$$.fragment,s),j(K.$$.fragment,s),j(ss.$$.fragment,s),j(es.$$.fragment,s),j(ns.$$.fragment,s),j(ps.$$.fragment,s),j(is.$$.fragment,s),j(Js.$$.fragment,s),j(Ts.$$.fragment,s),j(bs.$$.fragment,s),j(xs.$$.fragment,s),j(ks.$$.fragment,s),j(Is.$$.fragment,s),j(_s.$$.fragment,s),j(Rs.$$.fragment,s),j(Zs.$$.fragment,s),j(Ns.$$.fragment,s),j(Vs.$$.fragment,s),j(Xs.$$.fragment,s),j(zs.$$.fragment,s),j(Hs.$$.fragment,s),j(Ds.$$.fragment,s),j(Ss.$$.fragment,s),j(Ls.$$.fragment,s),j(qs.$$.fragment,s),j(Ys.$$.fragment,s),j(Fs.$$.fragment,s),j(Ps.$$.fragment,s),j(Ks.$$.fragment,s),j(Os.$$.fragment,s),El=!1},d(s){s&&(l(te),l(se),l(ne),l(ae),l(pe),l(Me),l(Q),l(ie),l(ce),l(B),l(re),l(R),l(ye),l(me),l(je),l(N),l(ue),l(V),l(Je),l(d),l(Ue),l(oe),l(Te),l(X),l(de),l(h),l(he),l(W),l(fe),l(be),l(we),l(D),l(xe),l($e),l(Ce),l(q),l(ge),l(f),l(ke),l(Ie),l(Ae),l(P),l(Qe),l(_e),l(b),l(Be),l(O),l(Re),l(Ze),l(ve),l(ls),l(Ne),l(w),l(Ve),l(ts),l(Ge),l(Ee),l(as),l(Xe),l(We),l(Ms),l(ze),l(He),l(cs),l(De),l(rs),l(Se),l(ys),l(Le),l(ms),l(qe),l(js),l(Ye),l(us),l(Fe),l(Pe),l(Us),l(Ke),l(os),l(Oe),l(sl),l(ds),l(el),l(hs),l(ll),l(x),l(tl),l(fs),l(nl),l(al),l(ws),l(pl),l(Ml),l($s),l(il),l(Cs),l(cl),l(gs),l(rl),l(yl),l(ml),l(As),l(jl),l($),l(ul),l(Qs),l(Jl),l(Ul),l(Bs),l(ol),l(Tl),l(dl),l(vs),l(hl),l(fl),l(bl),l(Gs),l(wl),l(C),l(xl),l(Es),l($l),l(Cl),l(Ws),l(gl),l(kl),l(Il),l(Al),l(Ql),l(_l),l(Bl),l(Rl),l(Zl),l(vl),l(Nl),l(g),l(Vl),l(Gl),l(ee)),l(T),u(k,s),u(I,s),u(A,s),u(_,s),u(Z,s),u(v,s),u(G,s),u(E,s),u(z,s),u(H,s),u(S,s),u(L,s),u(Y,s),u(F,s),u(K,s),u(ss,s),u(es,s),u(ns,s),u(ps,s),u(is,s),u(Js,s),u(Ts,s),u(bs,s),u(xs,s),u(ks,s),u(Is,s),u(_s,s),u(Rs,s),u(Zs,s),u(Ns,s),u(Vs,s),u(Xs,s),u(zs,s),u(Hs,s),u(Ds,s),u(Ss,s),u(Ls,s),u(qs,s),u(Ys,s),u(Fs,s),u(Ps,s),u(Ks,s),u(Os,s)}}}const Lt=`{"title":"데이터 처리","local":"processing-the-data","sections":[{"title":"Hub에서 데이터 세트 가져오기","local":"loading-a-dataset-from-the-hub","sections":[],"depth":3},{"title":"데이터 세트 전처리","local":"preprocessing-a-dataset","sections":[{"title":"동적 패딩","local":"dynamic-padding","sections":[],"depth":5}],"depth":3},{"title":"섹션 퀴즈","local":"section-quiz","sections":[{"title":"1. batched=True 와 함께 Dataset.map() 을 사용하는 주요 장점은 무엇인가요?","local":"1-batchedtrue-와-함께-datasetmap-을-사용하는-주요-장점은-무엇인가요","sections":[],"depth":3},{"title":"2. 데이터 세트의 최대 길이로 모든 시퀀스를 패딩하는 대신 동적 패딩을 사용하는 이유는 무엇인가요?","local":"2-데이터-세트의-최대-길이로-모든-시퀀스를-패딩하는-대신-동적-패딩을-사용하는-이유는-무엇인가요","sections":[],"depth":3},{"title":"3. BERT 토큰화에서 token_type_ids 필드는 무엇을 나타내나요?","local":"3-bert-토큰화에서-tokentypeids-필드는-무엇을-나타내나요","sections":[],"depth":3},{"title":"4. load_dataset('glue', 'mrpc') 로 데이터 세트를 로딩할 때 두 번째 인수는 무엇을 지정하나요?","local":"4-loaddatasetglue-mrpc-로-데이터-세트를-로딩할-때-두-번째-인수는-무엇을-지정하나요","sections":[],"depth":3},{"title":"5. 훈련 전에 ‘sentence1’과 ‘sentence2’ 같은 열을 제거하는 목적은 무엇인가요?","local":"5-훈련-전에-sentence1과-sentence2-같은-열을-제거하는-목적은-무엇인가요","sections":[],"depth":3}],"depth":2}],"depth":1}`;function qt(Wl){return Vt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ln extends Gt{constructor(T){super(),Et(this,T,qt,St,vt,{})}}export{ln as component}; | |
Xet Storage Details
- Size:
- 62.2 kB
- Xet hash:
- 55999e21bd73c6601cbea52a548c55a0523125efdd3bb00ab6689dabcc5343b6
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.