Buckets:
| import{s as Z,n as ee,o as te}from"../chunks/scheduler.505acc25.js";import{S as ne,i as ie,e as s,s as l,c as I,h as le,a as r,d as n,b as a,f as Y,g as O,j as T,k as G,l as ae,m as i,n as U,t as B,o as F,p as N}from"../chunks/index.821724d0.js";import{C as se,H as re,E as oe}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.cee6bd49.js";import{C as me}from"../chunks/CourseFloatingBanner.415ffed3.js";function pe(K){let o,M,v,C,p,b,f,P,u,H,c,Q='<a href="/course/chapter1">제1단원</a>에서 보았듯이, 트랜스포머 모델은 대부분 매우 큽니다. 수백만에서 <em>수백억</em>개의 파라미터를 가진 모델을 훈련시키고 배포하는 것은 만만치 않은데다가, 하루가 멀다하고 자체적으로 구현된 새로운 모델이 출시되어서, 모두 적용해보려고 한다면 쉽지는 않을 거예요.',w,$,R="🤗 Transformers 라이브러리는 이 문제를 해결하기 위해 만들어졌습니다. Transformer 모델을 가져오고, 훈련시킨 후 저장할 수 있는 단일 API를 제공하는 것이 목표예요. 라이브러리의 주요 기능은 다음과 같습니다.",y,d,D="<li><strong>사용 편의성</strong>: 추론하기 위해 최첨단 NLP 모델을 다운로드한 다음 적재시켜 사용하고 싶다면, 단 2줄의 코드만으로 할 수 있어요.</li> <li><strong>유연성</strong>: 기초적으로 보면 모든 모델은 단순한 PyTorch <code>nn.module</code> 또는 TensorFlow <code>tf.keras.Model</code> 클래스입니다. 각 머신러닝(ML) 프레임워크의 여타 다른 모델이나 마찬가지로 처리할 수 있다는 뜻이에요.</li> <li><strong>단순성</strong>: 라이브러리 위에 추상화를 거의 하지 않았어요. “모든 것을 파일 하나에”가 핵심 개념입니다. 모델의 순전파(forward propagation) 부분이 파일 한 개에 모두 정의되어 있어서, 코드 자체를 이해하고 해킹할 수도 있어요.</li>",k,_,J="마지막 기능은 여타 ML 라이브러리들과는 다른 🤗 Transformers만의 차별점입니다. 모델은 파일 간에 공유되는 모듈로 만들어지지 않고, 모델마다 자체적인 레이어를 쌓습니다. 이렇게 하면 모델을 더 쉽게 보고 이해할 수 있으면서도, 다른 모델과는 상관없이 원하는 모델에서 마음껏 실험해볼 수 있습니다.",z,x,V='이 단원은 모델과 토크나이저로 <a href="/course/chapter1">제1단원</a>에서 소개된 <code>pipeline()</code> 함수를 처음부터 끝까지 만들어보는 것으로 시작합니다. 만들고나면 모델 API를 더 깊게 탐구해봅니다. model과 configuration 클래스를 알아보고, 모델을 적재하는 방법과 수치를 입력으로 제공해서 예측이 출력되는 처리 과정을 보여드리겠습니다.',E,h,W="그런 다음 <code>pipeline()</code> 함수의 중요한 구성요소인 tokenizer API를 살펴보겠습니다. tokenizer는 처리의 첫 번째 단계인 텍스트를 신경망의 수치 입력으로 바꾸는 부분과 필요할 때 다시 텍스트로 바꾸는 마지막 단계, 즉 양끝을 다룹니다. 마지막으로 여러 문장을 묶어서 모델에게 제공하는 방법을 알아보고, 기존 <code>tokenizer()</code> 함수를 자세히 살펴봄으로써 마무리짓겠습니다.",A,m,X='<p>⚠️ Model Hub와 🤗 Transformers에서 사용할 수 있는 모든 기능을 활용하려면 <a href="https://huggingface.co/join">계정을 만드는 게</a> 좋습니다.</p>',S,g,j,L,q;return p=new se({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),f=new re({props:{title:"단원 소개",local:"introduction",headingTag:"h1"}}),u=new me({props:{chapter:2,classNames:"absolute z-10 right-0 top-0"}}),g=new oe({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ko/chapter2/1.mdx"}}),{c(){o=s("meta"),M=l(),v=s("p"),C=l(),I(p.$$.fragment),b=l(),I(f.$$.fragment),P=l(),I(u.$$.fragment),H=l(),c=s("p"),c.innerHTML=Q,w=l(),$=s("p"),$.textContent=R,y=l(),d=s("ul"),d.innerHTML=D,k=l(),_=s("p"),_.textContent=J,z=l(),x=s("p"),x.innerHTML=V,E=l(),h=s("p"),h.innerHTML=W,A=l(),m=s("blockquote"),m.innerHTML=X,S=l(),I(g.$$.fragment),j=l(),L=s("p"),this.h()},l(e){const t=le("svelte-u9bgzb",document.head);o=r(t,"META",{name:!0,content:!0}),t.forEach(n),M=a(e),v=r(e,"P",{}),Y(v).forEach(n),C=a(e),O(p.$$.fragment,e),b=a(e),O(f.$$.fragment,e),P=a(e),O(u.$$.fragment,e),H=a(e),c=r(e,"P",{"data-svelte-h":!0}),T(c)!=="svelte-foydyi"&&(c.innerHTML=Q),w=a(e),$=r(e,"P",{"data-svelte-h":!0}),T($)!=="svelte-1f6yixk"&&($.textContent=R),y=a(e),d=r(e,"UL",{"data-svelte-h":!0}),T(d)!=="svelte-1ebzm9b"&&(d.innerHTML=D),k=a(e),_=r(e,"P",{"data-svelte-h":!0}),T(_)!=="svelte-wmfgge"&&(_.textContent=J),z=a(e),x=r(e,"P",{"data-svelte-h":!0}),T(x)!=="svelte-jwrt7n"&&(x.innerHTML=V),E=a(e),h=r(e,"P",{"data-svelte-h":!0}),T(h)!=="svelte-xz4ni5"&&(h.innerHTML=W),A=a(e),m=r(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),T(m)!=="svelte-282bne"&&(m.innerHTML=X),S=a(e),O(g.$$.fragment,e),j=a(e),L=r(e,"P",{}),Y(L).forEach(n),this.h()},h(){G(o,"name","hf:doc:metadata"),G(o,"content",fe),G(m,"class","tip")},m(e,t){ae(document.head,o),i(e,M,t),i(e,v,t),i(e,C,t),U(p,e,t),i(e,b,t),U(f,e,t),i(e,P,t),U(u,e,t),i(e,H,t),i(e,c,t),i(e,w,t),i(e,$,t),i(e,y,t),i(e,d,t),i(e,k,t),i(e,_,t),i(e,z,t),i(e,x,t),i(e,E,t),i(e,h,t),i(e,A,t),i(e,m,t),i(e,S,t),U(g,e,t),i(e,j,t),i(e,L,t),q=!0},p:ee,i(e){q||(B(p.$$.fragment,e),B(f.$$.fragment,e),B(u.$$.fragment,e),B(g.$$.fragment,e),q=!0)},o(e){F(p.$$.fragment,e),F(f.$$.fragment,e),F(u.$$.fragment,e),F(g.$$.fragment,e),q=!1},d(e){e&&(n(M),n(v),n(C),n(b),n(P),n(H),n(c),n(w),n($),n(y),n(d),n(k),n(_),n(z),n(x),n(E),n(h),n(A),n(m),n(S),n(j),n(L)),n(o),N(p,e),N(f,e),N(u,e),N(g,e)}}}const fe='{"title":"단원 소개","local":"introduction","sections":[],"depth":1}';function ue(K){return te(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class xe extends ne{constructor(o){super(),ie(this,o,ue,pe,Z,{})}}export{xe as component}; | |
Xet Storage Details
- Size:
- 6.11 kB
- Xet hash:
- 066b45ed25d8b63bd823bbaf80cd05c8beea2bb4f1760518167cf4dc62fb02a5
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.