23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
Agent는 사용자를 대신하여 특정 목표를 위해 작업을 수행하는 자율적인 시스템입니다.
Agent는 사용자의 요청을 이해하고, 환경과 상호 작용하며, 목표를 달성하기 위해 필요한 행동을 취합니다.
LLM (Large Language Model)은 자연어를 이해하고 추론 능력을 가지고 있어 Agent를 구현하는 핵심 기술로 활용됩니다.
GPT-3.5나 GPT-4와 같은 LLM을 사용하면 손쉽게 Agent를 구현해 볼 수 있습니다.
Agent의 정확도는 사용자의 요청을 정확히 이해하고 처리하는 능력입니다.
이는 Agent 개발의 핵심 목표이며, 사용자 만족도를 높이는 데 중요한 역할을 합니다.
하지만 높은 정확도를 갖는 Agent를 만드는 것은 쉽지 않으며, 높은 정확도를 달성하기 위해서는 여러 가지 노력이 필요합니다.
Agent 구현의 핵심 기술인 LLM을 개선하여,
LLM에 의해 정의되는 Agent 동작의 정확도를 높이기 위해 아래와 같은 다양한 노력들이 이루어지고 있습니다.
프롬프트 엔지니어링: LLM에게 주어지는 프롬프트를 개선하여 정확도를 높이는 방법입니다.
CoT (Chain-of-Thought)는 프롬프트 엔지니어링의 대표적인 방법입니다.
컨텍스트 제공: RAG (Retrieval Augmented Generation)는 관련 데이터,
이전 대화 내용 등 질문과 관련있는 컨텍스트를 LLM에게 제공하여 정확도를 높이는 방법입니다.
파인 튜닝: LLM을 특정 도메인 또는 작업에 맞게 학습시켜 정확도를 높이는 방법입니다.
LLM은 주로 제로 샷 (zero-shot) 모드로 활용이 되고 있습니다.
제로 샷 모드는 LLM에게 최종 답변을 한 번에 생성하도록 요구하는 방식이며, LLM은 수정 기회 없이 최종 답변을 생성하게 됩니다.
하지만 LLM은 한 번의 시도로는 완벽한 결과를 도출하기 어려운 한계가 있습니다.
LLM 워크플로우는 이러한 한계를 극복하기 위해 고안된 개념입니다.
LLM 워크플로우의 핵심은 반복 과정(Iterative Process)에 있습니다.
LLM 워크플로우를 활용하면 LLM에게 반복적인 과정을 통해 최종 답변을 생성하도록 할 수 있습니다.
예를 들어, LLM 워크플로우는 다음과 같은 단계로 구성될 수 있습니다.
계획 수립: Agent는 작업을 완료하기 위해 필요한 단계를 계획합니다. 어떤 작업을 먼저 수행해야 하고 어떤 순서로 진행해야 하는지 결정합니다.
정보 수집: 작업 수행에 필요한 정보를 수집합니다. 데이터베이스, 웹 API 등 다양한 정보원을 활용할 수 있습니다.
행동 실행: 계획에 따라 작업을 수행합니다. 시스템 제어, 데이터 처리 등 다양한 행동을 수행할 수 있습니다.
결과 평가: 실행 결과를 평가하여 목표 달성 여부를 확인합니다. 목표를 달성하지 못한 경우 계획을 수정하거나 추가 정보를 수집하여 다시 시도합니다.
반복 및 개선: 경험을 통해 계획 수립, 정보 수집, 행동 실행, 결과 평가 과정을 지속적으로 개선합니다.
ReAct와 Reflexion은 LLM 워크플로우를 구현하는 두 가지 연구 사례입니다.
ReAct는 실행 결과를 관찰하며 계획을 수정하는 LLM 워크플로우입니다. ReAct는 다음과 같이 작동합니다.
Agent는 계획에 따라 행동을 수행합니다.
Agent는 행동 결과를 관찰하고 예상과 비교합니다.
결과가 예상과 다르다면 Agent는 계획을 수정하여 다시 시도합니다.
Reflexion은 과거 행동을 분석하여 개선점을 찾는 LLM 워크플로우입니다. Reflexion은 다음과 같이 작동합니다.
Agent는 과거 행동을 기록합니다.
Agent는 기록된 행동을 분석하여 개선점을 찾습니다.
Agent는 개선된 계획을 사용하여 다음 작업을 수행합니다.
LLM 워크플로우를 잘 정의하는 것은 Agent 개발의 중요한 부분입니다.
LLM 워크플로우 연구는 Agent를 더 똑똑하고 효율적으로 만드는데 중요한 역할을 합니다.
한 연구 사례에서는 LLM 워크플로우 개선을 통해 GPT-3.5의 정확도를 48.1% (제로 샷)에서 95.1%로 향상 시킬 수 있었다고 합니다.
정확도 향상에 관한 자세한 내용은 LDB: A Large Language Model Debugger via Verifying Runtime Execution Step-by-step 논문에서 확인할 수 있습니다.
LLM 워크플로우를 Agent 개발 과정에서 쉽게 적용할 수 있도록 도와주는 프레임워크들도 개발되고 있습니다.
AutoGen은 서로 대화하며 문제를 해결하는 다중 agent를 사용하여 LLM 응용 프로그램을 개발할 수 있도록 지원하는 프레임워크입니다.
AutoGen은 복잡한 LLM 워크플로우의 오케스트레이션을 자동화하고 최적화 합니다.
Semantic Kernel은 개발자가 LLM과 Tool을 결합하여 자체 코파일럿 경험을 구축할 수 있도록 지원하는 프레임워크입니다.
마이크로소프트에서 개발한 Semantic Kernel은 코파일럿을 구축하는 핵심 기술로 활용이 되고 있습니다.
LangChain은 LLM을 기반으로 하는 응용 프로그램을 쉽게 개발할 수 있도록 지원하는 프레임워크입니다.
LangChain은 관련 정보, 예제 등을 LLM에게 연결하여, LLM이 맥락 정보를 기반으로 답변을 생성하거나 수행할 작업을 결정하도록 할 수 있습니다.
LangChain은 다양한 작업에 대한 참조 아키텍처를 템플릿으로 제공하여, LLM을 기반으로 하는 응용 프로그램을 손쉽게 개발할 수 있습니다.
위와 같은 프레임워크는 개발자가 간단한 코드 작성만으로 LLM 워크플로우의 기본적인 구조를 쉽게 정의할 수 있도록 하여
Agent 개발 과정을 효율적으로 만드는 데 중요한 역할을 합니다.
Agent의 동작은 모두 LLM에 의해서만 정의되지 않습니다.
사전 정의 워크플로우는 비즈니스 로직에 의해 정의된 워크플로우에 의해 작업이 실행되도록 하여, 빠르고 정확한 작업 수행 결과를 제공할 수 있도록 하는 방법입니다.
사전 정의 워크플로우는 사용자 요청의 의도를 명확하게 파악할 수 있는 경우에 사용되며,
사용자가 Agent에게 자연어로 요청하지 않고 Agent가 생성한 UI 컴포넌트 (버튼, 칩 등)를 통해 요청을 전달하는 경우가 해당됩니다.
사전 정의 워크플로우는 다음과 같은 요소로 구성됩니다.
워크플로우 정의: 사용자의 요청을 처리하여 최종 답변을 생성하기 위한 동작을 정의합니다.
사용자 요청과 워크플로우 연결: Agent의 최종 답변에 사용자가 반응할 수 있는 UI 컴포넌트가 포함되는 경우,
해당 컴포넌트로 사용자가 반응하였을 경우에 실행할 워크플로우 정보를 최종 답변에 함께 담아 전달합니다.
워크플로우 실행: 사용자 요청에서 워크플로우 정보를 확인하여 작업을 실행합니다.
사전 정의 워크플로우는 다음과 같은 작업에 적합합니다.
100% 정확도가 필요한 작업: LLM에 의해 동적으로 정의되는 워크플로우와는 달리
사전에 정의된 비즈니스 로직에 의해 작업이 수행되기 때문에 실행 결과를 보장할 수 있습니다.
자주 수행되는 작업: 자주 수행되는 작업에 대해서는 LLM을 사용하지 않고
사전에 정의한 워크플로우에 따라 작업을 수행하도록 하여 실행 속도를 빠르게 하고 비용을 절감할 수 있습니다.
Agent를 구현하는 워크플로우 기술은 아직 발전 단계에 있지만, Agent의 정확도를 향상시키고 Agent 개발의 효율성을 높이는 데 중요한 역할을 하고 있습니다.
도메인마다 필요한 Agent 워크플로우는 다를 수 있으므로, 개발자는 Agent의 요구 사항에 맞는 워크플로우를 잘 디자인할 수 있는 것이 중요합니다.
ReAct - https://arxiv.org/abs/2210.03629
Reflexion - https://arxiv.org/abs/2303.11366
AutoGen - https://microsoft.github.io/autogen
Semantic Kernel - https://github.com/microsoft/semantic-kernel
LangChain - https://www.langchain.com
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.