23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
자율 에이전트(autonomous agent)는 인간의 개입 없이 스스로 작업을 수행할 수 있는 시스템 또는 소프트웨어 프로그램입니다.
이러한 에이전트는 특정 목표를 달성하기 위해 환경을 인식하고, 결정을 내리며, 행동을 취할 수 있도록 설계되었습니다.
자연어 이해: 자율 에이전트는 LLM을 사용하여 사용자로부터 입력된 자연어를 이해합니다.
결정 및 계획 수립: 입력된 정보를 바탕으로 최적의 행동을 결정하고, 이를 수행하기 위한 계획을 세웁니다.
행동 수행: 결정된 계획에 따라 작업을 수행합니다. 여기에는 데이터베이스 쿼리, 이메일 작성, 고객 지원, 정보 검색 등이 포함될 수 있습니다.
학습 및 적응: 반복적인 상호작용을 통해 학습하며, 시간이 지남에 따라 성능이 향상됩니다.
자율 에이전트(autonomous agent)에 대한 아키텍처를 통해 LLM(Large Language Model) 기반의 에이전트가 어떻게 구성되고 작동하는지를 이해할 수 있습니다.
이 아키텍처는 여러 구성 요소들이 상호작용하여 에이전트가 자율적으로 작업을 수행할 수 있도록 설계되었습니다. 각 구성 요소는 다음과 같습니다:
에이전트(Agent)
중심 요소로, 모든 작업의 조정 및 실행을 담당합니다. 사용자 입력을 받아들이고, 이를 처리하여 목표를 달성하기 위한 계획을 세우고 실행합니다.
도구(Tools)
에이전트가 특정 작업을 수행하기 위해 사용하는 다양한 도구들입니다.
예를 들어, 캘린더(Calendar), 계산기(Calculator), 코드 인터프리터(CodeInterpreter), 검색(Search) 등이 있습니다.
이러한 도구들은 에이전트가 필요한 작업을 수행할 수 있도록 지원합니다.
모델 외 데이터: 모델이 학습된 훈련 데이터 외에도 종종 최신 정보를 사용하여 작업하고 생성해야 하는 경우가 있습니다.
에이전트는 외부 API를 호출하여 이를 달성할 수 있습니다.
코드 실행 기능: 지금까지 LLM이 복잡한 작업을 분해하고 이전 작업을 기억하는 방법을 살펴보았지만, 작업을 실행하기 위해 외부 도구를 사용할 수 있도록 허용하면 더욱 강력해질 수 있습니다.
예를 들면 다음과 같습니다.
위키베이스 에이전트는 자연어 쿼리를 분석하고 wikidata.org 데이터베이스에 대해 적절한 SPARQL 쿼리를 실행하여 모호한 질문에 대한 정확하고 정확한 정보와 답변을 검색할 수 있습니다.
MRKL은 범용 LLM을 사용하여 쿼리를 가장 적합한 다운스트림 '전문가' 모델로 라우팅하도록 훈련되었으므로 잘 훈련된 도메인별 모델에 작업을 아웃소싱할 수 있습니다.
TALM과 Toolformer는 LLM을 미세 조정하여 외부 API를 사용하는 방법을 학습시킵니다. OpenAI API는 함수 호출을 도입하여 도구를 사용하도록 LLM을 보강했습니다.
HuggingGPT 역시 MRKL과 동일한 원리로 작동하며, ChatGPT는 작업 계획자로 사용되어 Hugging Face 모델 허브에서 도메인별 모델을 선택해 당면한 작업을 완료합니다.
기억(Memory)
단기 기억(Short-term memory): 최근의 상호작용과 데이터를 저장하여 즉각적인 반응을 지원합니다. 이 메모리는 일반적으로 상황 내 학습에 사용됩니다.
단기 기억은 모델의 제한적이고 유한한 컨텍스트 윈도우 길이를 의미합니다. 학습 및 추론과 같은 복잡한 인지 작업을 수행하는 데 사용할 수 있습니다.
예를 들면 다음과 같습니다.
LLaMA: 2048 tokens
GPT4: 32k tokens
MPT: 8k tokens
장기 기억(Long-term memory): 장기간에 걸친 데이터와 경험을 저장하여 에이전트의 학습과 적응을 도와줍니다.
이러한 유형의 메모리는 사실과 에피소드 메모리(예: 이벤트, 경험 등)를 저장하는 데 사용할 수 있습니다.
일반적으로 외부 벡터 임베딩 저장소로는 Weaviate, Pinecone 또는 FAISS와 같은 벡터 데이터베이스가 사용됩니다.
에이전트는 빠른 검색 시간으로 컨텍스트 창 길이의 정보를 쿼리하고 액세스할 수 있습니다.
계획(Planning)
에이전트가 목표를 달성하기 위해 필요한 단계를 계획합니다. 이는 체계적으로 작업을 수행하기 위한 전략을 세우는 것을 포함합니다.
하위 목표와 세분화: 복잡한 작업은 간단한 계획, 즉 할 일 목록으로 세분화해야 합니다.
그러면 상담원은 더 작고 관리하기 쉬운 하위 목표에 보다 효율적이고 체계적인 방식으로 접근할 수 있습니다.
성찰과 개선: 여기에는 상담원이 모델 결과에 대해 자기 비판과 자기 성찰을 할 수 있어야 합니다.
그런 다음 에이전트는 과거 행동을 분석하여 실수와 개선이 필요한 부분을 파악하고 이를 통해 학습할 수 있습니다.
이를 통해 최종 결과를 향상시킬 수 있습니다.
반성(Reflection)
에이전트가 자신의 행동과 결정을 평가하고, 이를 바탕으로 개선점을 찾는 과정입니다.
자기 비판(Self-critics)
에이전트가 자신의 성과를 비판적으로 분석하여 향후 성능을 향상시키기 위한 피드백을 제공합니다.
사고의 연결(Chain of thoughts)
문제 해결을 위해 논리적인 사고 과정을 통해 단계를 연결합니다.
하위 목표 분해(Subgoal decomposition)
복잡한 목표를 더 작은 하위 목표로 나누어 체계적으로 해결합니다.
행동(Action)
계획된 작업을 실제로 수행하는 단계입니다. 에이전트는 도구를 사용하여 구체적인 행동을 취합니다.
사용자 입력을 받으면 에이전트는 이를 도구를 활용하여 처리합니다.
기억을 통해 과거의 데이터를 참조하여 현재 상황을 이해합니다.
계획을 세워 목표 달성을 위한 단계를 구체화합니다.
행동을 통해 실제 작업을 수행합니다.
반성과 자기 비판을 통해 자신의 행동을 평가하고, 이를 바탕으로 개선합니다.
사고의 연결과 하위 목표 분해를 통해 복잡한 문제를 해결합니다.
이러한 아키텍처는 자율 에이전트가 복잡한 작업을 독립적으로 수행하고, 지속적으로 학습하고 개선할 수 있도록 합니다.
Agentic Workflow는 자율 에이전트(autonomous agent)가 체계적이고 효율적으로 작업을 수행할 수 있도록 하는 일련의 과정 및 디자인 패턴을 의미합니다.
이 워크플로우는 여러 AI 에이전트가 협력하여 복잡한 작업을 나누어 처리하고, 각 에이전트의 전문성을 활용하여 목표를 달성하는 구조를 갖추고 있습니다.
반성(Reflection):
에이전트가 생성한 출력물을 스스로 검토하고, 개선점을 찾아내는 과정입니다. 이를 통해 에이전트는 반복적인 자기 비판과 수정 과정을 거쳐 성능을 향상시킵니다
도구 사용(Tool Use):
에이전트는 다양한 도구를 사용하여 정보를 수집하거나 작업을 수행합니다. 예를 들어, 웹 검색, 데이터 분석 도구, 코드 실행 도구 등을 활용하여 복잡한 작업을 수행할 수 있습니다
다중 에이전트 협력(Multi-Agent Collaboration):
복잡한 작업을 여러 에이전트가 나누어 처리하며, 각 에이전트는 특정 역할을 담당합니다. 이들은 서로 소통하고 협력하여 전체 작업을 효율적으로 완료합니다
계획(Planning):
에이전트가 목표를 달성하기 위해 필요한 단계를 계획합니다. 이를 통해 에이전트는 작업을 논리적으로 나누고, 각 단계에서 필요한 작업을 수행합니다
자동화된 고객 지원: 에이전트가 고객 문의를 처리하고, 필요한 정보를 제공하며, 문제를 해결합니다. 이를 위해 자연어 처리 도구, 데이터베이스 조회 도구 등을 사용합니다.
코드 작성 및 검토: 한 에이전트가 코드를 작성하고, 다른 에이전트가 이를 검토하며 개선점을 제안합니다. 이 과정에서 반복적인 반성과 수정이 이루어집니다.
기업 자동화: 여러 AI 에이전트가 협력하여 비즈니스 프로세스를 자동화합니다. 예를 들어, 보험 청구 처리, 의료 계획 관리 등 다양한 산업 분야에서 활용될 수 있습니다.
agentic workflow는 autonomous agent가 작업을 수행하는 방식과 관련이 있습니다.
autonomous agent는 다양한 도구와 시스템을 사용하여 독립적으로 작업을 수행하고, 목표를 달성하는 역할을 합니다.
이 과정에서 agentic workflow는 autonomous agent가 체계적으로 작업을 계획하고 실행하는 일련의 단계를 나타냅니다.
작업의 체계화:
autonomous agent가 작업을 체계적으로 수행할 수 있도록 단계별로 계획을 세우고 실행하는 과정을 정의합니다.
이는 작업을 효율적으로 관리하고, 목표를 달성하는 데 필요한 모든 단계를 포함합니다.
예를 들어, autonomous agent가 고객 지원 요청을 처리하는 경우, agentic workflow는 요청을 수신하고, 이해하고, 적절한 도구를 사용하여 해결책을 제공하는 일련의 단계를 포함할 수 있습니다.
의사 결정 과정:
autonomous agent가 환경을 인식하고, 데이터를 분석하며, 최적의 행동을 결정하는 과정을 통해 의사소통하는 과정을 돕습니다.
의사 결정 과정은 에이전트의 계획과 행동을 안내하며, 다양한 상황에 맞추어 적응할 수 있도록 합니다.
도구의 통합:
autonomous agent가 다양한 도구와 시스템을 통합하여 사용할 수 있도록 합니다.
이는 캘린더, 계산기, 코드 인터프리터 등의 도구를 포함하며, 각 도구는 특정 작업을 수행하는 데 사용됩니다.
이 도구들을 사용하여 복잡한 작업을 수행하고, 효율성을 높입니다.
학습과 적응:
autonomous agent가 학습하고 적응할 수 있도록 지원합니다.
이는 반성(reflection), 자기 비판(self-critics), 사고의 연결(chain of thoughts), 하위 목표 분해(subgoal decomposition) 등을 통해 수행되고, 이로써 성능을 향상시키고, 더 나은 결정을 내릴 수 있습니다.
이 그림은 다양한 프롬프트 엔지니어링과 AI 작업 흐름의 복잡성과 유연성을 나타내는 다이어그램입니다.
벡터 임베딩과 시맨틱 검색 기술을 통해 유사한 의미를 가진 데이터를 검색하고, 응답을 생성하는 데 사용됩니다.
각 단계별로 사용되는 도구와 기술을 설명합니다. 이를 통해 사용자는 자신에게 필요한 도구와 기술을 선택하고, AI 시스템을 효과적으로 구축할 수 있습니다.
다이어그램에서 복잡성과 유연성이 증가함에 따라, 기술이 점점 더 정교해지고 다양한 상황에 적응할 수 있게 되는지를 보여줍니다.
설명: 고정된 형태의 프롬프트로, 변경되지 않고 항상 동일한 입력을 제공합니다.
예시 도구: Flux
설명: 프롬프트 템플릿을 사용하여 일부 가변 입력을 포함하는 반고정 프롬프트를 생성합니다.
예시 도구: PromptStacks, ChainForge
설명: 여러 프롬프트를 결합하여 더 복잡한 입력을 생성합니다.
예시 도구: re:tune, PromptTools
설명: 문맥에 따라 다르게 반응하는 프롬프트로, 이전 대화나 상호작용의 맥락을 고려합니다.
예시 도구: vellum, Baseplate
설명: 여러 프롬프트를 순차적으로 연결하여 단계별로 작업을 수행합니다.
예시 도구: Draftr AI, PromptChainer
설명: 프롬프트 파이프라인을 통해 데이터를 검색하고, 이를 바탕으로 응답을 생성합니다.
예시 도구: Stack, Dust
설명: 자율 에이전트는 독립적으로 작업을 수행할 수 있는 AI 시스템입니다.
이 에이전트들은 다양한 도구와 기술을 통합하여 복잡한 작업을 자동화하고, 목표를 달성하기 위해 여러 단계를 계획하고 실행합니다.
예시 도구: LangFlow, FlowiseAI
설명: 프롬프트 튜닝은 AI 모델의 응답을 조정하기 위해 프롬프트를 미세 조정하는 기술입니다. 소프트 프롬프트는 이러한 튜닝을 통해 더 자연스럽고 정확한 응답을 생성합니다.
예시 도구: LangChain
LangFlow는 다중 에이전트와 RAG(Retrieval-Augmented Generation) 애플리케이션을 구축하기 위한 시각적 프레임워크입니다.
No Code Low Code 개념으로 개발 프로세스를 더 원활하게 만들기 위해 LangChain 위에 구축된 UI입니다.
이 플랫폼은 오픈 소스, 파이썬 기반이며, 완전히 사용자 정의 가능하고 LLM(대형 언어 모델) 및 벡터 저장소에 구애받지 않습니다.
Python
LangChain: LangFlow를 사용하여 시각적으로 구성 가능
LangFlow: AI 애플리케이션 구축을 위한 시각적 프레임워크
기타 필요한 라이브러리: requests, pandas 등
Python 설치: Python 3.10 이상이 필요합니다.
LangFlow 설치: ( 설치가 좀 오래 걸리네요.)
python -m pip install langflow -ULangFlow 서버를 실행하여 시각적 인터페이스에 접근합니다.
python -m langflow run. 실행하면 크롬 브라우저에서 자동으로 열립니다. 안열리면 웹 브라우저에서 http://127.0.0.1:7860으로 이동하여 LangFlow 인터페이스를 엽니다
상단의 new project를 선택하면 아래와 같이 템플릿이 나옵니다.
기본 프롬프트를 선택합니다.
이 플로우를 사용하면 프롬프트를 사용하여 지침을 전송하여 OpenAI 모델과 채팅할 수 있습니다.
OpenAI 컴포넌트를 사용하려면 OpenAI API 키 필드에서 지구본 버튼을 클릭하여 환경 변수에 액세스한 다음 새 변수 추가를 클릭합니다.
하단에 playground 버튼을 클릭하여 실행합니다.
다음 시간에는 이 글 초기에 소개드린 autonomous agent 아키텍처를 기반으로 langflow를 사용해서 실습해 보는 시간을 가져보겠습니다.
autonomous agent는 agentic workflow를 통해 작업을 체계적으로 계획하고 실행합니다.
agentic workflow는 autonomous agent가 의사 결정을 내리고, 다양한 도구를 통합하여 사용하며, 학습과 적응을 통해 성능을 향상시키는 과정을 포함합니다.
이는 autonomous agent가 복잡한 작업을 독립적으로 수행하고, 지속적으로 개선할 수 있도록 합니다.
이와 같은 아키텍처와 워크플로우는 autonomous agent가 효율적으로 작동하고, 다양한 환경에 적응할 수 있는 기반을 제공합니다.
https://www.youtube.com/watch?v=pBBe1pk8hf4&t=51s
https://www.youtube.com/watch?v=sal78ACtGTc
https://nirajpandkar.substack.com/p/issue-8-autonomous-agents
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.