loading

스파크 및 Bigdl 기반 딥 러닝 기술의 사례 분석

이 논문은 주로 스파크 및 bigdl 딥 러닝 기술을 기반으로 대규모 이미지 기능 추출 프레임 워크를 구축하는 데있어 인텔과 jd의 실제 경험을 공유합니다. backgroundImage 기능 추출은 유사한 이미지 검색, 중복 제거 등에 널리 사용됩니다. Bigdl 프레임 워크를 사용하기 전에 (나중에 언급 할 예정), 우리는 각각 멀티 머신, 멀티 GPU 카드 및 GPU 클러스터에 기능 추출 응용 프로그램을 개발하고 배포하려고했습니다. 그러나 위의 프레임 워크에는 명백한 단점이 있습니다.

스파크 및 Bigdl 기반 딥 러닝 기술의 사례 분석 1

GPU 클러스터에서 GPU 카드를 기반으로 한 자원 할당 전략은 매우 복잡하며 자원 할당은 남아있는 비디오 메모리가 부족하여 oom 및 응용 프로그램 충돌이 발생하는 등의 문제가 발생하기 쉽습니다. 단일 컴퓨터의 경우 클러스터 모드와 비교하여 개발자는 수동으로 데이터 단편화를 수행해야합니다. 로드 및 오류 허용 오차. Caffe를 예로 들어 GPU 모드의 적용에는 cuda를 포함하여 많은 종속성이 있으므로 배포 및 유지 보수의 어려움이 증가합니다. 예를 들어, 다른 운영 체제 버전 및 GCC 버전에 문제가있는 경우 다시 컴파일하고 패키지해야합니다.

위의 문제로 인해 gpu를 기반으로 한 포워드 프로그램이 아키텍처의 많은 기술 응용 문제에 직면하게됩니다.

장면 자체를 보자. 많은 그림의 배경이 복잡하고 대상 객체의 비율이 일반적으로 작기 때문에 기능 추출의 정확성에 대한 배경의 간섭을 줄이기 위해, 피사체는 그림과 분리되어야합니다. 당연히 이미지 특징 추출의 프레임 워크는 두 단계로 나뉩니다. 먼저, 타겟 검출 알고리즘에 의해 타겟이 검출되고, 그 후, 타겟 피쳐가 특징 추출 알고리즘에 의해 추출된다. 여기서, 우리는 표적 검출을 위해 SSD [1] (단일 샷 멀티 박스 검출기) 및 특징 추출을 위한 deepbit [2] 네트워크를 사용한다.

징동은 주류 분산 오픈 소스 데이터베이스에 많은 (수억 개 이상의) 제품 사진을 가지고 있습니다. 따라서 대규모 분산 환경에서 데이터를 효율적으로 검색하고 처리하는 방법은 이미지 특징 추출 파이프 라인의 주요 문제입니다. 기존 GPU 기반 솔루션은 위의 시나리오의 요구 사항을 해결하는 데 다른 과제에 직면 해 있습니다. 데이터 다운로드에는 오랜 시간이 걸리고 gpu를 기반으로 한 구성표는이를 최적화 할 수 없습니다. 분산 오픈 소스 데이터베이스의 사진 데이터의 경우 GPU 체계의 초기 데이터 처리 프로세스는 매우 복잡합니다. 자원 관리, 분산 데이터 처리 및 장애 관리를위한 성숙한 소프트웨어 프레임 워크가 없습니다.

스파크 및 Bigdl 기반 딥 러닝 기술의 사례 분석 2

GPU 소프트웨어 및 하드웨어 프레임 워크의 한계로 인해 GPU 체계를 확장하여 대규모 이미지를 처리하는 것은 매우 어렵습니다. 기존 소프트웨어 및 하드웨어 설비를 사용하여 생산 환경에서 Bigdl 통합 스키마는 생산 효율성을 크게 향상시킵니다 (예: R 감소 & 신제품의 D 시간) 및 비용 절감. 이 경우 데이터는 빅 데이터 클러스터의 주류 분산 오픈 소스 데이터베이스에 저장됩니다. 딥 러닝 응용 프로그램이 기존 빅 데이터 클러스터 (예: Hadoop 또는 스파크 클러스터) 를 컴퓨팅에 사용할 수 있다면 위의 문제를 쉽게 해결할 수 있습니다.

인텔의 오픈 소스 bigdl 프로젝트 [3] 는 포괄적 인 딥 러닝 알고리즘 지원을 제공하는 스파크에 분산 된 딥 러닝 프레임 워크입니다. Bigdl은 스파크 플랫폼의 분산 확장 성을 통해 수백 또는 수천 개의 노드로 쉽게 확장 할 수 있습니다. 동시에 bigdl은 인텔 MKL 수학 컴퓨팅 라이브러리와 병렬 컴퓨팅 기술을 사용하여 인텔 Xeon 서버에서 높은 성능을 달성합니다 (컴퓨팅 파워는 주류 gpu의 성능과 비교할 수 있음). 우리의 시나리오에서 bigdl은 다양한 모델 (탐지 및 분류) 을 지원하도록 사용자 정의됩니다. 이 모델은 특정 환경에만 적용 할 수있는 것에서 일반 모델 (카페, 토치, 텐서 플로우) 을 지원하는 큰 데이터 환경으로 이식됩니다. 전체 파이프 라인 프로세스가 최적화되고 가속화되었습니다. bigdl을 통한 스파크 환경에서 기능 추출을위한 파이프 라인은 그림 1 에 나와 있습니다.

스파크를 사용하여 분산 오픈 소스 데이터베이스에서 수억 개의 원본 사진을 읽고 RDDUse 스파크를 구축하여 크기 조정, 평균 값 감산 및 구성 등 사진을 사전 처리합니다. SSD 모델을 로드하기 위해 batchUsing bigdl에 데이터, 스파크를 통해 그림에서 대규모 및 분산 대상 탐지가 수행되고 일련의 감지 좌표 및 해당 점수가 획득됩니다.

가장 높은 점수를 가진 검출 결과는 대상 타겟으로 유지되고, 타겟 이미지는 타겟의 rdd를 검출 코디네이터에 따라 원본 이미지를 절단하여 획득된다. 크기 조정을 포함하여 batchbigdl을 형성하는 픽처는 딥 비트 모델을로드하는 데 사용되며 스파크는 해당 타겟 이미지의 분산 된 특징을 추출하여 해당 이미지를 얻는 데 사용됩니다. 기능

검출 결과 (추출 된 대상 특징 RDD) 는 데이터 판독, 데이터 분할, 전처리, 예측 및 결과 저장을 포함한 전체 데이터 분석 파이프 라인에 저장됩니다. bigdl을 통해 스파크에서 쉽게 구현할 수 있습니다. 기존 빅 데이터 클러스터 (Hadoop/spark) 에서 사용자는 클러스터 구성을 수정하지 않고 bigdl을 사용하여 딥 러닝 응용 프로그램을 실행할 수 있습니다. 또한 bigdl은 스파크 플랫폼의 높은 확장 성을 사용하여 많은 수의 노드 및 작업으로 쉽게 확장 될 수 있으므로 데이터 분석 프로세스의 속도를 크게 높일 수 있습니다. 분산 된 딥 러닝을 지원하는 것 외에도 bigdl은 이미지 전처리 라이브러리, 모델 로딩 도구와 같은 사용하기 쉬운 도구를 많이 제공합니다. (타사 딥 러닝 프레임 워크의 로딩 모델 포함) 사용자가 전체 파이프 라인을 구축하는 데 더 편리합니다.

이미지 preprocessingbigdl은 다양한 공통 이미지 변환 및 이미지 향상 기능을 지원하는 OpenCV [5] 를 기반으로 한 이미지 전처리 라이브러리 [4] 를 제공합니다. 사용자는 이러한 기본 기능을 사용하여 이미지 전처리 파이프 라인을 쉽게 구축 할 수 있습니다. 또한 사용자는 라이브러리에서 제공하는 opencv 함수를 호출하여 사용자 지정 이미지 변환을 작동 할 수 있습니다. 이 샘플의 전처리 파이프 라인은 일련의 변환을 통해 원본 rdd를 배치 rdd로 변환합니다. 그 중 bytetomat는 바이트 그림을 opencv의 매트 저장 형식으로 변환하고 크기를 조정하면 그림의 크기를 300x300 조정합니다. mattofloats는 매트의 픽셀을 플로트 배열 형식으로 저장하고 해당 채널의 평균값을 뺍니다. 마지막으로 roiimagetobatch는 데이터를 일괄 처리하여 예측 또는 훈련을위한 모델의 입력으로 사용됩니다.

로딩 모델 사용자는 bigdl을 사용하여 사전 훈련 된 모델을로드하고 스파크 프로그램에서 직접 사용할 수 있습니다. Bigdl 모델 파일이 주어지면 모듈을 호출 할 수 있습니다. 모델을 얻기 위해로드. 또한 bigdl은 Caffe, torflow 및 tensorflow와 같은 타사 딥 러닝 프레임 워크 모델의 수입도 지원합니다.

사용자는 데이터 예측, 기능 추출, 모델 미세 조정 등을 위해 훈련 된 모델을 쉽게로드 할 수 있습니다. Caffe를 예로 들어 caffe의 모델은 모델 프로토 텍스트 정의 파일과 모델 매개 변수 파일의 두 파일로 구성됩니다. 아래 그림과 같이 사용자는 사전 훈련 된 Caffe 모델을 스파크 및 bigdl 프로그램에 쉽게로드 할 수 있습니다. Performancewe는 Caffe 및 bigdl을 기반으로 한 Xeon 클러스터 솔루션의 성능을 벤치마킹합니다. Jd의 내부 클러스터 환경에서 테스트가 실행 중입니다.

다음을 포함한 테스트 표준 테스트 이미지 처리 및 분석 파이프 라인: 분산 오픈 소스 데이터베이스에서 사진 읽기 (사진 소스에서 메모리로 사진 다운로드)

대상 탐지 모델 및 기능 추출에 대한 기능 추출 모델에 대한 입력결과 (그림 경로 및 기능) 를 파일 시스템 노트에 저장하십시오. 다운로드 요소는 전체 종단 간 처리량에 영향을 미치는 중요한 요소가되었습니다. 이 경우 처리 시간의이 부분은 전체 처리 시간의 약 절반을 차지합니다 (다운로드 감지 기능). GPU 서버는 gpu를 사용하여 다운로드 처리를 가속화 할 수 없습니다.

환경 테스트: NVIDIA Tesla K40, 20 개의 카드 실행 concurrentlyCPU: Intel (R) Xeon (R) CPU e5-2650 V4 @ 2.20 GHz, 총 1200 개의 논리 코어 (각 서버에는 24 개의 물리적 코어가 있습니다. 하이퍼 스레딩을 가능하게하고 원사의 50 논리 코어로 구성됩니다)

테스트 결과 그림 2 는 20 K40 동시 처리 사진의 caffe의 처리량이 약 540 개의 사진/s이고 bigdl의 원사 처리량 (Xeon) 을 보여줍니다. 1200 논리 코어가있는 클러스터는 약 2070 개의 사진/s입니다. Xeon 클러스터의 bigdl 처리량은 GPU 클러스터의 처리량의 약 3.83 배이므로 대규모 이미지의 처리 시간이 크게 단축됩니다. 테스트 결과에 따르면 bigdl은 대규모 이미지 기능 추출 응용 프로그램에서 더 나은 지원을 제공합니다. Bigdl의 높은 확장 성, 고성능 및 사용 편의성은 그림 스케일의 거대하고 폭발적인 성장에 더 쉽게 대처할 수 있도록 도와줍니다. 이러한 테스트 결과를 기반으로 jd는 GPU 클러스터에 기반한 Caffe 이미지 특징 추출의 구현을 Xeon 클러스터를 기반으로 bigdl 방식으로 업그레이드하고이를 스파크 클러스터 생산 환경에 배포합니다.

그림 2 는 그림 피처 추출 pipelinebigdl의 높은 확장 성, 높은 성능 및 사용 편의성에서 K40 과 xeon의 처리량을 비교합니다. Jd는 딥 러닝 기술을 사용하여 방대한 이미지를 더 쉽게 처리합니다. Jd는 분산 모델 교육과 같은 심층 학습 응용 프로그램의 넓은 범위에 bigdl을 계속 적용 할 것입니다. 견적

[1]. Liu, Wei, et al. SSD: 단일 샷 멀티 박스 검출기. 컴퓨터 비전에 관한 유럽 회의. 스프링거, 참, 2016. [2]. 린, 케빈 등. 감독되지 않은 깊은 신경망으로 컴팩트 이진 설명자를 학습합니다. 컴퓨터 비전 및 패턴 인식에 관한 IEEE 회의의 절차, 2016. [3]. https://github.com/intel-analyTIcs/BigDL

[4]. https://github.com/intel-analytics/analytics-zoo/tree/master/transform/vision [5].

우리와 연락을 취하십시오
추천 기사
사례
데이터 없음
Shenzhen Tiger Wong Technology Co., Ltd는 차량 지능형 주차 시스템, 번호판 인식 시스템, 보행자 출입 통제 개찰구, 얼굴 인식 단말기 및 LPR 주차 솔루션 .
데이터 없음
CONTACT US

심천 TigerWong 기술 Co.,Ltd

전화:86 13717037584

이메일: info@sztigerwong.com

주소: 실리콘밸리 파워디지털산업단지 A2빌딩 1층 22 Dafu Road, Guanlan Street, Longhua District,

심천, 광동성, 중국  

                    

저작권©2021 심천 TigerWong 기술 Co.,Ltd  | 사이트맵
Contact us
skype
whatsapp
messenger
contact customer service
Contact us
skype
whatsapp
messenger
취소
Customer service
detect