import{s as X,n as F,o as Y}from"../chunks/scheduler.37c15a92.js";import{S as L,i as K,g as M,s as l,r as j,A as D,h as g,f as e,c as n,j as R,u as w,x as Q,k as Z,y as O,a,v as J,d as $,t as k,w as x}from"../chunks/index.2bf4358c.js";import{C as P}from"../chunks/CodeBlock.4e987730.js";import{C as ss}from"../chunks/CourseFloatingBanner.9ff4c771.js";import{H as ts,E as es}from"../chunks/getInferenceSnippets.24b50994.js";function as(H){let r,T,b,U,p,C,i,B,o,q="사전 학습된 혹은 미세 조정된 모델을 프로덕션 단계에서 사용하실 계획이라면, 이러한 모델들은 강력한 툴이지만 한계가 있음을 반드시 명심하셔야 합니다. 가장 큰 한계점은 리서처들이 무수히 많은 양의 데이터를 사전 학습에 사용하기 위해, 인터넷상에서 모을 수 있는 양질의 데이터와 함께 그렇지 않은 데이터까지 수집했을 가능성이 있다는 것입니다.",_,c,S="이를 빠르게 보여드리기 위해 <code>fill-mask</code> 파이프라인에 BERT 모델을 연결한 예제를 다시 살펴보겠습니다:",I,m,V,u,W,h,z='주어의 성별만 바꾼 두 문장에서 빠진 단어를 채울 때, 모델은 성별과 관계 없는 공통 답변(waiter/waitress)을 하나만 내놓았습니다.  다른 답변들은 일반적으로 특정 성별에 편향된 답변이었습니다. 이를테면, 모델은 매춘이라는 단어와 연관된 상위 5개의 단어에 “여성”과 “일”을 포함시켰습니다. BERT가 전체 인터넷 상의 텍스트를 이용하여 사전 학습된 것이 아니라 <a href="https://huggingface.co/datasets/wikipedia" rel="nofollow">English Wikipedia</a> 와 <a href="https://huggingface.co/datasets/bookcorpus" rel="nofollow">BookCorpus</a> 같이 상당히 중립적인 데이터를 이용해 사전 학습 되었음에도 불구하고 이러한 현상이 일어납니다.',v,f,A="따라서 이러한 툴을 사용하실 때에는 항상 여러분이 사용할 원본 모델이 젠더, 인종, 동성애 등에 대해 혐오 표현을 할 가능성이 매우 높다는 것을 주의하셔야 합니다. 이러한 모델은 미세 조정을 거쳐도 내제된 편향성을 없애지 못합니다.",N,y,E,d,G;return p=new ts({props:{title:"편향과 한계",local:"편향과-한계",headingTag:"h1"}}),i=new ss({props:{chapter:1,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/ko/chapter1/section8.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/ko/chapter1/section8.ipynb"}]}}),m=new P({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBdW5tYXNrZXIlMjAlM0QlMjBwaXBlbGluZSglMjJmaWxsLW1hc2slMjIlMkMlMjBtb2RlbCUzRCUyMmJlcnQtYmFzZS11bmNhc2VkJTIyKSUwQXJlc3VsdCUyMCUzRCUyMHVubWFza2VyKCUyMlRoaXMlMjBtYW4lMjB3b3JrcyUyMGFzJTIwYSUyMCU1Qk1BU0slNUQuJTIyKSUwQXByaW50KCU1QnIlNUIlMjJ0b2tlbl9zdHIlMjIlNUQlMjBmb3IlMjByJTIwaW4lMjByZXN1bHQlNUQpJTBBJTBBcmVzdWx0JTIwJTNEJTIwdW5tYXNrZXIoJTIyVGhpcyUyMHdvbWFuJTIwd29ya3MlMjBhcyUyMGElMjAlNUJNQVNLJTVELiUyMiklMEFwcmludCglNUJyJTVCJTIydG9rZW5fc3RyJTIyJTVEJTIwZm9yJTIwciUyMGluJTIwcmVzdWx0JTVEKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

unmasker = pipeline(<span class="hljs-string">&quot;fill-mask&quot;</span>, model=<span class="hljs-string">&quot;bert-base-uncased&quot;</span>)
result = unmasker(<span class="hljs-string">&quot;This man works as a [MASK].&quot;</span>)
<span class="hljs-built_in">print</span>([r[<span class="hljs-string">&quot;token_str&quot;</span>] <span class="hljs-keyword">for</span> r <span class="hljs-keyword">in</span> result])

result = unmasker(<span class="hljs-string">&quot;This woman works as a [MASK].&quot;</span>)
<span class="hljs-built_in">print</span>([r[<span class="hljs-string">&quot;token_str&quot;</span>] <span class="hljs-keyword">for</span> r <span class="hljs-keyword">in</span> result])`,wrap:!1}}),u=new P({props:{code:"JTVCJ2xhd3llciclMkMlMjAnY2FycGVudGVyJyUyQyUyMCdkb2N0b3InJTJDJTIwJ3dhaXRlciclMkMlMjAnbWVjaGFuaWMnJTVEJTBBJTVCJ251cnNlJyUyQyUyMCd3YWl0cmVzcyclMkMlMjAndGVhY2hlciclMkMlMjAnbWFpZCclMkMlMjAncHJvc3RpdHV0ZSclNUQ=",highlighted:`[<span class="hljs-string">&#x27;lawyer&#x27;</span>, <span class="hljs-string">&#x27;carpenter&#x27;</span>, <span class="hljs-string">&#x27;doctor&#x27;</span>, <span class="hljs-string">&#x27;waiter&#x27;</span>, <span class="hljs-string">&#x27;mechanic&#x27;</span>]
[<span class="hljs-string">&#x27;nurse&#x27;</span>, <span class="hljs-string">&#x27;waitress&#x27;</span>, <span class="hljs-string">&#x27;teacher&#x27;</span>, <span class="hljs-string">&#x27;maid&#x27;</span>, <span class="hljs-string">&#x27;prostitute&#x27;</span>]`,wrap:!1}}),y=new es({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ko/chapter1/8.mdx"}}),{c(){r=M("meta"),T=l(),b=M("p"),U=l(),j(p.$$.fragment),C=l(),j(i.$$.fragment),B=l(),o=M("p"),o.textContent=q,_=l(),c=M("p"),c.innerHTML=S,I=l(),j(m.$$.fragment),V=l(),j(u.$$.fragment),W=l(),h=M("p"),h.innerHTML=z,v=l(),f=M("p"),f.textContent=A,N=l(),j(y.$$.fragment),E=l(),d=M("p"),this.h()},l(s){const t=D("svelte-u9bgzb",document.head);r=g(t,"META",{name:!0,content:!0}),t.forEach(e),T=n(s),b=g(s,"P",{}),R(b).forEach(e),U=n(s),w(p.$$.fragment,s),C=n(s),w(i.$$.fragment,s),B=n(s),o=g(s,"P",{"data-svelte-h":!0}),Q(o)!=="svelte-wi12pj"&&(o.textContent=q),_=n(s),c=g(s,"P",{"data-svelte-h":!0}),Q(c)!=="svelte-13l9y7t"&&(c.innerHTML=S),I=n(s),w(m.$$.fragment,s),V=n(s),w(u.$$.fragment,s),W=n(s),h=g(s,"P",{"data-svelte-h":!0}),Q(h)!=="svelte-8t4x27"&&(h.innerHTML=z),v=n(s),f=g(s,"P",{"data-svelte-h":!0}),Q(f)!=="svelte-17vsb8r"&&(f.textContent=A),N=n(s),w(y.$$.fragment,s),E=n(s),d=g(s,"P",{}),R(d).forEach(e),this.h()},h(){Z(r,"name","hf:doc:metadata"),Z(r,"content",ls)},m(s,t){O(document.head,r),a(s,T,t),a(s,b,t),a(s,U,t),J(p,s,t),a(s,C,t),J(i,s,t),a(s,B,t),a(s,o,t),a(s,_,t),a(s,c,t),a(s,I,t),J(m,s,t),a(s,V,t),J(u,s,t),a(s,W,t),a(s,h,t),a(s,v,t),a(s,f,t),a(s,N,t),J(y,s,t),a(s,E,t),a(s,d,t),G=!0},p:F,i(s){G||($(p.$$.fragment,s),$(i.$$.fragment,s),$(m.$$.fragment,s),$(u.$$.fragment,s),$(y.$$.fragment,s),G=!0)},o(s){k(p.$$.fragment,s),k(i.$$.fragment,s),k(m.$$.fragment,s),k(u.$$.fragment,s),k(y.$$.fragment,s),G=!1},d(s){s&&(e(T),e(b),e(U),e(C),e(B),e(o),e(_),e(c),e(I),e(V),e(W),e(h),e(v),e(f),e(N),e(E),e(d)),e(r),x(p,s),x(i,s),x(m,s),x(u,s),x(y,s)}}}const ls='{"title":"편향과 한계","local":"편향과-한계","sections":[],"depth":1}';function ns(H){return Y(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ms extends L{constructor(r){super(),K(this,r,ns,as,X,{})}}export{ms as component};
