LapClusters: 팀의 노트북을 활용한 사설 AI 코드 리뷰 클러스터 구축
요약
LapClusters는 팀의 여러 노트북에 분산하여 사설 AI 코드 리뷰 클러스터를 구축하는 방법을 제시합니다. 이 시스템은 Redis Streams를 작업 큐로 사용하고, 각 워커가 로컬 Ollama 환경에서 Gemma 4 모델을 실행하며 독립적인 파일 검토 작업을 수행합니다. 이를 통해 외부 전송 없이 팀 내부의 코드를 안전하게 분석할 수 있습니다.
핵심 포인트
- 팀 노트북 활용: 사설 클러스터 구축으로 데이터 보안 유지
- 분산 처리 방식: Redis Streams를 이용해 작업 큐 관리 및 분산 처리
- 로컬 모델 사용: 각 워커가 Ollama와 Gemma 4를 통해 로컬 추론 수행
- 안정성 확보: 하트비트 기능으로 연결 끊김 시 작업 복구 가능
LapClusters는 팀의 노트북을 활용하여 사설 AI 코드 리뷰 클러스터를 만듭니다.
로컬 AI 모델은 코드를 자체 기기에 보관하지만, 하나의 노트북으로는 전체 저장소(repository)를 검토하는 데 오랜 시간이 걸릴 수 있습니다. 클라우드 검토가 더 빠를 수는 있지만, 팀의 개인 코드가 외부로 전송될 위험이 있고 요청당 비용이 발생할 수 있습니다.
저희는 LapClusters를 구축하여 이 작업을 팀이 이미 소유한 여러 노트북에 분산시켰습니다.
작동 방식
하나의 노트북이 호스트 역할을 합니다. 이 호스트는 로컬 폴더나 Git URL에서 지원되는 소스 파일을 수집하고, 파일당 하나의 검토 작업(review task)을 Redis Streams 큐에 넣습니다. 각 워커 노트북은 자체 Gemma 4 모델을 Ollama를 통해 실행하며 준비가 되면 작업을 가져옵니다.
워커들은 구조화된 결과물(structured findings)을 반환합니다. LapClusters는 이들을 심각도별로 정렬하고 파일 경로와 라인 번호를 포함하여 하나의 Markdown 보고서로 결합합니다. 워커의 하트비트(heartbeats) 기능은 클러스터가 연결이 끊긴 노트북을 감지하는 데 도움을 주어, 다른 워커가 중단된 작업을 대신 처리할 수 있게 합니다.
이 접근 방식은 대형 모델 하나를 여러 머신에 분산시키는 것과는 다릅니다. 모든 노트북이 완전한 모델을 실행하며, 클러스터는 독립적인 작업들을 분배합니다.
구축 내용물
- 작업 상태 추적 기능이 있는 Redis Streams 작업 큐
- 로컬에서 Gemma 4를 사용하여 파일을 검토하는 Ollama 워커
- 동일 네트워크상의 노트북을 위한 호스트 검색(Host discovery)
- 중단된 작업을 위한 하트비트 및 복구 기능
- 검토 시작, 연결된 노트북 확인, 활성 파일 추적, 결과물 보기, 보고서 다운로드가 가능한 로컬 브라우저 인터페이스
- 클러스터를 통해 단일 프롬프트를 전송하기 위한 명령줄 도구(command-line tool)
저희는 이 백엔드를 휴대폰 핫스팟을 사용하는 두 대의 노트북에 걸쳐 실행해 보았습니다. 네 대의 노트북으로 테스트한 결과와 공식적인 성능 벤치마크는 아직 계획 중입니다.
구축 방법
백엔드는 Python, redis-py, httpx, python-dotenv를 사용합니다. Redis 7이 작업을 조정하며, Docker로 Redis를 실행할 수 있고, Ollama가 로컬 Gemma 4 모델을 제공합니다. 브라우저 인터페이스는 HTML, CSS, JavaScript, 그리고 Python의 표준 라이브러리 HTTP 서버를 사용합니다.
트레이드오프가 존재합니다. 파일들은 독립적으로 검토되므로, 모델이 여러 파일을 아우르는 버그를 놓칠 수 있습니다. 현재 컬렉터는 지원되지 않는 파일과 20 KB보다 큰 소스 파일을 건너뜁니다. 발견된 내용이 틀릴 수 있으니, 조치하기 전에 반드시 확인해야 합니다.
코드는 클러스터 네트워크를 통해 팀 노트북들 간에 전송되어 검토되며, 추론(inference)은 각 워커의 로컬 Ollama 모델을 사용합니다. 검토 경로에는 호스팅된 AI 엔드포인트가 없습니다.
리포지토리: https://github.com/VishnuVardhanNk/LapCluster
데모 영상:
[ReLUactivation]이 구축:
멤버 및 기여:
- [Nithin Krishnappa]: [Redis Streams 태스크 큐(task queue)와 태스크 상태 추적 기능 구현]
- [Vishnu vardhan]: [구조화된 발견 내용(structured findings)을 포함하는 Ollama 워커와 Gemma 4 검토 흐름 구현]
- [Dheeraj]: [클러스터 상태, 검토 진행 상황 및 보고서 다운로드를 위한 로컬 웹 인터페이스 구축]
- [Niranjan]: [리포지토리 수집(repository collection), 호스트 검색(host discovery), 워커 복구 기능 통합; 설정 지침 및 데모 준비]
태그: python, ollama, gemma4, opensource, ai
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기