LLMs
CrewAI 프로젝트에서 대형 언어 모델(LLMs)을 설정하고 사용하는 종합 가이드
CrewAI는 LiteLLM을 통해 여러 LLM 프로바이더와 통합된다. 이를 통해 특정 사용 사례에 적합한 모델을 유연하게 선택할 수 있다. 이 가이드는 CrewAI 프로젝트에서 다양한 LLM 프로바이더를 설정하고 사용하는 방법을 이해하는 데 도움을 준다.
LLM이란 무엇인가?
대규모 언어 모델(LLM)은 CrewAI 에이전트의 핵심 지능을 담당한다. 에이전트가 문맥을 이해하고 결정을 내리며 인간과 유사한 응답을 생성할 수 있게 한다. 다음은 LLM에 대해 알아야 할 핵심 사항이다:
LLM 기본 개념
대규모 언어 모델은 방대한 텍스트 데이터로 학습된 AI 시스템이다. CrewAI 에이전트의 지능을 구동하여 인간과 유사한 텍스트를 이해하고 생성할 수 있게 한다.
컨텍스트 윈도우
컨텍스트 윈도우는 LLM이 한 번에 처리할 수 있는 텍스트의 양을 결정한다. 더 큰 윈도우(예: 128K 토큰)는 더 많은 컨텍스트를 허용하지만, 비용이 더 들고 속도가 느려질 수 있다.
온도
온도(0.0에서 1.0 사이)는 응답의 무작위성을 조절한다. 낮은 값(예: 0.2)은 더 집중적이고 결정론적인 출력을 생성하며, 높은 값(예: 0.8)은 창의성과 다양성을 증가시킨다.
프로바이더 선택
각 LLM 프로바이더(예: OpenAI, Anthropic, Google)는 다양한 기능, 가격, 특징을 가진 모델을 제공한다. 정확도, 속도, 비용에 대한 요구 사항에 따라 선택한다.
지원 모델과 기능
지원되는 모델과 각각의 기능을 상세히 정리했다. lmarena.ai와 artificialanalysis.ai에서 성능을 비교할 수 있다.
모델 | 컨텍스트 윈도우 | 주요 용도 |
---|---|---|
GPT-4 | 8,192 토큰 | 고정확도 작업, 복잡한 추론 |
GPT-4 Turbo | 128,000 토큰 | 장문 콘텐츠, 문서 분석 |
GPT-4o & GPT-4o-mini | 128,000 토큰 | 비용 효율적인 대용량 컨텍스트 처리 |
o3-mini | 200,000 토큰 | 빠른 추론, 복잡한 추론 |
1 토큰 ≈ 영어 4 문자. 예를 들어, 8,192 토큰 ≈ 32,768 문자 또는 약 6,000 단어.
모델 | 컨텍스트 윈도우 | 주요 용도 |
---|---|---|
GPT-4 | 8,192 토큰 | 고정확도 작업, 복잡한 추론 |
GPT-4 Turbo | 128,000 토큰 | 장문 콘텐츠, 문서 분석 |
GPT-4o & GPT-4o-mini | 128,000 토큰 | 비용 효율적인 대용량 컨텍스트 처리 |
o3-mini | 200,000 토큰 | 빠른 추론, 복잡한 추론 |
1 토큰 ≈ 영어 4 문자. 예를 들어, 8,192 토큰 ≈ 32,768 문자 또는 약 6,000 단어.
모델 | 컨텍스트 윈도우 | 주요 용도 |
---|---|---|
nvidia/mistral-nemo-minitron-8b-8k-instruct | 8,192 토큰 | 최첨단 소형 언어 모델로, 챗봇, 가상 어시스턴트, 콘텐츠 생성에 뛰어난 정확도 제공 |
nvidia/nemotron-4-mini-hindi-4b-instruct | 4,096 토큰 | 힌디어와 영어를 지원하는 이중 언어 소형 언어 모델로, 디바이스 내 추론에 최적화 |
”nvidia/llama-3.1-nemotron-70b-instruct | 128k 토큰 | NVIDIA가 맞춤화한 대형 언어 모델로, LLM 생성 응답의 유용성 향상 |
nvidia/llama3-chatqa-1.5-8b | 128k 토큰 | 챗봇과 검색 엔진을 위한 고품질, 컨텍스트 인식 응답 생성 |
nvidia/llama3-chatqa-1.5-70b | 128k 토큰 | 챗봇과 검색 엔진을 위한 고품질, 컨텍스트 인식 응답 생성 |
nvidia/vila | 128k 토큰 | 텍스트/이미지/비디오를 이해하고 정보성 응답을 생성하는 멀티모달 비전-언어 모델 |
nvidia/neva-22 | 4,096 토큰 | 텍스트/이미지를 이해하고 정보성 응답을 생성하는 멀티모달 비전-언어 모델 |
nvidia/nemotron-mini-4b-instruct | 8,192 토큰 | 일반적인 작업 |
nvidia/usdcode-llama3-70b-instruct | 128k 토큰 | OpenUSD 지식 쿼리에 답변하고 USD-Python 코드를 생성하는 최첨단 LLM |
nvidia/nemotron-4-340b-instruct | 4,096 토큰 | 실제 데이터의 특성을 모방한 다양한 합성 데이터 생성 |
meta/codellama-70b | 100k 토큰 | 자연어에서 코드를 생성하고 그 반대도 가능한 LLM |
meta/llama2-70b | 4,096 토큰 | 텍스트와 코드를 생성할 수 있는 최첨단 대형 언어 AI 모델 |
meta/llama3-8b-instruct | 8,192 토큰 | 언어 이해, 우수한 추론, 텍스트 생성 기능을 갖춘 최첨단 LLM |
meta/llama3-70b-instruct | 8,192 토큰 | 우수한 컨텍스트 이해, 추론, 텍스트 생성 기능으로 복잡한 대화 지원 |
meta/llama-3.1-8b-instruct | 128k 토큰 | 언어 이해, 우수한 추론, 텍스트 생성 기능을 갖춘 최첨단 모델 |
meta/llama-3.1-70b-instruct | 128k 토큰 | 우수한 컨텍스트 이해, 추론, 텍스트 생성 기능으로 복잡한 대화 지원 |
meta/llama-3.1-405b-instruct | 128k 토큰 | 챗봇, 코딩, 도메인 특화 작업을 위한 합성 데이터 생성, 증류, 추론에 적합한 고급 LLM |
meta/llama-3.2-1b-instruct | 128k 토큰 | 언어 이해, 우수한 추론, 텍스트 생성 기능을 갖춘 최첨단 소형 언어 모델 |
meta/llama-3.2-3b-instruct | 128k 토큰 | 언어 이해, 우수한 추론, 텍스트 생성 기능을 갖춘 최첨단 소형 언어 모델 |
meta/llama-3.2-11b-vision-instruct | 128k 토큰 | 언어 이해, 우수한 추론, 텍스트 생성 기능을 갖춘 최첨단 소형 언어 모델 |
meta/llama-3.2-90b-vision-instruct | 128k 토큰 | 언어 이해, 우수한 추론, 텍스트 생성 기능을 갖춘 최첨단 소형 언어 모델 |
meta/llama-3.1-70b-instruct | 128k 토큰 | 우수한 컨텍스트 이해, 추론, 텍스트 생성 기능으로 복잡한 대화 지원 |
google/gemma-7b | 8,192 토큰 | 텍스트 이해, 변환, 코드 생성에 뛰어난 최첨단 텍스트 생성 모델 |
google/gemma-2b | 8,192 토큰 | 텍스트 이해, 변환, 코드 생성에 뛰어난 최첨단 텍스트 생성 모델 |
google/codegemma-7b | 8,192 토큰 | Google의 Gemma-7B를 기반으로 한 코드 생성 및 완성을 위한 최첨단 모델 |
google/codegemma-1.1-7b | 8,192 토큰 | 코드 생성, 완성, 추론, 지시 따르기에 적합한 고급 프로그래밍 모델 |
google/recurrentgemma-2b | 8,192 토큰 | 긴 시퀀스 생성 시 빠른 추론을 위한 새로운 반복 아키텍처 기반 언어 모델 |
google/gemma-2-9b-it | 8,192 토큰 | 텍스트 이해, 변환, 코드 생성에 뛰어난 최첨단 텍스트 생성 모델 |
google/gemma-2-27b-it | 8,192 토큰 | 텍스트 이해, 변환, 코드 생성에 뛰어난 최첨단 텍스트 생성 모델 |
google/gemma-2-2b-it | 8,192 토큰 | 텍스트 이해, 변환, 코드 생성에 뛰어난 최첨단 텍스트 생성 모델 |
google/deplot | 512 토큰 | 플롯 이미지를 테이블로 변환하는 원샷 비전 언어 이해 모델 |
google/paligemma | 8,192 토큰 | 텍스트와 시각적 입력을 이해하고 정보성 응답을 생성하는 비전 언어 모델 |
mistralai/mistral-7b-instruct-v0.2 | 32k 토큰 | 지시를 따르고 요청을 완료하며 창의적인 텍스트를 생성하는 LLM |
mistralai/mixtral-8x7b-instruct-v0.1 | 8,192 토큰 | 지시를 따르고 요청을 완료하며 창의적인 텍스트를 생성하는 MOE LLM |
mistralai/mistral-large | 4,096 토큰 | 실제 데이터의 특성을 모방한 다양한 합성 데이터 생성 |
mistralai/mixtral-8x22b-instruct-v0.1 | 8,192 토큰 | 실제 데이터의 특성을 모방한 다양한 합성 데이터 생성 |
mistralai/mistral-7b-instruct-v0.3 | 32k 토큰 | 지시를 따르고 요청을 완료하며 창의적인 텍스트를 생성하는 LLM |
nv-mistralai/mistral-nemo-12b-instruct | 128k 토큰 | 추론, 코드, 다국어 작업에 최적화된 가장 진보된 언어 모델로, 단일 GPU에서 실행 |
mistralai/mamba-codestral-7b-v0.1 | 256k 토큰 | 다양한 프로그래밍 언어와 작업에 걸쳐 코드 작성 및 상호작용을 위한 모델 |
microsoft/phi-3-mini-128k-instruct | 128K 토큰 | 강력한 수학 및 논리 추론 능력을 갖춘 경량, 최첨단 오픈 LLM |
microsoft/phi-3-mini-4k-instruct | 4,096 토큰 | 강력한 수학 및 논리 추론 능력을 갖춘 경량, 최첨단 오픈 LLM |
microsoft/phi-3-small-8k-instruct | 8,192 토큰 | 강력한 수학 및 논리 추론 능력을 갖춘 경량, 최첨단 오픈 LLM |
microsoft/phi-3-small-128k-instruct | 128K 토큰 | 강력한 수학 및 논리 추론 능력을 갖춘 경량, 최첨단 오픈 LLM |
microsoft/phi-3-medium-4k-instruct | 4,096 토큰 | 강력한 수학 및 논리 추론 능력을 갖춘 경량, 최첨단 오픈 LLM |
microsoft/phi-3-medium-128k-instruct | 128K 토큰 | 강력한 수학 및 논리 추론 능력을 갖춘 경량, 최첨단 오픈 LLM |
microsoft/phi-3.5-mini-instruct | 128K 토큰 | 지연 시간이 제한되고 메모리/계산 자원이 제한된 환경에서 AI 애플리케이션을 구동하는 경량 다국어 LLM |
microsoft/phi-3.5-moe-instruct | 128K 토큰 | 컴퓨팅 효율적인 콘텐츠 생성을 위한 Mixture of Experts 아키텍처 기반 고급 LLM |
microsoft/kosmos-2 | 1,024 토큰 | 이미지의 시각적 요소를 이해하고 추론하기 위해 설계된 획기적인 멀티모달 모델 |
microsoft/phi-3-vision-128k-instruct | 128k 토큰 | 이미지에서 고품질 추론에 뛰어난 최첨단 오픈 멀티모달 모델 |
microsoft/phi-3.5-vision-instruct | 128k 토큰 | 이미지에서 고품질 추론에 뛰어난 최첨단 오픈 멀티모달 모델 |
databricks/dbrx-instruct | 12k 토큰 | 언어 이해, 코딩, RAG에서 최첨단 성능을 발휘하는 범용 LLM |
snowflake/arctic | 1,024 토큰 | SQL 생성 및 코딩에 중점을 둔 기업 애플리케이션을 위한 고효율 추론 제공 |
aisingapore/sea-lion-7b-instruct | 4,096 토큰 | 동남아시아의 언어적, 문화적 다양성을 대표하고 지원하는 LLM |
ibm/granite-8b-code-instruct | 4,096 토큰 | 코드 생성, 완성, 설명, 다중 턴 변환을 위한 소프트웨어 프로그래밍 LLM |
ibm/granite-34b-code-instruct | 8,192 토큰 | 코드 생성, 완성, 설명, 다중 턴 변환을 위한 소프트웨어 프로그래밍 LLM |
ibm/granite-3.0-8b-instruct | 4,096 토큰 | RAG, 요약, 분류, 코드, 에이전트 AI를 지원하는 고급 소형 언어 모델 |
ibm/granite-3.0-3b-a800m-instruct | 4,096 토큰 | RAG, 요약, 엔티티 추출, 분류를 위한 고효율 Mixture of Experts 모델 |
mediatek/breeze-7b-instruct | 4,096 토큰 | 실제 데이터의 특성을 모방한 다양한 합성 데이터 생성 |
upstage/solar-10.7b-instruct | 4,096 토큰 | 지시 따르기, 추론, 수학 작업에서 뛰어난 NLP 성능 |
writer/palmyra-med-70b-32k | 32k 토큰 | 의료 도메인에서 정확하고 컨텍스트에 맞는 응답을 제공하는 선도적인 LLM |
writer/palmyra-med-70b | 32k 토큰 | 의료 도메인에서 정확하고 컨텍스트에 맞는 응답을 제공하는 선도적인 LLM |
writer/palmyra-fin-70b-32k | 32k 토큰 | 재무 분석, 보고, 데이터 처리를 위한 특화된 LLM |
01-ai/yi-large | 32k 토큰 | 챗봇 및 창의적 글쓰기를 포함한 다양한 작업을 위한 영어와 중국어로 훈련된 강력한 모델 |
deepseek-ai/deepseek-coder-6.7b-instruct | 2k 토큰 | 코드 생성, 완성, 채우기에 뛰어난 강력한 코딩 모델 |
rakuten/rakutenai-7b-instruct | 1,024 토큰 | 언어 이해, 우수한 추론, 텍스트 생성 기능을 갖춘 최첨단 LLM |
rakuten/rakutenai-7b-chat | 1,024 토큰 | 언어 이해, 우수한 추론, 텍스트 생성 기능을 갖춘 최첨단 LLM |
baichuan-inc/baichuan2-13b-chat | 4,096 토큰 | 중국어와 영어 채팅, 코딩, 수학, 지시 따르기, 퀴즈 해결 지원 |
NVIDIA의 NIM 지원 모델은 지속적으로 확장 중! 최신 모델 목록은 build.nvidia.com을 방문하세요.
모델 | 컨텍스트 윈도우 | 주요 용도 |
---|---|---|
gemini-2.0-flash-exp | 1M 토큰 | 더 빠른 속도로 고품질 결과를 제공하는 멀티모달 모델로, 대부분의 작업에 적합 |
gemini-1.5-flash | 1M 토큰 | 균형 잡힌 멀티모달 모델로, 대부분의 작업에 적합 |
gemini-1.5-flash-8B | 1M 토큰 | 가장 빠르고 비용 효율적이며, 고빈도 작업에 적합 |
gemini-1.5-pro | 2M 토큰 | 논리적 추론, 코딩, 창의적 협업을 포함한 다양한 추론 작업에서 최고의 성능 |
Google의 Gemini 모델은 모두 멀티모달로, 오디오, 이미지, 비디오, 텍스트를 지원하며 컨텍스트 캐싱, JSON 스키마, 함수 호출 등을 지원한다.
이 모델은 The Gemini API와 Google Cloud Vertex의 Model Garden을 통해 API_KEY로 이용할 수 있다.
모델 | 컨텍스트 윈도우 | 주요 용도 |
---|---|---|
Llama 3.1 70B/8B | 131,072 토큰 | 고성능, 대용량 컨텍스트 작업 |
Llama 3.2 Series | 8,192 토큰 | 일반적인 작업 |
Mixtral 8x7B | 32,768 토큰 | 균형 잡힌 성능과 컨텍스트 |
Groq는 빠른 추론 속도로 유명하며, 실시간 애플리케이션에 적합하다.
모델 | 컨텍스트 윈도우 | 주요 용도 |
---|---|---|
Llama 3.1 70B/8B | 최대 131,072 토큰 | 고성능, 대용량 컨텍스트 작업 |
Llama 3.1 405B | 8,192 토큰 | 고성능 및 출력 품질 |
Llama 3.2 Series | 8,192 토큰 | 일반적인 작업, 멀티모달 |
Llama 3.3 70B | 최대 131,072 토큰 | 고성능 및 출력 품질 |
Qwen2 familly | 8,192 토큰 | 고성능 및 출력 품질 |
SambaNova는 전체 정밀도에서 빠른 추론 속도를 제공하는 여러 모델을 보유하고 있다.
제공자 | 컨텍스트 윈도우 | 주요 기능 |
---|---|---|
Deepseek Chat | 64,000 토큰 | 기술적 토론에 특화 |
Deepseek R1 | 64,000 토큰 | 경제적인 추론 모델 |
Claude 3 | 최대 200K 토큰 | 강력한 추론, 코드 이해 |
Gemma Series | 8,192 토큰 | 효율적, 소규모 작업 |
제공자 선택 시 다음 요소를 고려해야 한다:
- 사용 가능한 API 지역
- 가격 구조
- 필요한 기능 (예: 스트리밍, 함수 호출)
- 성능 요구 사항
LLM 설정하기
CrewAI에서 LLM을 설정하는 방법은 세 가지다. 여러분의 작업 흐름에 가장 적합한 방법을 선택하면 된다:
가장 간단한 시작 방법이다. 환경 변수를 다음과 같이 설정한다:
API 키를 버전 관리 시스템에 커밋하지 말자. 환경 파일(.env)이나 시스템의 비밀 관리 기능을 사용한다.
가장 간단한 시작 방법이다. 환경 변수를 다음과 같이 설정한다:
API 키를 버전 관리 시스템에 커밋하지 말자. 환경 파일(.env)이나 시스템의 비밀 관리 기능을 사용한다.
YAML 파일을 생성해 에이전트 설정을 정의한다. 이 방법은 버전 관리와 팀 협업에 적합하다:
YAML 설정을 통해 다음을 할 수 있다:
- 에이전트 설정을 버전 관리
- 다양한 모델 간 쉽게 전환
- 팀원 간 설정 공유
- 모델 선택과 목적 문서화
최대 유연성을 위해 Python 코드에서 직접 LLM을 설정한다:
매개변수 설명:
temperature
: 무작위성 제어 (0.0-1.0)timeout
: 응답 최대 대기 시간max_tokens
: 응답 길이 제한top_p
: 샘플링을 위한 temperature 대안frequency_penalty
: 단어 반복 감소presence_penalty
: 새로운 주제 장려response_format
: 출력 구조 지정seed
: 일관된 출력 보장
고급 기능과 최적화
LLM 설정을 최대한 활용하는 방법을 알아본다:
프로바이더 설정 예제
구조화된 LLM 호출
CrewAI는 Pydantic 모델을 사용해 response_format
을 정의할 수 있도록 지원한다. 이를 통해 프레임워크가 자동으로 출력을 파싱하고 검증할 수 있어, 응답을 수동으로 후처리하지 않고도 애플리케이션에 쉽게 통합할 수 있다.
예를 들어, 예상되는 응답 구조를 나타내는 Pydantic 모델을 정의하고, LLM을 인스턴스화할 때 response_format
으로 전달할 수 있다. 이 모델은 LLM 출력을 구조화된 파이썬 객체로 변환하는 데 사용된다.
일반적인 문제와 해결 방법
대부분의 인증 문제는 API 키 형식과 환경 변수 이름을 확인하면 해결할 수 있다.
대부분의 인증 문제는 API 키 형식과 환경 변수 이름을 확인하면 해결할 수 있다.
모델 이름에는 항상 프로바이더 접두사를 포함한다.
광범위한 작업에는 더 큰 컨텍스트 모델을 사용한다.
도움 받기
도움이 필요하다면 다음 리소스를 활용할 수 있다:
LiteLLM 문서
LiteLLM 통합과 일반적인 문제 해결을 위한 포괄적인 문서
GitHub Issues
버그를 보고하거나 기능을 요청하고, 기존 이슈에서 해결책을 찾을 수 있다.
커뮤니티 포럼
다른 CrewAI 사용자와 소통하고 경험을 공유하며 커뮤니티에서 도움을 받을 수 있다.
API 키 보안을 위한 모범 사례:
- 환경 변수나 보안 볼트를 사용한다
- 버전 관리 시스템에 키를 절대 커밋하지 않는다
- 키를 정기적으로 교체한다
- 개발과 프로덕션 환경에서 별도의 키를 사용한다
- 키 사용 패턴에서 비정상적인 활동을 모니터링한다