Hugging Face Transformers์ Constrained Beam Search ๊ธฐ๋ฅ ์ถ๊ฐ๋ก ํ ์คํธ ์์ฑ ๊ณผ์ ์์ ํน์ ๋จ์ด๋ ๊ตฌ๋ฌธ์ ๊ฐ์ ํฌํจ ๊ฐ๋ฅ
Guiding Text Generation with Constrained Beam Search in ๐ค Transformers
AI ์์ฝ
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๋ฅผ ํ์ฉํ๋ฉด ์ธ์ด ๋ชจ๋ธ์ ์๋ ์์ฑ ํ ์คํธ๊ฐ ์ ์คํธ๋ฆผ ์์คํ ์์ ์ ๊ณตํ๋ ํ์ ๋จ์ด๋ ๊ตฌ๋ฌธ์ ๋ฐ๋์ ํฌํจํ๋๋ก ๊ฐ์ ํ ์ ์์ด ๋๋ฉ์ธ ์๊ตฌ์ฌํญ ์ค์์จ์ ๋์ผ ์ ์์ต๋๋ค.