import{s as N,n as z,o as I}from"../chunks/scheduler.bdbef820.js";import{S as F,i as J,g as o,s as n,r as k,A as Q,h as s,f as a,c as i,j as U,u as q,x as T,k as A,y as V,a as l,v as D,d as O,t as S,w as K}from"../chunks/index.33f81d56.js";import{H as W,E as X}from"../chunks/EditOnGithub.a9246e21.js";function Y(M){let r,x,v,_,p,E,m,R=`BERT와 같은 대규모 트랜스포머의 내부 동작을 조사하는 연구 분야가 점점 더 중요해지고 있습니다.
혹자는 “BERTology”라 칭하기도 합니다. 이 분야의 좋은 예시는 다음과 같습니다:`,y,f,B=`<li>BERT는 고전적인 NLP 파이프라인의 재발견 - Ian Tenney, Dipanjan Das, Ellie Pavlick:
<a href="https://arxiv.org/abs/1905.05950" rel="nofollow">https://arxiv.org/abs/1905.05950</a></li> <li>16개의 헤드가 정말로 1개보다 나은가? - Paul Michel, Omer Levy, Graham Neubig:
<a href="https://arxiv.org/abs/1905.10650" rel="nofollow">https://arxiv.org/abs/1905.10650</a></li> <li>BERT는 무엇을 보는가? BERT의 어텐션 분석 - Kevin Clark, Urvashi Khandelwal, Omer Levy, Christopher D. Manning:
<a href="https://arxiv.org/abs/1906.04341" rel="nofollow">https://arxiv.org/abs/1906.04341</a></li> <li>CAT-probing: 프로그래밍 언어에 대해 사전훈련된 모델이 어떻게 코드 구조를 보는지 알아보기 위한 메트릭 기반 접근 방법:
<a href="https://arxiv.org/abs/2210.04633" rel="nofollow">https://arxiv.org/abs/2210.04633</a></li>`,P,h,H=`우리는 이 새로운 연구 분야의 발전을 돕기 위해, BERT/GPT/GPT-2 모델에 내부 표현을 살펴볼 수 있는 몇 가지 기능을 추가했습니다.
이 기능들은 주로 Paul Michel의 훌륭한 작업을 참고하여 개발되었습니다
(<a href="https://arxiv.org/abs/1905.10650" rel="nofollow">https://arxiv.org/abs/1905.10650</a>):`,$,u,G='<li>BERT/GPT/GPT-2의 모든 은닉 상태에 접근하기,</li> <li>BERT/GPT/GPT-2의 각 헤드의 모든 어텐션 가중치에 접근하기,</li> <li>헤드의 출력 값과 그래디언트를 검색하여 헤드 중요도 점수를 계산하고 <a href="https://arxiv.org/abs/1905.10650%EC%97%90%EC%84%9C" rel="nofollow">https://arxiv.org/abs/1905.10650에서</a> 설명된 대로 헤드를 제거하는 기능을 제공합니다.</li>',d,c,j='이러한 기능들을 이해하고 직접 사용해볼 수 있도록 <a href="https://github.com/huggingface/transformers/tree/main/examples/research_projects/bertology/run_bertology.py" rel="nofollow">bertology.py</a> 예제 스크립트를 추가했습니다. 이 예제 스크립트에서는 GLUE에 대해 사전훈련된 모델에서 정보를 추출하고 모델을 가지치기(prune)해봅니다.',w,g,L,b,C;return p=new W({props:{title:"BERTology",local:"bertology",headingTag:"h1"}}),g=new X({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ko/bertology.md"}}),{c(){r=o("meta"),x=n(),v=o("p"),_=n(),k(p.$$.fragment),E=n(),m=o("p"),m.textContent=R,y=n(),f=o("ul"),f.innerHTML=B,P=n(),h=o("p"),h.innerHTML=H,$=n(),u=o("ul"),u.innerHTML=G,d=n(),c=o("p"),c.innerHTML=j,w=n(),k(g.$$.fragment),L=n(),b=o("p"),this.h()},l(t){const e=Q("svelte-u9bgzb",document.head);r=s(e,"META",{name:!0,content:!0}),e.forEach(a),x=i(t),v=s(t,"P",{}),U(v).forEach(a),_=i(t),q(p.$$.fragment,t),E=i(t),m=s(t,"P",{"data-svelte-h":!0}),T(m)!=="svelte-1j2i4ka"&&(m.textContent=R),y=i(t),f=s(t,"UL",{"data-svelte-h":!0}),T(f)!=="svelte-7yh4qj"&&(f.innerHTML=B),P=i(t),h=s(t,"P",{"data-svelte-h":!0}),T(h)!=="svelte-qnfkt5"&&(h.innerHTML=H),$=i(t),u=s(t,"UL",{"data-svelte-h":!0}),T(u)!=="svelte-1btj3hc"&&(u.innerHTML=G),d=i(t),c=s(t,"P",{"data-svelte-h":!0}),T(c)!=="svelte-5ng9ah"&&(c.innerHTML=j),w=i(t),q(g.$$.fragment,t),L=i(t),b=s(t,"P",{}),U(b).forEach(a),this.h()},h(){A(r,"name","hf:doc:metadata"),A(r,"content",Z)},m(t,e){V(document.head,r),l(t,x,e),l(t,v,e),l(t,_,e),D(p,t,e),l(t,E,e),l(t,m,e),l(t,y,e),l(t,f,e),l(t,P,e),l(t,h,e),l(t,$,e),l(t,u,e),l(t,d,e),l(t,c,e),l(t,w,e),D(g,t,e),l(t,L,e),l(t,b,e),C=!0},p:z,i(t){C||(O(p.$$.fragment,t),O(g.$$.fragment,t),C=!0)},o(t){S(p.$$.fragment,t),S(g.$$.fragment,t),C=!1},d(t){t&&(a(x),a(v),a(_),a(E),a(m),a(y),a(f),a(P),a(h),a($),a(u),a(d),a(c),a(w),a(L),a(b)),a(r),K(p,t),K(g,t)}}}const Z='{"title":"BERTology","local":"bertology","sections":[],"depth":1}';function tt(M){return I(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class rt extends F{constructor(r){super(),J(this,r,tt,Y,N,{})}}export{rt as component};
