๐ AI ์์ด์ ํธ ๊ธฐ์ด
์์ด์ ํธ ๊ตฌ์ฑ์์, ReAct, ReWoo, Tool Use, Human-in-the-Loop
AI ์์ด์ ํธ ๊ธฐ์ด
์์ด์ ํธ ๊ตฌ์ฑ์์, ReAct, ReWoo, Tool Use, Human-in-the-Loop
๋๊ตฌ๋ฅผ ์ฐ๋ AI๊ฐ ์์ด์ ํธ๋ค
LLM์ด ์์จ์ ์ผ๋ก ํ๋จํ๊ณ ํ๋ํ๋ ์์คํ ์ ํต์ฌ ์๋ฆฌ
์์ด์ ํธ์ ์ ์์ ๊ตฌ์กฐ
์ ์ ยท ์ฑ๋ด๊ณผ์ ์ฐจ์ด ยท ์์ด์ ํฑ ๋ฃจํ ยท ์์จ์ฑ ๋ ๋ฒจ
์ ์์ ๊ตฌ์กฐ
์ฑ๋ด๊ณผ์ ์ฐจ์ด์์ ์์จ์ฑ ์์ค๊น์ง โ ์์ด์ ํธ๋ฅผ ๋ชจ๋ธ์ด ์๋๋ผ ์์คํ ์ผ๋ก ๋ณด๋ ๊ด์
๋ต๋ณ์ ๋์ด ํ๋ํ๋ AI
LLM์ด ๋๊ตฌ๋ฅผ ํธ์ถํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ๋จํ์ฌ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ ๋๊น์ง ๋ฐ๋ณตํ๋ ์์คํ ์ ๋๋ค.
- ์ฑ๋ด vs ์์ด์ ํธ โ ๋ต๋ณ๋ง vs ํ๋จํ๊ณ ํ๋
- ์์ด์ ํฑ ๋ฃจํ โ Perception โ Reasoning โ Action โ Memory
- ๊ตฌ์ฑ์์ 5๊ฐ์ง โ Tools ยท Memory ยท Guardrails ยท Context ยท Orchestration
- ์์จ์ฑ 4๋จ๊ณ โ Manual โ Assisted โ Supervised โ Autonomous
์ฑ๋ด๊ณผ์ ์ฐจ์ด์์ ์ถ๋ฐํด ๋ฃจํ ยท ๊ตฌ์ฑ์์ ยท ์์จ์ฑ ๋จ๊ณ๊น์ง โ ์์ด์ ํธ๋ฅผ ๋ชจ๋ธ์ด ์๋๋ผ ์์คํ ์ผ๋ก ๋ณด๋ ๊ด์ ์ ์ธ์๋๋ค.
์ฑ๋ด vs ์์ด์ ํธ
๋ต๋ณํ๋ AI์์ ํ๋ํ๋ AI๋ก
์ฑ๋ด
๋ต๋ณ๋ง ์์ฑ
- LLM๋ง ์ฌ์ฉ โ ํ ์คํธ ์ ๋ ฅ โ ํ ์คํธ ์ถ๋ ฅ
- ์คํ ํ๋ฆ ๊ณ ์ (์ง๋ฌธโ๋ต๋ณ)
- "๊ฐ๋จ์ญ ์ดํ๋ฆฌ์ ์ถ์ฒํด์ค" โ ์ผ๋ฐ์ ์ ๋ณด ๋์ด
- ์ธ๋ถ ์์คํ ์ ๊ทผ ๋ถ๊ฐ
์ฑ๋ด์ ํ์ต๋ ๋ฐ์ดํฐ ๋ฒ์ ์์์๋ง ๋ต๋ณํฉ๋๋ค. ์ค์๊ฐ ์ ๋ณด, ์์ฝ ์คํ, ๋ฐ์ดํฐ ์กฐํ ๊ฐ์ "ํ๋"์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์์ด์ ํธ
ํ๋จํ๊ณ ํ๋
- LLM + ๋๊ตฌ + ์ค์ผ์คํธ๋ ์ด์
- ๋ชจ๋ธ์ด ๋ค์ ํ๋์ ๋์ ๊ฒฐ์
- "๊ฐ๋จ์ญ ์ดํ๋ฆฌ์ ์ถ์ฒํด์ค" โ ๊ฒ์ ๋๊ตฌ ํธ์ถ โ ์ค์๊ฐ ๊ฒฐ๊ณผ
- API, DB, ํ์ผ, ์ฝ๋ ์คํ ๊ฐ๋ฅ
์์ด์ ํธ๋ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ ๋๊น์ง ์ถ๋ก ๊ณผ ํ๋์ ๋ฐ๋ณตํฉ๋๋ค. ๋๊ตฌ๋ฅผ ํธ์ถํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ๋จํ์ฌ ๋ค์ ๋จ๊ณ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
์์ด์ ํฑ ๋ฃจํ
์ปจํ ์คํธ โ LLM โ ๋๊ตฌ๋ฅผ ๋ชฉํ ๋ฌ์ฑ๊น์ง ๋ฐ๋ณต
์์ด์ ํธ ๊ตฌ์ฑ์์
ํ๋ก๋์ ์์ด์ ํธ๋ฅผ ์ด๋ฃจ๋ 5๊ฐ์ง ํต์ฌ ์์
์์จ์ฑ 4๋จ๊ณ
์์ด์ ํธ์๊ฒ ๋ถ์ฌํ๋ ๊ถํ์ ํญ โ ์๋ ๋ณด์กฐ๋ถํฐ ์์ ์์จ๊น์ง
๋จ๊ณ๋ ์์ ์ํ๋์ ์ ๋ขฐ๊ฐ ์ ํฉ๋๋ค โ ํ๋ก๋์ ์ Supervised(์น์ธ ๊ฒ์ดํธ)์์ ์์ํด ์ ๋ขฐ๊ฐ ์์ธ ์์ ๋ถํฐ ์์จ๋ก ๋ํ๋๋ค.
ํต์ฌ ๋ฉ์ปค๋์ฆ
ReAct ยท ReWoo ยท Tool Use ํ๋กํ ์ฝ
ํต์ฌ ๋ฉ์ปค๋์ฆ
์์ด์ ํธ๊ฐ ์ถ๋ก ํ๊ณ ํ๋ํ๋ ๋ ๊ฐ์ง ํจํด๊ณผ ๋๊ตฌ ํธ์ถ ํ๋กํ ์ฝ์ ์กฐ๊ฐ
ReAct ยท ReWoo ยท Tool Use
ReAct๋ ๋งค ์คํ ํ๋จํ๊ณ ReWoo๋ ๊ณํ ํ ๋ณ๋ ฌ ์คํํฉ๋๋ค โ ๋๊ตฌ ํธ์ถ์ 6๋จ๊ณ ๋ฉ์์ง ํ๋กํ ์ฝ๋ก ์ค๊ฐ๋๋ค.
- ReAct โ ๋งค ์คํ ์ถ๋ก ํ ํ๋, ๋์ ์ ์๋ ฅ
- ReWoo โ ๊ณํ ๋จผ์ + ๋ณ๋ ฌ ์คํ, LLM 2ํ ํธ์ถ
- Tool Use 6๋จ๊ณ โ toolSpec โ tool_use โ toolResult
- ํจํด ์ ํ โ ๋ํํ์ ReAct, ๋ณ๋ ฌยท๋น์ฉ ๋ฏผ๊ฐ์ ReWoo
ReAct๋ ์ ์๋ ฅ์, ReWoo๋ ํ ํฐ ํจ์จ์ ์ป์ต๋๋ค โ ์์ ์ฑ๊ฒฉ์ด ํจํด์ ๊ฒฐ์ ํฉ๋๋ค.
ReAct ํจํด
Reasoning + Acting์ ๋งค ์คํ ๋ฐ๋ณต โ ์์ด์ ํธ์ ๊ธฐ๋ณธ ํจํด
ํ ์คํ ์ ๊ตฌ์กฐ
-
1
Thought
์ง๊ธ๊น์ง์ ๋ํยท๋๊ตฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ๋ค์ ํ๋์ ์ถ๋ก โ "๋ฌด์์ด ๋ ํ์ํ๊ฐ"
-
2
Action
์ถ๋ก ์ด ๊ณ ๋ฅธ ๋๊ตฌ๋ฅผ ํธ์ถ โ ๋๊ตฌ ์ด๋ฆ๊ณผ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ชจ๋ธ์ด ๊ฒฐ์
-
3
Observation
๋๊ตฌ ๊ฒฐ๊ณผ๊ฐ messages[]์ ์์ฌ ๋ค์ Thought์ ์ ๋ ฅ์ด ๋จ
-
4
๋ฐ๋ณต ๋๋ ์ข ๋ฃ
์ ๋ณด๊ฐ ์ถฉ๋ถํด์ง๋ฉด ๋๊ตฌ ํธ์ถ ๋์ ์ต์ข ๋ต๋ณ ์์ฑ
์ค์ ํธ๋ ์ด์ค โ ํ ์์ฒญ์ด ๋ ์คํ ์ ๋๋ ๊ณผ์
๋งค ์คํ ์ค๊ฐ ๊ฒฐ๊ณผ์ ๋ฐ์ํด ๋ค์ ํ๋์ ๋ฐ๊พธ๋ ๊ฒ์ด ReAct์ ๊ฐ์ ์ ๋๋ค.
ReWoo ํจํด
๊ณํ์ ๋จผ์ ์ธ์ฐ๊ณ ๋๊ตฌ๋ฅผ ๋ณ๋ ฌ ์คํ โ HotpotQA ๋ฒค์น๋งํฌ ๊ธฐ์ค ํ ํฐ ์ต๋ 5๋ฐฐ ํจ์จ
3์ญํ ๋ถ์ โ Reasoning WithOut Observation
-
1
Planner โ ์ค๊ณ๋ ์์ฑ (LLM 1ํ)
์ ์ฒด ๋๊ตฌ ํธ์ถ ๊ณํ์ ํ ๋ฒ์ ์๋ฆฝ โ ์์ง ์๋ ๊ฒฐ๊ณผ๋ #E1ยท#E2 ํ๋ ์ด์คํ๋๋ก ์ฐธ์กฐ
-
2
Worker โ ์ผ๊ด ์คํ (LLM 0ํ)
๊ณํ์ ๋๊ตฌ๋ฅผ ๋ชจ๋ธ ๊ฐ์ ์์ด ์คํ โ ์์กด์ฑ ์๋ ํธ์ถ์ ๋ณ๋ ฌ ์ฒ๋ฆฌ
-
3
Solver โ ์ฆ๊ฑฐ ์ข ํฉ (LLM 1ํ)
ํ๋ ์ด์คํ๋ ์๋ฆฌ์ ์ค์ ๊ฒฐ๊ณผ๋ฅผ ์ฑ์ ์ต์ข ๋ต๋ณ ์์ฑ
๊ฐ์ ์์ฒญ์ ์คํ ๊ณํ์ โ Planner ์ถ๋ ฅ
Plan: ๊ฐ๋จ์ญ ์ดํ๋ฆฌ์ ๋ง์ง์ ์ฐพ๋๋ค
#E1 = search_restaurants(location="๊ฐ๋จ์ญ",
cuisine="์ดํ๋ฆฌ์")
Plan: ํ์ 1์ ์๋น์ ์ ๋
์ผ๋ก ์์ฝํ๋ค
#E2 = book_table(restaurant=#E1[0],
time="19:00")
๊ด์ฐฐ์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๊ณํ์ ๋จผ์ ์์ฑํฉ๋๋ค โ LLM ํธ์ถ์ด ๊ณํยท์ข ํฉ 2ํ๋ก ๊ณ ์ ๋๋ ๊ฒ์ด ์คํ ๋ง๋ค ๋ชจ๋ธ์ ๋ถ๋ฅด๋ ReAct์์ ๊ฒฐ์ ์ ์ฐจ์ด์ ๋๋ค.
ReAct vs ReWoo
์์ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ํจํด์ ์ ํ
| ๊ตฌ๋ถ | ReAct | ReWoo |
|---|---|---|
| ์ ๋ต | ๋งค ์คํ ํ๋จ | ๊ณํ ๋จผ์ , ์ผ๊ด ์คํ |
| LLM ํธ์ถ | Nํ (์คํ ๋ง๋ค) | 2ํ (๊ณํ + ์ข ํฉ) |
| ํ ํฐ ํจ์จ | ๋ฎ์ | ๋์ (HotpotQA ๊ธฐ์ค ์ต๋ 5๋ฐฐ) |
| ์คํ ์๊ฐ | ์ง๋ ฌ โ ๋๋ฆผ | ๋ณ๋ ฌ โ ๋น ๋ฆ |
| ์ ์๋ ฅ | โ ๋์ (์ค๊ฐ ๊ฒฐ๊ณผ์ ๋ฐ์) | ๋ฎ์ (๊ณํ ์คํจ ์ ์ฌ๊ณํ) |
| ์ ํฉํ ๊ฒฝ์ฐ | ๋ํํ, HITL, ๊ฒฐ๊ณผ ์์กด์ฑ ๋์ ๋ | ๋ฉํฐ๋๊ตฌ, ๋ณ๋ ฌ ๊ฐ๋ฅ, ๋น์ฉ ๋ฏผ๊ฐ |
๋ํํ์ด๊ฑฐ๋ ๊ฒฐ๊ณผ ์์กด์ฑ์ด ๋์ผ๋ฉด ReAct, ๋ณ๋ ฌ ๊ฐ๋ฅํ๊ณ ๋น์ฉ์ ๋ฏผ๊ฐํ๋ฉด ReWoo โ ์ ์๋ ฅ๊ณผ ํจ์จ์ ๋ง๊ตํ์ ๋๋ค.
Tool Use 6๋จ๊ณ
LLM๊ณผ ๋๊ตฌ ์ฌ์ด์ ๋ฉ์์ง ํ๋กํ ์ฝ
๋๊ตฌ ยท ๋ฃจํ ยท ์์ ์ฅ์น๋ฅผ ๊ฐ์ถ ์์คํ ์ค๊ณ