-
[Paper] One Embedder, Any Task: Instruction-Finetuned Text EmbeddingsML engineer/Papers & CS generals 2023. 1. 17. 00:04๋ฐ์ํ
๐ 4 mins read
https://arxiv.org/abs/2212.09741
์ค๋์ ๊ฐ๋จํ engineering ๋ ผ๋ฌธ์ ๋๋ค.
NLP ์ฐ๊ตฌ ์ถ์ธ๊ฐ ๊ณ์ LLM(Large Language Model)๋ก ํ๋ฌ๊ฐ๊ณ ์์ง๋ง, ์์ง์ ํ์ค์ ์ผ๋ก ๊ทธ๋ ๊ฒ ํฐ ๋ชจ๋ธ์ ํ์ตํ๊ธฐ๋, ์๋น์คํ๊ธฐ์๋ ๋๋ฌด ๋น์ฉ ํจ์จ์ด ๋จ์ด์ง๊ณ , ๋ชจ๋ ๊ธฐ์ ์ด ๊ฑฐ๋ ๋ชจ๋ธ ์๋ณธ ๊ฒฝ์์ ๋ฐ์ด๋ค ์ ๋ ์๋ ๋ ธ๋ฆ์ด์ฃ .
์ด๋ฒ ๋ ผ๋ฌธ์ ๋น๊ต์ ์์ ํฌ๊ธฐ์ ์ผ๋ฐ์ ์ธ ๋ชจ๋ธ ๊ท๋ชจ์, (ํฐ ๋ฒ์ ๋ 1.5B ํ๋ผ๋ฏธํฐ ์์ค์ผ๋ก ๊ตฌ๊ธ TPUํด๋ฌ์คํฐ ์์ด ํ์ต ๊ฐ๋ฅํ ์์ค์ ๊ท๋ชจ) ์๋ฌธ ๋ชจ๋ธ๋ ๋ค์ํ ํฌ๊ธฐ๋ก ๋ฆด๋ฆฌ์ฆ ๋์์ผ๋ฉฐ, ํ๊ตญ์ด ๋ชจ๋ธ๋ก๋ ์ฌํ ๊ฐ๋ฅํ ์์ค์ ๋๋ค.
# ํต์ฌ ๋ด์ฉ
๊ณต๊ฐํ๋ ๋ชจ๋ธ๋ช ์ InstructOR (Instruction-based Omnifarious Representations) ๋ผ๊ณ ์ง์๋๋ฐ์, ์ฌ์ค ๊ธฐ์กด์ ๊ณต๊ฐ๋ ๋ชจ๋ธ์์ ๋ณ๊ฒฝ์ ์ ์์ต๋๋ค. ๋ค๋ง, ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ค๋ฅด๊ฒ ์ ๋ ฅ/ํ์ต์์ผ์ ์ฑ๋ฅ์ ๊ฐ์ ์์ผฐ๋๋์ engineering ํ์ดํผ์ ๋๋ค. (Technical novelty๋ ๋ง์ด ๋ถ์กฑํฉ๋๋ค๋ง, ๊ทธ๋๋ ๋ฒค์น๋งํฌ ๋ฆฌ๋๋ณด๋ 1๋ฑ์ด๋ผ๋ ๋ฐ์ ์๋ฏธ๋ฅผ ๋ก๋๋ค.)
InstructOR๋ ๋จ์ผ ๋ชจ๋ธ๋ก finetuning ์์ด instruction๋ง ๋ฌ๋ฆฌํด์ task์ ์ ํฉํ embedding์ ๋ง๋ค์ด ์ฃผ๋ encoder ๋ชจ๋ธ.
- MTEB leaderboard ํ์ฌ 1์ https://huggingface.co/spaces/mteb/leaderboard
- Dense retrieval์ ๋ฉ์ธ ํ๊ฒ task๋ก ์ผ๊ธด ํ๋, reranking, generation evaluation ๋ฑ ๋ค์ํ task๋ก๋ ํ์ฉ๊ฐ๋ฅ
- ๋ค์ํ ์ฌ์ด์ฆ๋ก ๊ณต๊ฐ ๋์ด์๋ GTR ๋ชจ๋ธ์ ๊ทธ๋๋ก ์ฌ์ฉ, instruction prompt๋ฅผ ๋ถ์ฌ์ ํ์ต/์คํํ๋ ๊ฒ์ด ํต์ฌ ์์ด๋์ด.์ํคํ ์ฒ๋ GTR ๋ชจ๋ธ์ ๊ทธ๋๋ก ์ด์ฉํ๋ฏ๋ก, ๊ธฐ์กด ๋ ผ๋ฌธ์ ๋ค์ด์ด๊ทธ๋จ์ ํ๋ ๋ด ๋๋ค.
์์ ์ Siamese Convolutional Dual encoder ๋ชจ๋ธ๊ณผ ๊ฐ์ ํํ์ฃ ?
๊ณตํต ํ๋ผ๋ฏธํฐ๋ก ์ด๋ฃจ์ด์ง ์ธ์ฝ๋ ๋ชจ๋ธ ๋ ๊ฐ๋ก ์ง์์ ๋ต๋ณ(ํน์ ๋ฌธ์)๊ณผ ๊ฐ์ด ์์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ฐ dense vector๋ก ์ธ์ฝ๋ฉ ํด์ค๋ค์ ๋ ๋ฒกํฐ ๊ฐ์ ์ฝ์ฌ์ธ ์ ์ฌ๋๋ก relevant / irrelevant (ํน์ positive / negative) ํด๋์ค๋ก regression ํน์ binary classification ํ์ต์ ํฉ๋๋ค.์ฌ์ค ์ฌ๊ธฐ๊น์ง๋ ์ด๋ฏธ ๊ธฐ์กด์ siamese network์ ๋ค๋ฅผ๊ฒ ์ ํ ์๋ ๋ชจ๋ธ ์ํคํ ์ฒ์ง๋ง, ํจ์ฌ ๋ ๋ค์ํ task์ ๋ฐ์ดํฐ์ ์ ์ด๋ฐ paired ๊ตฌ์กฐ๋ก ๋ณด๋ ๊ฒ์ ๋๋ค.
GTR ๋ชจ๋ธ๋ ๋ฒ ์ด์ค ๋ชจ๋ธ์ T5 ๋ชจ๋ธ(seq2seq ๋ชจ๋ธ ๊ตฌ์กฐ๋ก ๋ค์ํ task๋ฅผ ํ์ด๋ธ ๊ฒ)์์ ์ธ์ฝ๋ ๋ ์ด์ด๋ง ๊ฐ์ ธ์์ ์ด๊ธฐํํ ๋ชจ๋ธ์ด๋, T5 -> GTR -> InstructOR ์์๋ก ์ ์ฐจ ๊ฐ์ (?) ๋์๋ค ๋ณด๋ฉด ๋ฉ๋๋ค.
T5์ฒ๋ผ seq2seq ํํ์ multitask ๋ชจ๋ธ์์ output์ ์ค์ ๋ก generation ํด์ผ ํ๋ ๋ฌธ์ ์ด๋ ๋งํผ ํ์ต ๋๋๊ฐ ํจ์ฌ ๋์ ๋ฐ๋ฉด, GTR์ด๋ InstructOR์์๋ ์ํ์ค๋ฅผ ์์ฑํ์ง๋ ์๊ณ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ ์ํ์ค๋ฅผ ํ๋์ ๋ฒกํฐ ๊ณต๊ฐ์ mapping ํ๋ ๋ฌธ์ ์ด๋ฏ๋ก ์ข ๋ ๋์ด๋๊ฐ ๋ฎ๋ค๊ณ ํ ์ ์์ต๋๋ค. (Output space๊ฐ ์๋ฅผ ๋ค์ด 768์ฐจ์ ๋ฒกํฐ์ $t$ step ๋งํผ์ ์ํ์ค ์กฐํฉ์ผ ๋ ๋ณด๋ค 768์ฐจ์ ๋ฒกํฐ ๋ ๊ฐ๋ง ์์ฑํ๋ ๊ฒ์ด ํจ์ฌ ๋จ์ํ ๊ณต๊ฐ์ด๊ฒ ์ฃ ?)
InstructOR ๋ชจ๋ธ์ ํ์ต์, GTR ๊ณผ ๋์ผํ๊ฒ multitask ๋ฐ์ดํฐ์ ์ query / passage ๋ ์ธ์ฝ๋ ํ์์ ์ ๋ ฅํ๋ ๊ฑด ๋ง์ฐฌ๊ฐ์ง์ง๋ง, ๊ฐ๊ฐ์ ํ ์คํธ ์์ "instruction", ์ฆ ์ผ์ข ์ prompt ํ ์คํธ๋ฅผ ๋ง๋ถ์ฌ์ ํด๋น ํ ์คํธ์ ์ญํ ์ ๋ช ์์ ์ผ๋ก ์ ๋ ฅํด ์ค๋๋ค.
์ฆ BERT ๋ชจ๋ธ์ ๋ชฉ์ ์ด ๋์ผํ "ํ ํฐ(๋จ์ด)"์ ์๋ฒ ๋ฉ์ด ์ํ์ค์ ๋งฅ๋ฝ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ฒกํฐ๋ก ๋์ ์ผ๋ก ์๋ฒ ๋ฉ ๋๋๋ก ํ์ต์ ํ ๊ฒ์ด๋ผ๋ฉด, InstructOR ๋ชจ๋ธ์ ๋์ผํ "์ํ์ค(๋ฌธ์ฅ/๋ฌธ์)"์ ์๋ฒ ๋ฉ์ด task์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ฒกํฐ๋ก ๋์ ์๋ฒ ๋ฉ ๋๊ฒ๋ ํ ๊ฒ์ ๋๋ค.
๋ ผ๋ฌธ์ ํต์ฌ contribution์ ์ฌ๊ธฐ๊น์ง์ด๊ณ , ์ด๋ ๊ฒ๋ง ๋ ผ๋ฌธ์ ์ฐ๋ฉด ๋๋ฌด ์คํ ๋ณด๊ณ ์ ์์ค์ด ๋๋, ๊ฐ ์กฐ๊ฑด ์์๋ค์ ablation ์คํฐ๋ (๋ณ์ธ ํ์ธ)๋ฅผ ํตํด ๋ชจ๋ธ ์ฑ๋ฅ์ ๊ธฐ์ธํ๋ ์์ธ๋ค์ด ์ด๋ค ๊ฒ๋ค์ด ์๋์ง๋ฅผ ๋ณด์ ๋๋ค.
## ํฌ์ธํธ 1.
Instruction์ ์ฑ๋ฅ ํฅ์์ ๊ธฐ์ธํ๋ ์์๋ค์ ํ์ ํ๊ธฐ ์ํ ๊ทธ๋ํ์ ๋๋ค.
Task๋ค ์ค์๋ ์ค๋ณต ๋ฌธ์ฅ ํ์, ๋ฌธ์ฅ ๋ถ๋ฅ ๋ฌธ์ ๋ฑ๊ณผ ๊ฐ์ด query / passage ์ชฝ์ ํํ๊ฐ ๋์ผ/์ ์ฌํ "symmetric" task๊ฐ ์๊ณ , ๋ฌธ์ ๊ฒ์๊ณผ ๊ฐ์ด query / passage์ ํํ๊ฐ ํ์ชฝ์ ์งง์ ๋ฌธ์ฅ/ํค์๋๊ณ ๋ค๋ฅธ ํ์ชฝ์ ๊ธด ๋ฌธ์ ํํ์ธ ๊ฒ์ฒ๋ผ ์์ดํ "asymmetric" task๊ฐ ์์ต๋๋ค.
์์ ๊ทธ๋ํ๋ก๋ถํฐ ์ฐ๋ฆฌ๋ instruction์ด ์ด๋ค ๊ฒฝ์ฐ๋ ์ฑ๋ฅ ํฅ์์ ํฌ๊ฒ ์ผ์ผ์ผฐ๊ณ , ๋ ๊ฐ์ง ์ ํ์ task๊ฐ ์์ธ ์ฑ๋ก ํ์ตํ ๋ instruction์ด ์์ผ๋ฉด ๋จ์ํ siamese network ๊ตฌ์กฐ๋ง์ผ๋ก๋ ํ์ต์ด ์ ์ด๋ฃจ์ด์ง์ง ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์ฌ์ฉํ ํ์ต ๋ฐ์ดํฐ ์ ์ค์ ํนํ SuperNI๋ผ๋ ๋ฐ์ดํฐ์ ์ด ์๋๋ฐ, ์ด ๋ฐ์ดํฐ์ ์ ์ฝ 18๋ง ๊ฑด์ผ๋ก ์๋ ๋ง์ ๋ฟ ์๋๋ผ, task description์ instruction ํํ๋ก ์์ธํ๊ฒ ๋ผ๋ฒจ๋ง ๋์ด์๋ ๋ฐ์ดํฐ์ ๋๋ค. (๋ฑ ๋ด๋ InstructOR ๋ชจ๋ธ ํ์ต์ ๋์์ด ํฌ๊ฒ ๋ ๊ฒ ๊ฐ์ ๋ฐ์ดํฐ์ฃ ? ใ ใ )
์์ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด SuperNI๋ฅผ ํฌํจํ๊ณ ์ ํ๊ณ ์ ๋ฐ๋ผ์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ด ๋ถํฌ๊ฐ ๊ณ ๋ฅด๊ฒ ๊ฐ์ ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๋ฌผ๋ก , SuperNI ์์ด๋ ์ต๊ณ ์ฑ๋ฅ์ ๋น์ทํ๊ฒ ๋์ง๋ง, ์ฑ๋ฅ์ ๋ณํ ํญ์ด ์ข ์ปค์ ๋ชจ๋ธ์ด ๋ง์ด ํ๋ค๋ฆฌ๋ ๊ฒ์ด ๋ณด์ ๋๋ค.## ํฌ์ธํธ 2.
๊ทธ๋ผ instruction์ ์ด๋ป๊ฒ ๋ฃ์ด์ผ ํ ๊น์? ์ ๋ง ์ ์๋ค์ด ์ฃผ์ฅํ๋, "instruction"์ผ๋ก ๋ฌธ์ฅ/๋ฌธ์๋ฅผ task์ ๋ง๊ฒ ๋์ ์ผ๋ก ์๋ฒ ๋ฉ ํ๋ ค๋ฉด!
์ต๋ํ ์์ธํ๊ณ ๋ช ์์ ์ผ๋ก ํ๊ณ ์ ํ๋ task๋ฅผ, ์๋ฒ ๋ฉ ๋ฒกํฐ๊ฐ ๋ํ๋ด๊ธธ ๋ฐ๋ผ๋ ๋ด์ฉ์ instruction์ ๋ฃ์ผ๋ฉด ๋๋ค๊ณ ํฉ๋๋ค.
์์ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด, ํ๊ทธ ํํ๋ก๋ง task๋ฅผ ํ๊ธฐํด์ค๋ ์ฑ๋ฅ ํฅ์์ด ์๊ณ , ์ ์ task์ ๋ํ ์ง์ ์ฌํญ์ด ๋๋ ทํ ์ ๋ก ์ฑ๋ฅ์ด ํฅ์๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
(์ฌ๊ธฐ์ ๋ ผ๋ฌธ์ ์ค๋ช ์ด ์์ด ์ ๊ฐ ์์ํ๋ ๊ฑด, N/A ๋ฉด, GTR๊ณผ ๋์ผํ ์ฑ๋ฅ์ ๋ด์ผ ํ๋ ๊ฒ ์๋๊ฐ? ์ถ์๋๋ฐ, ํ์ต์ ๋์๋ dataset์ ๋ฒ์๊ฐ ๋ ๋์ด์ ธ์ ์ฑ๋ฅ์ ํ๊ฐ ์์๋ค๊ณ ๋ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.. ์ค๋ง ๋ชจ๋ธ ์ฌ์ด์ฆ๋ฅผ ๋ค๋ฅธ ๊ฒ์ ์ฌ์ฉํ ๊ฒ์ ์๋ ํ ๋๊น์.)
# ๊ฐ์ธ์ ์ธ ์๊ฐ
๋ ผ๋ฌธ์ technical novelty๋ ๋ณ๋ก ์์ง๋ง, ์ ๋นํ ๊ท๋ชจ์ ๋ชจ๋ธ ํฌ๊ธฐ๋ก, zero-shot ํน์ ์ฝ๊ฐ์ finetuning๋ง์ผ๋ก ๋ค์ํ task์ ๋ฒ์ฉ์ ์ผ๋ก ์ฐ์ผ ์ ์๋ embedding ๋ชจ๋ธ์ด๋ ํ๋ฅญํ ์์ด๋์ด๊ฐ ์๋๊น์?
์ค๋์ ๋ถํฐ ์ ๋ ๋จธ์ ๋ฌ๋์ ์ต์ข ์ข ์ฐฉ์ ์ ๊ฒฐ๊ตญ ์ผ๋ง๋ ์๋ฏธ/๋งฅ๋ฝ/๋ฉํ๋ฅผ ์ ๋ด์๋ด๋ embedding ๋ฒกํฐ๋ฅผ ์ ๋ง๋ค์ด ๋ด๋๋์ ์์คํ ์ฑ๋ฅ์ด ๊ฒฐ์ ๋๋ค ์๊ฐํ๋ ํฐ๋ผ.. ์ด๋ฐ ์ฐ๊ตฌ๋ ํญ์ ๋ฐ๊ฐ์ต๋๋ค.
ํ๊ฒฐ ๊ฐ์ด ๋ ๋ง์ ์๋ณธ! ๋ ๋ง์ ์ปดํจํ ํ์!! ๋จธ๋์ด์ด! ํ๊ณ ์๋ ํ ๋ฆฌ๊ทธ(?) ์ฐ๊ตฌ ํธ๋ ๋๋ ์์งํ ์ข ์ง๊ฒน๊ธฐ๋ ํ๊ณ .. (๊ตฌ๊ฒฝํ๋ ์ ๊ธฐํ๊ธฐ๋ ํ์ง๋ง..) ๊ทธ๋ ๋ค๊ณ ์ต์ ํ / ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ ๋ง์ผ๋ก ๋น ๋ชจ๋ธ ํธ๋ ๋๋ฅผ ๋ฐ๋ผ์ก๊ฑฐ๋ ๋ค์๊ธด ์ด๋ ค์ ๋ณด์ด๊ณ . ์์ฆ AI์ฐ๊ตฌ ํ๋ญ๋๋ค ใ ใ
๋์ ์ ๊ณ์์ (
๋ ผ๋ฌธ ์จ์ผ ํ๋ ํ์๋ค์ ๊ทธ์ ์ ๋..) ๋ ์ ๋ ดํ ๋น์ฉ์ผ๋ก, ์ถฉ๋ถํ ํจ์จ์ ์ธ ์ญ๋์ดํ ๊ฐ๋ฐ์ ํ์ ์ฐ๋ฉด ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. (๊ตณ์ด ๋น์ ํ๋ฉด ๋น ๋ชจ๋ธ์ด ์ ๊ธฐํฑ ์ ๋.. ๋ ค๋์? ์ด์ ๋ช ๋ ๋ ์์ผ๋ฉด ๊ด์ ๊ฒ์ด ๋๊ฒ ๊ตฐ์ ใทใท ์คํ ์ดํฌ ์ฐ๋ ๊ด์ ๊ฒ ๊น์ง ํ์ ์์์์?)# ์ฐธ๊ณ
- Prior work์ด์ง๋ง ์ฐ๊ดํด์ single-model-multitask๋ฅผ ์งํฅํ๋ ๋ ผ๋ฌธ๋ค (LLM์ ๊ฒฐ ์์ฒด๊ฐ ๋ค๋ฅด๋ ์ ์ธํฉ๋๋ค.)
(T5) EXT5 : https://arxiv.org/pdf/2111.10952.pdf
๋ฐ์ํ'ML engineer > Papers & CS generals' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Domain Name System (DNS) ๊ฐ์ (0) 2023.01.22 ๋ถ์ฐ ์์คํ ๋์์ธ (0) 2023.01.19 [์ค๋ฅํด๊ฒฐ] osX + python3 + SSL certificate Error (0) 2023.01.07 [Paper] ELMER: A Non-Autoregressive Pre-trained Language Model for Efficient and Effective Text Generation (2) 2023.01.05 Consistency Model์ ์ข ๋ฅ (0) 2023.01.02