삼성 오픈소스 컨퍼런스 2018
[DAY1]
태양에서 세포까지 인공지능 활용 사례
- 네트워크 목표함수 최적화하기
- Objective function은 정의된 문제에 따라 설정
-
Optimize가 어떻게 network를 업데이트 하는가?
- 태양에서 세포까지 극한 알바
- 기존 알고리즘 교체
- 딥러닝으로 풀기 가능해진 문제들
- 거의 흑백에 가까운 사진 복원 (사진 감도 올리는 것보다 더 복원 잘 됨)
- 네모로 가려진 부분 복원
- 새로운 문제 정의
- DeepMind Visual Relation 논문 : 6 프레임만 주고 200 프레임 예측
- 벽 뒤에서 뭐 하는지 행동 예측
- 바이올린과 기타를 같이 연주하는데, 한쪽만 선택하면 소리를 끄집어낼 수 있다.
- 위성 사진으로 지상 사진 복원
- 딥러닝의 효용성
- 사람이 판독한 것보다 더 성능 좋으면 딥러닝으로 대체
- 사진에서 논 부분 파티셔닝
- 시뮬레이션을 굳이 하지 않고 딥러닝으로 대체
- 정답이 없어서 검증 불가
- 유의미한 시뮬레이터가 있는 경우
- 새로운 특징 발견
- 흑점 발견하는 훈련을 시켰는데, 데이터에 에러가 있는 것을 역으로 발견
- 사람이 판독한 것보다 더 성능 좋으면 딥러닝으로 대체
- 딥러닝 실무
- 데이터셋 구축
- 데이터를 얻기 위해 소요되는 시간과 비용
- 데이터를 부풀리는 딥러닝 모델
- 탱크 디텍션 모델 만들기 위해서 장난감 탱크, rc카로 데이터셋 활용
- 계절성을 가지고 있으면 계절별로 데이터셋 수집
- 데이터셋 만드는 검증 체계 필요 (도메인을 잘 알아야 함)
- 데이터셋 구축
- 케라스 코리아
딥러닝계의 블루오션, Apache MXNet
- Deep Learning
- Backpropagation
Apache MXNet
- 아마존이 선택한 딥러닝 프레임워크
- Apache 오픈 소스 프로젝트
- MXNet 활용 사례 : 자율 주행을 위한 객체 탐지
- (github.com/TuSimple/mx-maskrcnn)
1) 유연한 프로그래밍 모델
2) 다양한 언어 및 플랫폼 지원
3) 멀티 GPU환경 최적화
4) 모바일 환경으로 모델 배포
- (github.com/TuSimple/mx-maskrcnn)
Gluon
: 딥러닝 학습 인터페이스 API- Gluon Model Zoo : Neural Network model 제공
- Keras2 백-엔드 지원
- 활용 예제
- Sentiment Analysis : 스탠포드 대학에서 만든 데이터셋
MXNet 소스 공헌 경험 및 활용 사례
- Why MXNet
- CTC Loss
- Efficient Memory
- Multi + Distributed GPUs
- MXNet 커뮤니티
Unity ML-agent
- Machine Learning Camp Jeju
- https://github.com/Kyushik/Unity_ML_Agent
- 모두의 연구소
[DAY2]
DevSecOps
- 기존의 waterfall 방식에서의 보안 (빨간 박스)
- WhiteHat Security : DevOps 방식을 보안이 따라가지 못하고 있다.
- 전통적인 방식과 DevOps 방식은 문화적으로 충돌되는 부분이 많다.
- Separation of Duty : 업무 분리 (운영과 개발 분리 등)
- Dev + Ops : 개발과 운영을 합침
-
전통적인 보안 문화를 어떻게 바꿀 것인가가 쟁점 : Curture Hacking (DevSecOps)
- DevSecOps 구축 사례
- 각각의 단계들이 진행될 때마다 독립적으로 툴 테스트
- DevSecOps 오픈소스 사용
- SANS DevSecOps Toolchain : Pre-commit - Commit(CI) - Acceptance - Production - Operation
Pre-Commit
: version control 하기 전에 6가지 카테고리에서 보안 체크- 문서 작성 : 고려해야 할 요구 분석
- IDE Security Plugins : IDE에 따라 보안 플러그인 사용해서 소스코드 작성 후 바로 사용
- Pre-commit hooks : 커밋 하자마자 pre-commit에서 확인
Commit
(Continuous Integration; CI)- Static code analysis : 사용 언어의 rule에 맞게 체크
- Container security
- Dependency management
Acceptance
(Continuous Delivery) : 빌드해서 배포Production
(Continuous Deployment)Operations
Kubernetes, Docker, Jenkins를 활용한 CI/CD 환경 구축
- Kubernetes (k8s)
- 마스터 서버가 있고, agent node들이 수백 개 있다.
- Pod라고 정의된 개체가 있을 때 여러 docker가 있다.
- Persistent Volumn이 Pod에 붙어 있는 형태
- CI/CD
Fail fast
: 문제가 있을 거면 빨리 문제를 일으켜라, 문제를 빨리 발견해서 빨리 개선CI(Continuous Integration)
: change가 commit되면 즉시 build & testCD(Continuous Delivery/Development)
: CI를 test, deploy 쪽으로 확장하여 release-ready 상태 보장 (페이스북의 경우 특정 연령대, 지역에 특정 버전이 활성화되어 반응을 살펴본다고 함)
- Jenkins
- 파이프라인을 코드로 자동화
- VM 별로 하나씩 툴 설치하고, 환경 구축할 필요가 없어질 것이다. Ingress로 특정IP/jenkins 식으로 관리 가능
- 제품, branch 별로 jenkins 파일 작성하면 형상관리 가능
AI 서비스를 위한 인프라 프레임워크 개발기
- Ksb 인공지능 프레임워크
머신 러닝을 통한 소프트웨어 테스팅의 탐색 전략 자동생성 기술
- Concolic Testing(Dynamic Symbolic Execution)
- Software Testing 기법 중 하나 : software가 unsafe하기 때문 (HeartBleed)
- 랜덤 테스팅 기술 향상 목적 : code coverage 향상
- Concrete state(변수), Symbolic state, Path condition 필요
- 문제 : Path Explosion
- Open-Source Tool : ParaDyse
From Backend.Ai to AIN: The Future of Cheaper, Faster, and Safer AI Development>
- Backend.AI - 모두를 위한 계산 인프라 매니저
- Callosum RPC - Backend.AI를 위한 네트워크 계층
- AI Network - Backend.AI를 위한 인터넷
[후기]
- 태양에서 세포까지 인공지능 활용 사례에 신기한 예시들이 많아서 흥미로웠다.
- Unity ML Agent 코딩하는 게 신기했다. 쉽게 코딩할 수 있다고 하셨는데 과연…? 한양대 대학원생이 자율주행 강화학습에 사용한 예시를 발표했는데 발표 스타일이 인상에 남았다.
- DevOps 개념을 처음 알게 되었다. 워낙 기술이 빠르게 발전해서 조금만 게을러도 그때그때 따라가기가 쉽지 않을 것 같다.
- 시간이 흐를수록 점점 집중력을 잃었다…★
Subscribe via RSS