Skip to main content
QUICK REVIEW

[논문 리뷰] TensorFI: A Flexible Fault Injection Framework for TensorFlow Applications

Zitao Chen, Niranjhana Narayanan|arXiv (Cornell University)|2020. 04. 03.
Radiation Effects in Electronics참고 문헌 19인용 수 4
한 줄 요약

TensorFI는 원본 코드를 수정하지 않고도 연산자 수준과 그래프 수준에서 런타임 시 하드웨어 및 소프트웨어 결함을 주입할 수 있는 유연하고 고수준의 소프트웨어 결함 주입 프레임워크이다. 파이썬에서 구현된 병렬 인스트루멘티드 그래프를 통해 평균 1.5배의 낮은 성능 오버헤드를 달성하며, 자율주행차 DNN을 포함한 12개의 머신러닝 모델에서 효과적인 내성 평가를 수행한다.

ABSTRACT

As machine learning (ML) has seen increasing adoption in safety-critical domains (e.g., autonomous vehicles), the reliability of ML systems has also grown in importance. While prior studies have proposed techniques to enable efficient error-resilience techniques (e.g., selective instruction duplication), a fundamental requirement for realizing these techniques is a detailed understanding of the application's resilience. In this work, we present TensorFI, a high-level fault injection (FI) framework for TensorFlow-based applications. TensorFI is able to inject both hardware and software faults in general TensorFlow programs. TensorFI is a configurable FI tool that is flexible, easy to use, and portable. It can be integrated into existing TensorFlow programs to assess their resilience for different fault types (e.g., faults in particular operators). We use TensorFI to evaluate the resilience of 12 ML programs, including DNNs used in the autonomous vehicle domain. Our tool is publicly available at https://github.com/DependableSystemsLab/TensorFI.

연구 동기 및 목표

  • 자율주행차 및 항공 분야와 같이 안전이 핵심인 머신러닝 시스템에서 신뢰성과 결함 내성 평가의 증가하는 필요성을 해결한다.
  • 기존의 저수준 코드 수준에서만 작동하거나 텐서플로우와 같은 고수준 머신러닝 프레임워크와 호환되지 않는 결함 주입 도구의 한계를 극복한다.
  • 원본 모델이나 런타임 동작 방식을 수정하지 않고도 텐서플로우 그래프 및 연산자 수준에서 작동하는 이식성 있고 구성이 가능하며 성능이 우수한 결함 주입 프레임워크를 개발한다.
  • 다양한 결함 유형(예: 비트 플립, 무작위 값 대체)이 다양한 머신러닝 응용 프로그램의 모델 출력에 미치는 영향을 체계적으로 평가할 수 있도록 개발자에게 기능을 제공한다.
  • 결함 주입 로직을 별도의 선택적 실행 경로로 분리하여, 외부 라이브러리 호환성을 유지하고 정상 실행 시 높은 성능을 유지를 보장한다.

제안 방법

  • 원본 모델의 연산자와 동일한 구조를 가지되, 구성 가능한 결함 주입 기능을 내장한 병렬 인스트루멘티드 텐서플로우 그래프(FI 그래프)를 구축한다.
  • 이식성과 구성 용이성을 확보하기 위해 파이썬에서 결함 주입 연산자 구현을 통해 저수준의 C++ 또는 어셈블리 언어 수정을 피한다.
  • 구성 플래그에 따라 원본 연산자 또는 FI 버전 연산자로 런타임 디스패칭을 수행함으로써, 결함 주입 비활성화 시 최소한의 성능 영향을 보장한다.
  • 텐서플로우 연산자의 출력 단계에서 결함을 주입하며, 단일 비트 플립, 무작위 값 대체, 오류 비율 기반 주입 등 다양한 결함 유형을 지원한다.
  • 제3자 라이브러리가 텐서플로우의 그래프 구조에 의존하는 기능을 유지하기 위해 원본 그래프와 의미적·구조적 호환성을 유지한다.
  • 기존 텐서플로우 응용 프로그램에 최소한의 코드 변경으로 통합하여 원활한 내성 평가를 가능하게 한다.

실험 결과

연구 질문

  • RQ1원본 모델을 수정하거나 성능에 악영향을 주지 않으면서도 텐서플로우 그래프 수준에서 효과적으로 결함 주입을 수행할 수 있는 방법은 무엇인가?
  • RQ2실제 텐서플로우 응용 프로그램에 결함 주입 프레임워크를 통합할 경우 발생하는 성능 오버헤드는 얼마나 되는가?
  • RQ3다양한 결함 유형(예: 비트 플립, 무작위 대체)이 안전이 핵심인 응용 프로그램에서 딥 네트워크의 출력에 어떤 영향을 미치는가?
  • RQ4TensorFI는 실세계의 머신러닝 모델, 특히 자율주행차에서 사용되는 모델의 내성 평가에 얼마나 효과적으로 활용될 수 있는가?
  • RQ5제3자 라이브러리가 원본 텐서플로우 그래프의 구조에 의존하는 경우, 이 프레임워크는 이식성과 호환성을 유지할 수 있는가?

주요 결과

  • 결함 주입이 비활성화된 상태에서 TensorFI는 평균 1.5배의 성능 오버헤드만을 유발하여 정상 실행 시 간섭 최소화 목표를 달성한다.
  • 결함 주입 오버헤드는 파이썬 수준의 연산자 에뮬레이션으로 인해 21배에서 131배까지 변동하지만, 분석용으로 사용되는 프레임워크의 목적을 고려하면 수용 가능한 수준이다.
  • 가장 시간이 오래 걸리는 실험(ResNet 및 하이웨이 CNN)도 16시간 이내에 완료되었으며, 대부분의 실험은 10,000회의 결함 주입을 위해 3~4시간 내로 완료되었다.
  • 비트 플립을 통해 주입된 결함은 GAN 생성 이미지에서 더 많은 양극성(흑백) 아티팩트를 유발한 반면, 무작위 대체는 더 다양한 픽셀 강도를 유도했다.
  • 프레임워크는 자율주행차 관련 DNN을 포함한 12개의 다양한 모델에서 내성 평가를 성공적으로 수행하여 안전이 핵심인 머신러닝 시스템 검증에 실용성을 입증했다.
  • 원본 그래프 구조를 변경하지 않음으로써 제3자 라이브러리 호환성을 유지하여, 의존 도구들이 정상적으로 기능함을 보장한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.