SlideShare a Scribd company logo
1 of 31
Download to read offline
맨땅에서 AI학습플랫폼을 만들기까지
박선우
Sunwoo Park
간단한 자기소개
딥러닝과 Python에 관심이 많은 개발자
딥러닝 공부하러 왔다가 더 많은 사람들에게 딥러닝 전파를 위해
모두의연구소에서 AIFFEL 학습플랫폼 개발
Django, DevOps, Deep Learning 에 관심
오늘 할 이야기
AI학습플랫폼을 만드는데 주요했던 3가지 주제 와
이를 해결하기 위한 개발팀의 여정
“딥러닝 공부하고 싶은데,
환경설정부터 막힙니다…
환경설정 지옥에서 벗어나서
웹에서 딥러닝 코드 바로
돌리고싶어요”
“콘텐츠 편집 쉽고
콘텐츠 형상관리를 편하게
하고싶어요”
“우리 개발팀 일당백인데
개발 편하게 할 수 있는
잘 알려진 기술로 개발해요"
교육생
AI학습플랫폼을 만들기전에 사용자 이야기부터 들어봅시다
에디터 개발자
웹에서 딥러닝코드를 돌리게한다?!
무거운 딥러닝코드를 환경설정없이 웹에서 동작하려면
How a Python interpreter runs code
[1] https://www.quora.com/
How-does-a-Python-program-get-executed-Is-there-any-concept-of-compile-time-and-run-time-in-Python
Running Python code in web browser
[1] https://yasoob.me/2019/05/22/running-python-in-the-browser/
● hello.py 가
transcrypt hello.py 를 통해
hello.js 로 변환
● 이미 컴파일된 코드
정의된 이벤트만 사용가능
무거운 라이브러리는 로딩시간 소요
TRANSCRYPT https://github.com/qquick/Transcrypt
[1] https://www.transcrypt.org/live/transcrypt/demos/plotly_demo/plotly_demo.html
BRYTHON https://github.com/brython-dev/brython
[1] https://brython.info/gallery/three.html
SKULPT https://github.com/skulpt/skulpt
● 단순한 코드이지만
입력값에 따라 바뀌는 결과값 확인
● Transcrypt, Brython 와 달리
웹상에서 파이썬 프로그래밍 환경을
구축하는데 더 포커싱 두었음
[1] https://github.com/skulpt/skulpt
PYODIDE https://github.com/pyodide/pyodide
● Jupyter Notebook 강력한 툴이나
호스팅된 서버가 항상 필요
● Mozilla WebAssembly Cpython
NumPy, SciPy, Matplotlib,
Pandas를 바로 사용할 수 있음
[1] https://alpha.iodide.io/notebooks/300/
Jupyter-like model Architecture
[1] https://jupyter.readthedocs.io/en/latest/projects/architecture/content-architecture.html
웹 브라우저와 Javascript로
어떤 코드까지 돌릴수있을까?
ex) Pyodide : Numpy, Scipy, Pandas, Matplotlib...
Python 코드말고 Deep Learning 코드는?
Python 코드말고 Deep Learning 코드는?
[1] https://www.amazon.com/Composition-Notebook-need-Neural-Network/dp/B0841H99XR
● TensorFlow 하드웨어 요구사항
○ CUDA® 아키텍처 3.5, 5.0, 6.0, 7.0, 7.5, 8.0
이상을 포함하는 NVIDIA® GPU 카드 CUDA®
지원 GPU 카드 목록을 참고하세요.
○ 지원되지 않는 CUDA® 아키텍처를 사용하는
GPU의 경우 또는 PTX에서 JIT 컴파일을
방지하거나 다른 버전의 NVIDIA®
라이브러리를 사용하려면 Linux 소스에서 빌드
가이드를 참고하세요.
○ 패키지에는 지원되는 최신 CUDA® 아키텍처를
제외하고 PTX 코드가 포함되어 있지 않습니다.
따라서 CUDA_FORCE_PTX_JIT=1이 설정된
경우 이전 GPU에서 TensorFlow가 로드되지
않습니다. 자세한 내용은 애플리케이션
호환성을 참고하세요.
Deep Learning in LMS
[1] https://jupyter.readthedocs.io/en/latest/projects/architecture/content-architecture.html
Deep Learning in LMS
[1] https://github.com/executablebooks/thebe
ThebeLab: turning static HTML pages into live documents
좀 더 가볍고 빠른 방식으로 - Jupyterlab
콘텐츠 학습을 시작하면
Jupyterlab API를 활용해
세션 체크 및 커널연결
좀 더 가볍고 빠른 방식으로 - Docker & Cloud
(1) 학습 콘텐츠에 해당하는
Docker Image 테이블에서 tag search
(2) 도커허브에서 해당 도커이미지 load, container 생성
(3) 클라우드 엔드포인트 return
학습플랫폼의 한 축 콘텐츠관리 시스템 (CMS)
Django Wagtail 패키지를 커스터마이즈해서 React와 API 통신
● Django에서 제공하는 CMS
● 컨텐츠를 블록형태로 구성
자신이 원하는 블록들로
커스터마이즈하기 쉬움
● 권한관리, 이미지 및 문서관리,
검색, 형상관리 구현
Wagtail https://github.com/wagtail/wagtail
[1] https://wagtail.io/
Wagtail - Streamfield
[1] https://wagtail.io/features/
● 고정된 형태가 아니라 콘텐츠 형식에
맞게 다양한 블록 타입 혼합가능
● 이미지, 비디오, 지도, 차트, 코드
● 데이터베이스에 json 형태로 저장 API
제공
Wagtail API 엔드포인트
PagesAPIViewSet /api/v2/pages/
ImagesAPIViewSet /api/v2/images/
DocumentsAPIViewSet /api/v2/documents/
Page모델 그리고 BaseStreamBlock
React와 Rest Api로 통신하는 법
● GET api/content/<slug>/
Type 으로 어떤 블록인지 찾고
블록의 기능에 따라 value 사용
Django의 탄탄한 packages 없는게 없다
바퀴를 재발명하지 말자
Django Packages
[1] https://djangopackages.org/
유용했던 Django Packages
Django
REST framework
Django로 Rest api
를 생성한다면 반드시
사용해야 할 패키지
Django
Background Tasks
간단한 비동기 작업
Django
Pydenticon
사용자 식별 이미지
Django
Hijack
관리자가 사용자
화면에 로그인없이
직접 접속가능
Django survey customize
core
(프로젝트 기존 사용중인 폴더)
/survey 폴더를 생성하고
Custom 이 필요한 부분을 직접
생성함
예제에서는
models.py
seriazliers.py
urls.py
views.py 를 생성
새로운 AI학습플랫폼을
함께 만들 동료를 찾고 있습니다
https://modulabs.co.kr/
감사합니다 :)
박 선 우
E-mail : sw.park@modulabs.co.kr
FB : sunwoo.park.585
Github: https://github.com/parksunwoo

More Related Content

What's hot

PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보Young Hoo Kim
 
자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLPEunjeong (Lucy) Park
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Joongi Kim
 
[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동NAVER D2
 
파이썬을 만난지 100일♥ 째
파이썬을 만난지 100일♥ 째파이썬을 만난지 100일♥ 째
파이썬을 만난지 100일♥ 째혜선 최
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투Ubuntu Korea Community
 
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우Ian Choi
 
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)Taeung Song
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용Ian Choi
 
Machine Learning Model Serving with Backend.AI
Machine Learning Model Serving with Backend.AIMachine Learning Model Serving with Backend.AI
Machine Learning Model Serving with Backend.AIJeongkyu Shin
 
TensorFlow.js & Applied AI at the Coca-Cola Company
TensorFlow.js & Applied AI at the Coca-Cola CompanyTensorFlow.js & Applied AI at the Coca-Cola Company
TensorFlow.js & Applied AI at the Coca-Cola CompanyModulabs
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Jeongkyu Shin
 
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)성일 한
 
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기nexusz99
 

What's hot (17)

PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
 
자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
 
[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동
 
파이썬을 만난지 100일♥ 째
파이썬을 만난지 100일♥ 째파이썬을 만난지 100일♥ 째
파이썬을 만난지 100일♥ 째
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
 
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
 
10 1 딕셔너리
10 1 딕셔너리10 1 딕셔너리
10 1 딕셔너리
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용
 
Machine Learning Model Serving with Backend.AI
Machine Learning Model Serving with Backend.AIMachine Learning Model Serving with Backend.AI
Machine Learning Model Serving with Backend.AI
 
Malware Dataset & Ubuntu
Malware Dataset & UbuntuMalware Dataset & Ubuntu
Malware Dataset & Ubuntu
 
TensorFlow.js & Applied AI at the Coca-Cola Company
TensorFlow.js & Applied AI at the Coca-Cola CompanyTensorFlow.js & Applied AI at the Coca-Cola Company
TensorFlow.js & Applied AI at the Coca-Cola Company
 
Why use git
Why use gitWhy use git
Why use git
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
 
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
 
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
 

Similar to 맨땅에서 AI학습플랫폼을 만들기까지

SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AIJoongi Kim
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1Booseol Shin
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료지원 정
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호Jiho Lee
 
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서Jeongmin Cha
 
Hoodpub 기술 발표
Hoodpub 기술 발표Hoodpub 기술 발표
Hoodpub 기술 발표Hyun-min Choi
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
 
Lablupconf session8 "Paving the road to AI-powered world"
Lablupconf session8 "Paving the road to AI-powered world"Lablupconf session8 "Paving the road to AI-powered world"
Lablupconf session8 "Paving the road to AI-powered world"Lablup Inc.
 
141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작Changwon Choe
 
[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현
[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현Byunghyun Ban
 
Github? linux? 이건 뭐지?
Github? linux? 이건 뭐지?Github? linux? 이건 뭐지?
Github? linux? 이건 뭐지?Suho Lee
 
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표Sinhyub Kim
 
[온라인교육시리즈] Jupyter를 이용한 분석 환경 구축하기 - 허창현 클라우드 솔루션 아키텍트
[온라인교육시리즈] Jupyter를 이용한 분석 환경 구축하기 - 허창현 클라우드 솔루션 아키텍트[온라인교육시리즈] Jupyter를 이용한 분석 환경 구축하기 - 허창현 클라우드 솔루션 아키텍트
[온라인교육시리즈] Jupyter를 이용한 분석 환경 구축하기 - 허창현 클라우드 솔루션 아키텍트NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍Changwon Choe
 
How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020AeYeong Kim
 
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017Amazon Web Services Korea
 

Similar to 맨땅에서 AI학습플랫폼을 만들기까지 (20)

SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호
 
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
 
Hoodpub 기술 발표
Hoodpub 기술 발표Hoodpub 기술 발표
Hoodpub 기술 발표
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
JetsonTX2 Python
 JetsonTX2 Python  JetsonTX2 Python
JetsonTX2 Python
 
Lablupconf session8 "Paving the road to AI-powered world"
Lablupconf session8 "Paving the road to AI-powered world"Lablupconf session8 "Paving the road to AI-powered world"
Lablupconf session8 "Paving the road to AI-powered world"
 
01_2_파이썬설치
01_2_파이썬설치 01_2_파이썬설치
01_2_파이썬설치
 
141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작
 
[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝  | 반병현
[3장] 딥러닝을 위한 환경 구축하기 | 수학 통계를 몰라도 이해할 수 있는 쉬운 딥러닝 | 반병현
 
Github? linux? 이건 뭐지?
Github? linux? 이건 뭐지?Github? linux? 이건 뭐지?
Github? linux? 이건 뭐지?
 
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표
 
[온라인교육시리즈] Jupyter를 이용한 분석 환경 구축하기 - 허창현 클라우드 솔루션 아키텍트
[온라인교육시리즈] Jupyter를 이용한 분석 환경 구축하기 - 허창현 클라우드 솔루션 아키텍트[온라인교육시리즈] Jupyter를 이용한 분석 환경 구축하기 - 허창현 클라우드 솔루션 아키텍트
[온라인교육시리즈] Jupyter를 이용한 분석 환경 구축하기 - 허창현 클라우드 솔루션 아키텍트
 
141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍
 
How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020
 
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
 

맨땅에서 AI학습플랫폼을 만들기까지

  • 2. 간단한 자기소개 딥러닝과 Python에 관심이 많은 개발자 딥러닝 공부하러 왔다가 더 많은 사람들에게 딥러닝 전파를 위해 모두의연구소에서 AIFFEL 학습플랫폼 개발 Django, DevOps, Deep Learning 에 관심
  • 3. 오늘 할 이야기 AI학습플랫폼을 만드는데 주요했던 3가지 주제 와 이를 해결하기 위한 개발팀의 여정
  • 4. “딥러닝 공부하고 싶은데, 환경설정부터 막힙니다… 환경설정 지옥에서 벗어나서 웹에서 딥러닝 코드 바로 돌리고싶어요” “콘텐츠 편집 쉽고 콘텐츠 형상관리를 편하게 하고싶어요” “우리 개발팀 일당백인데 개발 편하게 할 수 있는 잘 알려진 기술로 개발해요" 교육생 AI학습플랫폼을 만들기전에 사용자 이야기부터 들어봅시다 에디터 개발자
  • 5. 웹에서 딥러닝코드를 돌리게한다?! 무거운 딥러닝코드를 환경설정없이 웹에서 동작하려면
  • 6. How a Python interpreter runs code [1] https://www.quora.com/ How-does-a-Python-program-get-executed-Is-there-any-concept-of-compile-time-and-run-time-in-Python
  • 7. Running Python code in web browser [1] https://yasoob.me/2019/05/22/running-python-in-the-browser/
  • 8. ● hello.py 가 transcrypt hello.py 를 통해 hello.js 로 변환 ● 이미 컴파일된 코드 정의된 이벤트만 사용가능 무거운 라이브러리는 로딩시간 소요 TRANSCRYPT https://github.com/qquick/Transcrypt [1] https://www.transcrypt.org/live/transcrypt/demos/plotly_demo/plotly_demo.html
  • 10. SKULPT https://github.com/skulpt/skulpt ● 단순한 코드이지만 입력값에 따라 바뀌는 결과값 확인 ● Transcrypt, Brython 와 달리 웹상에서 파이썬 프로그래밍 환경을 구축하는데 더 포커싱 두었음 [1] https://github.com/skulpt/skulpt
  • 11. PYODIDE https://github.com/pyodide/pyodide ● Jupyter Notebook 강력한 툴이나 호스팅된 서버가 항상 필요 ● Mozilla WebAssembly Cpython NumPy, SciPy, Matplotlib, Pandas를 바로 사용할 수 있음 [1] https://alpha.iodide.io/notebooks/300/
  • 12. Jupyter-like model Architecture [1] https://jupyter.readthedocs.io/en/latest/projects/architecture/content-architecture.html
  • 13. 웹 브라우저와 Javascript로 어떤 코드까지 돌릴수있을까? ex) Pyodide : Numpy, Scipy, Pandas, Matplotlib...
  • 14. Python 코드말고 Deep Learning 코드는?
  • 15. Python 코드말고 Deep Learning 코드는? [1] https://www.amazon.com/Composition-Notebook-need-Neural-Network/dp/B0841H99XR ● TensorFlow 하드웨어 요구사항 ○ CUDA® 아키텍처 3.5, 5.0, 6.0, 7.0, 7.5, 8.0 이상을 포함하는 NVIDIA® GPU 카드 CUDA® 지원 GPU 카드 목록을 참고하세요. ○ 지원되지 않는 CUDA® 아키텍처를 사용하는 GPU의 경우 또는 PTX에서 JIT 컴파일을 방지하거나 다른 버전의 NVIDIA® 라이브러리를 사용하려면 Linux 소스에서 빌드 가이드를 참고하세요. ○ 패키지에는 지원되는 최신 CUDA® 아키텍처를 제외하고 PTX 코드가 포함되어 있지 않습니다. 따라서 CUDA_FORCE_PTX_JIT=1이 설정된 경우 이전 GPU에서 TensorFlow가 로드되지 않습니다. 자세한 내용은 애플리케이션 호환성을 참고하세요.
  • 16. Deep Learning in LMS [1] https://jupyter.readthedocs.io/en/latest/projects/architecture/content-architecture.html
  • 17. Deep Learning in LMS [1] https://github.com/executablebooks/thebe ThebeLab: turning static HTML pages into live documents
  • 18. 좀 더 가볍고 빠른 방식으로 - Jupyterlab 콘텐츠 학습을 시작하면 Jupyterlab API를 활용해 세션 체크 및 커널연결
  • 19. 좀 더 가볍고 빠른 방식으로 - Docker & Cloud (1) 학습 콘텐츠에 해당하는 Docker Image 테이블에서 tag search (2) 도커허브에서 해당 도커이미지 load, container 생성 (3) 클라우드 엔드포인트 return
  • 20. 학습플랫폼의 한 축 콘텐츠관리 시스템 (CMS) Django Wagtail 패키지를 커스터마이즈해서 React와 API 통신
  • 21. ● Django에서 제공하는 CMS ● 컨텐츠를 블록형태로 구성 자신이 원하는 블록들로 커스터마이즈하기 쉬움 ● 권한관리, 이미지 및 문서관리, 검색, 형상관리 구현 Wagtail https://github.com/wagtail/wagtail [1] https://wagtail.io/
  • 22. Wagtail - Streamfield [1] https://wagtail.io/features/ ● 고정된 형태가 아니라 콘텐츠 형식에 맞게 다양한 블록 타입 혼합가능 ● 이미지, 비디오, 지도, 차트, 코드 ● 데이터베이스에 json 형태로 저장 API 제공
  • 23. Wagtail API 엔드포인트 PagesAPIViewSet /api/v2/pages/ ImagesAPIViewSet /api/v2/images/ DocumentsAPIViewSet /api/v2/documents/
  • 25. React와 Rest Api로 통신하는 법 ● GET api/content/<slug>/ Type 으로 어떤 블록인지 찾고 블록의 기능에 따라 value 사용
  • 26. Django의 탄탄한 packages 없는게 없다 바퀴를 재발명하지 말자
  • 28. 유용했던 Django Packages Django REST framework Django로 Rest api 를 생성한다면 반드시 사용해야 할 패키지 Django Background Tasks 간단한 비동기 작업 Django Pydenticon 사용자 식별 이미지 Django Hijack 관리자가 사용자 화면에 로그인없이 직접 접속가능
  • 29. Django survey customize core (프로젝트 기존 사용중인 폴더) /survey 폴더를 생성하고 Custom 이 필요한 부분을 직접 생성함 예제에서는 models.py seriazliers.py urls.py views.py 를 생성
  • 30. 새로운 AI학습플랫폼을 함께 만들 동료를 찾고 있습니다 https://modulabs.co.kr/
  • 31. 감사합니다 :) 박 선 우 E-mail : sw.park@modulabs.co.kr FB : sunwoo.park.585 Github: https://github.com/parksunwoo