소프트웨어 엔지니어링 분야의 인텔리전스: 연구, 현황 및 전망

AI 기술 자료12개월 전 업데이트 AI 공유 서클
8.6K 00

원본: https://arxiv.org/abs/2409.09030

초록

최근 몇 년 동안 대규모 언어 모델(LLM)은 괄목할 만한 성공을 거두며 다양한 다운스트림 작업, 특히 소프트웨어 엔지니어링(SE) 영역의 작업에서 널리 사용되고 있습니다. LLM과 SE를 결합한 많은 연구에서 명시적 또는 암묵적으로 인텔리전스 개념이 채택되고 있습니다. 그러나 기존 연구의 발전 계보를 정리하고, 기존 연구가 어떻게 LLM 기반 지능체 기술을 결합하여 다양한 유형의 작업을 최적화하는지 분석하며, SE에서 LLM 기반 지능체의 틀을 명확히 하는 심층적인 연구 논문이 부족합니다. 이 백서에서는 LLM 지능과 SE를 결합하는 연구에 대한 첫 번째 조사를 발표하고 지각, 기억, 행동의 세 가지 핵심 모듈을 포함하는 SE의 LLM 지능 프레임워크를 제안합니다. 또한 두 영역을 결합하는 데 있어 현재 직면한 과제를 요약하고 이를 해결할 수 있는 향후 기회를 제안합니다. 관련 논문은 GitHub 리포지토리에 보관되어 있습니다:https://github.com/DeepSoftwareAnalytics/Awesome-Agent4SE.

1 소개

최근 몇 년 동안 LLM(대규모 언어 모델)은 괄목할 만한 성공을 거두며 많은 다운스트림 작업, 특히 소프트웨어 엔지니어링(SE) 분야의 다양한 작업에서 널리 사용되고 있습니다. Zheng et al.코드에 요약된 대로 아메드 외. (2024); Sun et al.2023b); 할다르와 호켄마이어(2024); Mao et al.2024); Guo et al.2023); Wang et al.2021), 코드 생성 장 외. (2023a); Hu et al.2024b); Yang et al.2023a); Tian과 Chen(2023); Li et al.2023e); Wang et al.2024b), 코드 번역 판 외(2024), 취약점 탐지 및 수정 Zhou et al.2024); 이슬람과 나자피라드(2024); 드 피테로-도밍게즈 외. (2024); Le et al.2024); Liu et al.2024b); Chen et al.2023a) 등 LLM과 SE를 결합한 많은 연구에서 명시적 또는 암시적으로 인공 지능의 개념이 도입되었습니다. 명시적 사용은 논문에서 직접적으로 이해 가능성과 관련된 기술의 적용을 언급하는 반면, 암시적 사용은 이해 가능성의 개념을 사용하지만 다른 용어를 사용하거나 다른 형태로 제시할 수 있음을 의미합니다.

인텔리전트 왕 외. (2024c)는 지각, 추론, 행동 수행이 가능한 지능형 개체를 의미합니다. 환경 상태를 감지하고 목표와 설계에 따라 행동을 선택하여 특정 성능 지표를 극대화함으로써 다양한 작업과 목표를 달성하는 데 중요한 기술적 기반 역할을 합니다. 일반적으로 LLM 기반 인텔리전스는 언어 이해 및 생성, 학습 및 추론, 상황 인식 및 기억, 멀티모달 등 LLM의 강력한 기능을 활용하여 자동화, 지능형 제어, 인간과 컴퓨터의 상호작용과 같은 시나리오에서 탁월한 인지적 핵심으로 활용됩니다. 다양한 분야의 발전과 함께 전통적 지능과 LLM 기반 지능의 개념이 점차 명확해지고 자연어 처리(NLP) 분야에서 널리 사용되고 있습니다(Xi et al.(2023). 그러나 기존 작업에서 이 개념을 명시적 또는 암묵적으로 SE에 사용하고 있지만, 지능체에 대한 명확한 정의는 아직 없습니다. 기존 작업이 다양한 작업을 최적화하기 위해 지능체 기술을 어떻게 통합하는지 분석하고, 기존 작업의 발전 계보를 정리하며, SE에서 지능체의 틀을 명확히 하기 위한 심층적인 연구 논문이 부족합니다.

이 백서에서는 대규모 언어 모델(LLM) 기반 에이전트와 소프트웨어 엔지니어링(SE)의 결합에 관한 연구를 심층 분석하고, 이 두 가지를 결합할 때 직면하는 현재 과제를 요약하며, 기존 과제에 대응하여 향후 연구할 수 있는 기회를 제시합니다. 구체적으로는 먼저 SE에서 LLM 기반 에이전트 기술 적용과 관련된 논문을 수집하여 필터링 및 품질 평가를 거쳐 115개의 논문을 확보했습니다. 그런 다음, 전통적인 에이전트 정의(Wang et al.2024cXi et al.2023), SE에서 LLM 기반 에이전트에 대한 일반적인 개념적 프레임워크를 제시합니다( 2개 섹션), 지각, 기억, 행동의 세 가지 핵심 구성 요소를 포함합니다. 먼저 지각 모듈을 소개합니다(섹션 2.1 섹션), 이 모듈은 텍스트 입력, 시각 입력, 청각 입력 등 다양한 양식의 입력을 처리할 수 있습니다. 다음으로 메모리 모듈을 소개합니다( 2.2 섹션), 이 모듈에는 시맨틱 메모리, 플롯 메모리 및 절차 메모리가 포함되어 있어 에이전트가 합리적인 결정을 내릴 수 있도록 도와줍니다. 마지막으로 액션 모듈을 소개합니다(섹션 2.3 섹션), 이 모듈에는 추론, 검색 및 학습과 같은 내부 작업과 환경과의 상호 작용과 같은 외부 작업이 포함됩니다.

그런 다음 SE에서 LLM 기반 에이전트의 과제와 기회에 대해 자세히 설명합니다( 3가지 섹션). 특히, 현재 SE의 당면 과제를 해결하기 위해 LLM 에이전트를 위한 다음과 같은 향후 연구 기회를 제안합니다:

  • 기존 연구의 대부분은 주로 토큰 기반 텍스트 입력 인식 모듈을 탐구하는 반면, 다른 양식에 대한 탐구는 부족합니다.
  • 많은 새로운 업무가 LLM 학습의 범위를 벗어난 채 남아 있으며, SE 영역의 복잡한 업무에는 여러 기능을 갖춘 에이전트가 필요합니다. 따라서 LLM 기반 에이전트가 어떻게 새로운 역할을 수행하고 여러 역할의 기능을 효과적으로 균형 있게 수행할 수 있는지 탐구하는 것이 중요합니다.
  • SE 도메인에는 외부 검색의 기초가 되는 풍부한 코드 관련 지식이 포함된 권위 있고 공인된 지식창고가 없습니다.
  • LLM 에이전트의 착시 현상을 완화하면 에이전트의 전반적인 성능이 향상되고, 에이전트 최적화를 통해 LLM 에이전트 착시 현상도 완화됩니다.
  • 다중 에이전트 협업 프로세스에는 다양한 정보의 동기화 및 공유로 인해 상당한 컴퓨팅 리소스와 추가적인 커뮤니케이션 오버헤드가 필요합니다. 멀티 에이전트 협업의 효율성을 개선하기 위한 기술을 탐구하는 것도 향후 작업의 기회입니다.
  • SE 분야의 기술도 에이전트 분야의 발전에 기여할 수 있으며, 앞으로 SE 분야의 첨단 기술을 에이전트에 접목하고 에이전트와 SE 분야의 발전을 촉진하는 방법을 모색하기 위해 더 많은 연구가 필요합니다.

또한 SE의 기술, 특히 코드와 관련된 기술은 에이전트 분야도 발전시킬 수 있어 서로 다른 두 분야가 상호 보완적인 관계를 맺고 있음을 보여줍니다. 그러나 SE 기술을 에이전트에 적용한 연구는 거의 없으며, 함수 호출, HTTP 요청 및 기타 도구와 같은 SE의 단순한 기본 기술에 초점을 맞춘 연구도 여전히 많습니다. 따라서 이 백서에서는 SE 분야에서 에이전트 관련 작업에 중점을 두고 섹션 3.6 섹션상담원에게 SE 기법을 적용하는 것은 향후 연구를 위한 기회로 간략하게 논의합니다.

软件工程中的智能体:调研、现状与展望

2 대규모 언어 모델(LLM) 기반 SE 에이전트

데이터 수집 기간 동안 얻은 연구 결과를 취합하고 분석한 후 대규모 언어 모델(LLM)에 기반한 소프트웨어 엔지니어링(SE) 에이전트 프레임워크를 제안합니다. 그림에서 볼 수 있듯이 2 에서 볼 수 있듯이 단일 에이전트에는 인식, 기억, 행동의 세 가지 핵심 모듈이 포함되어 있습니다. 구체적으로 인식 모듈은 외부 환경으로부터 멀티모달 정보를 수신하여 LLM이 이해하고 처리할 수 있는 입력 형태로 변환합니다. 액션 모듈에는 내부 및 외부 액션이 포함되며, 각각 LLM의 입력을 기반으로 의사 결정을 추론하고 외부 환경과의 상호 작용에서 얻은 피드백을 기반으로 의사 결정을 최적화하는 역할을 담당합니다. 메모리 모듈에는 의미적, 상황적, 절차적 메모리가 포함되어 있어 LLM이 합리적인 결정을 내리는 데 도움이 되는 유용한 정보를 추가로 제공할 수 있습니다. 또한 액션 모듈은 추론 및 검색 작업에 보다 효과적인 메모리 정보를 제공하기 위해 액션을 학습하여 메모리 모듈의 다른 메모리를 업데이트할 수 있습니다. 또한 다중 에이전트 협업은 작업의 일부를 담당하는 여러 단일 에이전트로 구성되며, 협업 협업을 통해 작업을 완료하기 위해 함께 작업합니다. 이 섹션에서는 LLM 기반 SE 에이전트 프레임워크의 각 모듈에 대해 자세히 설명합니다.

软件工程中的智能体:调研、现状与展望

그림 2: SE의 에이전트 프레임워크 개요.

2.1 인식

지각 모듈은 LLM 기반 에이전트를 외부 환경에 연결하고 외부 입력 처리의 중심이 됩니다. 이 모듈은 텍스트, 시각 및 청각 입력과 같은 다양한 모달 입력을 처리하고 이를 LLM 에이전트가 이해하고 처리할 수 있는 임베디드 형식으로 변환하여 LLM 에이전트의 추론 및 의사 결정 동작의 토대를 마련합니다. 다음으로, 지각 모듈의 다양한 모달 입력에 대한 세부 사항을 소개합니다.

2.1.1 텍스트 입력

코드의 특성을 고려하는 자연어 처리(NLP)의 텍스트 입력 형식과 달리 SE의 텍스트 입력 형식에는 다음과 같은 텍스트가 포함됩니다. 토큰 입력, 트리/그래프 기반 입력, 하이브리드 입력을 지원합니다.

토큰 기반 입력. 토큰 기반 입력(Ahmed et al. 2024Al-Kaswan et al. 2023Arakelyan et al. 2023Beurer-Kellner et al. 2023:: 알카르니와 아짐. 2022Li et al. 2022bGu et al. 2022Du et al. 2021)는 코드를 자연어 텍스트로 직접 취급하고 코드의 속성을 무시한 채 토큰 시퀀스를 LLM에 대한 입력으로 직접 사용하는 가장 일반적인 입력 방식입니다.

트리/다이어그램 기반 입력. 자연어와 달리 코드는 엄격한 구조적, 구문적 규칙이 있으며 일반적으로 특정 프로그래밍 언어의 구문에 따라 작성됩니다. 이러한 코드의 특성에 따라 트리/그래프 기반 입력(Ma et al. 2023baZhang et al. 2023g:: Ochs et al. 2023Bi et al. 2024Shi et al. 2023a2021왕과 리. 2021)는 코드를 추상 구문 트리와 같은 트리 구조 또는 제어 흐름 그래프와 같은 그래프 구조로 변환하여 코드에 대한 구조화된 정보를 모델링할 수 있습니다. 그러나 현재 LLM 기반 SE 에이전트와 관련된 작업에서는 이러한 방식을 탐색하지 않았기 때문에 도전 과제와 기회가 동시에 존재합니다.

하이브리드 입력. 혼합 입력(Niu et al. 2022Hu et al. 2024aGuo et al. 2022)는 여러 양식을 결합하여 다양한 유형의 정보를 LLM에 제공합니다. 예를 들어, 하이브리드 토큰 기반 및 트리 기반 입력을 포함하면 코드에 대한 의미 및 구조 정보를 결합하여 코드의 모델링과 이해를 개선할 수 있습니다. 그러나 SE의 LLM 기반 에이전트와 관련된 작업에서는 아직 이 방식에 대한 탐색이 이루어지지 않았습니다.

2.1.2 시각적 입력

시각적 입력은 UI 스케치나 UML 디자인 다이어그램과 같은 시각적 이미지 데이터를 모달 입력으로 사용하고 이미지를 모델링 및 분석하여 추론적 의사 결정을 내리는 방식입니다. 많은 NLP 관련 연구에서 이 방식을 탐구합니다. 예를 들어, Driess 등(2023)는 시각적 연속 상태 추정과 텍스트 입력 인코딩이 결합된 멀티모달 문장을 입력으로 하는 구체화된 멀티모달 언어 모델인 PaLM-E를 제안합니다. 전통적인 소프트웨어 엔지니어링 영역에도 UI 코드 검색과 같은 시각적 입력 작업이 있습니다(Behrang et al.2018Reiss et al.2014Xie et al.2019), UI 스케치를 쿼리로 사용하여 유용한 코드 스니펫을 찾습니다. 그러나 LLM에 대한 입력으로 시각적 모델링에 대한 작업은 여전히 적습니다.

2.1.3 청각 입력

청각 입력은 오디오와 같은 청각 데이터를 입력으로 사용하여 음성 형태로 LLM과 상호 작용합니다. 전통적인 소프트웨어 엔지니어링 영역에는 비디오 검색 프로그래밍과 같은 청각 입력 작업이 있습니다(Bao et al.2020), 유용한 코드 스니펫의 소스로 비디오를 사용합니다. 그러나 LLM의 청각 입력과 관련된 작업도 상대적으로 부족합니다.

2.2 메모리

메모리 모듈에는 의미적 메모리, 상황적 메모리, 절차적 메모리가 포함되며, 이는 LLM이 합리적인 결정을 내리는 데 도움이 되는 유용한 정보를 추가로 제공할 수 있습니다. 이제 이 세 가지 메모리 유형 각각에 대해 자세히 소개하겠습니다.

2.2.1 시맨틱 메모리

시맨틱 메모리는 일반적으로 문서, 라이브러리, API 또는 기타 지식을 포함하는 외부 지식 검색 저장소의 형태로 LLM 에이전트의 인식된 세계 지식을 저장합니다. 많은 연구에서 시맨틱 메모리의 적용을 탐구해 왔습니다(Wang et al.2024bZhang et al.2024에그발리와 프라델.2024Patel et al.2023Zhou et al.2022Ren et al.2023Zhang et al.2023d). 특히 문서와 API는 외부 지식창고에서 가장 흔히 볼 수 있는 정보입니다. 예를 들어, Zhou 외(2022)는 관련 문서 조각을 검색하여 자연어 의도에 따라 문서를 명시적으로 활용하는 새로운 자연어-코드 생성 방법인 DocPrompting을 제안했습니다.Zhang 등. (2024)는 문서, 코드 종속성 및 런타임 환경 정보를 포함하는 코드베이스 수준에서의 코드 생성 전용 CODEAGENTBENCH라는 수동 데이터 정렬 벤치마크를 구축했습니다.Ren et al. (2023)는 API 문서에서 추출한 세분화된 예외 처리 지식을 사용하여 LLM의 코드 생성을 지원하는 새로운 지식 기반 프롬프트 체인 기반 코드 생성 방법인 KPC를 제안했습니다. API는 문서 외에도 외부 지식 베이스의 일반적인 정보이기도 합니다. 예를 들어 에그발리 및 프라델(2024)는 코드 접두사 및 모델의 초기 예측과 관련된 프로젝트별 API 참조를 자동으로 식별하고 이러한 참조에 대한 정보를 힌트에 추가하는 De-Hallucinator라는 LLM 기반 코드 완성 기술을 제안했습니다.Zhang et al.2023d) API 검색 도구를 생성 프로세스에 통합하면 모델이 자동으로 API를 선택하고 검색 도구를 사용하여 제안을 받을 수 있습니다. 또한 일부 연구에서는 다른 정보도 다루었습니다. 예를 들어, Patel 외(2023)는 컨텍스트에 따라 코드를 생성할 때 다양한 LLM의 기능과 한계를 조사했으며, 왕 등(2024b) 향상된 함수와 해당 문서 문자열을 사용하여 선택한 코드 LLM을 미세 조정합니다.

2.2.2 상황 기억

상황 기억은 현재 사례와 관련된 콘텐츠와 이전 의사 결정 과정에서 얻은 경험적 정보를 기록합니다. 현재 사례와 관련된 콘텐츠(예: 검색 데이터베이스에서 찾은 관련 정보, 상황 내 학습(ICL) 기법을 통해 제공되는 샘플 등)는 LLM 추론에 추가 지식을 제공할 수 있으므로 많은 연구에서 이 정보를 LLM 추론 과정에 도입했습니다(Zhong et al.2024Li et al.2023c펑과 첸.2023Ahmed et al.2023Wei et al.2023aRen et al.2023Zhang et al.2023b에그발리와 프라델.2024Shi et al.2022). 예를 들어, Li 등(2023c)는 힌트에서 유사한 프로그램을 예시로 선택하여 대상 코드와 관련된 많은 양의 콘텐츠(예: 알고리즘, API)를 제공하는 새로운 힌트 기술인 AceCoder를 제안했습니다.Feng과 Chen(2023)는 상황 내 학습 기법을 사용하여 오류 보고서를 기반으로 오류를 자동으로 재현하는 교육 및 하드코딩이 필요 없는 경량 접근 방식인 AdbGPT를 제안했습니다.Ahmed 외. (2023)은 의미론적 사실을 포함하면 LLM이 코드 요약 작업의 성능을 향상시키는 데 도움이 될 수 있다는 사실을 발견했습니다.Wei 등. (2023a)는 다중 라운드 자동 코드 편집 설정에서 동일한 코드베이스의 최근 변경 사항을 기반으로 코드 영역에 대한 편집을 예측하는 Coeditor라는 새로운 모델을 제안합니다. 또한 과거 상호작용 정보와 같은 경험적 정보를 도입하면 LLM 기반 에이전트가 컨텍스트를 더 잘 이해하고 올바른 결정을 내리는 데 도움이 될 수 있습니다. 과거의 추론 및 의사 결정 과정에서 얻은 경험적 정보를 사용하여 반복적으로 쿼리하고 답변을 수정함으로써 보다 정확한 답변을 얻는 작업도 있습니다. 예를 들어 Ren 등(2023)는 반복적인 검사-재작성 단계를 통해 코드 생성을 AI 체인으로 분해하는 지식 기반 프롬프트 체인 기반 코드 생성 접근 방식인 KPC를 제안했습니다.Zhang 등. (2023b)는 반복적인 검색 생성 파이프라인에서 코드 완성을 위해 코드베이스 수준 정보를 효율적으로 활용하는 간단하고 다재다능하며 효과적인 프레임워크인 RepoCoder를 제안했습니다.Eghbali와 Pradel(2024)는 힌트의 문맥 정보를 점진적으로 늘리고 쿼리 모델을 반복하여 예측의 정확도를 높여 적합한 API 참조를 검색하는 LLM 기반 코드 완성 기법인 De-Hallucinator를 제안했습니다.

2.2.3 절차적 메모리

소프트웨어 엔지니어링에서 에이전트의 절차적 기억은 대규모 언어 모델(LLM) 가중치에 저장된 암묵적 지식과 에이전트의 코드에 작성된 명시적 지식으로 구성됩니다.

암묵적 지식은 LLM의 파라미터에 저장됩니다. 기존 연구에서는 일반적으로 대량의 데이터를 사용하여 모델을 학습시켜 다양한 다운스트림 작업에 대해 암묵적 지식이 풍부한 새로운 LLM을 제안합니다(Zheng et al. (2023)는 소속 유형(기업, 대학, 연구팀 및 오픈소스 커뮤니티, 개인 및 익명 기여자 등)에 따라 SE 도메인의 코드 LLM을 정리했습니다.

명시적 지식 에이전트가 자동으로 실행될 수 있도록 에이전트의 코드에 작성된 지식입니다. 여러 저작물, Patel 외. (2023); Shin et al.2023); Zhang et al.2023a)는 에이전트 코드를 구성하는 다양한 방법을 탐구했습니다. 특히 Patel 등(2023)는 데모, 설명 및 구현을 포함한 세 가지 유형의 문맥 감독을 사용하여 라이브러리 기능을 지정합니다.Shin et al. (2023)은 세 가지 일반적인 ASE 과제에 대해 미세 조정된 LLM을 사용하여 세 가지 큐 엔지니어링 기법(기본 큐잉, 문맥 학습, 과제별 큐잉)의 효과를 조사했습니다. 장 외. (2023a)를 통해 다양한 큐 디자인(예: 기본 큐, 지원 정보 큐, 연쇄적 사고 큐)의 사용을 탐색했습니다. ChatGPT 소프트웨어 취약점 탐지 수행 성능.

2.3 이동

액션 모듈은 내부 액션과 외부 액션의 두 가지 유형으로 구성됩니다. 외부 액션은 사람/에이전트와의 대화, 디지털 환경과의 상호작용 등 피드백을 얻기 위해 외부 환경과 상호작용하며, 내부 액션은 추론, 검색, 학습 액션 등 LLM의 입력을 기반으로 추론 및 의사 결정을 내리고 얻은 피드백에 따라 의사 결정을 최적화하는 역할을 합니다. 다음은 각 액션에 대해 자세히 설명합니다.

2.3.1 내부 조치

내부 작업에는 추론, 검색 및 학습 작업이 포함됩니다. 이와 별도로 추론 작업은 문제를 분석하고 추론하며 LLM 에이전트의 입력을 기반으로 의사 결정을 내리는 역할을 합니다. 검색 작업은 지식창고에서 관련 정보를 검색하여 추론 작업이 올바른 결정을 내릴 수 있도록 도와줍니다. 반면 학습 액션은 의미론적, 절차적, 상황적 기억을 학습하고 업데이트하여 지식을 지속적으로 학습하고 업데이트함으로써 추론 및 의사 결정의 품질과 효율성을 향상시킵니다.

추론 작업. LLM 에이전트가 작업을 완료하려면 엄격한 추론 프로세스가 필수적이며, 연쇄적 사고(CoT)는 효과적인 추론 방법입니다. CoT의 도움으로 LLM은 문제를 깊이 이해하고 복잡한 작업을 분해하여 고품질의 답변을 생성할 수 있습니다. 그림과 같이 3 앞서 살펴본 바와 같이 기존 연구에서는 단순 CoT/계획, SCoT, 브레인스토밍, 트리 CoT 등 다양한 형태의 CoT를 탐구해 왔습니다. 구체적으로, 단순 CoT/계획은 문제의 추론 과정을 설명하는 프롬프트의 단락입니다. 초기 연구에서는 더 나은 문제 해결을 위한 연쇄적 사고를 유도하기 위해 간단한 문장을 프롬프트에 포함시켰습니다. 예를 들어, Hu et al.2024b'인쇄 디버깅' 방법을 사용하여 LLM 디버깅을 안내하는 컨텍스트 학습 접근 방식이 제안됩니다. LLM 기술이 발전함에 따라 CoT의 설계는 더욱 복잡해지고 있습니다. 개발자가 테스트 시나리오의 실행 가능성을 검증하는 프로세스에서 영감을 얻은 Su 등(2023)는 인간형 지식과 논리적 추론을 추출하기 위해 생각의 사슬(CoT) 추론을 설계했습니다([LLM.Le et al.2023)는 이전 반복에서 생성된 여러 대표 하위 모듈에 의해 안내되는 자체 수정 체인을 생성하는 코드체인이라는 새로운 프레임워크를 제안했습니다.Huang 등(2024)는 실행 중 코드의 구문 오류를 검증하기 위해 테스트 케이스를 생성한 후, 코드 생성의 자가 점검 단계를 통해 체인적 사고와 코드 생성의 자가 점검 과정을 결합하는 CodeCoT를 제안했고, Tian과 Chen(2023)는 새로운 프롬프트 기법을 제시하고, 정교한 사고 유도 프롬프트와 프롬프트 기반 피드백을 설계하며, LLM의 코드 생성 성능을 개선하는 방법을 처음으로 탐구합니다.

이러한 코드의 특성을 고려하여 일부 연구에서는 코드의 구조적 정보를 도입하기 위해 구조화된 CoT(Chain of Thought)를 제안하기도 했습니다. 그림과 같이 3 (b)에서 볼 수 있듯이 구조화된 CoT는 추론 과정을 루프, 분기 및 기타 구조를 포함하는 의사 코드와 유사한 형태로 제시합니다. 예를 들어, Li 등(2023a)는 소스 코드의 풍부한 구조 정보를 효과적으로 활용할 수 있는 구조화된 CoT(SCoT)와 새로운 코드 생성 힌팅 기법인 SCoT 힌팅을 제안했습니다.Christianos 외. (2023)는 추론 구조에 대한 이해를 높이고 구조화된 추론을 AI 지능의 전략에 통합하기 위해 내재적 및 외재적 기능의 구성을 사용하는 일반적인 프레임워크 모델을 제안합니다. 또한 여러 연구에서 그림과 같이 브레인스토밍 및 트리 CoT와 같은 다른 형태의 CoT를 제안했습니다. 3 (c) 및 (d)를 참고하세요. 브레인스토밍은 입력을 기반으로 관련 키워드를 생성하는 것을 기반으로 합니다. 예를 들어, Li 등(2023e)는 브레인스토밍 단계를 활용하여 다양한 아이디어를 생성하고 선택함으로써 코드 생성 전에 알고리즘 추론을 촉진하는 코드 생성을 위한 새로운 브레인스토밍 프레임워크를 제안했습니다. Tree CoT는 Feng과 Chen(2023)를 제안하여 트리의 노드를 완료, 신규, 새로 파생, 보류 등 다양한 상태로 동적으로 탐색하고 업데이트하여 CoT를 업데이트합니다.

또한 여러 연구에서 대규모 언어 모델을 기반으로 지능의 추론 능력과 추론 효율성을 개선하기 위한 다른 기법을 탐구했습니다. 예를 들어, Wang 등(2024a)은 트리거 삽입 및 모델 미세 조정 단계(오프라인)와 도구 통합 코드 생성 단계(온라인)로 구성된 TOOLGEN을 제안했는데, TOOLGEN은 주어진 코드 말뭉치의 향상된 기능을 활용하여 도구의 자동 완성을 트리거할 위치를 추론하고 특수 토큰을 표시합니다.Yang et al.(2023a)는 경량 언어 모델을 사용하여 코드 생성 CoT를 자동으로 생성하는 새로운 방법인 COTTON을 고안했습니다. Zhang et al. (2023c)는 초안 토큰을 생성한 다음 단일 포워드 패스를 통해 원래의 빅그램 모델을 사용하여 이 초안에서 토큰 출력을 검증하는 새로운 추론 방식인 자체 추론 디코딩을 제안했습니다.Zhou 외(2023)는 문제의 난이도에 따라 전략적으로 풀이 전략을 조정하는 적응형 풀이 프레임워크를 도입하여 계산 효율을 높일 뿐만 아니라 전반적인 성능도 향상시킵니다.

软件工程中的智能体:调研、现状与展望

그림 3: 접근 방식에 따른 다양한 CoT, 여기서 (a)는 빅 언어 모델이 단서에 대해 단계별로 사고하도록 하여 얻은 기본 CoT/계획으로, 문제 분석 및 해결 단계에 대한 자세한 프로세스가 포함되어 있습니다. (b)는 코드 기능을 결합하여 다이어그램의 분기 및 반복 구조를 포함하는 코드 프레임워크를 생성하는 구조화된 CoT(SCoT)입니다. 파란색 글꼴의 초록은 SCoT를 기반으로 구체적인 코드를 생성하는 대규모 언어 모델에 대한 설명을 요약한 것입니다. (c)는 문제 설명을 분석하고 알고리즘, 데이터 구조 및 수학 지식을 사용하여 솔루션 아이디어를 제공하는 브레인스토밍의 결과입니다. (d)는 문제를 점진적으로 분해하고 완성하기 위해 CoT를 동적으로 탐색하고 반복적으로 업데이트하는 트리 CoT의 예입니다.

검색 작업. 검색 작업은 지식창고에서 관련 정보를 검색하여 추론 작업이 올바른 결정을 내릴 수 있도록 도와줍니다. 검색에 사용되는 입력과 검색을 통해 얻는 출력 콘텐츠의 유형은 다양합니다. 표에 표시된 대로 1 표시된 것처럼 입력과 출력은 텍스트, 코드 또는 텍스트와 코드가 포함된 혼합 메시지일 수 있습니다. 구체적으로 다음과 같은 카테고리로 분류할 수 있습니다. (1) 텍스트-코드. 일반적으로 요구 사항은 관련 코드를 검색하기 위한 입력으로 사용되거나 API를 사용하여 응답 코드를 생성하기 위해 프롬프트에 추가됩니다. 예를 들어 Zan 등(2022a)는 APIRetriever 및 APICoder 모듈을 포함하는 새로운 프레임워크를 제안합니다. 구체적으로 APIRetriever가 유용한 API를 검색한 다음 APICoder가 검색된 API를 사용하여 코드를 생성합니다. 환각제 이그발리 및 프라델(2024) 힌트를 통해 적절한 API 참조를 검색하고 획득한 힌트를 사용하여 모델을 반복적으로 쿼리합니다. (2) 텍스트-텍스트. 때로는 요구 사항을 입력으로 사용하여 관련 문서 또는 유사한 질문을 검색하여 작업을 완료하는 데 도움을 받기도 합니다. 예를 들어, Zhou 등(2022)은 관련 문서 조각을 검색하여 주어진 NL 의도에 명시적으로 응답하는 자연어-코드 생성 방법인 DocPrompting을 소개했습니다. Zhang et al.(2024)는 코드베이스 수준에서 효율적인 코드 생성을 위해 관련 정보를 검색하는 외부 도구를 통합하고 정보 검색, 코드 기호 탐색 및 코드 테스트를 위한 소프트웨어 아티팩트와의 상호 작용을 지원하는 대규모 언어 모델 기반의 새로운 에이전트 프레임워크인 CodeAgent를 제안합니다. (3) 코드-코드. 코드를 입력으로 사용하여 유사하거나 관련된 코드를 검색하여 대상 코드 생성을 위한 참조를 제공할 수도 있습니다. 예를 들어, 장 외(2023b)는 유사성 기반 코드베이스 수준 정보를 검색하기 위해 반복 검색 생성 프로세스를 사용하는 간단하고 일반적이며 효과적인 프레임워크인 RepoCoder를 제안합니다. (4) 하이브리드 코드. 단일 유형의 정보(예: 텍스트 또는 코드)를 입력으로 사용하여 관련 코드를 검색하는 것 외에도 여러 유형의 정보를 하이브리드 정보로 결합하여 검색 정확도를 향상시킬 수 있습니다. 예를 들어, Li et al.2022a)는 생성 모델에서 생성된 코드 스니펫으로 문서 쿼리를 보강한 다음(피어 투 피어 섹션 생성) 보강된 쿼리를 사용하여 코드를 검색함으로써 강력한 코드 생성 모델을 활용합니다.ToolCoder 장 외. (2023d) 온라인 검색 엔진과 문서 검색 도구를 사용하여 API 선택 및 코드 생성에 도움이 되는 적절한 API 권장 사항을 얻으세요. 또한 검색은 단일 유형의 정보로 제한되지 않습니다. (5) 코드-하이브리드. 코드를 입력으로 사용하고 다양한 관련 정보를 검색합니다. 예를 들어, Nashid 등(2023)는 임베딩 또는 빈도 분석을 기반으로 개발자의 작업과 관련된 코드 프레젠테이션을 자동으로 검색하는 신속한 생성을 위해 CEDAR라는 새로운 기술을 제안했습니다.Geng et al.2023) 문맥 학습 패러다임을 사용하여 예제 풀에서 다양한 코드 주석 예제를 선택함으로써 코드에 대한 다중 의도 주석을 생성합니다. (6) 텍스트 혼합. 요구 사항을 입력으로 사용하여 관련 코드 및 유사한 문제를 참조하기 위해 검색합니다. 예를 들어, Li 등(2023b)는 코드 생성에 사용할 예제를 선택하는 새로운 학습 기반 선택 방법인 LAIL(LLM-Aware In-context Learning)을 제안했습니다.Li et al.2023c)는 유사한 프로그램의 수요 검색을 프롬프트의 예로 사용하여 대량의 관련 콘텐츠(예: 알고리즘, API)를 제공하는 AceCoder라는 새로운 메커니즘을 도입합니다.

이전 연구에 따르면 Li 등(2022c); Zhao et al.2024); Hu et al.2023a), 기존 검색 방법은 희소 검색, 밀도 검색으로 분류할 수 있습니다(2024e) 및 기타 방법 하야티 외. (2018); Zhang et al.2020); Poesia 외. (2022); Ye et al.2021); Shu et al.2022). 그림. 4 은 스파스 검색과 밀도 검색의 파이프라인을 보여줍니다. 고밀도 검색 방법은 입력을 고차원 벡터로 변환하고 의미적 유사도를 비교하여 유사도가 가장 높은 k개의 샘플을 선택하는 반면, 희소 검색 방법은 다음과 같이 계산합니다. BM25 또는 샘플 간의 텍스트 유사성을 평가하기 위해 TF-IDF와 같은 메트릭을 사용합니다. 또한 다양한 대체 검색 방법도 모색되고 있습니다. 예를 들어, 자연어 텍스트 간의 편집 거리를 계산하는 데 초점을 맞춘 연구도 있습니다(Hayati et al.(2018) 또는 코드 조각의 추상 구문 트리(AST) 장 외. (2020); Poesia 외. (2022). 검색에 지식 그래프를 활용하는 방법도 있습니다(2021); Shu et al.2022).

밀도 검색과 희소 검색은 가장 많이 사용되는 두 가지 검색 방법입니다. 이 중 밀도 검색 기법은 일반적으로 스파스 검색 기법보다 성능이 더 좋습니다. 그러나 희소 검색이 더 효율적인 경향이 있으며 경우에 따라서는 밀도 검색과 비슷한 성능을 달성할 수도 있습니다. 따라서 많은 연구에서 효율성을 이유로 희소 검색 방법을 사용합니다.

软件工程中的智能体:调研、现状与展望

표 1: 입력 및 출력에 따라 분류된 다양한 유형의 검색 작업.

软件工程中的智能体:调研、现状与展望

그림 4: 다양한 검색 방법의 순서도. 왼쪽은 다양한 모델을 사용해 텍스트를 고차원 임베딩 벡터로 변환하고 의미적 유사도를 비교하여 가장 유사한 샘플을 검색할 수 있는 고밀도 검색 방법의 흐름입니다. 오른쪽 부분은 텍스트 유사도만 비교하고 의미론은 무시하는 희소 검색 방법의 흐름입니다.

학습 행동. 학습 행동은 추론과 의사 결정의 품질과 효율성을 향상시키기 위해 의미적 및 절차적 기억을 학습하고 업데이트하여 지식을 지속적으로 학습하고 업데이트하는 것을 말합니다. (1) 지식을 사용하여 의미적 기억을 업데이트합니다. 시맨틱 메모리는 주로 지식 베이스에 존재하며, 인식된 코드 지식을 사용하여 지식 베이스를 업데이트하거나 새로운 지식 베이스를 구성하여 업데이트할 수 있는 기본 세계 지식을 저장합니다. 예를 들어 Liao 등(2023)는 검색된 라이브러리에서 얻은 세 가지 유형의 정보(현재 코드 파일의 로컬 인식 정보, 다른 코드 파일의 글로벌 인식 정보, 타사 라이브러리 정보)를 활용하여 더 높은 품질의 코드를 생성하는 A3-CodGen이라는 새로운 코드 생성 프레임워크를 제안했습니다.Du 등. (2024)는 LLM(대규모 언어 모델)에 기반한 새로운 취약점 탐지 기법인 Vul-RAG를 제안했는데, 이는 LLM을 통해 기존 CVE 인스턴스에서 다차원 지식을 추출하여 취약점 지식 기반을 구축하는 기법입니다. (2) 암묵적 지식 업데이트. 암묵적 지식은 대규모 언어 모델의 파라미터에 저장되므로 모델을 미세 조정하여 LLM 파라미터를 업데이트할 수 있습니다. 초기 연구에서는 일반적으로 사전 학습된 모델의 미세 조정을 감독하기 위해 새로운 데이터를 구축하여 모델의 전체 파라미터를 업데이트합니다(Xia et al.(2023b); Wei et al.2023a(수학.) 속b); Tao et al.2024); Wang et al.2024d); Liu et al.2023a); Wang et al.2023d); Shi et al.2023b). 그러나 파라미터 크기가 커질수록 모델을 미세 조정하는 데 드는 비용이 증가합니다. 일부 연구에서는 파라미터를 효율적으로 미세 조정하는 기법을 탐색하려는 시도가 있었습니다(Weyssow 등(2023); Shi et al.2023c). 예를 들어, Weyssow 등(2023)는 자동화된 코드 생성 시나리오를 위한 대규모 언어 모델에 대한 파라미터 효율적 미세 조정(PEFT) 기법에 대한 포괄적인 연구를 수행했습니다.Wang 등. (2023b)는 사전 학습된 모델을 미세 조정하는 대신 효율적으로 미세 조정된 구조 어댑터를 삽입하고 미세 조정했습니다. 현재 대부분의 작업은 효율적인 미세 조정 기법을 사용하여 모델을 미세 조정합니다(2024); Shi et al.2023d).

(3) 상담원 코드 업데이트. 에이전트 코드란 에이전트가 동작과 의사 결정 과정을 안내하기 위해 실행하는 프로그램 또는 알고리즘을 말합니다. 빅 언어 모델 기반 에이전트는 환경을 인식하고, 추론과 결정을 내리고, 작업을 수행하는 방법을 조절하기 위해 적절한 프롬프트를 에이전트 코드로 구성하여 이를 수행합니다. 대부분의 작업에서는 명령어 정렬 기술을 사용하여 빅 언어 모델의 출력을 입력 명령어와 정렬합니다. 예를 들어, Muennighoff 등(2023)는 Git 커밋의 자연스러운 구조를 활용하여 코드 변경 사항을 사람의 명령과 결합하고 해당 명령을 사용하여 조정합니다.Hu et al. (2023b)는 대규모 언어 모델을 일반 코드 편집에 적용하도록 설계된 최초의 명령어 튜닝 데이터 세트인 InstructCoder를 구축했습니다. 이러한 고품질 데이터는 대규모 언어 모델에 새로운 지식을 제공하고 의미론적 메모리를 업데이트할 수 있습니다.Zan 외. (2023)는 프로그래밍 언어가 명령어 튜닝을 통해 서로를 향상시킬 수 있는지 알아보기 위해 스타코더에서 8개의 인기 프로그래밍 언어를 대상으로 광범위한 실험을 진행했습니다.

2.3.2 외부 조치

인간/에이전트와의 대화 에이전트는 인간 또는 다른 에이전트와 상호 작용할 수 있으며, 상호 작용 중에 풍부한 정보를 피드백으로 받아 에이전트의 지식을 확장하고 빅 언어 모델의 답변을 더 정확하게 만들 수 있습니다. 특히, 대화 에이전트로서 대규모 언어 모델을 사용하는 많은 연구가 수행되었습니다(예: Lu et al.(2024); Jain et al.2023); Paul et al.2023); Shojaee et al.2023); Liu et al.2023b); Wang et al.2023e); Mu et al.2023); Madaan et al.2023Jain et al.2023)는 강화 학습을 통해 미리 훈련된 대규모 언어 모델을 추가로 훈련하기 위해 생성된 코드를 참조 코드와 비교하기 위해 다른 대규모 언어 모델의 피드백을 사용하는 RLCF를 제안했습니다.REFINER Paul 외. (2023)는 자동 피드백을 제공하는 중요 모델과 상호 작용하기 위한 프레임워크입니다.양 외. (2023b)는 대규모 언어 모델이 판별 모델링에서 어떤 이점을 제공하는지 조사하고 명확히 설명했습니다.2023)는 코드 수리를 위해 특별히 설계된 새로운 데이터셋을 구축하고 이를 사용하여 선호도 최적화 튜닝 및 선택을 통해 유용한 피드백을 자동으로 생성할 수 있는 모델을 얻었습니다.PPOCoder 쇼재 외. (2023)는 비평가와 공연자라는 두 가지 구성 요소로 구성되며, 이 두 모델 간의 상호작용을 통해 PPO를 사용하여 최적화됩니다.RLTF Liu et al. (2023b)는 컴파일러와의 상호작용을 통해 생성된 실제 데이터 및 온라인 캐시 데이터를 활용하는 다른 모델과 상호작용하여 손실을 계산하고 기울기 피드백을 통해 모델 가중치를 업데이트합니다.Wang et al.2023e)는 대규모 언어 모델과 채팅을 통해 요구 사항을 구체화하는 방법인 ChatCoder를 제안했습니다.Sun et al.2023a)는 코드, 문서 문자열, 공식 주석 간의 일관성을 검사하는 도구인 클로버를 제안했습니다.ClarifyGPT Mu 외. (2023)는 또 다른 대규모 언어 모델을 통해 사용자 입력의 모호한 요구 사항을 구체화하기 위해 타겟팅된 설명 질문을 생성하도록 유도합니다.Reflexion Shinn et al.2023)는 인간 및 다른 에이전트와 상호 작용하여 외부 피드백을 생성할 수 있습니다.자체 정의 Madaan 외. (2023)는 감독된 훈련 데이터, 추가 훈련 또는 강화 학습 없이 단일 대규모 언어 모델을 생성기, 교정기 및 피드백 제공자로 사용합니다.리파일럿 웨이 외. (2023c)는 빅 언어 모델과 완성 엔진 간의 상호작용을 통해 후보 패치를 합성합니다. 특히, 리파일럿은 빅 언어 모델에서 제공하는 제안을 기반으로 실행 불가능한 토큰을 정리합니다. 왕 외. (2023c)는 GPT-4로 시뮬레이션된 사용자의 자연어 피드백을 사용하여 대규모 언어 모델의 다라운드 대화형 과제 해결 능력을 평가할 수 있는 벤치마크 테스트인 MINT를 소개했습니다. Hong et al. (2023b)는 대규모 언어 모델을 기반으로 효율적인 인간 워크플로를 다중 에이전트 협업에 통합하는 혁신적인 메타프로그래밍 프레임워크인 MetaGPT를 제안했습니다.Huang et al.2023a)는 프로그래머 에이전트, 테스트 디자이너 에이전트, 테스트 실행 에이전트 등 전문 에이전트가 포함된 멀티 에이전트 프레임워크가 포함된 새로운 코드 생성 솔루션인 에이전트코더(AgentCoder)를 출시했습니다.

디지털 환경 에이전트는 OJ 플랫폼, 웹 페이지, 컴파일러 및 기타 외부 도구와 같은 디지털 시스템과 상호 작용할 수 있으며, 상호 작용 중에 얻은 정보를 피드백으로 사용하여 스스로를 최적화할 수 있습니다. 특히 컴파일러는 가장 일반적인 외부 도구로, Jain 등(2023); Shojaee et al.2023); Liu et al.2023b); Wang et al.2022); Zhang et al.2023e). 예를 들어, RLCF Jain et al.2023)는 컴파일러 파생 피드백을 사용하여 사전 학습된 대규모 언어 모델을 학습시켜 생성한 코드가 일련의 정확성 검사를 통과하는지 확인합니다.PPOCoder Shojaee 외. (2023)는 컴파일러 피드백과 구조적 정렬을 모델 최적화를 위한 추가 지식으로 통합하여 심층 강화 학습(RL)을 통해 코드 생성 모델을 미세 조정할 수 있습니다.RLTF Liu 외. (2023b)는 컴파일러와 상호 작용하여 학습 데이터 쌍을 생성하고 온라인 캐시에 저장합니다.왕 외. (2022)는 컴파일러 피드백을 사용하여 컴파일 가능한 코드를 생성하는 COMPCODER를 제안했습니다.Zhang et al.2023e)는 대규모 언어 모델에서 생성된 코드의 실행 결과를 사용하여 경쟁 프로그래밍 작업에서 코드 품질을 개선하기 위한 생성 및 편집 방식인 셀프 에디트(Self-Edit)를 제안했습니다. 또한 지능형 에이전트의 기능을 확장하기 위해 검색 엔진, 보완 엔진 등과 같은 도구를 구축하는 작업도 많이 진행되었습니다(2024a); Zhang et al.2024); 아그라왈 외. (2023); Wei et al.2023c); Zhang et al.2023f왕 외. (2024a)는 코드의 대규모 언어 모델 생성 프로세스에 자동 완성 도구를 통합하여 정의되지 않은 변수 및 누락된 멤버와 같은 종속성 오류를 해결하는 방법인 TOOLGEN을 도입했습니다.Zhang et al.(2024)는 효과적인 리포지토리 수준 코드 생성을 위해 소프트웨어 문서와의 상호 작용, 코드 심볼 탐색 및 코드 테스트를 지원하는 5가지 프로그래밍 도구를 통합하여 대규모 언어 모델링을 위한 새로운 에이전트 프레임워크인 CodeAgent를 소개했습니다.Agrawal 외. (2023)는 모니터가 정적 분석을 사용하여 디코딩을 안내하는 모니터 안내 디코딩 방법인 MGD를 제안했으며, 리파일럿 웨이 외. (2023c)는 빅 언어 모델과 완성 엔진 간의 상호작용을 통해 후보 패치를 합성합니다. 구체적으로, 리파일럿은 완성 엔진이 제공하는 제안을 기반으로 토큰을 완성합니다.

3 도전과 기회

소프트웨어 엔지니어링에서 대규모 언어 모델(LLM) 기반 에이전트 작업과 관련된 내용을 분석한 결과, 이 두 영역의 통합은 여전히 많은 과제에 직면해 있으며, 이로 인해 발전을 제한하고 있는 것이 분명합니다. 이 섹션에서는 소프트웨어 엔지니어링에서 LLM 기반 에이전트가 현재 직면하고 있는 과제에 대해 자세히 논의하고 기존 과제 분석을 바탕으로 향후 작업의 기회에 대해 논의합니다.

3.1 감각 모듈에 대한 불충분한 탐색

예: 1번 2.1 섹션에서 설명한 대로 소프트웨어 엔지니어링에서 지각 모듈을 위한 LLM 기반 에이전트에 대한 탐색은 충분하지 않습니다. 자연어와 달리 코드는 일반 텍스트로 취급되거나 AST(추상 구문 트리), CFG(제어 흐름 그래프) 등과 같은 코드 기능을 사용하여 중간 표현으로 변환할 수 있는 특수한 종류의 표현입니다. Ahmed 등 기존 연구(2024); 알카스완 등(2023); 아라클리안 외. (2023); Beurer-Kellner 외. (2023); 알카르니와 아짐(2022) 코드는 일반적으로 텍스트로 간주되며, 소프트웨어 엔지니어링 분야에서 일하는 LLM 기반 에이전트에서 트리/그래픽 기반 입력 양식을 탐색하는 연구는 아직 부족합니다. 또한 시각 및 청각 입력 양식에 대한 연구도 아직 미흡합니다.

3.2 롤플레잉 기술

LLM 기반 상담원은 다양한 작업에서 각기 다른 역할을 수행해야 하는 경우가 많으며, 각 작업마다 특정 기술이 필요합니다. 예를 들어 에이전트는 코드 생성 요청을 받으면 코드 생성자 역할을 해야 하고, 코드 테스트를 수행하면 코드 테스터 역할을 해야 할 수도 있습니다. 또한 일부 시나리오에서는 상담원이 한 번에 두 가지 이상의 기능을 수행해야 할 수도 있습니다. 예를 들어 코드 생성 시나리오에서 에이전트는 코드 생성기와 테스터의 역할을 모두 수행해야 하므로 코드를 생성하고 테스트할 수 있는 기능이 있어야 합니다(Huang et al. 2023b). 소프트웨어 엔지니어링 영역에는 LLM 학습만으로는 충분하지 않은 틈새 작업과 테스트 생성 시나리오, 프런트엔드 개발, 리포지토리 수준 문제 해결 등 에이전트가 여러 역량을 갖춰야 하는 복잡한 작업이 많습니다. 따라서 상담원이 새로운 역할을 효과적으로 받아들이고 다중 역할 수행에 따른 요구를 관리하는 방법에 대한 연구를 발전시키는 것이 향후의 유망한 연구 방향입니다.

3.3 불충분한 지식 검색 기반

외부 지식 검색 기반은 에이전트의 메모리 모듈에서 시맨틱 메모리의 중요한 부분이며 에이전트가 상호 작용할 수 있는 중요한 외부 도구입니다. 자연어 처리(NLP) 분야에서는 외부 검색 기반으로 Wikipedia와 같은 지식 기반이 있습니다(Zhao et al. 2023). 그러나 소프트웨어 엔지니어링 분야에서는 다양한 프로그래밍 언어의 기본 구문, 일반적으로 사용되는 알고리즘, 데이터 구조 및 운영 체제 관련 지식 등 풍부한 코드 관련 지식을 담고 있는 권위 있고 공인된 지식 기반이 없습니다. 향후 연구에서는 상담원의 외부 검색을 위한 기초로 사용할 수 있는 포괄적인 코드 지식 베이스를 개발하기 위해 노력할 수 있습니다. 이 지식 기반은 이용 가능한 정보를 풍부하게 하여 추론 및 의사 결정 과정의 품질과 효율성을 향상시킬 것입니다.

3.4 LLM 기반 에이전트의 착시 현상

LLM 기반 에이전트와 관련된 많은 연구에서는 LLM을 에이전트의 인지적 핵심으로 보고 있으며, 에이전트의 전반적인 성능은 기반이 되는 LLM의 능력과 밀접한 관련이 있습니다. 기존 연구(Pan et al. 2024Liu et al. 2024a)에 따르면 LLM 기반 에이전트는 소프트웨어 엔지니어링 작업을 완료하는 동안 존재하지 않는 API를 생성하는 등 환각을 일으킬 수 있으며, 이러한 환각을 줄이면 전반적인 에이전트 성능이 향상될 수 있습니다. 동시에 에이전트를 최적화하면 LLM 기반 에이전트의 환각을 역으로 완화할 수 있으므로 에이전트 성능과 환각 완화 사이의 양방향 관계가 강조됩니다. 여러 연구에서 LLM의 환각 현상을 탐구했지만 LLM 기반 에이전트의 환각 문제를 해결하는 데는 여전히 중요한 과제가 남아 있습니다. LLM 기반 에이전트에서 나타나는 환각의 유형을 탐색하고, 이러한 환각의 원인을 심층적으로 분석하며, 환각 완화를 위한 효과적인 방법을 제안하는 것은 향후 연구의 중요한 기회입니다.

3.5 다중 지능 협업의 효율성

다중 지능 협업에서는 특정 작업을 수행하기 위해 각 개별 지능이 서로 다른 역할을 수행해야 하며, 각 지능의 결정 결과를 결합하여 더 복잡한 목표를 함께 해결해야 합니다.2023b); Hong et al.2023a); Huang et al.2023b); Wang et al.2023a). 그러나 이 프로세스에는 일반적으로 각 인텔리전스마다 많은 양의 컴퓨팅 리소스가 필요하기 때문에 리소스 낭비와 효율성 저하로 이어집니다. 또한 각 인텔리전스마다 다양한 정보를 동기화하고 공유해야 하므로 통신 비용이 추가되고 협업의 실시간성 및 응답성에 영향을 미칩니다. 컴퓨팅 리소스를 효율적으로 관리 및 할당하고, 지능 간의 통신 비용을 최소화하며, 개별 지능의 추론 오버헤드를 줄이는 것이 다중 지능 협업의 효율성을 개선하는 데 있어 핵심 과제입니다. 이러한 문제를 해결하는 것은 향후 연구에 중요한 기회를 제공합니다.

3.6 대규모 언어 모델에 기반한 소프트웨어 엔지니어링 기법의 인텔리전스 적용

소프트웨어 엔지니어링 분야의 기술, 특히 코딩 기술은 인공 지능 분야를 크게 발전시킬 수 있는 잠재력을 가지고 있으며, 이는 두 분야 간의 상호 유익한 관계를 시사합니다. 예를 들어, 소프트웨어 테스트 기술을 적용하여 대규모 언어 모델을 기반으로 인공 지능의 비정상적인 동작과 잠재적인 결함을 식별할 수 있습니다. 또한 소프트웨어 도구(예: API 및 라이브러리)의 개선은 특히 도구 사용 능력이 있는 인텔리전트의 경우 대규모 언어 모델에 기반한 인텔리전트의 성능을 향상시킬 수 있습니다. 또한 패키지 관리 기술을 적용하여 지능형 바디 시스템을 효율적으로 관리할 수 있습니다. 예를 들어 버전 제어를 적용하여 지능형 바디 시스템에서 서로 다른 지능의 업데이트를 모니터링하고 조정하여 호환성과 시스템 무결성을 향상시킬 수 있습니다.

그러나 이 분야의 연구는 아직 제한적입니다. 따라서 보다 복잡한 SE 기술을 지능형 신체 시스템에 통합하는 것을 탐구하는 것은 두 분야를 발전시킬 수 있는 미래 연구의 유망한 방향입니다.

4 결론

빅 언어 모델 기반 지능을 소프트웨어 엔지니어링과 결합하는 연구를 심층적으로 분석하기 위해 먼저 빅 언어 모델 기반 지능을 소프트웨어 엔지니어링 분야의 작업과 결합하는 많은 연구를 수집했습니다. 그런 다음 데이터 수집 기간 동안 얻은 연구를 수집하고 분석한 후 지각, 기억, 행동이라는 세 가지 핵심 모듈을 포함하는 소프트웨어 엔지니어링 분야의 빅 언어 모델 기반 지능을 위한 프레임워크를 제시합니다. 마지막으로 프레임워크의 각 모듈에 대한 자세한 정보를 제시하고, 소프트웨어 엔지니어링에서 대규모 언어 모델 기반 인텔리전스가 직면한 현재 과제를 분석하며, 향후 작업의 기회를 짚어봅니다.

© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...