23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
ㅇ 장소: 광주우산사옥 8층 12:00~13:00
ㅇ 참석자: 박철현, 오영훈, 최홍석, 최윤석
https://www.deeplearning.ai/the-batch/issue-314/
풀네임: Software Engineering Benchmark
출시: Princeton, Stanford, DeepMind 연구진 (2023년 말)
목적: “LLM이 실제로 소프트웨어 엔지니어처럼 버그를 고치고 기능을 추가할 수 있는가?”를 측정하기 위해 설계된 대규모 벤치마크.
대상 프로젝트: 12개 대형 Python 오픈소스 저장소 (예: Django, SymPy, Matplotlib 등).
문항 수: 약 2,300개 issue (GitHub 이슈 단위로 정리).
각 이슈는 다음 세트로 구성됩니다:
문제 설명 (Issue 내용) → “이 기능이 안 된다”, “버그가 있다” 등의 자연어 설명.
실제 저장소 코드 (Before 상태)
해결된 PR(코드 변경 사항, After 상태)
테스트 스위트(Unit tests) → 해결 여부를 자동으로 판정.
실제 개발자 업무에 가까운 벤치마크 → 단순 코드 문제(LeetCode, HumanEval)보다 난도가 훨씬 높음.
복잡한 소프트웨어 맥락(수천~수만 줄 코드, 다수 파일 연관성) 속에서 문제 해결 능력을 평가 가능.
따라서 “LLM이 진짜 개발자처럼 일할 수 있는지”를 가늠하는 중요한 척도로 쓰입니다.
문제 인식: LLM 에이전트의 한계
기존 언어 모델(LLM) 기반 에이전트는 셸 명령이나 코드 수정을 수행할 때 기본적인 컴퓨터 환경에서 자주 “실패”하거나, 적절한 피드백을 제공하지 않아 소프트웨어 공학 문제 해결에 한계를 드러냅니다
즉, 인간이 사용하는 IDE 또는 도구들과는 다르게 동작하며, 에이전트 특성에 맞는 별도 인터페이스가 필요하다는 점이 핵심적 동기입니다
기여: 에이전트-컴퓨터 인터페이스 (Agent-Computer Interface, ACI)
SWE-agent는 LLM 에이전트가 코드를 생성·수정, 저장소를 탐색, 테스트 및 프로그램 실행 등을 더 안정적으로 수행할 수 있도록 하는 맞춤형 인터페이스(A CI)를 도입합니다
ACI의 설계 방식이 에이전트 성능에 극적인 영향을 주며, 인터페이스 디자인 자체가 에이전트 행동을 크게 바꿀 수 있음을 보여줍니다
성능 평가
SWE-bench 벤치마크에서 pass@1 성능 12.5%를 달성—기존 비인터랙티브 LLM 대비 크게 향상된 수치
HumanEvalFix에서도 87.7%라는 매우 높은 해결률을 기록, 현존 최고 성능을 보여줍니다.
인터페이스 설계의 중요성
ACI의 구체적인 설계(어떻게 명령을 전달하고 피드백을 받느냐 등)는 에이전트의 성공률과 직접적으로 연관됨을 강조합니다
즉, 에이전트를 위한 전용 도구나 인터페이스 환경을 설계하는 것이 자동화된 소프트웨어 공학에서 핵심이라는 인사이트를 제공합니다.
의의 및 향후 방향
소프트웨어 개발 자동화를 위한 LLM 활용의 가능성을 실질적으로 증명한 논문으로, 에이전트-컴퓨터 간의 인터페이스 설계가 얼마나 중요한지를 명확히 보여줍니다.
실용적인 코드 수정, 저장소 탐색, 실행 피드백 통합 등이 가능한 인터페이스 환경이 에이전트 효율을 크게 향상시킨다는 점은 후속 연구 및 실제 시스템 설계에 중요한 시사점을 제공합니다.
문제 제기
기존의 소프트웨어 엔지니어링(설계/버그 수정 등)용 LLM 학습 데이터셋은 매우 작고 제한적입니다.
일반적으로 수백 ~ 수천 건의 예시만 존재하며, 이는 11개 이하의 GitHub 저장소에서 수집된 경우가 많았습니다.
데이터 수집에는 수백 시간의 수작업이 필요하고, 실행 환경 구성도 테라바이트급 리소스를 요구해 확장성에 큰 제약이 있었습니다.
주요 기여: SWE-smith 파이프라인
SWE‑smith는 Python 기반 저장소를 대상으로 자동으로 실행 환경을 구축하고, **수백~수천 개의 테스트 실패(task instances)**를 생성할 수 있는 대규모 데이터 생성 파이프라인입니다.
이를 통해 128개 GitHub 저장소에서 총 50,000개 이상의 task instance를 수집했으며, 이는 기존 작업 대비 데이터 규모가 한 자릿수 이상 커진 수준입니다.
SWE-agent-LM-32B 모델 학습 및 성능
SWE‑smith로 생성한 데이터를 활용해 SWE‑agent‑LM‑32B라는 언어 모델을 학습시켰습니다.
이 모델은 SWE‑bench Verified 벤치마크에서 **Pass@1 해결율 40.2%**를 기록했으며, 이는 오픈소스 LLM 중에서 최고 수준 성능입니다.
오픈소스 공개
SWE‑smith의 전체 파이프라인, task 인스턴스, 에이전트 학습용 trajectory, 학습된 모델까지 전용 웹사이트(https://swesmith.com)를 통해 모두 오픈 소스로 공개했습니다.
의의 및 의미
SWE-smith는 자동화로 대규모, 고품질 소프트웨어 엔지니어링 학습 데이터를 생성함으로써,
LLM 기반 SWE(Software Engineering) 에이전트 연구의 데이터 병목 문제를 해결하는 데 크게 기여합니다.
이를 기반으로 학습된 모델은 SWE-bench에서 높은 성능을 달성했으며, 공개된 오픈소스 자원을 통해 다른 연구자들이 쉽게 재현하고 활용할 수 있습니다.
Cursor를 사용해서 Vibe Coding
: vibe coding 만으로 streamlit web page 만들기
: markdown 파일형식을 사용하여, AI가 note를 잘 읽을 수 있음. cursor와 조합하여 AI note로 사용.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.