OCI Vision 및 Oracle Autonomous Database를 사용하여 실시간 객체 식별자 구축
Oracle Cloud Infrastructure(OCI) Vision, Oracle Functions, API Gateway, Oracle Autonomous Database(ADB)를 사용하여 실시간 객체 식별 비전 모델을 구축하는 방법을 알아봅니다. 이 참조 아키텍처에서는 OCI Vision 교육을 받은 모델을 프론트 엔드 웹 앱과 통합하여 휴대폰 카메라로 실시간 객체 식별을 수행하는 방법에 대해 설명합니다.
구조
OCI Vision은 대규모 심층 학습 기반 이미지 분석을 수행하기 위한 인공 지능(AI) 서비스입니다. 사전 구축된 모델을 사용할 수 있으므로 개발자는 머신 러닝 전문 지식 없이도 애플리케이션에 이미지 인식을 빠르게 구축할 수 있습니다.
Vision 모델은 인공 지능을 사용하여 컴퓨터에서 이미지에서 정보를 추출할 수 있도록 합니다. 이 구조는 terraform 스크립트를 사용하여 OCI Vision 모델을 사용하는 웹 애플리케이션을 생성하고 휴대폰 카메라를 사용하여 실시간 객체 식별을 수행합니다.
이 아키텍처에는 개발자가 실시간 객체 식별을 수행하는 데 사용할 수 있는 선택적 웹 애플리케이션이 포함되어 있습니다. 웹 애플리케이션 설정이 완료된 후 사용자는 휴대폰에서 웹 앱을 열고 카메라를 활성화하고 스냅샷을 생성할 수 있습니다. 앱은 이미지를 분석하고 이미지 세부정보를 반환합니다.
python OCI SDK를 사용하여 OCI Vision 서비스 및 데이터베이스를 호출하는 요청이 서버리스 함수로 전송됩니다. 그런 다음 Vision Service는 신뢰도 점수가 있는 레이블 목록을 반환하고 데이터베이스는 사용 가능한 레이블 목록에 대한 세부정보를 저장하는 데 도움이 됩니다. 함수 서비스는 항상 서비스를 활성화할 필요가 없는 시나리오나 함수 서비스에 준비 시간이 필요하기 때문에 응답 시간에 대한 제한이 느슨한 경우에 유용합니다. 하지만 기능이 활성화된 컴퓨트 시간에 대해서만 요금이 부과되므로 매우 비용 효율적일 수 있다는 이점이 있습니다.
신속한 테스트를 위해 웹 앱과 마찬가지로 아키텍처를 사용하고 저장소에서 사용 가능한 모든 리소스를 사용할 수 있습니다. 자체 테넌트에 비전 모델을 통합하여 스크립트를 수정하여 프론트엔드 제안 아키텍처(로드 밸런서 및 웹 서버)를 제거하고 API 게이트웨이를 사용하여 자체 백엔드 서비스에서 필요할 때 함수를 호출하고자 할 수도 있습니다.
비전 서비스는 이미지 분류, 객체 감지 및 문서 분석에 사용할 수 있습니다. 비전 서비스에는 일반적인 목적으로 사전 학습된 모델이 포함되지만 데이터 레이블링 서비스와 함께 사용하여 보유한 특정 데이터에 대한 사용자정의 모델을 생성할 수도 있습니다. terraform 스크립트는 비전 서비스를 사용하기 위한 일반적인 아키텍처를 생성할 수 있는 접근 권한을 제공합니다.
다음 다이어그램은 이 참조 아키텍처를 보여 줍니다.
이 구조에는 다음과 같은 구성 요소가 있습니다.
- 지역
Oracle Cloud Infrastructure 지역은 가용성 도메인이라고 하는 데이터 센터가 하나 이상 포함된 지역화된 지리적 영역입니다. 지역은 다른 지역과는 독립적이며, 광대한 거리는 국가 또는 대륙 간에 분리될 수 있습니다.
- 가용성 도메인
가용성 도메인은 한 지역 내에 있는 독립 실행형 독립 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용을 제공하는 다른 가용성 도메인의 리소스와 분리됩니다. 가용성 도메인은 전원, 냉각 또는 내부 가용성 도메인 네트워크와 같은 인프라를 공유하지 않습니다. 따라서 특정 가용성 도메인에서 장애가 발생해도 해당 지역의 다른 가용성 도메인에 영향을 미칠 가능성이 낮습니다.
- 결함 도메인
장애 도메인은 한 가용성 도메인 내의 하드웨어와 인프라를 그룹화하는 것입니다. 각 가용성 도메인에는 독립된 전원과 하드웨어가 포함된 장애 도메인이 3개 있습니다. 여러 장애 도메인에 리소스를 분배할 때 애플리케이션은 장애 도메인 내부의 물리적 서버 장애, 시스템 유지보수 및 전원 장애를 허용할 수 있습니다.
- VCN(가상 클라우드 네트워크) 및 서브넷
VCN은 Oracle Cloud Infrastructure 지역에 설정하는 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존 데이터 센터 네트워크와 마찬가지로 VCN을 사용하면 네트워크 환경을 완벽하게 제어할 수 있습니다. VCN에는 VCN 생성 후 변경할 수 있는 겹치지 않는 CIDR 블록이 여러 개 있을 수 있습니다. VCN을 하나의 영역 또는 가용성 도메인으로 범위를 지정할 수 있는 서브넷으로 분할할 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속 주소 범위로 구성됩니다. 생성 후 서브넷의 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.
- 인터넷 게이트웨이
인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 간의 트래픽을 허용합니다.
- NAT(네트워크 주소 변환) 게이트웨이
NAT 게이트웨이를 사용하면 VCN의 전용 리소스가 인터넷의 호스트에 접근할 수 있으며 수신 인터넷 연결에 이러한 리소스를 노출시키지 않아도 됩니다.
- 로드 밸런서
Oracle Cloud Infrastructure Load Balancing Service에서는 단일 시작점에서 백엔드에 있는 여러 서버로 트래픽을 자동으로 배포합니다.
- 경로 테이블
가상 라우팅 테이블에는 일반적으로 게이트웨이를 통해 서브넷에서 VCN 외부 대상으로 트래픽을 라우팅하는 규칙이 포함됩니다.
- API 게이트웨이
Oracle API Gateway를 사용하면 네트워크 내에서 액세스할 수 있고 필요한 경우 공용 인터넷에 노출할 수 있는 전용 끝점이 있는 API를 게시할 수 있습니다. 엔드포인트는 API 검증, 요청 및 응답 변환, CORS, 인증 및 권한 부여, 요청 제한을 지원합니다.
- Autonomous Database
Oracle Cloud Infrastructure Autonomous Database는 트랜잭션 처리 및 데이터 웨어하우징 워크로드에 사용할 수 있는 사전 구성된 완전 관리형 데이터베이스 환경입니다. 하드웨어를 구성 또는 관리하거나 소프트웨어를 설치할 필요가 없습니다. Oracle Cloud Infrastructure는 데이터베이스 생성 및 데이터베이스 백업, 패치, 업그레이드, 튜닝을 처리합니다.
- 함수
Oracle Functions는 확장성이 뛰어난 완전 관리형 멀티테넌트 주문형 Functions-as-a-Service(FaaS) 플랫폼입니다. Fn Project 오픈 소스 엔진으로 구동됩니다. 함수를 사용하면 코드를 배치하고 직접 호출하거나 이벤트에 응답하여 트리거할 수 있습니다. Oracle Functions는 Oracle Cloud Infrastructure Registry에서 호스팅되는 Docker 컨테이너를 사용합니다.
- 객체 스토리지
오브젝트 스토리지는 데이터베이스 백업, 애널리틱스 데이터, 이미지 및 비디오와 같은 풍부한 컨텐츠를 포함하여 모든 컨텐츠 유형의 대규모 구조적 및 비구조적 데이터에 신속하게 접근할 수 있도록 합니다. 인터넷이나 클라우드 플랫폼 내에서 직접 안전하게 데이터를 저장하고 검색할 수 있습니다. 성능 저하 또는 서비스 신뢰성을 경험하지 않고도 원활하게 스토리지를 확장할 수 있습니다. 빠르고 즉각적이며 자주 액세스해야 하는 "핫" 스토리지에 표준 스토리지를 사용합니다. 장기간 보존하고 거의 액세스하지 않는 "콜드" 스토리지에 아카이브 스토리지를 사용합니다.
- 저장소
Oracle Cloud Infrastructure Vault를 사용하면 데이터를 보호하는 암호화 키와 클라우드에서 리소스에 대한 액세스를 보호하는 데 사용하는 비밀 인증서를 중앙에서 관리할 수 있습니다.
- 비전
Oracle Cloud Infrastructure Vision은 대규모의 딥 러닝 기반 이미지 분석을 수행하기 위한 AI 서비스입니다. 즉시 사용 가능한 사전 구축 모델을 통해 개발자는 ML(머신 러닝) 전문 지식 없이도 애플리케이션에 이미지 인식 및 텍스트 인식을 쉽게 구축할 수 있습니다.
- OCI 데이터 레이블링
OCI 데이터 레이블링 서비스는 AI/ML 모델을 구축할 목적으로 고객이 데이터 집합을 생성/찾아보기하고, 데이터 레코드(텍스트, 이미지)를 확인하고, 레이블을 적용할 수 있도록 해주는 OCI 고유 서비스입니다. 이 서비스는 레이블 지정 프로세스를 보조하도록 설계된 대화식 사용자 인터페이스도 제공합니다. 개발자는 원시 이미지를 업로드하고, 레이블을 추가하고, 이미지 영역을 강조 표시할 수 있습니다. 이러한 레이블을 이미지에 추가하면 결과 데이터 세트를 사용하여 사용자 정의 이미지 분류 및 객체 감지 모델을 학습시킬 수 있습니다.
레코드에 레이블이 지정되면 AI/ML 모델 개발에 사용할 수 있도록 데이터 세트를 행으로 구분된 JSON으로 내보낼 수 있습니다. 사용자정의 모델 교육 워크플로우의 일부로 OCI Vision 및 OCI Language와 같은 다른 서비스에서 직접 OCI 데이터 레이블링에 액세스할 수도 있습니다. 자체 딥 러닝 또는 자연어 처리 모델을 구축하고 교육하려는 데이터 과학자는 OCI Data Science를 통해 레이블이 있는 데이터 세트를 사용할 수 있습니다.
배치
이 참조 아키텍처를 배치하는 데 필요한 코드는 GitHub에서 사용할 수 있습니다. GitHub에서 컴퓨터로 코드를 다운로드하고, 코드를 사용자 정의하고, Terraform CLI를 사용하여 아키텍처를 배포할 수 있습니다.
- GitHub으로 이동합니다.
- 로컬 컴퓨터에 저장소를 복제하거나 다운로드합니다.
README문서의 지침을 따릅니다.
