퀸-에이전트의 최고의 오픈 소스 모델로 자율 에이전트 unleash
Qwen-Agent의 오픈 소스 모델의 힘을 탐험하고 함수 호출 및 사용자 정의 에이전트 생성을 통해 자율 에이전트를 unleash하는 방법을 배우세요. 실제 응용 프로그램에서 양자화가 모델 성능에 미치는 영향을 발견하세요.
2025년 2월 15일

자율 에이전트의 힘을 unleash하세요. Qwen-Agent는 최신 오픈 소스 프레임워크로, 최고의 오픈 웨이트 모델을 활용합니다. 함수 호출과 에이전트 기반 워크플로를 seamlessly 통합하여 실제 세계와 상호 작용하고 사용자 요구에 적응할 수 있는 지능형 애플리케이션을 구축하는 방법을 발견하세요.
최고의 오픈 웨이트 모델로 자율 에이전트 구축하기
함수 호출과 에이전트: 차이점 이해하기
Qwen 에이전트 시작하기: 함수 호출과 에이전트 사용
대규모 언어 모델 성능에 대한 양자화의 영향
최고의 오픈 웨이트 모델로 자율 에이전트 구축하기
최고의 오픈 웨이트 모델로 자율 에이전트 구축하기
퀸 2 모델은 알리바바의 최신 및 최고의 오픈 소스 언어 모델로, 다양한 작업에 걸쳐 인상적인 기능을 제공합니다. 이 모델은 5억 개에서 720억 개의 매개변수 범위를 가지며, 더 큰 모델은 최대 128,000개의 토큰을 지원하여 GPT-3의 8,000개 토큰 제한을 크게 개선했습니다.
퀸 2의 주요 특징 중 하나는 코딩 및 수학 분야에서의 강력한 성능과 장기 문맥 이해 능력으로, 이는 실제 응용 프로그램에 매우 중요합니다. 또한 이 모델은 중동 및 동남아시아 언어에 초점을 맞추는 등 다양한 언어를 지원하여 다른 많은 모델의 서구 언어 중심 접근 방식에서 벗어났습니다.
퀸 2의 힘을 활용하기 위해 퀸 에이전트 프레임워크를 사용할 수 있습니다. 이 프레임워크는 내장 브라우저 어시스턴트, 코드 인터프리터 및 사용자 정의 어시스턴트 생성 기능을 제공합니다. 이를 통해 작업에 따라 계획, 실행 및 적응할 수 있는 자율 에이전트를 구축할 수 있습니다.
이 섹션에서는 퀸 에이전트를 사용하여 사용자 입력 기반 이미지 생성 에이전트를 만드는 방법을 살펴보겠습니다. 이 에이전트는 사용자 입력을 기반으로 이미지를 생성하고 생성된 이미지를 다운로드할 수 있으며, 문제가 발생하면 자체 코드를 업데이트할 수 있습니다. 퀸 2의 강력한 언어 이해와 퀸 에이전트의 계획 및 실행 기능을 결합하여 다양한 작업을 수행할 수 있는 진정한 자율적이고 능력 있는 에이전트를 만들 수 있습니다.
함수 호출과 에이전트: 차이점 이해하기
함수 호출과 에이전트: 차이점 이해하기
함수 호출과 에이전트는 대규모 언어 모델(LLM) 세계에서 두 가지 distinct 개념입니다. 이 둘의 차이점을 간단히 설명하겠습니다.
함수 호출(도구 사용):
- 함수 호출 또는 도구 사용을 통해 LLM은 외부 API 또는 함수에 액세스하여 외부 세계와 상호 작용할 수 있습니다.
- LLM은 사용자 입력을 기반으로 사용할 함수를 결정하고 함수에 필요한 입력을 생성한 다음 결과를 사용자에게 반환합니다.
- 그러나 LLM 자체는 함수 호출을 실행할 수 없으며, 사용자 또는 별도의 시스템이 실제 함수 호출을 수행하고 결과를 LLM에 반환해야 합니다.
에이전트:
- 에이전트는 함수 호출과 마찬가지로 도구 세트에 액세스할 수 있는 더 복잡한 LLM 인스턴스입니다.
- 에이전트는 계획을 수립하고 하위 목표로 작업을 분해하며 사용 가능한 도구를 사용하여 작업을 실행할 수 있습니다.
- 에이전트는 단기 및 장기 메모리에 액세스할 수 있어 진행 상황을 추적하고 다음 단계를 계획할 수 있습니다.
- 에이전트는 LLM이 실제 응용 프로그램에서 유용하게 만드는 데 중요하며, 자율적으로 복잡한 작업을 수행할 수 있습니다.
요약하면 함수 호출은 LLM이 함수에 필요한 입력만 생성할 수 있는 더 제한적인 상호 작용인 반면, 에이전트는 원하는 결과를 달성하기 위해 계획, 실행 및 적응할 수 있는 능력이 있습니다.
Qwen 에이전트 시작하기: 함수 호출과 에이전트 사용
Qwen 에이전트 시작하기: 함수 호출과 에이전트 사용
Qwen 에이전트 시작하기 위해 72억 버전의 Qwen 2를 사용하고 AMA를 사용하여 로컬로 실행할 것입니다. 외부 API를 사용할 수도 있지만 Qwen Agent를 사용하려면 두 가지 옵션이 있습니다.
- pip를 사용하여 독립 Python 패키지로 패키지를 설치합니다.
- 최신 개발 버전을 사용하려면 리포지토리를 복제하고 로컬에서 설치를 실행합니다.
로컬 AMA를 사용하여 실행하겠습니다. 먼저 AMA 서버를 시작하고 olama Run Qwen 272 billion
명령을 사용합니다. 이렇게 하면 AMA와 모델이 다운로드되며, 인터넷 속도에 따라 시간이 걸릴 수 있습니다.
다음으로 conda를 사용하여 가상 환경을 만들고 활성화합니다.
conda create -n qwen python=3.10
conda activate qwen
이제 pip를 사용하여 Qwen Agent 패키지를 설치합니다.
pip install qwen-agent
함수 호출부터 시작하겠습니다. 모델은 사용할 함수를 선택하고 입력을 파악한 다음 Python 인터프리터에 전달해야 합니다. 인터프리터는 함수를 실행하고 응답을 가져와 LLM에 다시 전달합니다.
현재 날씨 가져오기의 예는 다음과 같습니다.
# LLM 인스턴스 생성
llm = QwenLLM(base_api="http://localhost:8000/v1", model_name="qwen-2-72b", version="v1")
# 사용자 메시지
user_message = "What's the current weather like in Paris?"
# 함수 정의
function_call = {
"description": "Get the current weather for a given location",
"function": "get_weather",
"arguments": {
"location": "Paris",
"unit": "celsius"
}
}
# LLM 호출 및 함수 실행
response = llm.call_with_function(user_message, [function_call])
print(response)
이렇게 하면 파리의 현재 날씨 정보가 생성되어 LLM에 반환됩니다.
이제 Qwen Agent의 예를 살펴보겠습니다. 이미지를 생성하고 로컬 폴더에 다운로드할 수 있는 사용자 정의 에이전트를 만들 것입니다. 에이전트는 이미지 생성을 위한 사용자 정의 도구와 코드 인터프리터를 사용합니다.
from qwen_agent import Assistant, CodeInterpreter, CustomTool
# 사용자 정의 이미지 생성 도구 정의
class MyImageGeneration(CustomTool):
def __init__(self):
self.description = "Generate images based on user input using the Pollinations.AI API."
def run(self, args):
# API를 사용하여 이미지 생성
image_url = generate_image(args["prompt"])
# 로컬 폴더에 이미지 다운로드
download_image(image_url, "images")
return f"Image generated and saved to 'images' folder."
# 에이전트 생성
agent = Assistant(
llm=QwenLLM(base_api="http://localhost:8000/v1", model_name="qwen-2-72b", version="v1"),
tools=[MyImageGeneration(), CodeInterpreter()]
)
# 에이전트에게 이미지 생성 요청
agent.run("Create an image of a llama wearing sunglasses.")
이 에이전트는 사용자 정의 이미지 생성 도구를 사용하여 이미지를 생성하고 "images" 폴더에 다운로드한 다음 결과를 반환합니다.
마지막으로 양자화가 Qwen 모델의 성능에 미치는 영향을 살펴보겠습니다. Qwen 팀은 다양한 양자화 수준에 대한 MML, C-Evolve 및 I-Evolve 지표의 자세한 평가를 제공했습니다.
결과에 따르면 더 큰 모델(72억)의 경우 16비트와 8비트 양자화 간의 차이가 크지 않지만 4비트 양자화는 성능에 더 큰 영향을 미칠 수 있습니다. 더 작은 모델(0.5억)의 경우 차이가 더 두드러져 4비트 양자화에서 평균 점수가 5점 하락했습니다.
일반적으로 프로덕션 배포에는 최소 8비트 또는 16비트 양자화를 사용하는 것이 좋습니다. 4비트 양자화는 특히 더 작은 모델에서 모델 성능에 더 큰 영향을 미칠 수 있습니다.
대규모 언어 모델 성능에 대한 양자화의 영향
대규모 언어 모델 성능에 대한 양자화의 영향
이 섹션에서는 대규모 언어 모델, 특히 Quin 2 모델의 성능에 대한 양자화의 영향을 살펴보겠습니다.
Quin 팀은 업데이트된 모델에서 양자화 영향 문제를 해결했습니다. 그들은 부동 소수점 16, 8비트, 4비트 양자화 및 AWQ(Adaptive Weight Quantization)를 포함한 다양한 양자화 수준에서 Quin 2 모델의 성능을 평가했습니다.
평균 수치를 기준으로 다음과 같은 추세를 관찰할 수 있습니다.
-
더 큰 모델: 720억 매개변수 모델의 경우 16비트와 8비트 양자화 간 성능 차이가 크지 않으며 원래 성능의 약 81%가 유지됩니다. 그러나 4비트 양자화에서는 성능 저하가 더 두드러집니다.
-
더 작은 모델: 5억 매개변수 버전과 같은 더 작은 모델의 경우 양자화의 영향이 더 극적입니다. 4비트 양자화에서 평균 점수가 원래 부동 소수점 16 버전보다 5점 낮습니다.
핵심 교훈은 양자화의 영향이 더 작은 모델에서 더 두드러지며, 더 큰 Quin 2 모델은 8비트 양자화를 사용해도 상대적으로 높은 성능을 유지할 수 있다는 것입니다.
이러한 모델을 프로덕션에 배포할 때는 특히 더 작은 모델 변형의 경우 상당한 성능 저하를 방지하기 위해 최소 8비트 양자화, 가능하면 16비트 양자화를 사용하는 것이 일반적으로 권장됩니다.
요약하면 Quin 팀의 분석은 실제 응용 프로그램에 대규모 언어 모델을 배포할 때 모델 크기, 양자화 수준 및 성능 간의 trade-off를 신중히 고려해야 함을 강조합니다.
자주하는 질문
자주하는 질문