ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
Guiding Text Generation with Constrained Beam Search in ๐Ÿค— Transformers
Hugging Face BlogHugging Face Blog
Backend

Hugging Face Transformers์— Constrained Beam Search ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋กœ ํ…์ŠคํŠธ ์ƒ์„ฑ ๊ณผ์ •์—์„œ ํŠน์ • ๋‹จ์–ด๋‚˜ ๊ตฌ๋ฌธ์„ ๊ฐ•์ œ ํฌํ•จ ๊ฐ€๋Šฅ

Guiding Text Generation with Constrained Beam Search in ๐Ÿค— Transformers

2022๋…„ 3์›” 11์ผ12๋ถ„intermediate

Context

๊ธฐ์กด Beam Search๋Š” ํ† ํฐ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์„ฑ ๊ณผ์ • ์ค‘ ์–ด๋А ์‹œ์ ์— ์ œ์•ฝ ์กฐ๊ฑด์˜ ํ† ํฐ๋“ค์„ ์‚ฝ์ž…ํ•ด์•ผ ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ œ์•ฝ ์กฐ๊ฑด(์„ ํƒ์ /ํ•„์ˆ˜)์„ ์–ด๋–ป๊ฒŒ ์กฐํ™”๋กญ๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‹ ๊ฒฝ ๊ธฐ๊ณ„ ๋ฒˆ์—ญ์—์„œ ์‚ฌ์ „ ์กฐํšŒ๋ฅผ ํ†ตํ•ด ํŠน์ • ๋‹จ์–ด๊ฐ€ ๋ฒˆ์—ญ์— ํฌํ•จ๋˜์–ด์•ผ ํ•จ์„ ์•Œ๊ณ  ์žˆ์–ด๋„ ๋ชจ๋ธ์—๊ฒŒ ์ด๋ฅผ ๊ฐ•์ œํ•  ๋ฐฉ๋ฒ•์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

Technical Solution

  • Constraint ๊ฐ์ฒด์˜ ์„œ๋ธŒํด๋ž˜์Šค๋ฅผ ํ†ตํ•œ ์ œ์•ฝ ์กฐ๊ฑด ์ •์˜: PhrasalConstraint(ํŠน์ • ๊ตฌ๋ฌธ ๊ฐ•์ œ), DisjunctiveConstraint(์—ฌ๋Ÿฌ ์„ ํƒ์ง€ ์ค‘ ํ•˜๋‚˜ ์„ ํƒ), MultiConstraint(์—ฌ๋Ÿฌ ์ œ์•ฝ ๋™์‹œ ์ฒ˜๋ฆฌ)
  • OrderedConstraints ๊ตฌํ˜„: ์ œ์•ฝ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์–ด์•ผ ํ•˜๋Š” ์ˆœ์„œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •
  • TemplateConstraints ๊ตฌํ˜„: ํŠน์ • ๊ตฌ์กฐ์˜ ํ…œํ”Œ๋ฆฟ(์˜ˆ: ["the", "", "School of", "", "in"])์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ ๊ฐ€์ด๋“œ
  • Beam Search ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์ •: ํ† ํฐ ์ƒ์„ฑ ์‹œ ํ˜„์žฌ ์ƒํƒœ์—์„œ ์ œ์•ฝ ์กฐ๊ฑด์„ ๋™์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜์—ฌ ์œ ํšจํ•œ ํ›„๋ณด๋งŒ ํ•„ํ„ฐ๋ง
  • Transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ํ†ตํ•ฉ: ๊ธฐ์กด generate() API์™€ ํ˜ธํ™˜๋˜๋„๋ก ์ œ์•ฝ ๊ฐ์ฒด๋ฅผ ์ธ์ž๋กœ ์ „๋‹ฌ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๊ตฌํ˜„

Key Takeaway

์™ธ๋ถ€ ์ง€์‹(์‚ฌ์ „, ์ง€์‹ ๋ฒ ์ด์Šค)์„ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ์˜ ํ…์ŠคํŠธ ์ƒ์„ฑ์— ์ง์ ‘ ์ฃผ์ž…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์ค€์—์„œ ์ œ์•ฝ ์กฐ๊ฑด์„ ๋ช…์‹œ์ ์œผ๋กœ ์ธ์ฝ”๋”ฉํ•ด์•ผ ํ•˜๋ฉฐ, ๋‹จ์ผ ์ œ์•ฝ์ด ์•„๋‹Œ ์—ฌ๋Ÿฌ ์ œ์•ฝ์˜ ์œ ์—ฐํ•œ ์กฐํ•ฉ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์‹ค๋ฌด ํ™œ์šฉ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.


์‹ ๊ฒฝ ๊ธฐ๊ณ„ ๋ฒˆ์—ญ, ์งˆ์˜์‘๋‹ต, ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” Transformers ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—์„œ PhrasalConstraint๋‚˜ DisjunctiveConstraint๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์–ธ์–ด ๋ชจ๋ธ์˜ ์ž๋™ ์ƒ์„ฑ ํ…์ŠคํŠธ๊ฐ€ ์—…์ŠคํŠธ๋ฆผ ์‹œ์Šคํ…œ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•„์ˆ˜ ๋‹จ์–ด๋‚˜ ๊ตฌ๋ฌธ์„ ๋ฐ˜๋“œ์‹œ ํฌํ•จํ•˜๋„๋ก ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์–ด ๋„๋ฉ”์ธ ์š”๊ตฌ์‚ฌํ•ญ ์ค€์ˆ˜์œจ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›๋ฌธ ์ฝ๊ธฐ