Reflexion
Reflexion์ ์ธ์ด ํผ๋๋ฐฑ์ ํตํด ์ธ์ด ๊ธฐ๋ฐ ์์ด์ ํธ๋ฅผ ๊ฐํํ๋ ํ๋ ์์ํฌ์ ๋๋ค. Shinn et al. (2023) (opens in a new tab)์ ๋ฐ๋ฅด๋ฉด, "Reflexion์ LLM ๋งค๊ฐ๋ณ์์ ์ ํ๊ณผ ์์ ์ด๋ฃจ๋ ์์ด์ ํธ์ ๋ฉ๋ชจ๋ฆฌ ์ธ์ฝ๋ฉ์ผ๋ก ์ ์ฑ ์ ๋งค๊ฐ๋ณ์ํํ์ฌ ์ด๋ฃจ์ด ๋ธ '์ธ์ด์ ' ๊ฐํ ํจ๋ฌ๋ค์์ ๋๋ค."
๊ณ ์ฐจ์์ ์ผ๋ก, Reflexion์ ํ๊ฒฝ ํผ๋๋ฐฑ(free-form language ๋๋ scalar)์ ์๊ธฐ ์ฑ์ฐฐ์ด๋ผ๊ณ ๋ ํ๋ ์ธ์ด ํผ๋๋ฐฑ์ผ๋ก ๋ณํํฉ๋๋ค. ์ด๋ ๋ค์ ์ํผ์๋์์ LLM ์์ด์ ํธ์ ์ปจํ ์คํธ๋ก ์ ๊ณตํฉ๋๋ค. ์ด ๊ณผ์ ์ ํตํด ์์ด์ ํธ๋ ์ด์ ์ ์ค์๋ก๋ถํฐ ๋น ๋ฅด๊ณ ํจ๊ณผ์ ์ผ๋ก ํ์ตํ์ฌ ๋ค์ํ๊ณ ์ด๋ ค์ด ์์ ์ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
์ ๊ทธ๋ฆผ์ฒ๋ผ Reflection์ ์ธ ๊ฐ์ง ๋ชจ๋ธ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค:
- An Actor: ์ํ ๊ด์ฐฐ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์คํธ์ ์ก์ ์ ์์ฑํฉ๋๋ค. Actor๋ ํน์ ํ๊ฒฝ์์ ๋์์ ์ํํ๊ณ ๊ถค์ ์ ๋จ๊ธฐ๋ ๊ด์ฐฐ์ ๋์์ ๋๋ค. ์๊ฐ์ ์ฌ์ฌ (Chain-of-Thought) (opens in a new tab)๊ณผ ReAct (opens in a new tab)๋ Actor ๋ชจ๋ธ์ ์์ฑํฉ๋๋ค. ๋ํ ์์ด์ ํธ์ ์ถ๊ฐ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์ฑ ์์๊ฐ ์ถ๊ฐ๋ฉ๋๋ค.
- An Evaluator: Actor๊ฐ ์ฐ์ถํ ์ ์์ ๋๋ค. ๋ช ํํ๊ฒ ๋งํ์๋ฉด, ๋จ๊ธฐ ๊ธฐ์ต์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ ์์ฑ ๊ถค์ ์ ์ธํ์ผ๋ก ์ ๋ ฅ ๋ฐ์ผ๋ฉด ๋ณด์ ์ ์(reward score)๋ฅผ ์์ํ์ผ๋ก ์ฐ์ถํ๋ ๋ฐฉ์์ ๋๋ค. ์์ ์ ๋ฐ๋ผ ์์ดํ ๋ณด์ ๊ธฐ๋ฅ์ด ์๋ํฉ๋๋ค. (LLM๊ณผ ๊ท์น ๊ธฐ๋ฐ ํด๋ฆฌ์คํฑ์ ์์ฌ ๊ฒฐ์ ์์ ์ ์ฌ์ฉ๋ฉ๋๋ค)
- ์๊ธฐ์ฑ์ฐฐ(Self-Reflection): Actor์ ์๊ธฐ๊ณ๋ฐ์ ๋๊ธฐ ์ํ ์ธ์ด์ ๊ฐํ ๋จ์๋ฅผ ์์ฑํฉ๋๋ค. ์ด ์ญํ ์ LLM์ ์ํด ๋ฌ์ฑ๋๋ฉฐ ์ถํ ์ํ(trial)์ ์ํ ์ค์ํ ํผ๋๋ฐฑ์ ์ ๊ณตํฉ๋๋ค. ์๊ธฐ์ฑ์ฐฐ๋ชจ๋ธ(Self-Reflection Model)์ ๋ณด์ ์ ํธ, ํ์ฌ ๊ถค์ ๊ณผ ์ง์์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํตํด ๊ด๋ จ ํผ๋๋ฐฑ์ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํฉ๋๋ค. ์์ด์ ํธ๋ ์ด๋ฌํ ๊ฒฝํ(์ฅ๊ธฐ ๊ธฐ์ต ์ ์ฅ)์ ํ์ฉํ์ฌ ์์ฌ ๊ฒฐ์ ์ ์ ์ํ๊ฒ ๊ฐ์ ํฉ๋๋ค.
์์ฝํ์๋ฉด, Reflection ํ๋ก์ธ์ค์ ์ฃผ์ ๋จ๊ณ๋ a) ์์ ์ ์ ์ํ๊ณ , b) ๊ถค์ ์ ์์ฑํ๊ณ , c) ํ๊ฐํ๊ณ , d) ์ฑ์ฐฐ(reflection)์ ์ํํ๊ณ , e) ๋ค์ ๊ถค์ ์ ์์ฑํฉ๋๋ค. Reflection ์์ด์ ํธ๊ฐ ์์ฌ ๊ฒฐ์ , ํ๋ก๊ทธ๋๋ฐ ๋๋ ์ถ๋ก ๊ณผ ๊ฐ์ ๋ค์ํ ์์ ์ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐ๋ณต์ ํ๋์ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ์์๋ฅผ ์๋์ ๊ทธ๋ฆผ์ ํตํด ๋ณผ ์ ์์ต๋๋ค. Reflection์ ์๊ธฐ ํ๊ฐ(self-evaluation), ์๊ธฐ ์ฑ์ฐฐ(self-reflection) ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ปดํฌ๋ํธ๋ฅผ ๋์ ํ์ฌ ReAct ํ๋ ์์ํฌ๋ฅผ ํ์ฅํฉ๋๋ค.
๊ฒฐ๊ณผ
์คํ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅด๋ฉด Reflexion ์์ด์ ํธ๋ ์์ฌ ๊ฒฐ์ AlfWorld ์์ , HotPotQA์ ์ถ๋ก ์ง๋ฌธ ๋ฐ HumanEval์ Python ํ๋ก๊ทธ๋๋ฐ ์์ ์์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํค๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
์์ฐจ์ ์์ฌ ๊ฒฐ์ (AlfWorld) ์์ ํ๊ฐ ๋ถ๋ฌธ์์, ReAct + Reflexion์ ์ด์ง ๋ถ๋ฅ๋ฅผ ์ํด ํด๋ฆฌ์คํฑ ๋ฐ GPT์ ์์ฒด ํ๊ฐ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ์ด 134๊ฐ ์ค 130์ ์์ ์ ์๋ฃํจ์ผ๋ก์จ ReAct๋ฅผ ํฌ๊ฒ ๋ฅ๊ฐํจ์ ์ฆ๋ช ํฉ๋๋ค.
Reflexion ์ฌ๋ฌ ํ์ต ๋จ๊ณ์ ๊ฑธ์ณ ๋ชจ๋ ๋ฒ ์ด์ค๋ผ์ธ์ ํฌ๊ฒ ๋ฅ๊ฐํฉ๋๋ค. ์ค๋ก์ง ์ถ๋ก ์ ๊ฒฝ์ฐ ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์ต์ ๊ถค์ ์ผ๋ก ๊ตฌ์ฑ๋ ์ํผ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ถ๊ฐํ ๋ Reflexion + CoT๋ ๊ทธ ์ํผ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง CoT ๊ทธ ์์ ๊ณผ CoT๋ฅผ ๊ฐ๊ฐ ๋ฅ๊ฐํฉ๋๋ค.
์๋ ํ์ ์์ฝ๋ ๋ฐ์ ๊ฐ์ด Reflexion์ MBPP, HumanEval ๋ฐ Leetcode Hard์์ Python ๋ฐ Rust ์ฝ๋ ์์ฑ์ ๋ํ ์ด์ ์ ์ต์ฒจ๋จ ์ ๊ทผ ๋ฐฉ์์ ์์ฝ๊ฒ ๋ฅ๊ฐํฉ๋๋ค.
์ธ์ Reflexion์ ์จ์ผํ ๊น์?
Reflexion์ ๋ค์๊ณผ ๊ฐ์ ํญ๋ชฉ์ ์ ํฉํฉ๋๋ค:
- ์์ด์ ํธ๋ ์ํ์ฐฉ์ค๋ฅผ ํตํด ๋ฐฐ์๋๋ค: Reflection์ ์์ด์ ํธ๊ฐ ๊ณผ๊ฑฐ์ ์ค์๋ฅผ ๋ฐ์ฑํ๊ณ ๊ทธ ์ง์์ ๋ฏธ๋์ ๊ฒฐ์ ์ ํตํฉํจ์ผ๋ก์จ ์ฑ๋ฅ์ ํฅ์์ํค๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๋ฐ๋ผ์ ์์ฌ ๊ฒฐ์ , ์ถ๋ก ๋ฐ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ฐ์ด ์์ด์ ํธ๊ฐ ์ํ์ฐฉ์ค๋ฅผ ํตํด ํ์ตํด์ผ ํ๋ ์์ ์ ์ ํฉํฉ๋๋ค.
- ์ ํต์ ์ธ ๊ฐํ ํ์ต ๋ฐฉ๋ฒ์ ๋นํ์ค์ ์ ๋๋ค: ์ ํต์ ์ธ ๊ฐํ ํ์ต(Reinforcement Learning)๋ฐฉ์์ ๊ด๋ฒ์ํ ํ๋ จ ๋ฐ์ดํฐ์ ๊ฐ๋น์ผ ๋ชจ๋ธ ๋ฏธ์ธ ์กฐ์ (fine-tuning)์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. Reflection์ ๊ธฐ๋ณธ ์ธ์ด ๋ชจ๋ธ์ ๋ฏธ์ธ ์กฐ์ (fine-tuning)ํ ํ์๊ฐ ์๋ ์์ฌ์ด ๋์์ ์ ๊ณตํ๋ฏ๋ก ๋ฐ์ดํฐ ๋ฐ ์ปดํจํ ๋ฆฌ์์ค ์ธก๋ฉด์์ ๋ ํจ์จ์ ์ ๋๋ค.
- ์ด๊ฐ์ ๋ฐ๋ฅธ ํผ๋๋ฐฑ์ด ํ์ํฉ๋๋ค: Reflexion์ ์ธ์ด ํผ๋๋ฐฑ์ ํ์ฉํ๋ฉฐ, ์ด๋ ๊ธฐ์กด ๊ฐํ ํ์ต(Reinforcement Learning)์์ ์ฌ์ฉ๋๋ scalar ๋ณด์๋ณด๋ค ๋ ๋ฏธ๋ฌํ๊ณ ๊ตฌ์ฒด์ ์ผ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์์ด์ ํธ๋ ์ค์๋ฅผ ๋ ์ ์ดํดํ๊ณ ์ถํ ์ํ์์ ๊ฐ์ ๋ ๋ชฉํ์ ํ ๋ฐ์ง ๋ ๋ค๊ฐ์ค ์ ์์ต๋๋ค.
- ํด์ ๊ฐ๋ฅ์ฑ(Interpretability)๊ณผ ๋ช ์์ ๊ธฐ์ต์ด ์ค์ํฉ๋๋ค: Reflexion์ ๊ธฐ์กด ๊ฐํ ํ์ต(Reinforcement Learning) ๋ฐฉ๋ฒ์ ๋นํด ๋ ํด์ ๊ฐ๋ฅํ๊ณ ๋ช ์์ ์ธ ํํ์ ์ํผ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ด์ ํธ์ ์๊ธฐ ์ฑ์ฐฐ(self-reflection)์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ํ์ต ๊ณผ์ ์ ๋ ์ฝ๊ฒ ๋ถ์ํ๊ณ ์ดํดํ ์ ์์ต๋๋ค.
Reflexion์ ๋ค์๊ณผ ๊ฐ์ ํญ๋ชฉ์ ํจ๊ณผ์ ์ ๋๋ค:
- ์์ฐจ์ ์์ฌ๊ฒฐ์ : Reflexion ์์ด์ ํธ๋ ๋ค์ํ ํ๊ฒฝ์ ํ์ํ๊ณ ์ฌ๋ฌ ๋จ๊ณ์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ ๊ฒ์ ํฌํจํ๋ AlfWorld ์์ ์์ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
- Reasoning: Reflexion์ ์ฌ๋ฌ ๋ฌธ์์ ๋ํ ์ถ๋ก ์ด ํ์ํ ์ง์์๋ต ๋ฐ์ดํฐ ์ธํธ์ธ HotPotQA์์ ์์ด์ ํธ์ ์ฑ๋ฅ์ ํฅ์์์ผฐ์ต๋๋ค.
- ํ๋ก๊ทธ๋๋ฐ: Reflexion ์์ด์ ํธ๋ HumanEval ๋ฐ MBPP์ ๊ฐ์ ๋ฒค์น๋งํฌ์ ๋ ๋์ ์ฝ๋๋ฅผ ์์ฑํ์ฌ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ต์ฒจ๋จ ๊ฒฐ๊ณผ๋ฅผ ๋ฌ์ฑํฉ๋๋ค.
Reflection์ ๋ช ๊ฐ์ง ํ๊ณ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์๊ธฐํ๊ฐ(self-evaluation) ์ญ๋ ์์กด: Reflection์ ์์ด์ ํธ๊ฐ ์์ ์ ์ฑ๊ณผ๋ฅผ ์ ํํ๊ฒ ํ๊ฐํ๊ณ ์ ์ฉํ ์๊ธฐ๋ฐ์ฑ(self-reflection)์ ์์ฑํ๋ ๋ฅ๋ ฅ์ ์์กดํฉ๋๋ค. ์ด๋ ํนํ ๋ณต์กํ ์์ ์ ๊ฒฝ์ฐ ์ด๋ ค์ธ ์ ์์ง๋ง, ๋ชจ๋ธ์ ๊ธฐ๋ฅ์ด ๊ณ์ ํฅ์๋จ์ ๋ฐ๋ผ Reflexion์ด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๊ฐ์ ๋ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
- ์ฅ๊ธฐ๊ธฐ์ต์ ์ฝ: Reflexion์ ์ต๋ ์ฉ๋์ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ฅผ ์ฌ์ฉํ์ง๋ง ๋ฒกํฐ ์๋ฒ ๋ฉ์ด๋ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ์๋์ ์ผ๋ก ๋ ๋ณต์กํ ์์ ์ ๊ฒฝ์ฐ ๊ณ ๊ธ ๊ตฌ์กฐ(advanced structures)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ๋ฆฌํ ์ ์์ต๋๋ค.
- ์ฝ๋ ์์ฑ ์ ํ: ์ ํํ ์ ์ถ๋ ฅ ๋งคํ(์: ํ๋์จ์ด์ ์ํฅ์ ๋ฐ๋ ๋น๊ฒฐ์ ๋ก ์ ์์ฑ๊ธฐ ํจ์ ๋ฐ ํจ์ ์ถ๋ ฅ)์ ์ง์ ํ๋ ๋ฐ ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(test-driven development)์ ์ ํ์ด ์์ต๋๋ค.
Figures ์ถ์ฒ: Reflexion: Language Agents with Verbal Reinforcement Learning (opens in a new tab)