Microsoft의 AutoGen 프레임워크는 AI 에이전트가 서로 대화하고 작업을 완료할 수 있게 합니다.

Microsoft’s AutoGen framework allows multiple AI agents to talk to each other and complete your tasks

AutoGen: Enabling next-generation large language model applications

Inside AutoGen: Microsoft Research New Autonomous Agent Framework

Getting Started

AutoGen – Automated Multi Agent Chat

자율 에이전트는 현재 생성형 AI의 가장 핫한 트렌드 중 하나로 빠르게 부상하고 있습니다. 그것이 완전히 해결된 문제나 주류 트렌드는 아니지만, 자율 에이전트는 기반 모델 영역에서의 새로운 전선으로 널리 인정받고 있습니다. 이 영역에서의 연구와 프레임워크가 계속해서 등장하고 있고, 그 중에서도 최근에 발표된 가장 주목할만한 작업은 Microsoft Research의 AutoGen 프로젝트입니다.

간단히 말해서, AutoGen은 에이전트 간 대화를 통해 작업을 해결하는 대화형 에이전트를 만드는 것을 단순화하는 플랫폼입니다. AutoGen을 통해 개발자들은 언어 모델(LLMs), 사람들, 도구들을 포함한 다중 에이전트 대화의 다양한 형태와 패턴을 쉽게 구성할 수 있습니다.

경쟁 분야

LLM 응용 프레임워크 분야는 빠르게 발전하고 있으며 Microsoft AutoGen은 많은 경쟁자들과 경쟁하고 있습니다. LangChain은 챗봇부터 텍스트 요약기, 에이전트에 이르기까지 다양한 유형의 LLM 응용 프로그램을 생성하기 위한 프레임워크입니다. LlamaIndex는 문서와 데이터베이스와 같은 외부 데이터 소스에 LLM을 연결하기 위한 풍부한 도구를 제공합니다.

AutoGPT, MetaGPT, BabyAGI와 같은 라이브러리는 LLM 에이전트와 다중 에이전트 응용 프로그램에 특화되어 있습니다. ChatDev는 LLM 에이전트를 사용하여 전체 소프트웨어 개발 팀을 에뮬레이션합니다. Hugging Face의 Transformers Agents 라이브러리를 사용하면 LLM을 외부 도구에 연결하는 대화식 응용 프로그램을 생성할 수 있습니다.

LLM 에이전트는 연구와 개발의 뜨거운 분야로, 제품 개발에서 경영 기능, 쇼핑, 시장 연구에 이르기까지 다양한 작업에 대한 프로토타입이 이미 생성되었습니다. 연구에서는 LLM 에이전트를 사용하여 대규모 인구 행동을 시뮬레이션하거나 게임에서 실제 비 플레이어블 캐릭터를 생성하는 방법을 보여주기도 했습니다. 그러나 이러한 작업의 많은 부분은 여전히 개념 증명에 불과하며, LLM 에이전트로부터의 환상과 예측 불가능한 행동과 같은 도전 때문에 아직 제품화 준비가 되지 않았습니다.

이러한 도전에도 불구하고, LLM 응용 프로그램의 미래는 밝아 보이며, 에이전트들이 중요한 역할을 할 것으로 예상됩니다. 대형 기술 회사들은 이미 AI 코파일럿이 미래 응용 프로그램 및 운영 체제의 큰 부분이 될 것이라고 기대를 하고 있습니다. 그리고 LLM 에이전트 프레임워크는 회사들이 자신만의 맞춤형 코파일럿를 만들 수 있게 해줄 것입니다. Microsoft가 AutoGen으로 이 분야에 진입한 것은 LLM 에이전트 주변의 경쟁이 점점 치열해지고 그들의 미래 잠재력을 입증하는 것입니다.

Microsoft가 설명하는 바로는 AutoGen은 “LLM 작업의 조정, 최적화 및 자동화를 단순화하는 프레임워크“입니다. AutoGen의 핵심 아이디어는 GPT-4와 같은 LLM에 의해 구동되는 프로그래밍 모듈인 “에이전트”를 생성하는 것입니다. 이 에이전트들은 다양한 작업을 수행하기 위해 자연어 메시지로 서로 소통합니다.

에이전트는 프롬프트 엔지니어링 기법과 정보 검색 또는 코드 실행을 가능하게 하는 외부 도구로 맞춤화하고 확장될 수 있습니다. AutoGen을 이용하면, 개발자들은 서로 다른 작업을 전문으로 하는 에이전트 생태계를 만들어 서로 협업하게 할 수 있습니다.

AutoGen에서의 에이전트 기능은 다음 리소스의 조합을 통해 구현됩니다:

I. LLMs: AutoGen은 주로 LLMs를 활용하며, 에이전트의 백엔드에서 중요한 요소로 LLMs을 위치시킵니다. 여러 에이전트들은 다양한 LLM 설정에 의해 지원될 수 있고, 그 중 일부는 사적 데이터에 최적화된 LLMs를 사용할 수 있습니다. 또한, LLMs는 각기 다른 시스템 메시지와 연결된 다양한 역할을 수행할 수 있습니다.

II. 인간: 인간의 피드백과 참여가 중요하다는 것을 인식하여, AutoGen은 에이전트 대화에 인간 사용자를 통합하도록 합니다. 이것은 프록시 에이전트를 설정하여 이루어지며, 인간이 다른 에이전트들과 원활하게 상호작용 할 수 있게 합니다. AutoGen은 인간 참여의 범위를 정의하는 데 유연성을 제공하며, 인간 입력을 요청하는 조건과 빈도를 지정하고, 필요에 따라 입력을 제공하지 않을 수 있는 옵션도 인간에게 제공합니다.

III. 도구: AutoGen은 LLMs의 한계를 극복하기 위해 도구가 필수적이라고 인지합니다. 플랫폼은 코드 생성과 실행을 통해 도구 사용을 기본적으로 지원합니다. 예를 들어, AutoGen의 기본 보조 에이전트를 사용할 때, 시스템 메시지는 문제 해결을 위한 Python 코드나 쉘 스크립트를 LLM에게 제안하도록 요청할 수 있습니다. 이 기능은 정보 수집이나 여러 단계의 문제 해결이 필요한 시나리오에서 특히 유용하게 작동합니다. 추가로, AutoGen의 에이전트들은 사전에 정의된 도구 세트를 활용하여 LLM에서 제안한 함수를 호출하여 실행할 수 있어, 문제 해결 능력을 향상시킬 수 있습니다.

AutoGen은 에이전트 간 대화를 통한 작업 처리를 위한 실용적인 해결책을 제공합니다. 차세대 응용 프로그램을 추구하면서, 복잡한 워크플로우를 간단하게 관리하는 것의 필요성을 인식합니다. 이를 해결하기 위해 다음과 같은 기능을 도입하였습니다:

· 통합 대화 인터페이스: AutoGen은 에이전트에 통합 대화 인터페이스를 제공합니다. 이러한 인터페이스는 에이전트가 메시지를 보내고 받으며 받은 메시지를 기반으로 답장을 생성할 수 있는 수단을 제공합니다. 이 디자인은 워크플로우 표현의 중심에 대화를 두어 개발자가 에이전트 간 메시지 교환과 “답장 생성” 기능을 사용하여 워크플로우를 메시지 시퀀스로 정의할 수 있게 합니다. 메시지 교환 및 에이전트 작업에 대한 로직이 설정되면 워크플로우는 효과적으로 정의됩니다.

· 자동 답장 기능을 통한 자동화된 에이전트 대화: AutoGen은 개발자에게 부담을 줄이기 위해 다중 에이전트 대화의 개발을 단순화하려고 합니다. 개발자가 각 에이전트의 행동만 정의하는 것에만 집중하도록 하여 이를 달성합니다. 실제로 이는 에이전트가 적절하게 설정되면 개발자는 에이전트 간의 대화를 쉽게 시작할 수 있다는 것을 의미합니다. 그 후 대화는 추가적인 개발자 개입 없이 자동으로 진행됩니다. AutoGen은 이 자동화를 가능하게 하기 위해 기본 기능으로 에이전트 자동 답장 메커니즘을 도입합니다. 에이전트가 다른 에이전트로부터 메시지를 받으면, 답장이 비어 있지 않은 경우 (예: 종료 조건이 충족될 때) “답장 생성” 함수를 자동으로 호출하고 답장을 보내는 에이전트에게 돌려보냅니다.

AutoGen 실전 적용 사례

Microsoft Research는 AutoGen의 다양성을 보여주기 위해 여러 사용 사례를 제시하였습니다:

  1. 수학 문제 해결: AutoGen은 세 가지 다른 시나리오에서의 수학 문제 해결 능력을 입증하였습니다.
  2. 다중 에이전트 코딩: AutoGen은 세 개의 연결된 에이전트를 사용하여 복잡한 공급망 최적화 문제를 해결하는 데 기능을 확장합니다.
  3. 온라인 의사결정: AutoGen은 MiniWob++ 벤치마크 내의 웹 상호 작용 작업에 대처하는 능력을 자랑하며, 온라인 의사결정을 위한 에이전트의 힘을 활용합니다.
  4. 검색-증강된 채팅: AutoGen은 코드 생성과 질문-응답의 도전 과제를 해결하는 데 능숙한 검색-증강(Retrieval-augmented)된 에이전트를 소개합니다.
  5. 동적 그룹 채팅: AutoGen의 적응성은 동적 그룹 채팅의 생성에서 빛을 발하며, 다양한 그룹 통신 시스템을 구축하는 능력을 보여줍니다.
  6. 대화식 체스: Microsoft Research의 AutoGen은 체스의 세계를 대화식 AI 영역으로 가져와, 플레이어가 대화를 통해 상호 작용적이고 창의적인 체스 게임에 참여할 수 있게 합니다.

그림 1. AutoGen을 사용한 복잡한 LLM 기반 작업 흐름의 다중 에이전트 대화 활성화

  1. 대화 가능한 에이전트 (Conversable agent) – 왼쪽:
    • 파란색 로봇 아이콘이 LLM을 나타냅니다. 아래쪽의 작은 아이콘들은 에이전트가 어떤 기능 또는 작업을 수행할 수 있는지 나타냅니다.
    • 녹색 로봇 아이콘과 함께 표시된 아이콘들은 에이전트가 툴, 사람, 또는 그들의 조합을 기반으로 설정될 수 있음을 나타냅니다.
  2. 에이전트 간의 대화 – 오른쪽 상단:
    • 파란색 로봇 에이전트와 녹색 로봇 에이전트가 특정 작업을 해결하기 위해 대화하는 모습을 보여줍니다.
  3. 복잡한 대화 패턴 – 오른쪽 하단:
    • 여러 에이전트들이 다양한 방식으로 상호 작용하는 것을 보여줍니다. 여기에는 “공동 채팅 (Joint chat)”과 “계층적 채팅 (Hierarchical chat)”과 같은 복잡한 대화 패턴이 포함되어 있습니다. 이러한 패턴은 AutoGen 프레임워크에서 지원되며, 에이전트들 간의 다양한 상호 작용을 나타냅니다.

요약하면, 이 그림은 AutoGen 프레임워크를 사용하여 LLM 기반의 복잡한 작업 흐름을 어떻게 활성화하는지를 시각적으로 보여줍니다. 여기에는 다양한 에이전트의 설정 및 복잡한 대화 패턴이 포함되어 있습니다.

AutoGen과 같은 기능은 대규모 언어 모델이 할 수 있는 것을 근본적으로 변혁하고 확장시키려고 합니다. 이것은 최근 AI에서 본 가장 흥미로운 발전 중 하나입니다.

무엇보다, 이러한 프레임워크와 도구는 LLM의 단순한 사용 방식에서 벗어나, 복잡한 작업 흐름과 연동된 환경에서의 AI의 사용을 향상시킵니다. AutoGen의 접근 방식은 에이전트 간의 협업을 통해 LLM의 능력을 넘어서는 결과를 만들어낼 수 있게 하며, 이는 AI의 다양한 분야에서의 적용성을 높입니다.

또한, 이러한 변화는 AI와 인간의 상호 작용 방식에도 큰 영향을 미칠 것입니다. 보다 효율적이고 자연스러운 대화가 가능해지면서, 사용자는 AI를 향상된 도우미나 파트너로서 경험하게 될 것입니다.

결국, 이러한 발전은 AI 기술의 성숙도를 높이고, 실제 세계의 복잡한 문제를 해결하는 데 더 큰 기여를 하게 될 것입니다.

대규모 언어 모델(LLM)의 전체 가능성을 극대화하기 위한 작업 흐름을 설계하고, 구현하고, 최적화하는 데는 상당한 노력과 전문 지식이 필요합니다. 이런 작업 흐름을 자동화하는 것은 막대한 가치가 있습니다. 개발자들이 점점 복잡한 LLM 기반 응용 프로그램을 개발하게 되면, 작업 흐름은 더욱 복잡해질 것입니다. 이와 같은 작업 흐름의 디자인 영역은 광대하고 복잡할 수 있어, 튼튼한 성능의 최적 작업 흐름을 정리하는 데 높은 도전이 될 것입니다.

AutoGen은 LLM 작업 흐름의 조정, 최적화, 및 자동화를 단순하게 만들어주는 프레임워크입니다. GPT-4와 같은 최첨단 LLM의 주요 능력을 활용하면서, 인간과 도구의 통합 및 다양한 에이전트 간의 자동 채팅을 통한 상호 작용으로 그 한계를 극복하는 커스터마이징 및 대화 가능한 에이전트를 제공합니다.

AutoGen은 Microsoft Research에서 개발한 혁신적인 자율 에이전트 프레임워크입니다. 대규모 언어 모델(LLM)의 강력한 능력을 극대화하기 위해 설계되었으며, 복잡한 작업 흐름을 단순화하고 자동화하는데 중점을 둡니다.

주요 특징:

  1. 다중 에이전트 대화: 여러 에이전트가 서로 대화하며 다양한 작업을 수행할 수 있습니다. 이를 통해 LLM을 기반으로 한 응용 프로그램의 효율성과 정확성이 향상됩니다.
  2. 커스터마이즈 가능한 에이전트: 각 에이전트는 LLM, 도구, 인간 또는 이들의 조합을 기반으로 할 수 있으며, 맞춤화하여 특정 작업에 최적화될 수 있습니다.
  3. 복잡한 대화 패턴 지원: 공동 채팅(Joint chat)에서 계층적 채팅(Hierarchical chat)에 이르기까지 다양한 대화 패턴을 지원하여, 더욱 복잡한 작업 흐름을 처리할 수 있습니다.

AutoGen의 도입은 AI와 인간 간의 상호 작용 방식을 혁신적으로 바꾸어 놓을 것입니다. 이 프레임워크는 AI 기술의 발전을 주도하며, 실세계의 문제를 해결하는 데 새로운 방법을 제시할 것으로 예상됩니다.

구체적으로, AutoGen은 두 가지 주요 단계를 필요로하는 복잡한 다중 에이전트 대화 시스템을 만드는 것을 도와줍니다:

I. 대화형 에이전트 정의하기: 개발자들은 특별한 능력과 역할을 갖는 대화형 에이전트의 세트를 정의하는 것부터 시작합니다. 이 에이전트들은 대화의 참가자로서 기능합니다.

II. 상호작용 행동 정의하기: 다음 단계는 이러한 대화형 에이전트들이 서로 어떻게 상호작용할지 정의하는 것입니다. 이것은 한 에이전트가 다른 에이전트로부터 메시지를 받았을 때 어떻게 반응해야 하는지를 지정하며, 이는 대화의 흐름을 결정하게 됩니다.

두 단계 모두 직관적이고 모듈화되어 있어, 이러한 에이전트들은 재사용 가능하고 조합할 수 있습니다. 예를 들어, 코드 기반의 질문 응답 시스템을 구축하기 위해, ‘그림 2’에서와 같이 에이전트와 그들의 상호 작용을 설계할 수 있습니다. 이러한 시스템은 공급망 최적화와 같은 응용 프로그램에서 필요한 수동 상호 작용 횟수를 3배에서 10배까지 줄이는 것으로 나타났습니다. AutoGen을 사용하면 코딩 노력이 4배 이상 줄어듭니다.

그림 2. 공급망 최적화에서 코드 기반 질문 응답을 처리하기 위한 예제 작업 흐름


이 그림에서는 코드 기반의 질문 응답을 처리하기 위한 공급망 최적화 작업 흐름의 예를 보여줍니다.

  • 커맨더(Commander): 사용자의 질문을 받아들이고 Writer와 Safeguard와 협업합니다.
  • 라이터(Writer): 코드와 해석을 작성합니다.
  • 세이프가드(Safeguard): 안전성을 확보합니다.
  • 커맨더(Commander): 코드를 실행합니다.

문제가 발생하면, 이 과정은 해결될 때까지 반복될 수 있습니다. 그림의 음영 처리된 원은 여러 번 반복될 수 있는 단계를 나타냅니다.

이러한 방식으로, AutoGen은 공급망 최적화와 같은 복잡한 문제들에 대한 코드 기반의 질문 응답 처리를 위한 간편하고 효과적인 작업 흐름을 제공합니다.

능력있고, 대화가 가능하며, 맞춤 설정이 가능한 에이전트 – LLMs, 인간, 도구들을 통합하기

AutoGen 에이전트들은 LLMs, 인간, 도구들 혹은 그들의 조합으로 가능해진 기능들을 가지고 있습니다. 예를 들면:

AutoGen의 내장 에이전트를 활용하는 한 가지 간단한 방법은, 어시스턴트 에이전트와 사용자 프록시 에이전트 간의 자동 대화를 시작하는 것입니다. 예시로, (그림 3과 같이) 사용자가 원하는 자동화 수준으로 ChatGPT + 코드 해석기 + 플러그인의 개선된 버전을 쉽게 구축할 수 있습니다. 이는 맞춤형 환경에서 사용할 수 있으며, 더 큰 시스템에 쉽게 포함될 수 있습니다. 또한 과거의 상호작용에 기반하여 개인화와 적응성을 추가하는 것과 같이 그들의 동작을 확장하는 것도 쉽습니다(예: 자동 연속 학습, 에이전트에게 새로운 능력 가르치기).

그림 3. AutoGen의 사용자 프록시 에이전트와 어시스턴트 에이전트를 사용하여 ChatGPT + 코드 해석기 + 플러그인의 향상된 버전을 구축할 수 있습니다.


어시스턴트 에이전트는 Bing Chat과 같은 AI 어시스턴트의 역할을 합니다. 사용자 프록시 에이전트는 사용자의 역할을 하며, 코드 실행과 같은 사용자의 행동을 시뮬레이션합니다. AutoGen은 두 에이전트 사이의 채팅을 자동화하면서, 사람들의 피드백이나 개입을 허용합니다. 사용자 프록시는 적절할 때 사람들과 원활하게 교류하며 도구들을 사용합니다.

에이전트 대화 중심의 설계는 다음과 같은 많은 이점을 가지고 있습니다:

  1. 모호함, 피드백, 진행 상태 및 협업을 자연스럽게 다룰 수 있습니다.
  2. 도구의 활용과 함께 앞뒤로 문제를 해결하는 것과 같은 코딩 관련 작업을 효과적으로 수행할 수 있습니다.
  3. 사용자는 채팅 중인 에이전트를 통해 원활하게 참여하거나 탈퇴할 수 있습니다.
  4. 여러 전문가들의 협력을 통해 공동의 목표를 달성합니다.

AutoGen은 자동화된 채팅 및 다양한 통신 패턴을 지원하므로, 복잡하고 동적인 작업 흐름을 쉽게 조정하고 유연성을 가지고 실험을 진행할 수 있습니다. 그림 4는 AutoGen으로 가능해진 새로운 게임, ‘대화식 체스’를 나타냅니다. 그림 5는 “GroupChatManager”라는 다른 특별한 에이전트를 사용하여 여러 에이전트들 사이의 그룹 채팅을 어떻게 지원하는지를 설명합니다.

그림 4. AutoGen으로 가능해진 새로운 응용 프로그램 예시: 대화식 체스.


이는 다양한 시나리오를 지원할 수 있으며, 각 플레이어는 LLM으로 강화된 AI, 인간, 또는 두 가지의 혼합 형태가 될 수 있습니다. 이를 통해 플레이어들은 자신의 움직임을 창의적으로 표현할 수 있게 되며, 농담, 미미 참조, 캐릭터 연기와 같은 방식을 사용하여 체스 게임을 플레이어뿐만 아니라 관찰자에게도 더욱 재미있게 만듭니다.

그림 5. AutoGen이 동적 그룹 채팅을 통해 작업을 해결하는 방법 개요:


이 그림은 AutoGen이 어떻게 동적 그룹 채팅을 활용하여 작업을 해결하는지에 대한 개요를 보여줍니다. 우리는 ‘Manager’라는 특별한 에이전트를 사용하는데, 이 에이전트는 다음의 세 단계를 반복합니다.

  1. 단일 발언자(이 경우에는 Bob)를 선택합니다.
  2. 선택된 발언자에게 응답하도록 요청합니다.
  3. 선택된 발언자의 메시지를 다른 모든 에이전트에게 전파합니다.

이 프로세스를 통해 AutoGen은 여러 에이전트 사이의 채팅을 조정하고 동적으로 그룹 작업을 해결할 수 있습니다.

자동 생성 에이전트 채팅: 그룹 채팅

AutoGen을 사용하여 사용자 프록시, 코더, 제품 관리자라는 세 가지 에이전트를 생성하고, 그룹 채팅을 설정한 다음 해당 그룹 채팅을 관리하는 관리자를 생성합니다.

AutoGen이 만든 파이썬 코드 : arxiv에서 gpt-4에 관한 최신 논문을 찾아 그것의 소프트웨어에서의 잠재적인 응용 분야를 찾아보세요.

# filename: arxiv_scraper.py

import urllib.request, urllib.parse, urllib.error
from bs4 import BeautifulSoup
import ssl
import feedparser

# Ignore SSL certificate errors
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

# Base api query url
base_url = 'http://export.arxiv.org/api/query?';

# Search parameters
search_query = 'all:gpt-4' # search for the keyword 'gpt-4' in all categories
start = 0                     # retrieve results from the start
max_results = 10              # retrieve 10 results

query = 'search_query=%s&start=%i&max_results=%i' % (search_query, start, max_results)

# Forming the request url
request_url = base_url + query

# Parsing the response using feedparser
response = feedparser.parse(request_url)

# Print out feed information
print('Feed title: %s' % response.feed.title)
print('Feed last updated: %s' % response.feed.updated)

# Print out entries
for entry in response.entries:
    print('Entry title: %s' % entry.title)
    print('Entry published: %s' % entry.published.rstrip('Z')+'UTC')
    print('Entry link: %s' % entry.link)
    print('Entry summary: %s' % BeautifulSoup(entry.summary, 'html.parser').text)
    print('\n')

위 코드를 만드는 과정

(venv) jin@jini:~/work/AutoGen$ python GroupChat.py 
User_proxy (to chat_manager):

arxiv에서 gpt-4에 관한 최신 논문을 찾아 그것의 소프트웨어에서의 잠재적인 응용 분야를 찾아보세요.

--------------------------------------------------------------------------------
Coder (to chat_manager):

우선 arXiv API를 사용하여 "GPT-4"라는 키워드를 검색하는 코드를 실행시켜 봅시다. 이렇게 하면 백분위 확인된 최신 논문을 찾을 수 있습니다.

python script를 사용하여 이 작업을 수행합니다.

```python
# filename: arxiv_scraper.py

import urllib.request, urllib.parse, urllib.error
from bs4 import BeautifulSoup
import ssl
import feedparser

# Ignore SSL certificate errors
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

# Base api query url
base_url = 'http://export.arxiv.org/api/query?';

# Search parameters
search_query = 'all:gpt-4' # search for the keyword 'gpt-4' in all categories
start = 0                     # retrieve results from the start
max_results = 10              # retrieve 10 results

query = 'search_query=%s&start=%i&max_results=%i' % (search_query, start, max_results)

# Forming the request url
request_url = base_url + query

# Parsing the response using feedparser
response = feedparser.parse(request_url)

# Print out feed information
print('Feed title: %s' % response.feed.title)
print('Feed last updated: %s' % response.feed.updated)

# Print out entries
for entry in response.entries:
    print('Entry title: %s' % entry.title)
    print('Entry published: %s' % entry.published.rstrip('Z')+'UTC')
    print('Entry link: %s' % entry.link)
    print('Entry summary: %s' % BeautifulSoup(entry.summary, 'html.parser').text)
    print('\n')

```

이 스크립트는 GPT-4에 대한 관련 논문을 arXiv에서 찾아서 콘솔에 그 결과를 출력합니다. 이 때, 각 논문의 제목, 발행일, 링크, 그리고 요약이 출력됩니다.

스크립트를 실행 후 얻은 정보로 논문에 기술된 GPT-4의 잠재적인 응용 분야에 대해 분석합니다.

--------------------------------------------------------------------------------

>>>>>>>> USING AUTO REPLY...

>>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...
User_proxy (to chat_manager):

exitcode: 1 (execution failed)
Code output: 
Traceback (most recent call last):
  File "arxiv_scraper.py", line 4, in <module>
    from bs4 import BeautifulSoup
ModuleNotFoundError: No module named 'bs4'


--------------------------------------------------------------------------------
Coder (to chat_manager):

죄송합니다. 위 코드는 Beautiful Soup 모듈을 필요로 하며, 보다 깨끗하게 HTML을 분석하기 위해 사용됩니다. 이 모듈은 구문 분석된 HTML 및 XML 문서를 탐색하고 검색하기 위한 Python 라이브러리입니다.

현재 세팅에서는 이 라이브러리가 설치되어 있지 않은 것 같습니다.

다음은 이 패키지를 설치하는 shell 명령입니다.

```sh
pip install beautifulsoup4
```

위의 명령을 실행한 후, 다시 Python 코드를 실행해보세요.

--------------------------------------------------------------------------------

>>>>>>>> USING AUTO REPLY...

>>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is sh)...
User_proxy (to chat_manager):

exitcode: 0 (execution succeeded)
Code output: 
Collecting beautifulsoup4
  Using cached beautifulsoup4-4.12.2-py3-none-any.whl (142 kB)
Collecting soupsieve>1.2
  Using cached soupsieve-2.5-py3-none-any.whl (36 kB)
Installing collected packages: soupsieve, beautifulsoup4
Successfully installed beautifulsoup4-4.12.2 soupsieve-2.5


--------------------------------------------------------------------------------
Coder (to chat_manager):

Great! You have successfully installed the BeautifulSoup library. Now, please try running the previous Python script again. This should fetch recent research papers on GPT-4 from arXiv.

Here is the Python script again for your reference:

```python
# filename: arxiv_scraper.py

import urllib.request, urllib.parse, urllib.error
from bs4 import BeautifulSoup
import ssl
import feedparser

# Ignore SSL certificate errors
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

# Base api query url
base_url = 'http://export.arxiv.org/api/query?';

# Search parameters
search_query = 'all:gpt-4' # search for the keyword 'gpt-4' in all categories
start = 0                     # retrieve results from the start
max_results = 10              # retrieve 10 results

query = 'search_query=%s&start=%i&max_results=%i' % (search_query, start, max_results)

# Forming the request url
request_url = base_url + query

# Parsing the response using feedparser
response = feedparser.parse(request_url)

# Print out feed information
print('Feed title: %s' % response.feed.title)
print('Feed last updated: %s' % response.feed.updated)

# Print out entries
for entry in response.entries:
    print('Entry title: %s' % entry.title)
    print('Entry published: %s' % entry.published.rstrip('Z')+'UTC')
    print('Entry link: %s' % entry.link)
    print('Entry summary: %s' % BeautifulSoup(entry.summary, 'html.parser').text)
    print('\n')
```
Please execute this Python script, and it will return the titles, publish dates, links, and summaries of the most recent papers related to GPT-4 from arXiv. Based on that information, we can further examine potential application domains discussed in these papers.

--------------------------------------------------------------------------------

>>>>>>>> USING AUTO REPLY...

>>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...
User_proxy (to chat_manager):

exitcode: 1 (execution failed)
Code output: 
Traceback (most recent call last):
  File "arxiv_scraper.py", line 6, in <module>
    import feedparser
ModuleNotFoundError: No module named 'feedparser'


--------------------------------------------------------------------------------
Coder (to chat_manager):

코드 정보에 따르면 'feedparser' 모듈이 없다는 오류가 발생했습니다. 'feedparser'는 RSS와 Atom feeds를 파싱하기 위한 Python 라이브러리입니다. 이 문제를 해결하려면 먼저 'feedparser' 모듈을 설치해야 합니다. 

다음은 이 패키지를 설치하는 쉘(shell) 명령입니다:

```sh
pip install feedparser
```

위 명령어를 실행한 후에 Python 코드를 다시 실행해주세요.

--------------------------------------------------------------------------------

>>>>>>>> USING AUTO REPLY...

>>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is sh)...
User_proxy (to chat_manager):

exitcode: 0 (execution succeeded)
Code output: 
Collecting feedparser
  Downloading feedparser-6.0.10-py3-none-any.whl (81 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 81.1/81.1 KB 4.8 MB/s eta 0:00:00
Collecting sgmllib3k
  Downloading sgmllib3k-1.0.0.tar.gz (5.8 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Using legacy 'setup.py install' for sgmllib3k, since package 'wheel' is not installed.
Installing collected packages: sgmllib3k, feedparser
  Running setup.py install for sgmllib3k: started
  Running setup.py install for sgmllib3k: finished with status 'done'
Successfully installed feedparser-6.0.10 sgmllib3k-1.0.0


--------------------------------------------------------------------------------
Coder (to chat_manager):

Great, you have successfully installed the 'feedparser' module. Now, you can re-run the Python script that queries the arXiv API for research papers on GPT-4. The script should now execute successfully and print out the recent relevant papers.

Here is the Python script again for your reference:

```python
# filename: arxiv_scraper.py

import urllib.request, urllib.parse, urllib.error
from bs4 import BeautifulSoup
import ssl
import feedparser

# Ignore SSL certificate errors
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

# Base api query url
base_url = 'http://export.arxiv.org/api/query?';

# Search parameters
search_query = 'all:gpt-4' # search for the keyword 'gpt-4' in all categories
start = 0                     # retrieve results from the start
max_results = 10              # retrieve 10 results

query = 'search_query=%s&start=%i&max_results=%i' % (search_query, start, max_results)

# Forming the request url
request_url = base_url + query

# Parsing the response using feedparser
response = feedparser.parse(request_url)

# Print out feed information
print('Feed title: %s' % response.feed.title)
print('Feed last updated: %s' % response.feed.updated)

# Print out entries
for entry in response.entries:
    print('Entry title: %s' % entry.title)
    print('Entry published: %s' % entry.published.rstrip('Z')+'UTC')
    print('Entry link: %s' % entry.link)
    print('Entry summary: %s' % BeautifulSoup(entry.summary, 'html.parser').text)
    print('\n')
```

Please execute this Python script. It will return the titles, publish dates, links, and summaries of the most recent papers related to GPT-4 from arXiv. Based on this information, we can identify potential application domains discussed in these papers.

--------------------------------------------------------------------------------

>>>>>>>> USING AUTO REPLY...

>>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...
User_proxy (to chat_manager):

exitcode: 0 (execution succeeded)
Code output: 
Feed title: ArXiv Query: search_query=all:gpt-4&amp;id_list=&amp;start=0&amp;max_results=10
Feed last updated: 2023-10-09T00:00:00-04:00
Entry title: Can LLMs like GPT-4 outperform traditional AI tools in dementia
  diagnosis? Maybe, but not today
Entry published: 2023-06-02T12:47:45UTC
Entry link: http://arxiv.org/abs/2306.01499v1
Entry summary: Recent investigations show that large language models (LLMs), specifically
GPT-4, not only have remarkable capabilities in common Natural Language
Processing (NLP) tasks but also exhibit human-level performance on various
professional and academic benchmarks. However, whether GPT-4 can be directly
used in practical applications and replace traditional artificial intelligence
(AI) tools in specialized domains requires further experimental validation. In
this paper, we explore the potential of LLMs such as GPT-4 to outperform
traditional AI tools in dementia diagnosis. Comprehensive comparisons between
GPT-4 and traditional AI tools are conducted to examine their diagnostic
accuracy in a clinical setting. Experimental results on two real clinical
datasets show that, although LLMs like GPT-4 demonstrate potential for future
advancements in dementia diagnosis, they currently do not surpass the
performance of traditional AI tools. The interpretability and faithfulness of
GPT-4 are also evaluated by comparison with real doctors. We discuss the
limitations of GPT-4 in its current state and propose future research
directions to enhance GPT-4 in dementia diagnosis.


Entry title: GPT-4 Can't Reason
Entry published: 2023-07-21T17:04:25UTC
Entry link: http://arxiv.org/abs/2308.03762v2
Entry summary: GPT-4 was released in March 2023 to wide acclaim, marking a very substantial
improvement across the board over GPT-3.5 (OpenAI's previously best model,
which had powered the initial release of ChatGPT). However, despite the
genuinely impressive improvement, there are good reasons to be highly skeptical
of GPT-4's ability to reason. This position paper discusses the nature of
reasoning; criticizes the current formulation of reasoning problems in the NLP
community, as well as the way in which LLM reasoning performance is currently
evaluated; introduces a small collection of 21 diverse reasoning problems; and
performs a detailed qualitative evaluation of GPT-4's performance on those
problems. Based on this analysis, the paper concludes that, despite its
occasional flashes of analytical brilliance, GPT-4 at present is utterly
incapable of reasoning.


Entry title: Question-Answering Approach to Evaluate Legal Summaries
Entry published: 2023-09-26T15:36:29UTC
Entry link: http://arxiv.org/abs/2309.15016v1
Entry summary: Traditional evaluation metrics like ROUGE compare lexical overlap between the
reference and generated summaries without taking argumentative structure into
account, which is important for legal summaries. In this paper, we propose a
novel legal summarization evaluation framework that utilizes GPT-4 to generate
a set of question-answer pairs that cover main points and information in the
reference summary. GPT-4 is then used to generate answers based on the
generated summary for the questions from the reference summary. Finally, GPT-4
grades the answers from the reference summary and the generated summary. We
examined the correlation between GPT-4 grading with human grading. The results
suggest that this question-answering approach with GPT-4 can be a useful tool
for gauging the quality of the summary.


Entry title: Evaluating the Logical Reasoning Ability of ChatGPT and GPT-4
Entry published: 2023-04-07T01:37:45UTC
Entry link: http://arxiv.org/abs/2304.03439v3
Entry summary: Harnessing logical reasoning ability is a comprehensive natural language
understanding endeavor. With the release of Generative Pretrained Transformer 4
(GPT-4), highlighted as "advanced" at reasoning tasks, we are eager to learn
the GPT-4 performance on various logical reasoning tasks. This report analyses
multiple logical reasoning datasets, with popular benchmarks like LogiQA and
ReClor, and newly-released datasets like AR-LSAT. We test the multi-choice
reading comprehension and natural language inference tasks with benchmarks
requiring logical reasoning. We further construct a logical reasoning
out-of-distribution dataset to investigate the robustness of ChatGPT and GPT-4.
We also make a performance comparison between ChatGPT and GPT-4. Experiment
results show that ChatGPT performs significantly better than the RoBERTa
fine-tuning method on most logical reasoning benchmarks. With early access to
the GPT-4 API we are able to conduct intense experiments on the GPT-4 model.
The results show GPT-4 yields even higher performance on most logical reasoning
datasets. Among benchmarks, ChatGPT and GPT-4 do relatively well on well-known
datasets like LogiQA and ReClor. However, the performance drops significantly
when handling newly released and out-of-distribution datasets. Logical
reasoning remains challenging for ChatGPT and GPT-4, especially on
out-of-distribution and natural language inference datasets. We release the
prompt-style logical reasoning datasets as a benchmark suite and name it
LogiEval.


Entry title: Gpt-4: A Review on Advancements and Opportunities in Natural Language
  Processing
Entry published: 2023-05-04T22:46:43UTC
Entry link: http://arxiv.org/abs/2305.03195v1
Entry summary: Generative Pre-trained Transformer 4 (GPT-4) is the fourth-generation
language model in the GPT series, developed by OpenAI, which promises
significant advancements in the field of natural language processing (NLP). In
this research article, we have discussed the features of GPT-4, its potential
applications, and the challenges that it might face. We have also compared
GPT-4 with its predecessor, GPT-3. GPT-4 has a larger model size (more than one
trillion), better multilingual capabilities, improved contextual understanding,
and reasoning capabilities than GPT-3. Some of the potential applications of
GPT-4 include chatbots, personal assistants, language translation, text
summarization, and question-answering. However, GPT-4 poses several challenges
and limitations such as computational requirements, data requirements, and
ethical concerns.


Entry title: Is GPT-4 a Good Data Analyst?
Entry published: 2023-05-24T11:26:59UTC
Entry link: http://arxiv.org/abs/2305.15038v1
Entry summary: As large language models (LLMs) have demonstrated their powerful capabilities
in plenty of domains and tasks, including context understanding, code
generation, language generation, data storytelling, etc., many data analysts
may raise concerns if their jobs will be replaced by AI. This controversial
topic has drawn a lot of attention in public. However, we are still at a stage
of divergent opinions without any definitive conclusion. Motivated by this, we
raise the research question of "is GPT-4 a good data analyst?" in this work and
aim to answer it by conducting head-to-head comparative studies. In detail, we
regard GPT-4 as a data analyst to perform end-to-end data analysis with
databases from a wide range of domains. We propose a framework to tackle the
problems by carefully designing the prompts for GPT-4 to conduct experiments.
We also design several task-specific evaluation metrics to systematically
compare the performance between several professional human data analysts and
GPT-4. Experimental results show that GPT-4 can achieve comparable performance
to humans. We also provide in-depth discussions about our results to shed light
on further studies before we reach the conclusion that GPT-4 can replace data
analysts.


Entry title: Graph Neural Architecture Search with GPT-4
Entry published: 2023-09-30T08:05:59UTC
Entry link: http://arxiv.org/abs/2310.01436v1
Entry summary: Graph Neural Architecture Search (GNAS) has shown promising results in
automatically designing graph neural networks. However, GNAS still requires
intensive human labor with rich domain knowledge to design the search space and
search strategy. In this paper, we integrate GPT-4 into GNAS and propose a new
GPT-4 based Graph Neural Architecture Search method (GPT4GNAS for short). The
basic idea of our method is to design a new class of prompts for GPT-4 to guide
GPT-4 toward the generative task of graph neural architectures. The prompts
consist of descriptions of the search space, search strategy, and search
feedback of GNAS. By iteratively running GPT-4 with the prompts, GPT4GNAS
generates more accurate graph neural networks with fast convergence.
Experimental results show that embedding GPT-4 into GNAS outperforms the
state-of-the-art GNAS methods.


Entry title: How is ChatGPT's behavior changing over time?
Entry published: 2023-07-18T06:56:08UTC
Entry link: http://arxiv.org/abs/2307.09009v2
Entry summary: GPT-3.5 and GPT-4 are the two most widely used large language model (LLM)
services. However, when and how these models are updated over time is opaque.
Here, we evaluate the March 2023 and June 2023 versions of GPT-3.5 and GPT-4 on
several diverse tasks: 1) math problems, 2) sensitive/dangerous questions, 3)
opinion surveys, 4) multi-hop knowledge-intensive questions, 5) generating
code, 6) US Medical License tests, and 7) visual reasoning. We find that the
performance and behavior of both GPT-3.5 and GPT-4 can vary greatly over time.
For example, GPT-4 (March 2023) was reasonable at identifying prime vs.
composite numbers (84% accuracy) but GPT-4 (June 2023) was poor on these same
questions (51% accuracy). This is partly explained by a drop in GPT-4's amenity
to follow chain-of-thought prompting. Interestingly, GPT-3.5 was much better in
June than in March in this task. GPT-4 became less willing to answer sensitive
questions and opinion survey questions in June than in March. GPT-4 performed
better at multi-hop questions in June than in March, while GPT-3.5's
performance dropped on this task. Both GPT-4 and GPT-3.5 had more formatting
mistakes in code generation in June than in March. Overall, our findings show
that the behavior of the "same" LLM service can change substantially in a
relatively short amount of time, highlighting the need for continuous
monitoring of LLMs.


Entry title: Solving Challenging Math Word Problems Using GPT-4 Code Interpreter with
  Code-based Self-Verification
Entry published: 2023-08-15T17:58:45UTC
Entry link: http://arxiv.org/abs/2308.07921v1
Entry summary: Recent progress in large language models (LLMs) like GPT-4 and PaLM-2 has
brought significant advancements in addressing math reasoning problems. In
particular, OpenAI's latest version of GPT-4, known as GPT-4 Code Interpreter,
shows remarkable performance on challenging math datasets. In this paper, we
explore the effect of code on enhancing LLMs' reasoning capability by
introducing different constraints on the \textit{Code Usage Frequency} of GPT-4
Code Interpreter. We found that its success can be largely attributed to its
powerful skills in generating and executing code, evaluating the output of code
execution, and rectifying its solution when receiving unreasonable outputs.
Based on this insight, we propose a novel and effective prompting method,
explicit \uline{c}ode-based \uline{s}elf-\uline{v}erification~(CSV), to further
boost the mathematical reasoning potential of GPT-4 Code Interpreter. This
method employs a zero-shot prompt on GPT-4 Code Interpreter to encourage it to
use code to self-verify its answers. In instances where the verification state
registers as ``False'', the model shall automatically amend its solution,
analogous to our approach of rectifying errors during a mathematics
examination. Furthermore, we recognize that the states of the verification
result indicate the confidence of a solution, which can improve the
effectiveness of majority voting. With GPT-4 Code Interpreter and CSV, we
achieve an impressive zero-shot accuracy on MATH dataset \textbf{(53.9\% $\to$
84.3\%)}.


Entry title: OpenAI Cribbed Our Tax Example, But Can GPT-4 Really Do Tax?
Entry published: 2023-09-15T20:00:27UTC
Entry link: http://arxiv.org/abs/2309.09992v1
Entry summary: The authors explain where OpenAI got the tax law example in its livestream
demonstration of GPT-4, why GPT-4 got the wrong answer, and how it fails to
reliably calculate taxes.


The most recent GPT-4 papers on arXiv cover a broad range of potential application areas. Here are a few examples:

1. **Medical Diagnosis**: The paper titled 'Can LLMs like GPT-4 outperform traditional AI tools in dementia diagnosis? Maybe, but not today' explores the potential of LLMs like GPT-4 in diagnosing dementia. While GPT-4 does show potential, it currently does not surpass traditional AI tools in this field.

2. **Legal Summarisation and Evaluation**: A novel legal summarisation evaluation framework that utilises GPT-4 has been proposed in 'Question-Answering Approach to Evaluate Legal Summaries'. GPT-4 generates a set of question-answer pairs, then generates answers based on the generated summary.

3. **Data Analysis**: The paper titled 'Is GPT-4 a Good Data Analyst?' poses and explores this question. GPT-4 is compared to professional human data analysts and found to achieve comparable performance in end-to-end data analysis.

4. **Neural Architecture Search**: The paper 'Graph Neural Architecture Search with GPT-4' proposed a GPT-4 based Graph Neural Architecture Search method, which used GPT-4 to guide the generation of graph neural architectures.

5. **Math Word Problems**: One paper titled 'Solving Challenging Math Word Problems Using GPT-4 Code Interpreter with Code-based Self-Verification' used GPT-4 to solve math problems and found that GPT-4's success in this field can be attributed to its ability to generate and execute code, and verify its output.

These potential applications can provide direct guidance on specific software product ideas. For example, a software product could be developed for legal firms to help them create and evaluate their legal summaries, or for medical professionals to assist in diagnosing dementia. Additionally, these studies suggest potential for further research on the capabilities and limitations of GPT-4 in these and other application domains.

--------------------------------------------------------------------------------
(venv) jin@jini:~/work/AutoGen$ 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다