Buckets:

rtrm's picture
download
raw
33.6 kB
import{s as Cl,n as _l,o as Zl}from"../chunks/scheduler.bdbef820.js";import{S as kl,i as Al,g as n,s as a,r as c,A as Vl,h as M,f as e,c as p,j as bl,u as o,x as i,k as Bl,y as Rl,a as t,v as r,d as y,t as j,w as d}from"../chunks/index.33f81d56.js";import{C as J}from"../chunks/CodeBlock.362b34a4.js";import{H as Ls,E as gl}from"../chunks/EditOnGithub.a9246e21.js";function Gl(Ks){let T,ns,as,Ms,w,is,m,Ds='์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ์–ด๋–ป๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  <a href="https://hf.co/models" rel="nofollow">ํ—ˆ๋ธŒ</a>์— ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ๐Ÿค— Transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.',cs,u,Os=`๋จผ์ € ํŒŒ์ดํ”„๋ผ์ธ์ด ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์›์‹œ ์ž…๋ ฅ์„ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์ž์—ด, ์›์‹œ ๋ฐ”์ดํŠธ, ๋”•์…”๋„ˆ๋ฆฌ ๋˜๋Š” ๊ฐ€์žฅ ์›ํ•˜๋Š” ์ž…๋ ฅ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ๊ฒƒ์ด๋ฉด ๋ฌด์—‡์ด๋“  ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์ด ์ž…๋ ฅ์„ ๊ฐ€๋Šฅํ•œ ํ•œ ์ˆœ์ˆ˜ํ•œ Python ํ˜•์‹์œผ๋กœ ์œ ์ง€ํ•ด์•ผ (JSON์„ ํ†ตํ•ด ๋‹ค๋ฅธ ์–ธ์–ด์™€๋„) ํ˜ธํ™˜์„ฑ์ด ์ข‹์•„์ง‘๋‹ˆ๋‹ค.
์ด๊ฒƒ์ด ์ „์ฒ˜๋ฆฌ(<code>preprocess</code>) ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ž…๋ ฅ(<code>inputs</code>)์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.`,os,U,sl=`๊ทธ๋Ÿฐ ๋‹ค์Œ <code>outputs</code>๋ฅผ ์ •์˜ํ•˜์„ธ์š”.
<code>inputs</code>์™€ ๊ฐ™์€ ์ •์ฑ…์„ ๋”ฐ๋ฅด๊ณ , ๊ฐ„๋‹จํ• ์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์ด ํ›„์ฒ˜๋ฆฌ(<code>postprocess</code>) ๋ฉ”์†Œ๋“œ์˜ ์ถœ๋ ฅ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.`,rs,f,ll="๋จผ์ € 4๊ฐœ์˜ ๋ฉ”์†Œ๋“œ(<code>preprocess</code>, <code>_forward</code>, <code>postprocess</code> ๋ฐ <code>_sanitize_parameters</code>)๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ ํด๋ž˜์Šค <code>Pipeline</code>์„ ์ƒ์†ํ•˜์—ฌ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.",ys,h,js,I,el="์ด ๋ถ„ํ•  ๊ตฌ์กฐ๋Š” CPU/GPU์— ๋Œ€ํ•œ ๋น„๊ต์  ์›ํ™œํ•œ ์ง€์›์„ ์ œ๊ณตํ•˜๋Š” ๋™์‹œ์—, ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ CPU์— ๋Œ€ํ•œ ์‚ฌ์ „/์‚ฌํ›„ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.",ds,b,tl=`<code>preprocess</code>๋Š” ์›๋ž˜ ์ •์˜๋œ ์ž…๋ ฅ์„ ๊ฐ€์ ธ์™€ ๋ชจ๋ธ์— ๊ณต๊ธ‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ <code>Dict</code> ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.`,Js,B,al=`<code>_forward</code>๋Š” ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ์ด๋ฉฐ ์ง์ ‘ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
<code>forward</code>๋Š” ์˜ˆ์ƒ ์žฅ์น˜์—์„œ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์•ˆ์ „์žฅ์น˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด ์„ ํ˜ธ๋˜๋Š” ํ˜ธ์ถœ ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค.
์‹ค์ œ ๋ชจ๋ธ๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์€ <code>_forward</code> ๋ฉ”์†Œ๋“œ์— ์†ํ•˜๋ฉฐ, ๋‚˜๋จธ์ง€๋Š” ์ „์ฒ˜๋ฆฌ/ํ›„์ฒ˜๋ฆฌ ๊ณผ์ •์— ์žˆ์Šต๋‹ˆ๋‹ค.`,Ts,C,pl="<code>postprocess</code> ๋ฉ”์†Œ๋“œ๋Š” <code>_forward</code>์˜ ์ถœ๋ ฅ์„ ๊ฐ€์ ธ์™€ ์ด์ „์— ๊ฒฐ์ •ํ•œ ์ตœ์ข… ์ถœ๋ ฅ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.",ws,_,nl="<code>_sanitize_parameters</code>๋Š” ์ดˆ๊ธฐํ™” ์‹œ๊ฐ„์— <code>pipeline(...., maybe_arg=4)</code>์ด๋‚˜ ํ˜ธ์ถœ ์‹œ๊ฐ„์— <code>pipe = pipeline(...); output = pipe(...., maybe_arg=4)</code>๊ณผ ๊ฐ™์ด, ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์–ธ์ œ๋“ ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.",ms,Z,Ml=`<code>_sanitize_parameters</code>์˜ ๋ฐ˜ํ™˜ ๊ฐ’์€ <code>preprocess</code>, <code>_forward</code>, <code>postprocess</code>์— ์ง์ ‘ ์ „๋‹ฌ๋˜๋Š” 3๊ฐœ์˜ kwargs ๋”•์…”๋„ˆ๋ฆฌ์ž…๋‹ˆ๋‹ค.
ํ˜ธ์ถœ์ž๊ฐ€ ์ถ”๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์ฑ„์šฐ์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•ญ์ƒ ๋” โ€œ์ž์—ฐ์Šค๋Ÿฌ์šดโ€ ํ•จ์ˆ˜ ์ •์˜์˜ ๊ธฐ๋ณธ ์ธ์ˆ˜๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.`,us,k,il="๋ถ„๋ฅ˜ ์ž‘์—…์—์„œ <code>top_k</code> ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ž…๋‹ˆ๋‹ค.",Us,A,fs,V,cl="์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” <code>postprocess</code> ๋ฉ”์†Œ๋“œ๋ฅผ ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜์ธ <code>5</code>๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  <code>_sanitize_parameters</code>๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ์ด ์ƒˆ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.",hs,R,Is,g,ol=`์ž…/์ถœ๋ ฅ์„ ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ„๋‹จํ•˜๊ณ  ์™„์ „ํžˆ JSON ์ง๋ ฌํ™” ๊ฐ€๋Šฅํ•œ ํ˜•์‹์œผ๋กœ ์œ ์ง€ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜์‹ญ์‹œ์˜ค.
์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ๋กœ์šด ์ข…๋ฅ˜์˜ ๊ฐœ์ฒด๋ฅผ ์ดํ•ดํ•˜์ง€ ์•Š๊ณ ๋„ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ์‚ฌ์šฉ ์šฉ์ด์„ฑ์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์œ ํ˜•์˜ ์ธ์ˆ˜(์˜ค๋””์˜ค ํŒŒ์ผ์€ ํŒŒ์ผ ์ด๋ฆ„, URL ๋˜๋Š” ์ˆœ์ˆ˜ํ•œ ๋ฐ”์ดํŠธ์ผ ์ˆ˜ ์žˆ์Œ)๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ๋น„๊ต์  ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.`,bs,G,Bs,H,rl="<code>new-task</code>๋ฅผ ์ง€์›๋˜๋Š” ์ž‘์—… ๋ชฉ๋ก์— ๋“ฑ๋กํ•˜๋ ค๋ฉด <code>PIPELINE_REGISTRY</code>์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:",Cs,N,_s,W,yl="์›ํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋ชจ๋ธ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๊ฒฝ์šฐ ํŠน์ • ๊ฐœ์ •(๋ถ„๊ธฐ ์ด๋ฆ„ ๋˜๋Š” ์ปค๋ฐ‹ ํ•ด์‹œ์ผ ์ˆ˜ ์žˆ์Œ, ์—ฌ๊ธฐ์„œ๋Š” โ€œabcdefโ€)๊ณผ ํƒ€์ž…์„ ํ•จ๊ป˜ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค:",Zs,E,ks,X,As,q,jl=`Hub์— ์‚ฌ์šฉ์ž ์ •์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ณต์œ ํ•˜๋ ค๋ฉด <code>Pipeline</code> ํ•˜์œ„ ํด๋ž˜์Šค์˜ ์‚ฌ์šฉ์ž ์ •์˜ ์ฝ”๋“œ๋ฅผ Python ํŒŒ์ผ์— ์ €์žฅํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฌธ์žฅ ์Œ ๋ถ„๋ฅ˜๋ฅผ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค:`,Vs,$,Rs,z,dl=`๊ตฌํ˜„์€ ํ”„๋ ˆ์ž„์›Œํฌ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š์œผ๋ฉฐ, PyTorch์™€ TensorFlow ๋ชจ๋ธ์— ๋Œ€ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ <code>pair_classification.py</code>๋ผ๋Š” ํŒŒ์ผ์— ์ €์žฅํ•œ ๊ฒฝ์šฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ€์ ธ์˜ค๊ณ  ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:`,gs,Q,Gs,v,Jl=`์ด ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ์‚ฌ์ „ํ›ˆ๋ จ๋œ ๋ชจ๋ธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, <code>sgugger/finetuned-bert-mrpc</code>์€ MRPC ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ๋ฏธ์„ธ ์กฐ์ •๋˜์–ด ๋ฌธ์žฅ ์Œ์„ ํŒจ๋Ÿฌํ”„๋ ˆ์ด์ฆˆ์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค.`,Hs,x,Ns,F,Tl="๊ทธ๋Ÿฐ ๋‹ค์Œ <code>push_to_hub</code> ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ—ˆ๋ธŒ์— ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:",Ws,Y,Es,S,wl=`์ด๋ ‡๊ฒŒ ํ•˜๋ฉด โ€œtest-dynamic-pipelineโ€ ํด๋” ๋‚ด์— <code>PairClassificationPipeline</code>์„ ์ •์˜ํ•œ ํŒŒ์ผ์ด ๋ณต์‚ฌ๋˜๋ฉฐ, ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ชจ๋ธ๊ณผ ํ† ํฌ๋‚˜์ด์ €๋„ ์ €์žฅํ•œ ํ›„, <code>{your_username}/test-dynamic-pipeline</code> ์ €์žฅ์†Œ์— ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค.
์ดํ›„์—๋Š” <code>trust_remote_code=True</code> ์˜ต์…˜๋งŒ ์ œ๊ณตํ•˜๋ฉด ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.`,Xs,P,qs,L,$s,K,ml="๐Ÿค— Transformers์— ์‚ฌ์šฉ์ž ์ •์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ธฐ์—ฌํ•˜๋ ค๋ฉด, <code>pipelines</code> ํ•˜์œ„ ๋ชจ๋“ˆ์— ์‚ฌ์šฉ์ž ์ •์˜ ํŒŒ์ดํ”„๋ผ์ธ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ƒˆ ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ, <code>pipelines/__init__.py</code>์—์„œ ์ •์˜๋œ ์ž‘์—… ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.",zs,D,ul=`๊ทธ๋Ÿฐ ๋‹ค์Œ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
<code>tests/test_pipelines_MY_PIPELINE.py</code>๋ผ๋Š” ์ƒˆ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ์™€ ์˜ˆ์ œ๋ฅผ ํ•จ๊ป˜ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.`,Qs,O,Ul="<code>run_pipeline_test</code> ํ•จ์ˆ˜๋Š” ๋งค์šฐ ์ผ๋ฐ˜์ ์ด๋ฉฐ, <code>model_mapping</code> ๋ฐ <code>tf_model_mapping</code>์—์„œ ์ •์˜๋œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜์˜ ์ž‘์€ ๋ฌด์ž‘์œ„ ๋ชจ๋ธ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.",vs,ss,fl=`์ด๋Š” ํ–ฅํ›„ ํ˜ธํ™˜์„ฑ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•˜๋ฉฐ, ๋ˆ„๊ตฐ๊ฐ€ <code>XXXForQuestionAnswering</code>์„ ์œ„ํ•œ ์ƒˆ ๋ชจ๋ธ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ํŒŒ์ดํ”„๋ผ์ธ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•ด๋‹น ๋ชจ๋ธ์—์„œ ์‹คํ–‰์„ ์‹œ๋„ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
๋ชจ๋ธ์ด ๋ฌด์ž‘์œ„์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ๊ฐ’์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ๋‹จ์ˆœํžˆ ํŒŒ์ดํ”„๋ผ์ธ ์ถœ๋ ฅ <code>TYPE</code>๊ณผ ์ผ์น˜์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋„์šฐ๋ฏธ <code>ANY</code>๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.`,xs,ls,hl="๋˜ํ•œ 2๊ฐœ(์ด์ƒ์ ์œผ๋กœ๋Š” 4๊ฐœ)์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.",Fs,es,Il=`<li><code>test_small_model_pt</code>: ์ด ํŒŒ์ดํ”„๋ผ์ธ์— ๋Œ€ํ•œ ์ž‘์€ ๋ชจ๋ธ 1๊ฐœ๋ฅผ ์ •์˜(๊ฒฐ๊ณผ๊ฐ€ ์˜๋ฏธ ์—†์–ด๋„ ์ƒ๊ด€์—†์Œ)ํ•˜๊ณ  ํŒŒ์ดํ”„๋ผ์ธ ์ถœ๋ ฅ์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ๋Š” <code>test_small_model_tf</code>์™€ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.</li> <li><code>test_small_model_tf</code>: ์ด ํŒŒ์ดํ”„๋ผ์ธ์— ๋Œ€ํ•œ ์ž‘์€ ๋ชจ๋ธ 1๊ฐœ๋ฅผ ์ •์˜(๊ฒฐ๊ณผ๊ฐ€ ์˜๋ฏธ ์—†์–ด๋„ ์ƒ๊ด€์—†์Œ)ํ•˜๊ณ  ํŒŒ์ดํ”„๋ผ์ธ ์ถœ๋ ฅ์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ๋Š” <code>test_small_model_pt</code>์™€ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.</li> <li><code>test_large_model_pt</code>(<code>์„ ํƒ์‚ฌํ•ญ</code>): ๊ฒฐ๊ณผ๊ฐ€ ์˜๋ฏธ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ์‹ค์ œ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ๋Š” ์†๋„๊ฐ€ ๋А๋ฆฌ๋ฏ€๋กœ ์ด๋ฅผ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ์˜ ๋ชฉํ‘œ๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ ๋ณด์—ฌ์ฃผ๊ณ  ํ–ฅํ›„ ๋ฆด๋ฆฌ์ฆˆ์—์„œ์˜ ๋ณ€ํ™”๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.</li> <li><code>test_large_model_tf</code>(<code>์„ ํƒ์‚ฌํ•ญ</code>): ๊ฒฐ๊ณผ๊ฐ€ ์˜๋ฏธ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ์‹ค์ œ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ๋Š” ์†๋„๊ฐ€ ๋А๋ฆฌ๋ฏ€๋กœ ์ด๋ฅผ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ์˜ ๋ชฉํ‘œ๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ ๋ณด์—ฌ์ฃผ๊ณ  ํ–ฅํ›„ ๋ฆด๋ฆฌ์ฆˆ์—์„œ์˜ ๋ณ€ํ™”๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.</li>`,Ys,ts,Ss,ps,Ps;return w=new Ls({props:{title:"์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ์ž ์ •์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ƒ์„ฑํ•˜๋‚˜์š”?",local:"how-to-create-a-custom-pipeline",headingTag:"h1"}}),h=new J({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFBpcGVsaW5lJTBBJTBBJTBBY2xhc3MlMjBNeVBpcGVsaW5lKFBpcGVsaW5lKSUzQSUwQSUyMCUyMCUyMCUyMGRlZiUyMF9zYW5pdGl6ZV9wYXJhbWV0ZXJzKHNlbGYlMkMlMjAqKmt3YXJncyklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmVwcm9jZXNzX2t3YXJncyUyMCUzRCUyMCU3QiU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwJTIybWF5YmVfYXJnJTIyJTIwaW4lMjBrd2FyZ3MlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmVwcm9jZXNzX2t3YXJncyU1QiUyMm1heWJlX2FyZyUyMiU1RCUyMCUzRCUyMGt3YXJncyU1QiUyMm1heWJlX2FyZyUyMiU1RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMHByZXByb2Nlc3Nfa3dhcmdzJTJDJTIwJTdCJTdEJTJDJTIwJTdCJTdEJTBBJTBBJTIwJTIwJTIwJTIwZGVmJTIwcHJlcHJvY2VzcyhzZWxmJTJDJTIwaW5wdXRzJTJDJTIwbWF5YmVfYXJnJTNEMiklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBtb2RlbF9pbnB1dCUyMCUzRCUyMFRlbnNvcihpbnB1dHMlNUIlMjJpbnB1dF9pZHMlMjIlNUQpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTdCJTIybW9kZWxfaW5wdXQlMjIlM0ElMjBtb2RlbF9pbnB1dCU3RCUwQSUwQSUyMCUyMCUyMCUyMGRlZiUyMF9mb3J3YXJkKHNlbGYlMkMlMjBtb2RlbF9pbnB1dHMpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwbW9kZWxfaW5wdXRzJTIwJTNEJTNEJTIwJTdCJTIybW9kZWxfaW5wdXQlMjIlM0ElMjBtb2RlbF9pbnB1dCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG91dHB1dHMlMjAlM0QlMjBzZWxmLm1vZGVsKCoqbW9kZWxfaW5wdXRzKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyME1heWJlJTIwJTdCJTIybG9naXRzJTIyJTNBJTIwVGVuc29yKC4uLiklN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBvdXRwdXRzJTBBJTBBJTIwJTIwJTIwJTIwZGVmJTIwcG9zdHByb2Nlc3Moc2VsZiUyQyUyMG1vZGVsX291dHB1dHMpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYmVzdF9jbGFzcyUyMCUzRCUyMG1vZGVsX291dHB1dHMlNUIlMjJsb2dpdHMlMjIlNUQuc29mdG1heCgtMSklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBiZXN0X2NsYXNz",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> Pipeline
<span class="hljs-keyword">class</span> <span class="hljs-title class_">MyPipeline</span>(<span class="hljs-title class_ inherited__">Pipeline</span>):
<span class="hljs-keyword">def</span> <span class="hljs-title function_">_sanitize_parameters</span>(<span class="hljs-params">self, **kwargs</span>):
preprocess_kwargs = {}
<span class="hljs-keyword">if</span> <span class="hljs-string">&quot;maybe_arg&quot;</span> <span class="hljs-keyword">in</span> kwargs:
preprocess_kwargs[<span class="hljs-string">&quot;maybe_arg&quot;</span>] = kwargs[<span class="hljs-string">&quot;maybe_arg&quot;</span>]
<span class="hljs-keyword">return</span> preprocess_kwargs, {}, {}
<span class="hljs-keyword">def</span> <span class="hljs-title function_">preprocess</span>(<span class="hljs-params">self, inputs, maybe_arg=<span class="hljs-number">2</span></span>):
model_input = Tensor(inputs[<span class="hljs-string">&quot;input_ids&quot;</span>])
<span class="hljs-keyword">return</span> {<span class="hljs-string">&quot;model_input&quot;</span>: model_input}
<span class="hljs-keyword">def</span> <span class="hljs-title function_">_forward</span>(<span class="hljs-params">self, model_inputs</span>):
<span class="hljs-comment"># model_inputs == {&quot;model_input&quot;: model_input}</span>
outputs = self.model(**model_inputs)
<span class="hljs-comment"># Maybe {&quot;logits&quot;: Tensor(...)}</span>
<span class="hljs-keyword">return</span> outputs
<span class="hljs-keyword">def</span> <span class="hljs-title function_">postprocess</span>(<span class="hljs-params">self, model_outputs</span>):
best_class = model_outputs[<span class="hljs-string">&quot;logits&quot;</span>].softmax(-<span class="hljs-number">1</span>)
<span class="hljs-keyword">return</span> best_class`,wrap:!1}}),A=new J({props:{code:"cGlwZSUyMCUzRCUyMHBpcGVsaW5lKCUyMm15LW5ldy10YXNrJTIyKSUwQXBpcGUoJTIyVGhpcyUyMGlzJTIwYSUyMHRlc3QlMjIpJTBBJTBBcGlwZSglMjJUaGlzJTIwaXMlMjBhJTIwdGVzdCUyMiUyQyUyMHRvcF9rJTNEMik=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>pipe = pipeline(<span class="hljs-string">&quot;my-new-task&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe(<span class="hljs-string">&quot;This is a test&quot;</span>)
[{<span class="hljs-string">&quot;label&quot;</span>: <span class="hljs-string">&quot;1-star&quot;</span>, <span class="hljs-string">&quot;score&quot;</span>: <span class="hljs-number">0.8</span>}, {<span class="hljs-string">&quot;label&quot;</span>: <span class="hljs-string">&quot;2-star&quot;</span>, <span class="hljs-string">&quot;score&quot;</span>: <span class="hljs-number">0.1</span>}, {<span class="hljs-string">&quot;label&quot;</span>: <span class="hljs-string">&quot;3-star&quot;</span>, <span class="hljs-string">&quot;score&quot;</span>: <span class="hljs-number">0.05</span>}
{<span class="hljs-string">&quot;label&quot;</span>: <span class="hljs-string">&quot;4-star&quot;</span>, <span class="hljs-string">&quot;score&quot;</span>: <span class="hljs-number">0.025</span>}, {<span class="hljs-string">&quot;label&quot;</span>: <span class="hljs-string">&quot;5-star&quot;</span>, <span class="hljs-string">&quot;score&quot;</span>: <span class="hljs-number">0.025</span>}]
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe(<span class="hljs-string">&quot;This is a test&quot;</span>, top_k=<span class="hljs-number">2</span>)
[{<span class="hljs-string">&quot;label&quot;</span>: <span class="hljs-string">&quot;1-star&quot;</span>, <span class="hljs-string">&quot;score&quot;</span>: <span class="hljs-number">0.8</span>}, {<span class="hljs-string">&quot;label&quot;</span>: <span class="hljs-string">&quot;2-star&quot;</span>, <span class="hljs-string">&quot;score&quot;</span>: <span class="hljs-number">0.1</span>}]`,wrap:!1}}),R=new J({props:{code:"ZGVmJTIwcG9zdHByb2Nlc3Moc2VsZiUyQyUyMG1vZGVsX291dHB1dHMlMkMlMjB0b3BfayUzRDUpJTNBJTBBJTIwJTIwJTIwJTIwYmVzdF9jbGFzcyUyMCUzRCUyMG1vZGVsX291dHB1dHMlNUIlMjJsb2dpdHMlMjIlNUQuc29mdG1heCgtMSklMEElMjAlMjAlMjAlMjAlMjMlMjB0b3BfayVFQiVBNSVCQyUyMCVFQyVCMiU5OCVFQiVBNiVBQyVFRCU5NSU5OCVFQiU4QSU5NCUyMCVFQiVBMSU5QyVFQyVBNyU4MSUyMCVFQyVCNiU5NCVFQSVCMCU4MCUwQSUyMCUyMCUyMCUyMHJldHVybiUyMGJlc3RfY2xhc3MlMEElMEElMEFkZWYlMjBfc2FuaXRpemVfcGFyYW1ldGVycyhzZWxmJTJDJTIwKiprd2FyZ3MpJTNBJTBBJTIwJTIwJTIwJTIwcHJlcHJvY2Vzc19rd2FyZ3MlMjAlM0QlMjAlN0IlN0QlMEElMjAlMjAlMjAlMjBpZiUyMCUyMm1heWJlX2FyZyUyMiUyMGluJTIwa3dhcmdzJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJlcHJvY2Vzc19rd2FyZ3MlNUIlMjJtYXliZV9hcmclMjIlNUQlMjAlM0QlMjBrd2FyZ3MlNUIlMjJtYXliZV9hcmclMjIlNUQlMEElMEElMjAlMjAlMjAlMjBwb3N0cHJvY2Vzc19rd2FyZ3MlMjAlM0QlMjAlN0IlN0QlMEElMjAlMjAlMjAlMjBpZiUyMCUyMnRvcF9rJTIyJTIwaW4lMjBrd2FyZ3MlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwb3N0cHJvY2Vzc19rd2FyZ3MlNUIlMjJ0b3BfayUyMiU1RCUyMCUzRCUyMGt3YXJncyU1QiUyMnRvcF9rJTIyJTVEJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwcHJlcHJvY2Vzc19rd2FyZ3MlMkMlMjAlN0IlN0QlMkMlMjBwb3N0cHJvY2Vzc19rd2FyZ3M=",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">postprocess</span>(<span class="hljs-params">self, model_outputs, top_k=<span class="hljs-number">5</span></span>):
best_class = model_outputs[<span class="hljs-string">&quot;logits&quot;</span>].softmax(-<span class="hljs-number">1</span>)
<span class="hljs-comment"># top_k๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง ์ถ”๊ฐ€</span>
<span class="hljs-keyword">return</span> best_class
<span class="hljs-keyword">def</span> <span class="hljs-title function_">_sanitize_parameters</span>(<span class="hljs-params">self, **kwargs</span>):
preprocess_kwargs = {}
<span class="hljs-keyword">if</span> <span class="hljs-string">&quot;maybe_arg&quot;</span> <span class="hljs-keyword">in</span> kwargs:
preprocess_kwargs[<span class="hljs-string">&quot;maybe_arg&quot;</span>] = kwargs[<span class="hljs-string">&quot;maybe_arg&quot;</span>]
postprocess_kwargs = {}
<span class="hljs-keyword">if</span> <span class="hljs-string">&quot;top_k&quot;</span> <span class="hljs-keyword">in</span> kwargs:
postprocess_kwargs[<span class="hljs-string">&quot;top_k&quot;</span>] = kwargs[<span class="hljs-string">&quot;top_k&quot;</span>]
<span class="hljs-keyword">return</span> preprocess_kwargs, {}, postprocess_kwargs`,wrap:!1}}),G=new Ls({props:{title:"์ง€์›๋˜๋Š” ์ž‘์—… ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•˜๊ธฐ",local:"adding-it-to-the-list-of-supported-tasks",headingTag:"h2"}}),N=new J({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycy5waXBlbGluZXMlMjBpbXBvcnQlMjBQSVBFTElORV9SRUdJU1RSWSUwQSUwQVBJUEVMSU5FX1JFR0lTVFJZLnJlZ2lzdGVyX3BpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMCUyMm5ldy10YXNrJTIyJTJDJTBBJTIwJTIwJTIwJTIwcGlwZWxpbmVfY2xhc3MlM0RNeVBpcGVsaW5lJTJDJTBBJTIwJTIwJTIwJTIwcHRfbW9kZWwlM0RBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uJTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers.pipelines <span class="hljs-keyword">import</span> PIPELINE_REGISTRY
PIPELINE_REGISTRY.register_pipeline(
<span class="hljs-string">&quot;new-task&quot;</span>,
pipeline_class=MyPipeline,
pt_model=AutoModelForSequenceClassification,
)`,wrap:!1}}),E=new J({props:{code:"UElQRUxJTkVfUkVHSVNUUlkucmVnaXN0ZXJfcGlwZWxpbmUoJTBBJTIwJTIwJTIwJTIwJTIybmV3LXRhc2slMjIlMkMlMEElMjAlMjAlMjAlMjBwaXBlbGluZV9jbGFzcyUzRE15UGlwZWxpbmUlMkMlMEElMjAlMjAlMjAlMjBwdF9tb2RlbCUzREF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMkMlMEElMjAlMjAlMjAlMjBkZWZhdWx0JTNEJTdCJTIycHQlMjIlM0ElMjAoJTIydXNlciUyRmF3ZXNvbWVfbW9kZWwlMjIlMkMlMjAlMjJhYmNkZWYlMjIpJTdEJTJDJTBBJTIwJTIwJTIwJTIwdHlwZSUzRCUyMnRleHQlMjIlMkMlMjAlMjAlMjMlMjAlRUQlOTglODQlRUMlOUUlQUMlMjAlRUMlQTclODAlRUMlOUIlOTAlMjAlRUMlOUMlQTAlRUQlOTglOTUlM0ElMjB0ZXh0JTJDJTIwYXVkaW8lMkMlMjBpbWFnZSUyQyUyMG11bHRpbW9kYWwlMEEp",highlighted:`PIPELINE_REGISTRY.register_pipeline(
<span class="hljs-string">&quot;new-task&quot;</span>,
pipeline_class=MyPipeline,
pt_model=AutoModelForSequenceClassification,
default={<span class="hljs-string">&quot;pt&quot;</span>: (<span class="hljs-string">&quot;user/awesome_model&quot;</span>, <span class="hljs-string">&quot;abcdef&quot;</span>)},
<span class="hljs-built_in">type</span>=<span class="hljs-string">&quot;text&quot;</span>, <span class="hljs-comment"># ํ˜„์žฌ ์ง€์› ์œ ํ˜•: text, audio, image, multimodal</span>
)`,wrap:!1}}),X=new Ls({props:{title:"Hub์— ํŒŒ์ดํ”„๋ผ์ธ ๊ณต์œ ํ•˜๊ธฐ",local:"share-your-pipeline-on-the-hub",headingTag:"h2"}}),$=new J({props:{code:"aW1wb3J0JTIwbnVtcHklMjBhcyUyMG5wJTBBJTBBZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFBpcGVsaW5lJTBBJTBBJTBBZGVmJTIwc29mdG1heChvdXRwdXRzKSUzQSUwQSUyMCUyMCUyMCUyMG1heGVzJTIwJTNEJTIwbnAubWF4KG91dHB1dHMlMkMlMjBheGlzJTNELTElMkMlMjBrZWVwZGltcyUzRFRydWUpJTBBJTIwJTIwJTIwJTIwc2hpZnRlZF9leHAlMjAlM0QlMjBucC5leHAob3V0cHV0cyUyMC0lMjBtYXhlcyklMEElMjAlMjAlMjAlMjByZXR1cm4lMjBzaGlmdGVkX2V4cCUyMCUyRiUyMHNoaWZ0ZWRfZXhwLnN1bShheGlzJTNELTElMkMlMjBrZWVwZGltcyUzRFRydWUpJTBBJTBBJTBBY2xhc3MlMjBQYWlyQ2xhc3NpZmljYXRpb25QaXBlbGluZShQaXBlbGluZSklM0ElMEElMjAlMjAlMjAlMjBkZWYlMjBfc2FuaXRpemVfcGFyYW1ldGVycyhzZWxmJTJDJTIwKiprd2FyZ3MpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJlcHJvY2Vzc19rd2FyZ3MlMjAlM0QlMjAlN0IlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZiUyMCUyMnNlY29uZF90ZXh0JTIyJTIwaW4lMjBrd2FyZ3MlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmVwcm9jZXNzX2t3YXJncyU1QiUyMnNlY29uZF90ZXh0JTIyJTVEJTIwJTNEJTIwa3dhcmdzJTVCJTIyc2Vjb25kX3RleHQlMjIlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBwcmVwcm9jZXNzX2t3YXJncyUyQyUyMCU3QiU3RCUyQyUyMCU3QiU3RCUwQSUwQSUyMCUyMCUyMCUyMGRlZiUyMHByZXByb2Nlc3Moc2VsZiUyQyUyMHRleHQlMkMlMjBzZWNvbmRfdGV4dCUzRE5vbmUpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwc2VsZi50b2tlbml6ZXIodGV4dCUyQyUyMHRleHRfcGFpciUzRHNlY29uZF90ZXh0JTJDJTIwcmV0dXJuX3RlbnNvcnMlM0RzZWxmLmZyYW1ld29yayklMEElMEElMjAlMjAlMjAlMjBkZWYlMjBfZm9yd2FyZChzZWxmJTJDJTIwbW9kZWxfaW5wdXRzKSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMHNlbGYubW9kZWwoKiptb2RlbF9pbnB1dHMpJTBBJTBBJTIwJTIwJTIwJTIwZGVmJTIwcG9zdHByb2Nlc3Moc2VsZiUyQyUyMG1vZGVsX291dHB1dHMpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9naXRzJTIwJTNEJTIwbW9kZWxfb3V0cHV0cy5sb2dpdHMlNUIwJTVELm51bXB5KCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcm9iYWJpbGl0aWVzJTIwJTNEJTIwc29mdG1heChsb2dpdHMpJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYmVzdF9jbGFzcyUyMCUzRCUyMG5wLmFyZ21heChwcm9iYWJpbGl0aWVzKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxhYmVsJTIwJTNEJTIwc2VsZi5tb2RlbC5jb25maWcuaWQybGFiZWwlNUJiZXN0X2NsYXNzJTVEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2NvcmUlMjAlM0QlMjBwcm9iYWJpbGl0aWVzJTVCYmVzdF9jbGFzcyU1RC5pdGVtKCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsb2dpdHMlMjAlM0QlMjBsb2dpdHMudG9saXN0KCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjAlN0IlMjJsYWJlbCUyMiUzQSUyMGxhYmVsJTJDJTIwJTIyc2NvcmUlMjIlM0ElMjBzY29yZSUyQyUyMCUyMmxvZ2l0cyUyMiUzQSUyMGxvZ2l0cyU3RA==",highlighted:`<span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> Pipeline
<span class="hljs-keyword">def</span> <span class="hljs-title function_">softmax</span>(<span class="hljs-params">outputs</span>):
maxes = np.<span class="hljs-built_in">max</span>(outputs, axis=-<span class="hljs-number">1</span>, keepdims=<span class="hljs-literal">True</span>)
shifted_exp = np.exp(outputs - maxes)
<span class="hljs-keyword">return</span> shifted_exp / shifted_exp.<span class="hljs-built_in">sum</span>(axis=-<span class="hljs-number">1</span>, keepdims=<span class="hljs-literal">True</span>)
<span class="hljs-keyword">class</span> <span class="hljs-title class_">PairClassificationPipeline</span>(<span class="hljs-title class_ inherited__">Pipeline</span>):
<span class="hljs-keyword">def</span> <span class="hljs-title function_">_sanitize_parameters</span>(<span class="hljs-params">self, **kwargs</span>):
preprocess_kwargs = {}
<span class="hljs-keyword">if</span> <span class="hljs-string">&quot;second_text&quot;</span> <span class="hljs-keyword">in</span> kwargs:
preprocess_kwargs[<span class="hljs-string">&quot;second_text&quot;</span>] = kwargs[<span class="hljs-string">&quot;second_text&quot;</span>]
<span class="hljs-keyword">return</span> preprocess_kwargs, {}, {}
<span class="hljs-keyword">def</span> <span class="hljs-title function_">preprocess</span>(<span class="hljs-params">self, text, second_text=<span class="hljs-literal">None</span></span>):
<span class="hljs-keyword">return</span> self.tokenizer(text, text_pair=second_text, return_tensors=self.framework)
<span class="hljs-keyword">def</span> <span class="hljs-title function_">_forward</span>(<span class="hljs-params">self, model_inputs</span>):
<span class="hljs-keyword">return</span> self.model(**model_inputs)
<span class="hljs-keyword">def</span> <span class="hljs-title function_">postprocess</span>(<span class="hljs-params">self, model_outputs</span>):
logits = model_outputs.logits[<span class="hljs-number">0</span>].numpy()
probabilities = softmax(logits)
best_class = np.argmax(probabilities)
label = self.model.config.id2label[best_class]
score = probabilities[best_class].item()
logits = logits.tolist()
<span class="hljs-keyword">return</span> {<span class="hljs-string">&quot;label&quot;</span>: label, <span class="hljs-string">&quot;score&quot;</span>: score, <span class="hljs-string">&quot;logits&quot;</span>: logits}`,wrap:!1}}),Q=new J({props:{code:"ZnJvbSUyMHBhaXJfY2xhc3NpZmljYXRpb24lMjBpbXBvcnQlMjBQYWlyQ2xhc3NpZmljYXRpb25QaXBlbGluZSUwQWZyb20lMjB0cmFuc2Zvcm1lcnMucGlwZWxpbmVzJTIwaW1wb3J0JTIwUElQRUxJTkVfUkVHSVNUUlklMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbiUyQyUyMFRGQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbiUwQSUwQVBJUEVMSU5FX1JFR0lTVFJZLnJlZ2lzdGVyX3BpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMCUyMnBhaXItY2xhc3NpZmljYXRpb24lMjIlMkMlMEElMjAlMjAlMjAlMjBwaXBlbGluZV9jbGFzcyUzRFBhaXJDbGFzc2lmaWNhdGlvblBpcGVsaW5lJTJDJTBBJTIwJTIwJTIwJTIwcHRfbW9kZWwlM0RBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uJTJDJTBBJTIwJTIwJTIwJTIwdGZfbW9kZWwlM0RURkF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMkMlMEEp",highlighted:`<span class="hljs-keyword">from</span> pair_classification <span class="hljs-keyword">import</span> PairClassificationPipeline
<span class="hljs-keyword">from</span> transformers.pipelines <span class="hljs-keyword">import</span> PIPELINE_REGISTRY
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForSequenceClassification, TFAutoModelForSequenceClassification
PIPELINE_REGISTRY.register_pipeline(
<span class="hljs-string">&quot;pair-classification&quot;</span>,
pipeline_class=PairClassificationPipeline,
pt_model=AutoModelForSequenceClassification,
tf_model=TFAutoModelForSequenceClassification,
)`,wrap:!1}}),x=new J({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBY2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKCUyMnBhaXItY2xhc3NpZmljYXRpb24lMjIlMkMlMjBtb2RlbCUzRCUyMnNndWdnZXIlMkZmaW5ldHVuZWQtYmVydC1tcnBjJTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline
classifier = pipeline(<span class="hljs-string">&quot;pair-classification&quot;</span>, model=<span class="hljs-string">&quot;sgugger/finetuned-bert-mrpc&quot;</span>)`,wrap:!1}}),Y=new J({props:{code:"Y2xhc3NpZmllci5wdXNoX3RvX2h1YiglMjJ0ZXN0LWR5bmFtaWMtcGlwZWxpbmUlMjIp",highlighted:'classifier.push_to_hub(<span class="hljs-string">&quot;test-dynamic-pipeline&quot;</span>)',wrap:!1}}),P=new J({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBY2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKG1vZGVsJTNEJTIyJTdCeW91cl91c2VybmFtZSU3RCUyRnRlc3QtZHluYW1pYy1waXBlbGluZSUyMiUyQyUyMHRydXN0X3JlbW90ZV9jb2RlJTNEVHJ1ZSk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline
classifier = pipeline(model=<span class="hljs-string">&quot;{your_username}/test-dynamic-pipeline&quot;</span>, trust_remote_code=<span class="hljs-literal">True</span>)`,wrap:!1}}),L=new Ls({props:{title:"๐Ÿค— Transformers์— ํŒŒ์ดํ”„๋ผ์ธ ์ถ”๊ฐ€ํ•˜๊ธฐ",local:"add-the-pipeline-to-transformers",headingTag:"h2"}}),ts=new gl({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ko/add_new_pipeline.md"}}),{c(){T=n("meta"),ns=a(),as=n("p"),Ms=a(),c(w.$$.fragment),is=a(),m=n("p"),m.innerHTML=Ds,cs=a(),u=n("p"),u.innerHTML=Os,os=a(),U=n("p"),U.innerHTML=sl,rs=a(),f=n("p"),f.innerHTML=ll,ys=a(),c(h.$$.fragment),js=a(),I=n("p"),I.textContent=el,ds=a(),b=n("p"),b.innerHTML=tl,Js=a(),B=n("p"),B.innerHTML=al,Ts=a(),C=n("p"),C.innerHTML=pl,ws=a(),_=n("p"),_.innerHTML=nl,ms=a(),Z=n("p"),Z.innerHTML=Ml,us=a(),k=n("p"),k.innerHTML=il,Us=a(),c(A.$$.fragment),fs=a(),V=n("p"),V.innerHTML=cl,hs=a(),c(R.$$.fragment),Is=a(),g=n("p"),g.textContent=ol,bs=a(),c(G.$$.fragment),Bs=a(),H=n("p"),H.innerHTML=rl,Cs=a(),c(N.$$.fragment),_s=a(),W=n("p"),W.textContent=yl,Zs=a(),c(E.$$.fragment),ks=a(),c(X.$$.fragment),As=a(),q=n("p"),q.innerHTML=jl,Vs=a(),c($.$$.fragment),Rs=a(),z=n("p"),z.innerHTML=dl,gs=a(),c(Q.$$.fragment),Gs=a(),v=n("p"),v.innerHTML=Jl,Hs=a(),c(x.$$.fragment),Ns=a(),F=n("p"),F.innerHTML=Tl,Ws=a(),c(Y.$$.fragment),Es=a(),S=n("p"),S.innerHTML=wl,Xs=a(),c(P.$$.fragment),qs=a(),c(L.$$.fragment),$s=a(),K=n("p"),K.innerHTML=ml,zs=a(),D=n("p"),D.innerHTML=ul,Qs=a(),O=n("p"),O.innerHTML=Ul,vs=a(),ss=n("p"),ss.innerHTML=fl,xs=a(),ls=n("p"),ls.textContent=hl,Fs=a(),es=n("ul"),es.innerHTML=Il,Ys=a(),c(ts.$$.fragment),Ss=a(),ps=n("p"),this.h()},l(s){const l=Vl("svelte-u9bgzb",document.head);T=M(l,"META",{name:!0,content:!0}),l.forEach(e),ns=p(s),as=M(s,"P",{}),bl(as).forEach(e),Ms=p(s),o(w.$$.fragment,s),is=p(s),m=M(s,"P",{"data-svelte-h":!0}),i(m)!=="svelte-1fzm5o3"&&(m.innerHTML=Ds),cs=p(s),u=M(s,"P",{"data-svelte-h":!0}),i(u)!=="svelte-6ogr6z"&&(u.innerHTML=Os),os=p(s),U=M(s,"P",{"data-svelte-h":!0}),i(U)!=="svelte-1r1v4v7"&&(U.innerHTML=sl),rs=p(s),f=M(s,"P",{"data-svelte-h":!0}),i(f)!=="svelte-1u9gwbf"&&(f.innerHTML=ll),ys=p(s),o(h.$$.fragment,s),js=p(s),I=M(s,"P",{"data-svelte-h":!0}),i(I)!=="svelte-rv0lg4"&&(I.textContent=el),ds=p(s),b=M(s,"P",{"data-svelte-h":!0}),i(b)!=="svelte-fwn4og"&&(b.innerHTML=tl),Js=p(s),B=M(s,"P",{"data-svelte-h":!0}),i(B)!=="svelte-tcs7ux"&&(B.innerHTML=al),Ts=p(s),C=M(s,"P",{"data-svelte-h":!0}),i(C)!=="svelte-1a54d54"&&(C.innerHTML=pl),ws=p(s),_=M(s,"P",{"data-svelte-h":!0}),i(_)!=="svelte-ufagsr"&&(_.innerHTML=nl),ms=p(s),Z=M(s,"P",{"data-svelte-h":!0}),i(Z)!=="svelte-j02rys"&&(Z.innerHTML=Ml),us=p(s),k=M(s,"P",{"data-svelte-h":!0}),i(k)!=="svelte-1n2acw"&&(k.innerHTML=il),Us=p(s),o(A.$$.fragment,s),fs=p(s),V=M(s,"P",{"data-svelte-h":!0}),i(V)!=="svelte-1d0sxb1"&&(V.innerHTML=cl),hs=p(s),o(R.$$.fragment,s),Is=p(s),g=M(s,"P",{"data-svelte-h":!0}),i(g)!=="svelte-1k45o3o"&&(g.textContent=ol),bs=p(s),o(G.$$.fragment,s),Bs=p(s),H=M(s,"P",{"data-svelte-h":!0}),i(H)!=="svelte-1ty0isp"&&(H.innerHTML=rl),Cs=p(s),o(N.$$.fragment,s),_s=p(s),W=M(s,"P",{"data-svelte-h":!0}),i(W)!=="svelte-ct19sw"&&(W.textContent=yl),Zs=p(s),o(E.$$.fragment,s),ks=p(s),o(X.$$.fragment,s),As=p(s),q=M(s,"P",{"data-svelte-h":!0}),i(q)!=="svelte-56khl3"&&(q.innerHTML=jl),Vs=p(s),o($.$$.fragment,s),Rs=p(s),z=M(s,"P",{"data-svelte-h":!0}),i(z)!=="svelte-1d1jvf5"&&(z.innerHTML=dl),gs=p(s),o(Q.$$.fragment,s),Gs=p(s),v=M(s,"P",{"data-svelte-h":!0}),i(v)!=="svelte-1vdr0z9"&&(v.innerHTML=Jl),Hs=p(s),o(x.$$.fragment,s),Ns=p(s),F=M(s,"P",{"data-svelte-h":!0}),i(F)!=="svelte-dyh6pw"&&(F.innerHTML=Tl),Ws=p(s),o(Y.$$.fragment,s),Es=p(s),S=M(s,"P",{"data-svelte-h":!0}),i(S)!=="svelte-1yjhf56"&&(S.innerHTML=wl),Xs=p(s),o(P.$$.fragment,s),qs=p(s),o(L.$$.fragment,s),$s=p(s),K=M(s,"P",{"data-svelte-h":!0}),i(K)!=="svelte-52sri7"&&(K.innerHTML=ml),zs=p(s),D=M(s,"P",{"data-svelte-h":!0}),i(D)!=="svelte-5f0sxq"&&(D.innerHTML=ul),Qs=p(s),O=M(s,"P",{"data-svelte-h":!0}),i(O)!=="svelte-yv6zf4"&&(O.innerHTML=Ul),vs=p(s),ss=M(s,"P",{"data-svelte-h":!0}),i(ss)!=="svelte-15fh04w"&&(ss.innerHTML=fl),xs=p(s),ls=M(s,"P",{"data-svelte-h":!0}),i(ls)!=="svelte-e68emk"&&(ls.textContent=hl),Fs=p(s),es=M(s,"UL",{"data-svelte-h":!0}),i(es)!=="svelte-1wfarmi"&&(es.innerHTML=Il),Ys=p(s),o(ts.$$.fragment,s),Ss=p(s),ps=M(s,"P",{}),bl(ps).forEach(e),this.h()},h(){Bl(T,"name","hf:doc:metadata"),Bl(T,"content",Hl)},m(s,l){Rl(document.head,T),t(s,ns,l),t(s,as,l),t(s,Ms,l),r(w,s,l),t(s,is,l),t(s,m,l),t(s,cs,l),t(s,u,l),t(s,os,l),t(s,U,l),t(s,rs,l),t(s,f,l),t(s,ys,l),r(h,s,l),t(s,js,l),t(s,I,l),t(s,ds,l),t(s,b,l),t(s,Js,l),t(s,B,l),t(s,Ts,l),t(s,C,l),t(s,ws,l),t(s,_,l),t(s,ms,l),t(s,Z,l),t(s,us,l),t(s,k,l),t(s,Us,l),r(A,s,l),t(s,fs,l),t(s,V,l),t(s,hs,l),r(R,s,l),t(s,Is,l),t(s,g,l),t(s,bs,l),r(G,s,l),t(s,Bs,l),t(s,H,l),t(s,Cs,l),r(N,s,l),t(s,_s,l),t(s,W,l),t(s,Zs,l),r(E,s,l),t(s,ks,l),r(X,s,l),t(s,As,l),t(s,q,l),t(s,Vs,l),r($,s,l),t(s,Rs,l),t(s,z,l),t(s,gs,l),r(Q,s,l),t(s,Gs,l),t(s,v,l),t(s,Hs,l),r(x,s,l),t(s,Ns,l),t(s,F,l),t(s,Ws,l),r(Y,s,l),t(s,Es,l),t(s,S,l),t(s,Xs,l),r(P,s,l),t(s,qs,l),r(L,s,l),t(s,$s,l),t(s,K,l),t(s,zs,l),t(s,D,l),t(s,Qs,l),t(s,O,l),t(s,vs,l),t(s,ss,l),t(s,xs,l),t(s,ls,l),t(s,Fs,l),t(s,es,l),t(s,Ys,l),r(ts,s,l),t(s,Ss,l),t(s,ps,l),Ps=!0},p:_l,i(s){Ps||(y(w.$$.fragment,s),y(h.$$.fragment,s),y(A.$$.fragment,s),y(R.$$.fragment,s),y(G.$$.fragment,s),y(N.$$.fragment,s),y(E.$$.fragment,s),y(X.$$.fragment,s),y($.$$.fragment,s),y(Q.$$.fragment,s),y(x.$$.fragment,s),y(Y.$$.fragment,s),y(P.$$.fragment,s),y(L.$$.fragment,s),y(ts.$$.fragment,s),Ps=!0)},o(s){j(w.$$.fragment,s),j(h.$$.fragment,s),j(A.$$.fragment,s),j(R.$$.fragment,s),j(G.$$.fragment,s),j(N.$$.fragment,s),j(E.$$.fragment,s),j(X.$$.fragment,s),j($.$$.fragment,s),j(Q.$$.fragment,s),j(x.$$.fragment,s),j(Y.$$.fragment,s),j(P.$$.fragment,s),j(L.$$.fragment,s),j(ts.$$.fragment,s),Ps=!1},d(s){s&&(e(ns),e(as),e(Ms),e(is),e(m),e(cs),e(u),e(os),e(U),e(rs),e(f),e(ys),e(js),e(I),e(ds),e(b),e(Js),e(B),e(Ts),e(C),e(ws),e(_),e(ms),e(Z),e(us),e(k),e(Us),e(fs),e(V),e(hs),e(Is),e(g),e(bs),e(Bs),e(H),e(Cs),e(_s),e(W),e(Zs),e(ks),e(As),e(q),e(Vs),e(Rs),e(z),e(gs),e(Gs),e(v),e(Hs),e(Ns),e(F),e(Ws),e(Es),e(S),e(Xs),e(qs),e($s),e(K),e(zs),e(D),e(Qs),e(O),e(vs),e(ss),e(xs),e(ls),e(Fs),e(es),e(Ys),e(Ss),e(ps)),e(T),d(w,s),d(h,s),d(A,s),d(R,s),d(G,s),d(N,s),d(E,s),d(X,s),d($,s),d(Q,s),d(x,s),d(Y,s),d(P,s),d(L,s),d(ts,s)}}}const Hl='{"title":"์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ์ž ์ •์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ƒ์„ฑํ•˜๋‚˜์š”?","local":"how-to-create-a-custom-pipeline","sections":[{"title":"์ง€์›๋˜๋Š” ์ž‘์—… ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•˜๊ธฐ","local":"adding-it-to-the-list-of-supported-tasks","sections":[],"depth":2},{"title":"Hub์— ํŒŒ์ดํ”„๋ผ์ธ ๊ณต์œ ํ•˜๊ธฐ","local":"share-your-pipeline-on-the-hub","sections":[],"depth":2},{"title":"๐Ÿค— Transformers์— ํŒŒ์ดํ”„๋ผ์ธ ์ถ”๊ฐ€ํ•˜๊ธฐ","local":"add-the-pipeline-to-transformers","sections":[],"depth":2}],"depth":1}';function Nl(Ks){return Zl(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class $l extends kl{constructor(T){super(),Al(this,T,Nl,Gl,Cl,{})}}export{$l as component};

Xet Storage Details

Size:
33.6 kB
ยท
Xet hash:
65cc2f8af3f9dcf58e056884d8e7603e0302b8746dcd489a165dfa4e96249493

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.