[논문 리뷰] TensorFuzz: Debugging Neural Networks with Coverage-Guided Fuzzing
TensorFuzz는 희귀 입력 실패를 발견하기 위해 신경망용 커버리지 가이드 퍼징을 도입하고, 커버리지를 정의하기 위해 근사 최근접 이웃을 사용하며, 오픈 소스 TensorFuzz 라이브러리를 공개한다.
Machine learning models are notoriously difficult to interpret and debug. This is particularly true of neural networks. In this work, we introduce automated software testing techniques for neural networks that are well-suited to discovering errors which occur only for rare inputs. Specifically, we develop coverage-guided fuzzing (CGF) methods for neural networks. In CGF, random mutations of inputs to a neural network are guided by a coverage metric toward the goal of satisfying user-specified constraints. We describe how fast approximate nearest neighbor algorithms can provide this coverage metric. We then discuss the application of CGF to the following goals: finding numerical errors in trained neural networks, generating disagreements between neural networks and quantized versions of those networks, and surfacing undesirable behavior in character level language models. Finally, we release an open source library called TensorFuzz that implements the described techniques.
연구 동기 및 목표
- 임계 환경에서 신경망에 대한 신뢰할 수 있는 디버깅 도구의 필요성을 제시한다.
- 신경망에 맞춘 커버리지 가이드 퍼징 프레임워크를 도입한다.
- 근사 최근접 이웃을 통한 활성화 공간의 근접성으로 실용적인 커버리지 지표를 정의한다.
- TensorFuzz가 수치 오류, 양자화 불일치, 바람직하지 않은 언어 모델 동작을 드러낼 수 있음을 시연한다.
- 더 넓은 채택을 위한 오픈 소스 TensorFuzz 라이브러리를 공개한다.
제안 방법
- 전통적인 소프트웨어에서 TensorFlow 그래프에 이르기까지 커버리지 가이드 퍼징을 활성화 공간에서의 커버리지를 코드 분기 대신 측정하여 적응시킨다.
- 유효한 신경망 입력의 시드 코퍼스를 사용하고 입력을 변형하여 새로운 활성화를 탐색한다.
- 새로운 활성화 상태를 탐지하기 위해 근사 최근접 이웃을 통해 커버리지를 계산한다.
- 원하는/원치 않는 모델 동작을 유발하는 입력을 식별하기 위한 목표 함수를 사용한다.
- 하드웨어 병렬성을 활용하고 계산 그래프의 비결정성을 다루기 위해 배치 변형을 수행한다.
실험 결과
연구 질문
- RQ1커버리지 가이드 퍼징이 훈련된 신경망에서 수치 오류(예: NaN)를 무작위 탐색보다 더 효율적으로 발견할 수 있는가?
- RQ2CGF가 신경망과 양자화 버전 간의 불일치를 단일 포인트 평가로 놓치는 것을 드러낼 수 있는가?
- RQ3CGF가 문자 수준 언어 모델에서 무작위 테스트로 쉽게 발견되지 않는 바람직하지 않은 동작을 드러낼 수 있는가?
- RQ4근사 최근접 이웃에 기반한 활성화 공간 커버리지 지표가 실용적이고 효과적 across 신경망 아키텍처들인가?
주요 결과
- CGF는 훈련된 네트워크에서 NaN과 같은 수치 오류를 신속하게 발견하는 반면 무작위 탐색은 종종 이를 놓친다.
- CGF는 로컬 입력 영역(예: 시드 이미지 주변)에서 32비트와 16비트 양자화 모델 간의 불일치를 생성할 수 있다.
- CGF는 문자 수준 언어 모델에서 바람직하지 않은 동작을 드러내며 24시간 실행에서 무작위 탐색보다 더 많은 블랙리스트 단어를 생성한다.
- 근사 최근접 이웃을 사용한 활성화 공간 커버리지는 신경망에 대해 실용적이고 아키텍처에 구애받지 않는 커버리지 신호를 제공한다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.