import{s as Z,n as P,o as X}from"../chunks/scheduler.37c15a92.js";import{S as F,i as Y,g as M,s as l,r as _,A as L,h as f,f as e,c as n,j as z,u as I,x as V,k as A,y as K,a,v as W,d as v,t as N,w as Q}from"../chunks/index.2bf4358c.js";import{C as R}from"../chunks/CodeBlock.4f5fc1ad.js";import{C as D}from"../chunks/CourseFloatingBanner.06521e8b.js";import{H as O}from"../chunks/Heading.8ada512a.js";function ss(E){let r,j,d,b,p,w,o,J,i,G="사전 학습된 혹은 미세 조정된 모델을 프로덕션 단계에서 사용하실 계획이라면, 이러한 모델들은 강력한 툴이지만 한계가 있음을 반드시 명심하셔야 합니다. 가장 큰 한계점은 리서처들이 무수히 많은 양의 데이터를 사전 학습에 사용하기 위해, 인터넷상에서 모을 수 있는 양질의 데이터와 함께 그렇지 않은 데이터까지 수집했을 가능성이 있다는 것입니다.",k,c,H="이를 빠르게 보여드리기 위해 <code>fill-mask</code> 파이프라인에 BERT 모델을 연결한 예제를 다시 살펴보겠습니다:",T,m,x,u,$,h,q='주어의 성별만 바꾼 두 문장에서 빠진 단어를 채울 때, 모델은 성별과 관계 없는 공통 답변(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> 같이 상당히 중립적인 데이터를 이용해 사전 학습 되었음에도 불구하고 이러한 현상이 일어납니다.',U,y,S="따라서 이러한 툴을 사용하실 때에는 항상 여러분이 사용할 원본 모델이 젠더, 인종, 동성애 등에 대해 혐오 표현을 할 가능성이 매우 높다는 것을 주의하셔야 합니다. 이러한 모델은 미세 조정을 거쳐도 내제된 편향성을 없애지 못합니다.",C,g,B;return p=new O({props:{title:"편향과 한계",local:"편향과-한계",headingTag:"h1"}}),o=new D({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 R({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 R({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}}),{c(){r=M("meta"),j=l(),d=M("p"),b=l(),_(p.$$.fragment),w=l(),_(o.$$.fragment),J=l(),i=M("p"),i.textContent=G,k=l(),c=M("p"),c.innerHTML=H,T=l(),_(m.$$.fragment),x=l(),_(u.$$.fragment),$=l(),h=M("p"),h.innerHTML=q,U=l(),y=M("p"),y.textContent=S,C=l(),g=M("p"),this.h()},l(s){const t=L("svelte-u9bgzb",document.head);r=f(t,"META",{name:!0,content:!0}),t.forEach(e),j=n(s),d=f(s,"P",{}),z(d).forEach(e),b=n(s),I(p.$$.fragment,s),w=n(s),I(o.$$.fragment,s),J=n(s),i=f(s,"P",{"data-svelte-h":!0}),V(i)!=="svelte-wi12pj"&&(i.textContent=G),k=n(s),c=f(s,"P",{"data-svelte-h":!0}),V(c)!=="svelte-13l9y7t"&&(c.innerHTML=H),T=n(s),I(m.$$.fragment,s),x=n(s),I(u.$$.fragment,s),$=n(s),h=f(s,"P",{"data-svelte-h":!0}),V(h)!=="svelte-8t4x27"&&(h.innerHTML=q),U=n(s),y=f(s,"P",{"data-svelte-h":!0}),V(y)!=="svelte-17vsb8r"&&(y.textContent=S),C=n(s),g=f(s,"P",{}),z(g).forEach(e),this.h()},h(){A(r,"name","hf:doc:metadata"),A(r,"content",ts)},m(s,t){K(document.head,r),a(s,j,t),a(s,d,t),a(s,b,t),W(p,s,t),a(s,w,t),W(o,s,t),a(s,J,t),a(s,i,t),a(s,k,t),a(s,c,t),a(s,T,t),W(m,s,t),a(s,x,t),W(u,s,t),a(s,$,t),a(s,h,t),a(s,U,t),a(s,y,t),a(s,C,t),a(s,g,t),B=!0},p:P,i(s){B||(v(p.$$.fragment,s),v(o.$$.fragment,s),v(m.$$.fragment,s),v(u.$$.fragment,s),B=!0)},o(s){N(p.$$.fragment,s),N(o.$$.fragment,s),N(m.$$.fragment,s),N(u.$$.fragment,s),B=!1},d(s){s&&(e(j),e(d),e(b),e(w),e(J),e(i),e(k),e(c),e(T),e(x),e($),e(h),e(U),e(y),e(C),e(g)),e(r),Q(p,s),Q(o,s),Q(m,s),Q(u,s)}}}const ts='{"title":"편향과 한계","local":"편향과-한계","sections":[],"depth":1}';function es(E){return X(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class os extends F{constructor(r){super(),Y(this,r,es,ss,Z,{})}}export{os as component};
