ݺߣ

ݺߣShare a Scribd company logo
맨땅에서 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

맨땅에서 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