주요 내용
예 또는 아니요: Llama 3.2 3B 모델은 가벼우면서도 강력한 언어 모델로 ** 함수 호출을 지원합니다**.
할 수 있는 일: 함수 호출을 통해 모델이 외부 도구 및 API와 상호작용하여 기본 텍스트 생성 이상의 기능을 확장할 수 있습니다.
구현 방법: Novita AI의 "LLM Playground"를 통해 API를 설치한 후 Langchain 프레임워크로 구현합니다.
현재 인공지능 분야에서는 많은 사람들이 Llama 3.2 3B 모델이 함수 호출 기능을 구현할 수 있는지에 대해 활발히 논의하고 있습니다. 수많은 사용자와 개발자가 포럼과 소셜 미디어에서 Llama 3.2 3B의 함수 호출 경험을 공유하고 있습니다. 일부 사용자는 도구 호출 시 약 80%의 성공률로 좋은 결과를 얻었다고 보고합니다. 그러나 특정 상황에서는 모델이 맥락을 오해하여 함수 호출이 부정확하거나 실패할 수 있다는 사용자 보고도 있습니다. 오늘은 Llama 3.2의 함수 호출 기능에 대해 더 깊이 알아보겠습니다.
Llama 3.2가 함수 호출을 지원하나요?
네!
Llama 3.2 모델(3B 변형 포함)은 함수 호출을 지원합니다. 이 기능을 통해 모델은 함수를 호출해야 할 때를 감지하고 인수를 포함한 JSON을 출력하여 해당 함수를 호출할 수 있습니다. 이 기능은 Llama 3.2 시리즈의 핵심 기능이며, 모델이 이에 맞게 미세 조정되었습니다. Llama 3.2 3B 모델은 특히 경량 설계로 기기 내 애플리케이션에 적합하면서도 함수 호출과 같은 강력한 기능을 지원합니다.

함수 호출이란 무엇인가요?
함수 호출은 LLM이 외부 시스템, API 및 도구와 상호작용 할 수 있게 하는 방법론입니다. LLM에 함수나 도구 세트와 사용 방법에 대한 세부 정보를 제공하면, 모델이 지능적으로 적절한 함수를 선택 및 실행하여 특정 작업을 수행합니다. 이 기능은 LLM의 기능을 기본 텍스트 생성 이상으로 확장하여 작업 수행, 기기 제어, 데이터베이스 접근 등을 가능하게 합니다.
함수 호출을 지원하는 모델
현재 많은 LLM과 플랫폼이 함수 호출을 지원합니다. Novita AI의 “LLM Playground” 페이지를 통해 API를 설치하고 langchain을 통해 함수 호출을 구현할 수 있습니다.
- Llama 3.3: 700억 매개변수 버전은 함수 호출 테스트에서 사용자 요청에 따라 언제 어떤 함수를 호출해야 하는지 성공적으로 식별하며 강력한 성능을 보여줍니다.
- Mistral: Mistral-Large-2와 같은 모델은 watsonx.ai 환경에서 함수 호출 성공을 보여줍니다.
- Gemini: Google의 Gemini 모델도 함수 호출을 지원하며 다양한 사용 예시가 제공됩니다.
더 자세한 정보를 원하시면 이 웹사이트를 확인하세요!

출처: Berkeley Function-Calling Leaderboard
함수 호출은 어떻게 작동하나요?
함수 호출은 일반적으로 두 단계로 이루어집니다:
- 사용자 프롬프트를 올바른 함수와 입력 매개변수에 매핑 합니다. LLM은 사용자 질의와 관련된 도구가 있는지 평가합니다.
- 함수의 출력을 처리 하여 최종적이고 일관된 응답을 생성합니다. 해당되는 경우 LLM은 도구를 호출하기 위한 형식화된 요청을 구성합니다.
- 도구의 출력은 분석되어 최종 응답에 통합됩니다.
함수 호출의 실제 적용 사례
Llama 3.2 3B 모델을 사용한 함수 호출은 다양한 실제 응용 분야가 있습니다:
- 고객 지원 챗봇: 계산이나 정보 조회가 필요한 응답을 자동화합니다.
- 데이터 처리: 백엔드 시스템과 상호작용하여 데이터를 가져오거나 업데이트합니다.
- 가상 비서: 일정 관리나 계산과 같은 작업을 수행하여 사용자 상호작용을 개선합니다.
- API 상호작용: 자연어를 API 호출로 변환합니다.
- 데이터베이스 쿼리: 자연어를 유효한 데이터베이스 쿼리로 변환하는 애플리케이션을 만듭니다.
- 스마트 홈 제어: 자연어 명령으로 온도 설정이나 조명 켜기/끄기 등 스마트 홈 기기를 제어합니다.
- 대화형 지식 검색 엔진: 지식 베이스와 상호작용합니다.
- 전자상거래 플랫폼: 재고 데이터베이스 기반 실시간 제품 추천, 주문 추적, 고객 지원 티켓 관리를 제공합니다.
- 의료: 약속 예약 또는 환자 정보 검색을 수행합니다.
- 여행: 항공편 정보 조회, 예약, 예약 관리 등을 수행합니다.
- 금융: 최신 계좌 잔액 제공 및 거래 처리를 수행합니다.
Novita AI를 통해 Llama 3.2 3B 함수 호출 사용하기
1단계: API 키 얻기
“Keys” 페이지로 이동하여 이미지에 표시된 대로 API 키를 복사하세요.

가입 시 Novita AI는 $0.5 크레딧을 제공하여 시작할 수 있습니다!
무료 크레딧이 소진되면 결제하여 계속 사용할 수 있습니다.
2단계: Langchain을 사용하여 함수 호출 구현하기
덧셈과 곱셈 연산을 수행하는 간단한 수학 애플리케이션을 만들어 보겠습니다.
💡 이 가이드는 편의를 위해 LangChain을 사용하지만, 함수 호출을 구현하는 데 특정 프레임워크가 필요하지는 않습니다. 핵심은 모델이 함수를 이해하고 올바르게 호출하도록 적절한 프롬프트를 설계하는 데 있습니다. LangChain은 단순히 구현을 간소화하기 위해 사용됩니다.
사전 준비
먼저 필요한 패키지를 설치합니다:
pip install langchain-openai python-dotenv
환경 설정
프로젝트 루트에 .env 파일을 만들고 Novita AI API 키를 추가합니다:
NOVITA_API_KEY=your_api_key_here
구현 단계
1. 도구 정의
먼저 LangChain의 @tool 데코레이터를 사용하여 두 개의 간단한 수학 도구를 만듭니다:
from langchain_core.tools import tool
@tool
def multiply(x: float, y: float) -> float:
"""두 숫자를 곱합니다."""
return x * y
@tool
def add(x: int, y: int) -> int:
"""두 숫자를 더합니다."""
return x + y
tools = [multiply, add]
2. 도구 실행 함수 생성
다음으로 도구를 실행하는 함수를 구현합니다:
from typing import Any, Dict, Optional, TypedDict
from langchain_core.runnables import RunnableConfig
class ToolCallRequest(TypedDict):
name: str
arguments: Dict[str, Any]
def invoke_tool(
tool_call_request: ToolCallRequest,
config: Optional[RunnableConfig] = None
):
"""지정된 인수로 도구를 실행합니다."""
tool_name_to_tool = {tool.name: tool for tool in tools}
name = tool_call_request["name"]
requested_tool = tool_name_to_tool[name]
return requested_tool.invoke(tool_call_request["arguments"], config=config)
3. LangChain 파이프라인 설정
Novita AI의 LLM을 사용하여 도구 호출을 선택하고 준비하는 체인을 만듭니다:
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import JsonOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.tools import render_text_description
def create_chain():
"""지정된 LLM 모델을 사용하여 도구 호출을 선택하고 준비하는 체인을 생성합니다."""
model = ChatOpenAI(
model="meta-llama/llama-3.3-70b-instruct",
api_key=os.getenv("NOVITA_API_KEY"),
base_url="https://api.novita.ai/v3/openai",
)
rendered_tools = render_text_description(tools)
system_prompt = f"""\
당신은 다음 도구 세트에 접근할 수 있는 어시스턴트입니다.
각 도구의 이름과 설명은 다음과 같습니다:
{rendered_tools}
사용자 입력이 주어지면 사용할 도구의 이름과 입력을 반환하세요.
응답은 'name'과 'arguments' 키를 가진 JSON blob으로 반환하세요.
`arguments`는 인수 이름을 키로 하고 해당 값을 값으로 하는 딕셔너리여야 합니다.
"""
prompt = ChatPromptTemplate.from_messages(
[("system", system_prompt), ("user", "{input}")]
)
return prompt | model | JsonOutputParser()
4. 주요 처리 함수 생성
수학 질의를 처리하는 주요 함수를 구현합니다:
def process_math_query(query: str):
"""LLM을 사용하여 적절한 도구를 선택하고 실행함으로써 수학 질의를 처리합니다."""
chain = create_chain()
message = chain.invoke({"input": query})
result = invoke_tool(message, config=None)
return message, result
5. 사용 예시
다음은 구현을 사용하는 방법입니다:
if __name__ == "__main__":
message, result = process_math_query(
"meta-llama/llama-3.2-3b-instruct",
"what's 3 plus 1132"
)
print(result) # 출력: 1135
일반적인 문제 및 해결 방법
함수 호출 시 발생하는 일반적인 문제는 다음과 같습니다:
- 잘못된 함수 호출: 모델이 맥락을 오해하여 잘못된 함수를 호출할 수 있습니다.
- 높은 지연 시간: 느린 응답으로 사용자 경험에 영향을 줄 수 있습니다.
- 인식되지 않는 함수: 모델이 유효한 함수 이름이나 매개변수를 인식하지 못하여 런타임 오류가 발생할 수 있습니다.
- 모델 환각: 모델이 잘못된 출력이나 매개변수를 생성하여 예기치 않은 동작을 초래할 수 있습니다.
- 일관되지 않은 매개변수 전달: 매개변수가 예상치 못한 형식으로 전달되어 함수 실행 중 오류가 발생할 수 있습니다.
- 네트워크 문제: 외부 API 의존성이 네트워크 연결 불안정 시 지연 시간이나 실패를 초래할 수 있습니다.
- 파싱 실패: 모델의 출력이 예상 형식(예: 유효한 JSON)을 따르지 않아 파싱 오류가 발생할 수 있습니다.
함수 호출 최적화를 위한 모범 사례
함수 호출을 최적화하려면:
- 잘못된 함수 호출 해결: 함수 호출과 관련된 특정 프롬프트에 대해 모델을 미세 조정하여 맥락 이해를 높이고 함수 호출 오류를 최소화합니다.
- 높은 지연 시간 완화: 프롬프트의 토큰 수를 줄이거나 비동기 함수 호출을 도입하여 응답 시간을 최적화합니다.
- 인식되지 않는 함수 해결: 함수 호출 전에 함수 이름과 매개변수의 유효성을 검증하여 런타임 오류를 방지합니다.
- 모델 환각 관리: 모델이 생성한 잘못된 출력이나 매개변수를 처리하기 위한 신중한 오류 처리 전략을 구현하고, 예상치 못한 결과에 대한 대체 메커니즘을 마련합니다.
- 일관된 매개변수 전달 보장: 매개변수 형식에 대한 명확한 지침을 수립하고 엄격한 유효성 검사를 적용하여 함수 실행 중 매개변수 전달의 일관성을 확보합니다.
- 네트워크 문제 처리: 외부 API와 상호작용할 때 네트워크 관련 문제에 대한 강력한 오류 처리 전략을 개발하고, 일시적 실패에 대한 재시도 메커니즘을 포함합니다.
- 파싱 실패 방지: 출력 검증 기술을 활용하여 모델 출력이 예상 형식(예: 유효한 JSON)을 따르도록 하고, 파싱 오류에 대한 오류 처리를 구현하여 시스템 안정성을 유지합니다.
요약하면, 함수 호출 기능은 대규모 언어 모델의 기능에서 중요한 발전을 나타내며, 이를 통해 외부 도구 및 API와 효과적으로 상호작용할 수 있습니다. 잘못된 함수 호출, 높은 지연 시간, 인식되지 않는 함수, 모델 환각과 같은 일반적인 문제가 있지만, 모범 사례와 강력한 오류 처리를 구현하면 신뢰성과 성능을 향상시킬 수 있습니다. 개발자들이 이 기능을 계속 탐구하고 개선함에 따라 다양한 분야에서의 잠재적 응용이 확장되어 Llama 3.2가 실제 작업을 위한 다목적 도구가 될 것입니다.
자주 묻는 질문
왜 함수 호출이 AI 에이전트에게 중요한가요?
외부 데이터나 작업이 필요한 작업을 자율적으로 수행할 수 있게 하여 동적 환경에서 효율성을 향상시킵니다.
함수 호출이 LLM 성능을 어떻게 향상시키나요?
실시간 데이터 검색, 작업 실행, 외부 도구를 통한 정보 기반 의사결정을 가능하게 하여 정확성을 높입니다.
Novita AI는 AI 야망을 실현하는 올인원 클라우드 플랫폼입니다. 통합 API, 서버리스, GPU 인스턴스 — 비용 효율적인 도구를 제공합니다. 인프라 걱정 없이 무료로 시작하여 AI 비전을 현실로 만드세요.
