๐ค 50. HF Agents Course ๋ณธํธ 1 - Unit 1 ์์์ ๊ณผ smolagents ์ต์ ์คํ ์ฌํํ๊ธฐ
๋ชฉํ: HF Agents Course ๋ณธํธ 1์ ์ถ๋ฐ์ ์ ์ดํดํ๊ณ ,
smolagents๋ก ๋๊ตฌ ์๋ ์ต์ ์์ด์ ํธ์ ๋๊ตฌ 1๊ฐ๋ฅผ ๋ถ์ธ ์์ด์ ํธ๋ฅผ ์ง์ ์ฌํํ๋ค.
Hugging Face Agents Course๋ ์ ์ฒด์ ์ผ๋ก ๊ธฐ์ด ๊ฐ๋ โ ํ๋ ์์ํฌ โ ์ค์ ์ ์ค์ผ์ด์ค โ ์ต์ข ๊ณผ์ ์์๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ๊ทธ์ค Unit 1์ ๊ฐ์ฅ ์ค์ํ ์ ๋ฌธ ๊ตฌ๊ฐ์ด๋ค. ์ฌ๊ธฐ์ ์ก์์ผ ํ๋ ๊ฒ์ ๋ณต์กํ ๋ฉํฐ์์ด์ ํธ๊ฐ ์๋๋ผ, ์์ด์ ํธ๊ฐ ๋ชฉํ๋ฅผ ๋ฐ๊ณ ์๊ฐํ๊ณ ๋๊ตฌ๋ฅผ ์ฐ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ ๊ธฐ๋ณธ ๋ฃจํ๋ค.
๊ณต์ ์ฝ์ค์ smolagents ๋ฌธ์๋ฅผ ํจ๊ป ๋ณด๋ฉด ์ด๋ณด์๊ฐ ๋จผ์ ์ก์์ผ ํ ํฌ์ธํธ๋ ๋ค ๊ฐ์ง๋ค.
- ์์ด์ ํธ๋ ๋จ์ ๋ต๋ณ๊ธฐ๊ฐ ์๋๋ผ ๋ชฉํ ํด๊ฒฐ ํ๋ฆ์ ๊ฐ์ง๋ค.
- LLM์ ํ๋จ์ ๋งก๊ณ , ๋๊ตฌ๋ ๊ณ์ฐยท๊ฒ์ยท์กฐํ ๊ฐ์ ์ค์ ์์ ์ ๋งก๋๋ค.
- ๊ธฐ๋ณธ ๋ฃจํ๋ Think โ Act โ Observe๋ก ์ดํดํ๋ฉด ๋๋ค.
- ์ฒซ ์ค์ต์ ์๊ณ ํ์คํ๊ฒ ์ฑ๊ณตํ๋ ํธ์ด ํ์ต ํจ์จ์ด ๋๋ค.
์ด๋ฒ ๊ธ์์ ๋ง๋ค ํฐ ๊ทธ๋ฆผ
flowchart LR A[์ฌ์ฉ์ ๋ชฉํ ์ ๋ ฅ] --> B[LLM์ด ๋ฌธ์ ํด์] B --> C{๋๊ตฌ ํ์?} C -- ์๋์ค --> D[์ง์ ์๋ต ์์ฑ] C -- ์ --> E[๋๊ตฌ ํธ์ถ] E --> F[๊ฒฐ๊ณผ ๊ด์ฐฐ] F --> B D --> G[์ต์ข ๋ต๋ณ] F --> G
์ด ๋์๋ง ์ดํดํด๋ ์ดํ Unit 2์์ smolagents, LangGraph, LlamaIndex๋ฅผ ๋ณผ ๋ โ๋ฌธ๋ฒโ๋ณด๋ค โ์๋ฆฌโ๊ฐ ๋จผ์ ๋ณด์ธ๋ค.
๊ณต์ ์๋ฃ ๊ธฐ์ค์ผ๋ก ๋ณธ Unit 1 ํต์ฌ
1) ์์ด์ ํธ๋ ๋ชฉํ ์งํฅ์ ์ด๋ค
์ผ๋ฐ ์ฑ๋ด์ ์ง๋ฌธ์ ๋ฐ๋ก ๋ต์ ์ด์ด์ ์์ฑํ๋ ๋ฐ ๊ฐํ๋ค. ๋ฐ๋ฉด ์์ด์ ํธ๋ ๋ฌธ์ ๋ฅผ ํด์ํ๊ณ , ํ์ํ ์๋จ์ ๊ณ ๋ฅด๊ณ , ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ฉด์ ๋ต์ ๋ง๋ ๋ค.
2) ๋๊ตฌ๊ฐ ๋ถ์ด์ผ ์ค๋ฌด์ฑ์ด ์ฌ๋ผ๊ฐ๋ค
๊ณต์ ์ฝ์ค์ Unit 1 ์ค๋ช ์๋ ๋๊ตฌ, ์๊ฐ, ํ๋, ๊ด์ฐฐ์ด ํต์ฌ ๊ฐ๋ ์ผ๋ก ๋ค์ด๊ฐ๋ค. ์ด์ ๋ ๋จ์ํ๋ค. ๊ณ์ฐ, ๊ฒ์, ํ์ผ ์ฝ๊ธฐ, API ํธ์ถ ๊ฐ์ ์ผ์ ๋ชจ๋ธ์ด ์ถ์ ๋ง ํ๋ ๊ฒ๋ณด๋ค ๋๊ตฌ๋ฅผ ํธ์ถํ๋ ํธ์ด ๋ ๊ฒ์ฆ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.
3) smolagents๋ ์
๋ฌธ ์ค์ต์ ์ ๋ง๋๋ค
smolagents ๋ฌธ์๋ ์์ฃผ ์ ์ ์ฝ๋๋ก ์์ด์ ํธ๋ฅผ ์คํํ๋ Quickstart๋ฅผ ์ ๊ณตํ๋ค. ์ฆ, ์ฒ์ ๋ฐฐ์ฐ๋ ์ฌ๋์๊ฒ๋ โ๊ตฌ์กฐ ์ดํด โ ์ฆ์ ์คํ โ ์์ ์์ โ ํ๋ฆ์ด ์ข๋ค.
์ค์ต ๋ชฉํ
์ด๋ฒ ์ค์ต์ 2๋จ๊ณ๋ก ๋๋๋ค.
- ๋๊ตฌ ์๋ ์ต์ ์์ด์ ํธ๋ฅผ ์คํํ๋ค.
- ๊ณ์ฐ๊ธฐ ๋๊ตฌ 1๊ฐ๋ฅผ ์ถ๊ฐํ ์์ด์ ํธ๋ก ์ ํ๋๊ฐ ์ ์ข์์ง๋์ง ํ์ธํ๋ค.
์ค๋น๋ฌผ
- Python 3.10+
- ํฐ๋ฏธ๋
- ์ธํฐ๋ท ์ฐ๊ฒฐ
- ํ์ ์ Hugging Face ํ ํฐ (
HF_TOKEN)
์ค์ต 1) ์์ ํด๋ ๋ง๋ค๊ธฐ
๋๊ตฌ
- ํฐ๋ฏธ๋
์ ๋ ฅ
mkdir -p ~/hf-agents-course-unit1-minimal
cd ~/hf-agents-course-unit1-minimal์ฑ๊ณต ํ์
pwd- ๊ฒฝ๋ก ๋์ด
hf-agents-course-unit1-minimal์ด๋ฉด ์ฑ๊ณต.
์ค์ต 2) ๊ฐ์ํ๊ฒฝ๊ณผ ํจํค์ง ์ค์น
์ ๋ ฅ
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
pip install "smolagents[toolkit]"์ฑ๊ณต ํ์
python -c "import smolagents; print(smolagents.__name__)"smolagents๊ฐ ์ถ๋ ฅ๋๋ฉด ์ฑ๊ณต.
์ค์ต 3) ๋๊ตฌ ์๋ ์ต์ ์์ด์ ํธ ๋ง๋ค๊ธฐ
ํ์ผ๋ช
minimal_agent.py
์ ๋ ฅ
from smolagents import CodeAgent, InferenceClientModel
model = InferenceClientModel()
agent = CodeAgent(
tools=[],
model=model,
max_steps=4,
)
question = "1๋ถํฐ 10๊น์ง์ ํฉ์ ๊ณ์ฐํ๊ณ ํ ์ค๋ก ์ค๋ช
ํด์ค."
result = agent.run(question)
print(result)์ค๋ช
InferenceClientModel()์ Hugging Face ์ถ๋ก ๋ชจ๋ธ์ ์ฐ๊ฒฐํ๋ ๊ฐ์ฅ ๊ฐ๋จํ ์ง์ ์ ์ด๋ค.CodeAgent๋ ํ์ํ ๋ ์ฝ๋ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋จ๊ณ๋ฅผ ์กฐ์งํ๋ค.tools=[]๋ ์์ง ์ธ๋ถ ๋๊ตฌ๋ฅผ ๋ถ์ด์ง ์์ ์ํ๋ค.
์คํ ๋ช ๋ น
python minimal_agent.py์ฑ๊ณต ํ์
์๋ 3๊ฐ๋ฅผ ๋ง์กฑํ๋ฉด ๋๋ค.
- ์์ธ ์์ด ์คํ์ด ๋๋๋ค.
- ํฉ๊ณ
55๊ฐ ํฌํจ๋ ์๋ต์ด ๋์จ๋ค. - ์งง์ ์ค๋ช ๋ฌธ์ฅ์ด ํจ๊ป ์ถ๋ ฅ๋๋ค.
์ค์ต 4) ๊ณ์ฐ๊ธฐ ๋๊ตฌ ๋ถ์ด๊ธฐ
์ด๋ฒ์๋ ๊ฐ์ ๊ตฌ์กฐ์ ๊ณ์ฐ๊ธฐ ๋๊ตฌ๋ฅผ ๋ฃ๋๋ค.
ํ์ผ๋ช
tool_agent.py
์ ๋ ฅ
from smolagents import CodeAgent, InferenceClientModel, tool
@tool
def calculator(expression: str) -> str:
"""Evaluate a simple arithmetic expression.
Args:
expression: A math expression using numbers and + - * / ( )
"""
allowed = set("0123456789+-*/(). ")
if any(ch not in allowed for ch in expression):
return "Only simple arithmetic is allowed."
try:
result = eval(expression, {"__builtins__": {}}, {})
return str(result)
except Exception as e:
return f"calculation-error: {e}"
model = InferenceClientModel()
agent = CodeAgent(
tools=[calculator],
model=model,
max_steps=5,
)
questions = [
"17 * 24๋ ์ผ๋ง์ผ? ์งง๊ฒ ์ค๋ช
ํด์ค.",
"56.8๊ณผ 19.2๋ฅผ ๋ํ ๋ค 2๋ก ๋๋ ๊ฐ์ ์๋ ค์ค."
]
for i, question in enumerate(questions, start=1):
print(f"\n=== Question {i} ===")
print(agent.run(question))์คํ ๋ช ๋ น
python tool_agent.py์ฑ๊ณต ํ์
์๋ 4๊ฐ๋ฅผ ๋ง์กฑํ๋ฉด ์ฑ๊ณต์ด๋ค.
Question 1,Question 2๊ฐ ๋ชจ๋ ์ถ๋ ฅ๋๋ค.- ์ฒซ ๋ฒ์งธ ๊ฒฐ๊ณผ์
408์ด ํฌํจ๋๋ค. - ๋ ๋ฒ์งธ ๊ฒฐ๊ณผ์
38.0๋๋ ๊ฐ์ ์๋ฏธ์ ๊ฐ์ด ํฌํจ๋๋ค. - ํ๋ก๊ทธ๋จ์ด ์์ธ ์์ด ์ข ๋ฃ๋๋ค.
์ค์ต 5) ๋๊ตฌ ์ ๋ฌด ์ฐจ์ด ๋น๊ต
๊ฐ์ ์ง๋ฌธ์ ๋ ํ์ผ์ ๊ฐ๊ฐ ๋ฃ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํด ๋ณธ๋ค.
๋น๊ต ์ง๋ฌธ ์์
๊ด๊ณ ๋
ธ์ถ 12800ํ, CTR 2.5%๋ฉด ํด๋ฆญ ์๋ ๋ช ํ์ผ?์คํ ๋ช ๋ น
python minimal_agent.py
python tool_agent.py์ฑ๊ณต ํ์
- ๋๊ตฌ ์๋ ๋ฒ์ ์ ๋ง์ ์๋ ์์ง๋ง, ๊ณ์ฐ์ ์ถ๋ก ์ ์์กดํ๋ค.
- ๋๊ตฌ ์๋ ๋ฒ์ ์ ๊ณ์ฐ ์ ์ฐจ๋ฅผ ๋ ์์ ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค.
- ์ด ์ฐจ์ด๋ฅผ ํ์ธํ๋ฉด โ์ ์์ด์ ํธ์ ๋๊ตฌ๋ฅผ ๋ถ์ด๋๊ฐโ๊ฐ ๋ช ํํด์ง๋ค.
์ด๋ณด์ ๊ด์ ํต์ฌ ์ ๋ฆฌ
์์ด์ ํธ์ ๋ณธ์ง์ ๋ต๋ณ ์์ฑ๋ณด๋ค ๋ฌธ์ ํด๊ฒฐ ํ๋ฆ์ด๋ค
์ข์ ์ ๋ฌธ์ ํ๋กฌํํธ ๋ฌธ๊ตฌ๋ฅผ ๊ธธ๊ฒ ๊พธ๋ฏธ๋ ๊ฒ ์๋๋ผ, ์ ๋ ฅ โ ํ๋จ โ ํ๋ โ ๊ด์ฐฐ โ ์๋ต ๊ตฌ์กฐ๋ฅผ ๋ชธ์ผ๋ก ์ตํ๋ ๊ฒ์ด๋ค.
์ฒซ ๋๊ตฌ๋ ๊ณ์ฐ๊ธฐ์ฒ๋ผ ๊ฒ์ฆ ์ฌ์ด ๊ฒ์ด ์ข๋ค
๊ฒฐ๊ณผ๊ฐ ๋ฐ๋ก ๋ง๊ณ ํ๋ฆผ์ผ๋ก ๋ณด์ด๊ธฐ ๋๋ฌธ์, ์์ด์ ํธ ๋ฃจํ๋ฅผ ํ์ธํ๊ธฐ ์ข๋ค.
์ค์ต์ โ์๊ฒ ์ฑ๊ณตโ์ด ์ค์ํ๋ค
์ฒ์๋ถํฐ ์น ๊ฒ์, ํ์ผ ์ฒ๋ฆฌ, API ์ฐ๋์ ํ๊บผ๋ฒ์ ๋ถ์ด๋ฉด ์ด๋์ ๋งํ๋์ง ๋ณด๊ธฐ ์ด๋ ต๋ค. ์ต์ ์์ ๋ก ์ฑ๊ณตํ ๋ค ํ ๋จ๊ณ์ฉ ํ์ฅํ๋ ํธ์ด ์์ ํ๋ค.
์ค๋ฌด ์ ์ฉ ํฌ์ธํธ
1) ๋ง์ผํ ์ซ์ ๊ฒ์ฆ
CTR, CPC, CVR, ROAS ๊ณ์ฐ ๊ฐ์ ๋ฐ๋ณต ์์ ์ ๋ฐ๋ก ์์ฉํ ์ ์๋ค.
2) ์ด์ํ ์ ์ฐ ๋ณด์กฐ
์์๋ฃ, ํ ์ธ์จ, ํ๋ถ์ก ๊ณ์ฐ์ฒ๋ผ ์ซ์ ์ ํ๋๊ฐ ์ค์ํ ์ ๋ฌด์ ์ ์ฉํ๋ค.
3) ๋ค์ ํ์ฅ ๊ฒฝ๋ก
์ ๋ฌธ ์ดํ์๋ ๋ณดํต ์๋ ์์๊ฐ ์์ ์ ์ด๋ค.
- ๊ณ์ฐ๊ธฐ ๋๊ตฌ
- CSV ์ฝ๊ธฐ ๋๊ตฌ
- ์น ๊ฒ์ ๋๊ตฌ
- ์ธ๋ถ API ๋๊ตฌ
- ๋ฉํฐ์คํ ์ํฌํ๋ก
์์ฃผ ๋งํ๋ ๋ฌธ์
ModuleNotFoundError
source .venv/bin/activate
pip install "smolagents[toolkit]"์ธ์ฆ ๋๋ ํธ์ถ ์ค๋ฅ
ํ๊ฒฝ์ ๋ฐ๋ผ Hugging Face ํ ํฐ์ด ํ์ํ ์ ์๋ค.
export HF_TOKEN=hf_your_token_here
python tool_agent.py์๋ต์ด ๊ธธ๊ฑฐ๋ ํ๋ค๋ฆด ๋
- ์ง๋ฌธ์ ๋ ์งง๊ณ ๋ช ํํ๊ฒ ์ด๋ค.
max_steps๋ฅผ 4~5 ์ ๋๋ก ์ ํํ๋ค.- ์ฒ์์๋ ๊ณ์ฐ์ฒ๋ผ ์ ๋ต์ด ๋ถ๋ช ํ ๊ณผ์ ๋ก ํ ์คํธํ๋ค.
eval์ด ๋ถ์ํ ๋
๊ทธ ํ๋จ์ด ๋ง๋ค. ์ด์ ํ๊ฒฝ์์๋ ์์ ํ ํ์๋ ๊ฒ์ฆ๋ ๊ณ์ฐ ๋ชจ๋์ ์ฐ๋ ํธ์ด ๋ซ๋ค. ์ฌ๊ธฐ์๋ ์์ด์ ํธ ๊ตฌ์กฐ ํ์ต์ฉ ์ต์ ์์ ๋ก๋ง ์ฌ์ฉํ๋ค.
์ถ์ฒ ํ์ต ์์
- ๊ณต์ ์ฝ์ค ์๊ฐ ํ์ด์ง์์ ์ ์ฒด ๋ก๋๋งต ํ์ธ
- Unit 1์ ์์ด์ ํธ ๊ธฐ๋ณธ ๊ฐ๋ ์ฝ๊ธฐ
smolagentsQuickstart ์์ ์คํ- ์ด ๊ธ์ ๋ ์ค์ต์ผ๋ก ๋๊ตฌ ์ ๋ฌด ์ฐจ์ด ์ฒด๊ฐ
- ์ดํ ์ค์ตํธ์ด๋ Unit 2 ํ๋ ์์ํฌ ๋น๊ต๋ก ํ์ฅ
ํ ์ค ์์ฝ
HF Agents Course ๋ณธํธ 1์ ํต์ฌ์ ํ๋ คํ ๋ฐ๋ชจ๊ฐ ์๋๋ผ, ์์ด์ ํธ๊ฐ ์๊ฐํ๊ณ ํ๋ํ๊ณ ๊ด์ฐฐํ๋ ์ต์ ๋ฃจํ๋ฅผ ์ง์ ์คํํด ๋ณด๋ ๊ฒ์ด๋ค.
์์ฑํ AI ํ์ฉ ๊ณ ์ง
์ด ๋ฌธ์๋ ์์ฑํ AI๋ก ์ด์์ ์์ฑํ ๋ค, Hugging Face Agents Course GitHub ์ ์ฅ์, ๊ณต์ ์ฝ์ค ํ์ด์ง, smolagents ๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฌ๋์ด ์ฌํ ๋จ๊ณ, ๋ช
๋ น์ด, ์ฑ๊ณต ํ์ , ๋งํฌ ๊ตฌ์กฐ๋ฅผ ๊ฒํ ํด ํธ์งํ์ต๋๋ค.