Qwen2.5-Coder vs DeepSeek-Coder for Solidity Review: What I Actually See Locally

개요

Qwen2.5-Coder와 DeepSeek-Coder 7B 모델을 로컬 환경에서 Solidity 계약서 보안 검토에 사용하여 비교한 결과, Qwen2.5-Coder가 지시 사항 준수, 표적화된 검토, 설명의 명확성 측면에서 우위를 보였으며, DeepSeek-Coder는 고전적인 패턴 인식, 더 많은 경고, 그리고 잠재적 문제에 대한 회의적인 태도에서 강점을 보였다.

주요 내용

* 평가 방법론: 10개의 자체 제작한 버그 포함 Solidity 계약서(각 150줄 미만)를 대상으로 "보안 문제 검토", "리엔트란시 및 접근 제어 문제 확인", "심각도 태그가 지정된 목록 형식으로 결과 보고" 등 세 가지 프롬프트를 사용하여 두 모델을 비교했습니다.
* Qwen2.5-Coder의 강점:
* 지시 사항 준수: 구조화된 출력 형식(심각도, 라인 번호, 문제 설명, 최대 5개 결과 보고)을 요구하는 지시를 거의 항상 따릅니다. 이는 파이프라인에 모델 출력을 연동할 때 중요합니다.
* 표적화된 검토: 특정 문제(예: 리엔트란시)를 물었을 때 해당 주제에 집중하며, 가스 소비나 스타일 관련 언급으로 벗어나지 않습니다.
* 설명 품질: 발견된 버그에 대해 공격 시퀀스를 더 구체적으로 설명하는 경향이 있습니다.
* DeepSeek-Coder의 강점:
* 고전적 패턴 인식: 리엔트란시, 접근 제어 누락 등 기본적인 버그 패턴 인식에 있어 Qwen2.5-Coder만큼 신뢰할 수 있으며, 때로는 위험성을 더 명확하게 표현합니다.
* 회의적인 태도: Qwen2.5-Coder보다 약간 더 많은 경고를 발생시켜 잠재적인 문제 지점을 더 자주 포착합니다.
* 환각(Hallucination) 유형: Qwen2.5-Coder가 버그 코드에 대해 "정상"이라고 단언하는 반면, DeepSeek-Coder는 존재하지 않는 문제를 만들어내는 경향이 있습니다. 보안 분류 관점에서는 DeepSeek-Coder의 환각이 더 선호될 수 있습니다.
* 모델 크기의 중요성: 동일 패밀리 내에서 1.5B와 7B 모델 간의 성능 차이가 동일 크기에서의 Qwen과 DeepSeek 간의 차이보다 훨씬 큽니다. 7B 모델부터는 복잡한 추론이 가능한 임계값을 넘어서지만, 비즈니스 로직 버그의 일관된 탐지는 여전히 어렵습니다.
* 실제 사용 사례:
* Qwen2.5-Coder 7B는 구조화된 검토, 분류, 자동화된 파이프라인에 기본 모델로 사용됩니다.
* Qwen2.5-Coder 1.5B는 빠르고 저비용의 필터링에 사용됩니다.
* DeepSeek-Coder는 Qwen2.5-Coder가 놓친 부분에 대한 "두 번째 의견" 또는 "의심 생성기"로 사용됩니다.

시사점

로컬 환경에서 Solidity 계약서 검토를 위한 모델 선택 시, 하드웨어 성능에 맞는 최대 크기의 모델을 우선적으로 고려하고, 그 다음 패밀리 간의 차이점을 비교하는 것이 실질적입니다. Qwen2.5-Coder는 지시 사항 준수와 자동화에, DeepSeek-Coder는 잠재적 문제 탐지에 더 강점을 보이며, 이 두 모델을 함께 사용하는 것이 분석 효율성을 높일 수 있습니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions