import{s as j,n as q,o as D}from"../chunks/scheduler.37c15a92.js";import{S as F,i as I,g as u,s as r,r as C,A as O,h as c,f as a,c as i,j as S,u as R,x as w,k as N,y as U,a as n,v as A,d as B,t as M,w as y}from"../chunks/index.2bf4358c.js";import{C as X}from"../chunks/CourseFloatingBanner.9ff4c771.js";import{H as J,E as K}from"../chunks/index.b8688d36.js";function Q(H){let s,T,h,_,l,b,m,g,o,k="이번 단원에서는 🤗 Transformers의 하이레벨 함수인 <code>pipeline()</code> 를 사용하여 다양한 NLP 문제에 대한 접근 방식을 배웠습니다. 그리고 Hub에서 모델을 검색하여 사용하는 방법, 추론 API를 이용해 브라우저 상에서 바로 모델을 테스트 하는 방법 또한 알아보았습니다.",E,p,z="지금까지 트랜스포머 모델의 대략작인 동작 방식과, 전이 학습(transfer learning) 및 미세 조정(fine-tuning)의 중요성에 알아보았습니다. 핵심은 어떤 문제를 풀고싶냐에 따라 전체 모델 구조를 다 사용하거나 인코더, 디코더만 사용할 수도 있다는 것입니다. 아래 표는 이를 요약해서 보여주고 있습니다:",P,d,G="<thead><tr><th>Model</th> <th>Examples</th> <th>Tasks</th></tr></thead> <tbody><tr><td>인코더</td> <td>ALBERT, BERT, DistilBERT, ELECTRA, RoBERTa</td> <td>문장 분류, 개체명 인식, 추출 질의 응답</td></tr> <tr><td>디코더</td> <td>CTRL, GPT, GPT-2, Transformer XL</td> <td>텍스트 생성</td></tr> <tr><td>인코더-디코더</td> <td>BART, T5, Marian, mBART</td> <td>요약, 번역, 생성 질의 응답</td></tr></tbody>",x,f,L,$,v;return l=new J({props:{title:"단원 정리",local:"단원-정리",headingTag:"h1"}}),m=new X({props:{chapter:1,classNames:"absolute z-10 right-0 top-0"}}),f=new K({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ko/chapter1/9.mdx"}}),{c(){s=u("meta"),T=r(),h=u("p"),_=r(),C(l.$$.fragment),b=r(),C(m.$$.fragment),g=r(),o=u("p"),o.innerHTML=k,E=r(),p=u("p"),p.textContent=z,P=r(),d=u("table"),d.innerHTML=G,x=r(),C(f.$$.fragment),L=r(),$=u("p"),this.h()},l(t){const e=O("svelte-u9bgzb",document.head);s=c(e,"META",{name:!0,content:!0}),e.forEach(a),T=i(t),h=c(t,"P",{}),S(h).forEach(a),_=i(t),R(l.$$.fragment,t),b=i(t),R(m.$$.fragment,t),g=i(t),o=c(t,"P",{"data-svelte-h":!0}),w(o)!=="svelte-y3e3wl"&&(o.innerHTML=k),E=i(t),p=c(t,"P",{"data-svelte-h":!0}),w(p)!=="svelte-17mdlkb"&&(p.textContent=z),P=i(t),d=c(t,"TABLE",{"data-svelte-h":!0}),w(d)!=="svelte-8dnz9a"&&(d.innerHTML=G),x=i(t),R(f.$$.fragment,t),L=i(t),$=c(t,"P",{}),S($).forEach(a),this.h()},h(){N(s,"name","hf:doc:metadata"),N(s,"content",V)},m(t,e){U(document.head,s),n(t,T,e),n(t,h,e),n(t,_,e),A(l,t,e),n(t,b,e),A(m,t,e),n(t,g,e),n(t,o,e),n(t,E,e),n(t,p,e),n(t,P,e),n(t,d,e),n(t,x,e),A(f,t,e),n(t,L,e),n(t,$,e),v=!0},p:q,i(t){v||(B(l.$$.fragment,t),B(m.$$.fragment,t),B(f.$$.fragment,t),v=!0)},o(t){M(l.$$.fragment,t),M(m.$$.fragment,t),M(f.$$.fragment,t),v=!1},d(t){t&&(a(T),a(h),a(_),a(b),a(g),a(o),a(E),a(p),a(P),a(d),a(x),a(L),a($)),a(s),y(l,t),y(m,t),y(f,t)}}}const V='{"title":"단원 정리","local":"단원-정리","sections":[],"depth":1}';function W(H){return D(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class at extends F{constructor(s){super(),I(this,s,W,Q,j,{})}}export{at as component};
