부본 ChatDev : 소프트웨어 개발을 위한 의사소통 에이전트 - Unite.AI
Rescale 미팅 예약

인공 지능

ChatDev : 소프트웨어 개발을 위한 의사소통 에이전트

mm
업데이트 on
ChatDev : AI 지원 소프트웨어 개발

소프트웨어 개발 산업은 복잡한 의사결정 전략을 특징으로 하는 상담과 직관 모두에 의존하는 경우가 많은 분야입니다. 또한 소프트웨어의 개발, 유지 관리 및 운영에는 규율 있고 체계적인 접근 방식이 필요합니다. 소프트웨어 개발자가 문제의 복잡성에 따라 상담보다는 직관에 따라 결정을 내리는 것이 일반적입니다. 소프트웨어의 효율성과 개발 비용 절감 등 소프트웨어 엔지니어링의 효율성을 높이기 위한 노력의 일환으로 과학자들은 소프트웨어 개발 프로세스 내에서 다양한 작업을 처리하기 위해 딥러닝 기반 프레임워크의 사용을 모색하고 있습니다. 최근 딥 러닝과 AI 분야의 발전과 발전으로 개발자들은 소프트웨어 개발 프로세스와 관행을 변화시킬 수 있는 방법을 모색하고 있습니다. 그들은 소프트웨어 개발 프로세스의 다양한 단계에서 구현된 정교한 디자인을 사용하여 이를 수행하고 있습니다.

오늘은 소프트웨어 개발 분야에 혁명을 일으키는 것을 목표로 하는 LLM(대형 언어 모델) 기반의 혁신적인 접근 방식인 ChatDev에 대해 논의하겠습니다. 이 패러다임은 개발 프로세스의 각 단계에서 특수 모델의 필요성을 없애려고 합니다. ChatDev 프레임워크는 LLM 프레임워크의 기능을 활용하고 자연어 통신을 활용하여 핵심 소프트웨어 개발 프로세스를 통합하고 간소화합니다.

이 기사에서는 소프트웨어 개발을 전문으로 하는 가상 기반 회사인 ChatDev에 대해 살펴보겠습니다. ChatDev는 폭포 모델을 채택하고 소프트웨어 개발 프로세스를 XNUMX가지 기본 단계로 꼼꼼하게 나눕니다.

  1. 설계. 
  2. 코딩. 
  3. 테스트. 
  4. 선적 서류 비치. 

이러한 각 단계에서는 원활한 워크플로를 생성하는 대화를 사용하여 서로 협력하는 코드 프로그래머 또는 테스터와 같은 가상 에이전트 팀을 배포합니다. 채팅 체인은 촉진자 역할을 하며 개발 프로세스의 각 단계를 원자적인 하위 작업으로 나누어 이중 역할을 가능하게 하며 개발자가 지정된 하위 작업을 효과적으로 해결할 수 있도록 하는 상황 인식 통신을 사용하여 솔루션 제안 및 검증을 허용합니다. 

ChatDev : AI 지원 소프트웨어 개발

ChatDev의 도구 분석은 ChatDev 프레임워크가 소프트웨어 개발 프로세스를 완료하는 데 매우 효과적일 뿐만 아니라 비용 효율적일 뿐만 아니라 전체 소프트웨어 개발 프로세스를 XNUMX달러 미만으로 완료한다는 사실을 보여줍니다. 또한 프레임워크는 잠재적인 취약점을 식별할 뿐만 아니라 완화하고, 잠재적인 환각을 수정하는 동시에 높은 효율성과 비용 효율성을 유지합니다. 

ChatDev: LLM 기반 소프트웨어 개발 소개

전통적으로 소프트웨어 개발 산업은 애플리케이션 개발뿐만 아니라 유지 관리 및 운영에 대한 규율 있고 체계적인 접근 방식을 기반으로 구축된 산업입니다. 전통적으로 일반적인 소프트웨어 개발 프로세스는 조직 내 조정, 작업 할당, 코드 작성 등 개발 프로세스에 관련된 여러 역할이 있기 때문에 개발 주기가 길고 복잡하며 시간이 많이 걸리는 세심한 프로세스입니다. 테스트하고 마지막으로 문서화합니다. 

지난 몇 년 동안의 도움으로 LLM 또는 대규모 언어 모델, AI 커뮤니티는 컴퓨터 비전 및 자연어 처리 분야에서 중요한 이정표를 달성했으며 "다음 단어 예측" 패러다임에 대한 교육에 이어 대형 언어 모델은 다양한 다운스트림 작업에서 효율적인 성능을 반환하는 능력을 잘 보여주었습니다. 기계 번역, 질문 응답, 코드 생성 등이 있습니다. 

대규모 언어 모델은 전체 소프트웨어에 대한 코드를 작성할 수 있지만 다음과 같은 큰 단점이 있습니다. 코드 환각이는 자연어 처리 프레임워크가 직면하는 환각과 매우 유사합니다. 코드 환각에는 발견되지 않은 버그, 종속성 누락, 불완전한 함수 구현과 같은 문제가 포함될 수 있습니다. 코드 환각에는 두 가지 주요 원인이 있습니다. 

  • 작업 사양 부족: 단일 단계로 소프트웨어 코드를 생성할 때 작업의 구체적인 내용을 정의하지 않으면 LLM을 사용자 요구 사항 분석이나 선호하는 프로그래밍 언어 선택과 같은 소프트웨어 개발 프로세스의 작업으로 혼동하게 되어 종종 안내적 사고를 제공하는데, 이는 높은 수준에서 누락된 것입니다. 이러한 LLM이 처리하는 수준의 작업입니다. 
  • 교차심사 부족 : 특히 의사결정 과정에서 교차 검토가 수행되지 않으면 심각한 위험이 발생합니다. 

ChatDev는 이러한 문제를 해결하고 폭포수 모델을 구축하고 소프트웨어 개발 프로세스를 XNUMX가지 기본 프로세스로 세심하게 나누는 소프트웨어 개발을 위한 가상 기반 회사를 ​​만들어 최첨단 및 효과적인 소프트웨어 애플리케이션을 만들 수 있는 힘으로 LLM을 촉진하는 것을 목표로 합니다. 단계,

  1. 설계. 
  2. 코딩. 
  3. 테스트. 
  4. 선적 서류 비치. 

이러한 각 단계에서는 원활한 워크플로를 생성하는 대화를 사용하여 서로 협력하는 코드 프로그래머 또는 테스터와 같은 가상 에이전트 팀을 배포합니다. 또한 ChatDev는 촉진자 역할을 하는 채팅 체인을 사용하고 개발 프로세스의 각 단계를 원자성 하위 작업으로 분류하여 이중 역할을 가능하게 하며 개발자가 효과적으로 작업할 수 있도록 하는 상황 인식 통신을 사용하여 솔루션 제안 및 검증을 허용합니다. 지정된 하위 작업을 해결합니다. 채팅 체인은 모든 개별 노드가 특정 하위 작업을 나타내는 여러 노드로 구성되며, 이 두 역할은 솔루션을 제안할 뿐만 아니라 검증하기 위해 다단계 상황 인식 토론에 참여합니다. 

이 접근 방식에서 ChatDev 프레임워크는 먼저 클라이언트의 요구 사항을 분석하고, 창의적인 아이디어를 생성하고, 프로토타입 시스템을 설계 및 구현하고, 잠재적인 문제를 식별 및 해결하고, 매력적인 그래픽을 만들고, 디버그 정보를 설명하고, 사용자 매뉴얼을 생성합니다. 마지막으로 ChatDev 프레임워크는 소스 코드, 사용자 매뉴얼, 종속성 환경 사양과 함께 소프트웨어를 사용자에게 제공합니다. 

ChatDev : 아키텍처 및 작업

이제 ChatDev에 대한 간략한 소개를 마쳤으므로 Chat Chain을 시작으로 ChatDev 프레임워크의 아키텍처와 작동을 살펴보겠습니다. 

채팅 체인

이전 섹션에서 언급했듯이 ChatDev 프레임워크는 소프트웨어 개발 프로세스를 설계, 코딩, 테스트 및 문서화를 포함한 XNUMX단계로 나누는 폭포수 방식을 사용합니다. 이러한 각 단계는 개발 프로세스에서 고유한 역할을 갖고 있으며, 단계 사이의 효과적인 의사소통이 필요하며, 참여할 개인을 식별하고 상호 작용 순서를 결정할 때 직면할 수 있는 잠재적인 어려움이 있습니다. 

이 문제를 해결하기 위해 ChatDev 프레임워크는 각 단계를 아원자 채팅으로 나누는 일반화된 아키텍처인 채팅 체인을 사용하며, 이러한 각 단계는 이중 역할을 포함하는 작업 중심 역할 수행에 중점을 둡니다. 채팅에 대해 원하는 출력은 대상 소프트웨어의 필수 구성 요소를 형성하며 이는 개발 프로세스에 참여하는 에이전트 간의 협업 및 지침 교환의 결과로 달성됩니다. 중간 작업 해결을 위한 채팅 체인 패러다임은 아래 이미지에 설명되어 있습니다. 

모든 개별 채팅에 대해 강사는 먼저 지침을 시작한 다음 작업 완료를 위해 대화를 안내합니다. 그 동안 보조자는 강사의 지침을 따르고 이상적인 솔루션을 제공하며 타당성에 대해 토론합니다. 솔루션의. 그런 다음 강사와 에이전트는 합의에 도달할 때까지 여러 차례 대화에 참여하고 작업이 성공적으로 완료되었다고 간주합니다. 체인 체인은 사용자에게 개발 프로세스에 대한 투명한 보기를 제공하고 의사 결정 경로를 밝히며 오류가 발생할 때 디버깅할 수 있는 기회를 제공하여 최종 사용자가 오류를 분석 및 진단하고 중간 출력을 검사할 수 있도록 합니다. 필요하다고 판단되면 그 과정에 개입합니다. 채팅 체인을 통합함으로써 ChatDev 프레임워크는 에이전트 간의 효과적인 협업을 촉진할 뿐만 아니라 필요한 결과를 빠르게 얻을 수 있는 세부적인 규모로 각 특정 하위 작업에 집중할 수 있습니다. 

설계

디자인 단계에서 ChatDev 프레임워크는 인간 클라이언트의 입력으로 초기 아이디어를 요구하며 이 단계에는 세 가지 사전 정의된 역할이 있습니다. 

  1. CEO 또는 최고 경영자. 
  2. CPO 또는 최고 제품 책임자. 
  3. CTO 또는 최고 기술 책임자. 

그런 다음 채팅 체인은 설계 단계를 프로그래밍 언어(CTO 및 CEO)와 대상 소프트웨어의 양식(CPO 및 CEO)을 포함하는 순차적인 하위 채팅 작업으로 나누는 역할을 합니다. 설계 단계에는 역할 할당 또는 역할 전문화, 메모리 스트림 및 자기 성찰이라는 세 가지 주요 메커니즘이 포함됩니다. 

역할 할당

Chat Dev 프레임워크의 각 에이전트에는 역할극 프로세스 중에 특수 메시지나 특수 프롬프트를 사용하여 역할이 할당됩니다. 다른 대화형 언어 모델과 달리 ChatDev 프레임워크는 에이전트 간의 역할극 시나리오를 시작하는 것만으로 제한됩니다. 이러한 프롬프트는 대화 전에 상담원에게 역할을 할당하는 데 사용됩니다. 

처음에는 강사가 CEO의 책임을 맡아 대화형 계획에 참여하는 반면, CPO의 책임은 작업을 실행하고 필요한 응답을 제공하는 에이전트가 담당합니다. 프레임워크는 “시작 유도” 상담원이 자신의 역할을 효과적으로 수행할 수 있도록 하는 역할 전문화입니다. 보조자 및 강사 프롬프트는 지정된 역할 및 작업, 종료 기준, 통신 프로토콜 및 무한 루프, 정보가 없는 응답 및 지침 중복과 같은 바람직하지 않은 동작을 방지하는 것을 목표로 하는 여러 제약 조건에 관한 중요한 세부 정보로 구성됩니다. 

메모리 스트림

메모리 스트림은 에이전트의 이전 대화에 대한 포괄적인 대화 기록을 유지하고 발화 인식 방식으로 이어지는 의사 결정 프로세스를 지원하는 ChatDev 프레임워크에서 사용하는 메커니즘입니다. ChatDev 프레임워크는 프롬프트를 사용하여 필요한 통신 프로토콜을 설정합니다. 예를 들어, 관련 당사자가 합의에 도달하면 다음과 같은 특정 형식 요구 사항을 충족하는 종료 메시지( : 데스크탑 애플리케이션”). 지정된 형식을 준수하는지 확인하기 위해 프레임워크는 지속적으로 모니터링하고 최종적으로 현재 대화가 결론에 도달하도록 허용합니다. 

자기 반성

ChatDev 프레임워크의 개발자는 관련된 두 당사자가 상호 합의에 도달했지만 사전 정의된 통신 프로토콜이 실행되지 않는 상황을 관찰했습니다. 이러한 문제를 해결하기 위해, ChatDev 프레임워크는 자기 성찰 메커니즘을 도입합니다. 기억을 검색하고 추출하는 데 도움이 됩니다. 자기 성찰 메커니즘을 구현하기 위해 ChatDev 프레임워크는 "의사 자기"를 새로운 질문자로 등록하여 새롭고 신선한 채팅을 시작합니다. "의사 자기"는 이전 대화 및 역사적 기록을 분석하고 현재 조수에게 알리며 아래 그림과 같이 결정적이고 조치할 가치가 있는 정보의 요약을 요청합니다. 

자조 메커니즘의 도움으로 ChatDev 보조자는 제안한 결정을 반영하고 분석하도록 권장됩니다. 

코딩

코딩 단계에는 CTO, 프로그래머, 아트 디자이너라는 세 가지 사전 정의된 역할이 있습니다. 평소와 같이 채팅 체인 메커니즘은 코딩 단계를 코드 생성(프로그래머 및 CTO)과 같은 개별 하위 작업으로 나누거나 GUI를 고안합니다. 또는 그래픽 사용자 인터페이스(프로그래머 및 디자이너). 그런 다음 CTO는 프로그래머에게 마크다운 형식을 사용하여 소프트웨어 시스템을 구현하도록 지시하고, 그에 따라 아트 디자이너는 전통적인 텍스트 기반 명령에 의존하는 대신 그래픽 아이콘을 사용하여 사용자와 상호 작용하는 사용자 친화적이고 대화형 GUI를 제안합니다. 

코드 관리

ChatDev 프레임워크는 Python, Java 및 C++와 같은 객체 지향 프로그래밍 언어를 사용하여 복잡한 소프트웨어 시스템을 처리합니다. 이러한 프로그래밍 언어의 모듈성은 문제 해결뿐만 아니라 공동 개발에도 도움이 되는 자체 포함 객체의 사용을 가능하게 하기 때문입니다. , 또한 상속 개념을 통해 객체를 재사용하여 중복성을 제거하는 데 도움이 됩니다. 

사고 지침

전통적인 질문 답변 방법은 관련 없는 정보로 이어지는 경우가 많으며, 특히 코드를 생성할 때 순진한 지침을 제공하면 LLM 환각으로 이어질 수 있으며 이는 어려운 문제가 될 수 있습니다. 이 문제를 해결하기 위해 ChatDev 프레임워크는 일련의 사고 프롬프트에서 영감을 얻는 "사고 지침" 메커니즘을 도입합니다. "사고 지침" 메커니즘은 순차적이고 체계적인 방식으로 작업을 해결하는 것과 유사하게 지침에 포함된 개별 문제 해결 생각을 명시적으로 다룹니다. 

지원

첫 번째 시도에서 오류 없는 코드를 작성하는 것은 어려운 일일 뿐만 아니라 LLM, 그러나 인간 프로그래머의 경우에도 프로그래머는 잘못된 코드를 완전히 버리는 것이 아니라 코드를 분석하여 오류를 식별하고 수정합니다. ChatDev 프레임워크의 테스트 단계는 프로그래머, 테스터 및 검토자의 세 가지 역할로 나뉩니다. 테스트 프로세스는 두 가지 순차적인 하위 작업으로 더 나뉩니다. 동료 검토 또는 정적 디버깅 (리뷰어 및 프로그래머) 시스템 테스트 또는 동적 디버깅 (프로그래머 및 테스터). 정적 디버깅 또는 피어 리뷰는 소스 코드를 분석하여 오류를 식별하는 반면, 동적 디버깅 또는 시스템 테스트는 프로그래머가 인터프리터를 사용하여 수행하는 다양한 테스트를 통해 소프트웨어의 실행을 확인합니다. 동적 디버깅은 주로 애플리케이션을 평가하기 위한 블랙박스 테스트에 중점을 둡니다. 

문서

ChatDev 프레임워크는 설계, 코딩 및 테스트 단계를 마친 후 CEO, CTO, CPO 및 프로그래머라는 XNUMX명의 에이전트를 고용하여 소프트웨어 프로젝트에 대한 문서를 생성합니다. ChatDev 프레임워크는 LLM을 사용하여 상황에 맞는 예제가 포함된 몇 번의 프롬프트를 활용하여 문서를 생성합니다. CTO는 프로그래머에게 환경 종속성 구성에 대한 지침을 제공하고 "종속성 요구사항.txt"와 같은 문서를 생성하도록 지시합니다. 동시에 CEO는 요구사항과 시스템 설계를 CPO에게 전달하여 제품에 대한 사용자 매뉴얼을 작성합니다. 

결과

소프트웨어 통계

ChatDev 프레임워크의 성능을 분석하려면, 개발자 팀은 소비된 토큰, 전체 대화 차례, 이미지 자산, 소프트웨어 파일, 버전 업데이트 등을 포함한 몇 가지 주요 측정 항목을 기반으로 프레임워크에서 생성된 소프트웨어 애플리케이션에 대한 통계 분석을 실행했으며 그 결과는 다음과 같습니다. 아래 표에 설명되어 있습니다. 

기간 분석

다양한 요청 프롬프트에 대한 ChatDev의 소프트웨어 제작 시간을 조사하기 위해 개발자는 기간 분석도 수행했으며, 다양한 프롬프트에 대한 개발 시간의 차이는 할당된 작업의 다양한 명확성과 복잡성을 반영하며 그 결과는 아래 그림에 나와 있습니다. . 

사례 연구

다음 그림은 ChatDev가 Five in a Row 또는 Gomoku 게임을 개발하는 것을 보여줍니다. 

가장 왼쪽 그림은 GUI를 사용하지 않고 프레임워크로 생성된 기본 소프트웨어를 보여줍니다. 분명히 알 수 있듯이 GUI가 없는 애플리케이션은 제한된 상호작용성을 제공하며 사용자는 명령 터미널을 통해서만 이 게임을 플레이할 수 있습니다. 다음 그림은 GUI를 사용하여 제작된 시각적으로 더욱 매력적인 게임을 보여 주며, 사용자가 훨씬 더 즐길 수 있는 매력적인 게임 플레이 환경을 위해 더 나은 사용자 경험과 향상된 상호 작용을 제공합니다. 그런 다음 디자이너 에이전트는 기능에 영향을 주지 않고 게임플레이의 유용성과 미학을 더욱 향상시키기 위해 추가 그래픽을 만듭니다. 그러나 인간 사용자가 디자이너가 생성한 이미지에 만족하지 않으면 ChatDev 프레임워크가 소프트웨어를 완성한 후 이미지를 교체할 수 있습니다. 이미지를 수동으로 교체하기 위해 ChatDev 프레임워크가 제공하는 유연성을 통해 사용자는 어떤 방식으로든 소프트웨어 기능에 영향을 주지 않고 향상된 상호 작용 및 사용자 경험을 위해 자신의 선호도에 따라 응용 프로그램을 사용자 정의할 수 있습니다. 

최종 생각

이 기사에서는 ChatDev에 대해 이야기했습니다. LLM 또는 대규모 언어 모델 개발 프로세스의 각 단계에서 특수 모델에 대한 요구 사항을 제거하여 소프트웨어 개발 분야에 혁명을 일으키는 것을 목표로 하는 혁신적인 패러다임을 기반으로 합니다. ChatDev 프레임워크는 자연어 통신을 사용하여 핵심 소프트웨어 개발 프로세스를 통합하고 간소화함으로써 LLM 프레임워크의 기능을 활용하는 것을 목표로 합니다. ChatDev 프레임워크는 채팅 체인 메커니즘을 사용하여 소프트웨어 개발 프로세스를 순차적인 하위 작업으로 나누어 세분화된 집중을 가능하게 하고 모든 하위 작업에 대해 원하는 출력을 촉진합니다. 

"직업은 엔지니어, 마음은 작가". Kunal은 AI와 ML에 대한 깊은 애정과 이해를 가진 기술 작가로, 매력적이고 유익한 문서를 통해 이 분야의 복잡한 개념을 단순화하는 데 전념하고 있습니다.