4차 산업혁명과 ICT 기술의 중요성이 증가함에 따라 소프트웨어 중심 사회가 초래되었다. 기존 소프트웨어 교육은 학습 환경구성에 제한적이었으며, 초기에 많은 비용이 발생하였다. 이를 해결하기 위하여 웹 컴파일러를 활용하는 형태의 학습 방법이 개발되었다. 웹 컴파일러는 다양한 소프트웨어 언어를 지원하며, 컴파일 결과를 사용자에게 웹을 통해 보여준다. 하지만 4차 산업혁명의 핵심기술인 인공지능에 대한 웹 컴파일러는 아직 미비한 상황이다. 본 논문에서는 구글 인공지능 라이브러리인 텐서플로우 기반의 웹 컴파일러를 설계, 구현하였다. nodeJS 기반의 서버에 텐서플로우와 텐서플로우 서빙, 파이썬 주피터를 구현하고, meteorJS 기반의 웹 서버를 구축하여 인공지능 학습을 위한 시스템을 구현하였다. 소프트웨어 중심 사회에서 인공지능 학습을 위한 도구로써의 활용이 가능할 것으로 기대된다.
4차 산업혁명과 ICT 기술의 중요성이 증가함에 따라 소프트웨어 중심 사회가 초래되었다. 기존 소프트웨어 교육은 학습 환경구성에 제한적이었으며, 초기에 많은 비용이 발생하였다. 이를 해결하기 위하여 웹 컴파일러를 활용하는 형태의 학습 방법이 개발되었다. 웹 컴파일러는 다양한 소프트웨어 언어를 지원하며, 컴파일 결과를 사용자에게 웹을 통해 보여준다. 하지만 4차 산업혁명의 핵심기술인 인공지능에 대한 웹 컴파일러는 아직 미비한 상황이다. 본 논문에서는 구글 인공지능 라이브러리인 텐서플로우 기반의 웹 컴파일러를 설계, 구현하였다. nodeJS 기반의 서버에 텐서플로우와 텐서플로우 서빙, 파이썬 주피터를 구현하고, meteorJS 기반의 웹 서버를 구축하여 인공지능 학습을 위한 시스템을 구현하였다. 소프트웨어 중심 사회에서 인공지능 학습을 위한 도구로써의 활용이 가능할 것으로 기대된다.
As the importance of the 4th industrial revolution and ICT technology increased, it became a software centered society. Existing software training was limited to the composition of the learning environment, and a lot of costs were incurred early. In order to solve these problems, a learning method u...
As the importance of the 4th industrial revolution and ICT technology increased, it became a software centered society. Existing software training was limited to the composition of the learning environment, and a lot of costs were incurred early. In order to solve these problems, a learning method using a web compiler was developed. The web compiler supports various software languages and shows compilation results to the user via the web. However, Web compilers that support artificial intelligence technology are missing. In this paper, we designed and implemented a tensor flow based web compiler, Google's artificial intelligence library. We implemented a system for learning artificial intelligence by building a meteorJS based web server, implementing tensor flow and tensor flow serving, Python Jupyter on a nodeJS based server. It is expected that it can be utilized as a tool for learning artificial intelligence in software centered society.
As the importance of the 4th industrial revolution and ICT technology increased, it became a software centered society. Existing software training was limited to the composition of the learning environment, and a lot of costs were incurred early. In order to solve these problems, a learning method using a web compiler was developed. The web compiler supports various software languages and shows compilation results to the user via the web. However, Web compilers that support artificial intelligence technology are missing. In this paper, we designed and implemented a tensor flow based web compiler, Google's artificial intelligence library. We implemented a system for learning artificial intelligence by building a meteorJS based web server, implementing tensor flow and tensor flow serving, Python Jupyter on a nodeJS based server. It is expected that it can be utilized as a tool for learning artificial intelligence in software centered society.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
따라서 본 논문에서는 인공지능 교육에 필요한 웹 컴파일러의 효율적인 설계 방안 및 구현에 관한 연구를 진행하였다. 국내 실정에 맞는 초, 중, 고급 엔지니어 교육을 위한 인공지능 교육 시스템에 사용할 목적으로 진행하였으며, 인공지능 교육에서 가장 많이 사용되는 Tensorflow 기반의 웹 컴파일러를 설계하였다 [1-2].
따라서 본 논문에서는 인공지능 교육에 필요한 웹 컴파일러의 효율적인 설계 방안 및 구현에 관한 연구를 진행하였다. 국내 실정에 맞는 초, 중, 고급 엔지니어 교육을 위한 인공지능 교육 시스템에 사용할 목적으로 진행하였으며, 인공지능 교육에서 가장 많이 사용되는 Tensorflow 기반의 웹 컴파일러를 설계하였다 [1-2].
본 논문에서는 4차 산업혁명으로 인해 주목받고 있는 인공 지능 기술의 습득, 학습을 돕기 위한 웹 컴파일러의 설계 방안 및 구현에 대한 연구를 진행하였다. 웹 컴파일러는 다양한 언어를 습득할 수 있는 환경을 제공해주며, 학습자로 하여금 언제 어디서나 활용 가능하게 할 수 있다는 장점이 있다.
본 연구에서는 구글에서 제공하는 인공지능 라이브러리인 텐서플로우 기반의 웹 컴파일러를 설계 구현하였다. 텐서플로우는 이미지, 음성, 비디오 등의 대용량 데이터를 처리하며, 기계학습을 수행할 때 고속 병렬처리가 가능한 GPU도 활용한다.
제안 방법
웹 서버는 다시 프론트 엔드에 결과를 반환해 준다. 또한, Sandboxing을 이용하여 코드의 적합성을 검사하고, 이를 위해 도커를 활용한다. 또한, 코드의 가독성을 위해 Syntax highlighting을 제공해 준다.
또한, Sandboxing을 이용하여 코드의 적합성을 검사하고, 이를 위해 도커를 활용한다. 또한, 코드의 가독성을 위해 Syntax highlighting을 제공해 준다. 텐서플로우에는 미리 모델을 학습시켜 그 결과를 텐서플로우 서빙을 통해 웹서버로 전달해 줄 수 있다.
이 방식은 여러 가지 OS를 가상화 할 수 있고, 비교적 사용법이 간단하지만 무겁고 느려서 운영환경에선 사용할 수 없다. 이러한 상황을 개선하기 위해 CPU 가상화 기술(HVM, Hardware Virtual Machine)을 이용한 KVM(kernel-based virtual machine)과 반가상화 방식의 XEN이 등장하였다. 반가상화 방식은 게스트 OS가 필요하긴 하지만 전체 OS를 가상화 하는 방식이 아니었기 때문에 전가상화 방식에 비해 성능이 향상되었다.
이와 같이 웹 컴파일러 시스템의 목적은 학습자가 작성한 코드를 패키징하여 웹서버에 전달하고, 컴파일 결과를 화면에 보여주는 것 외에 다양한 이벤트 요청에 대한 즉각적인 반응이다. 이를 위해 레이아웃은 HTML과 Bootstrap, CSS를 통해 구현하고, 패키징 및 동작은 jQuery를 통해 구현하였다. 또한, 프론트 엔드는 MeteorJS 서버 기반으로 동작한다.
텐서플로우는 이미지, 음성, 비디오 등의 대용량 데이터를 처리하며, 기계학습을 수행할 때 고속 병렬처리가 가능한 GPU도 활용한다. 이를 활용하기 위해 텐서플로우 서빙을 연동하여 텐서플로우 학습 모델 및 컴파일 결과를 웹 서버로 전달하였고, MeteorJS 기반의 웹 서버에서는 이를 바탕으로 학습자에게 결과를 피드백해주는 구성이다. MeteorJS 기반의 웹 서버에서는 프론트 엔드 언어로 구성된 학습 사이트와의 이벤트 연결 및 처리를 통해 학습자의 다양한 요구에 대한 처리를 담당한다.
인공지능 웹 컴파일러를 설계하기 위하여 인공지능 오픈 라이브러리인 Tensorflow와 Tensorflow-Serving, 벡 엔드 컨테이너를 위한 도커를 사용하고자 한다.
전반적인 전체 시스템 구성은 위의 그림 5와 같다. 학습자가 접속하여 학습을 진행하는 클라이언트(프론트 엔드), 웹 상에서의 사용자 요청을 처리하는 웹서버 및 인공지능 알고리즘을 처리해 주는 컴파일서버(백 엔드)로 구성된다. 클라이언트는웹 페이지 및 기능을 위해 HTML(HyperText Markup Language), CSS(Cascading Style Sheets), jQuery, Bootstrap을 사용하며, 웹 서버와 컴파일 서버는 각각 MeteorJS, 텐서플로우, 텐서플로우 서빙, 파이썬 주피터, 도커, NodeJS를 활용한다
아래의 그림 6은 프론트 엔드 세부요소와 설계를 바탕으로 구현한 화면이다. 학습자를 위한 기능과 정보제공 페이지로 구성되며, 다양한 언어 컴파일 모듈을 추가할 수 있도록 구성하였다.
후속연구
웹 컴파일러는 SW 언어를 학습하는 새로운 형태로 자리매김하고 있다. 인공 지능뿐만 아니라 사물인터넷 HW 설계, 마이크로 코드 등 다양한 최신 ICT 기술에 접목가능하며, 이를 위한 컴파일러 설계 방안에 대한 발전적 연구가 진행되어야 할 것이다.
질의응답
핵심어
질문
논문에서 추출한 답변
텐서플로우 서빙의 처리 속도는 얼마인가?
텐서플로우 서빙은 퍼포먼스에 최적화되어 있다. 초당 10만 쿼리를 처리할 수 있으며, 처리속도를 올리기 위해서 그래픽 처리장치를 사용할 수 있다[7].
웹 컴파일러란 무엇인가?
이러한 제한 사항을 해결할 수 있는 것으로 대표적인 기술이 웹 컴파일러다. 웹 컴파일러란 웹 환경에서 다양한 언어에 대한 컴파일 결과를 제공해 주는 것을 의미한다. 즉, 인터넷에 연결이 가능한 PC만 제공해 준다면, 학습자는 언제 어디서나 다양한 소프트웨어에 대한 학습을 진행해 볼 수 있음을 의미한다.
시스템의 프론트 엔드는 어떤 역할을 담당하는가?
시스템의 프론트 엔드는 학습자에게 정보를 제공하고, 학습자의 특정 행동(이벤트)에 대한 전달 및 처리결과 화면 출력의 역할을 담당한다. 프론트 엔드의 요구사항은 다음과 같다.
참고문헌 (8)
Y. J. Song, and J. W. Lee. "A design and implementation of deep learning model for stock prediction using tensorflow," KIISE, pp.799-801, Jun.2017.
J. K. Kim, Y. H. Kim, M. S. Lee, and J. M. Ann, "Performance evaluation methodology on BPSK with tensorflow," KICS, pp.339-340, 2017.
Abadi, Martin, et al. "Tensorflow: A system for large-scale machine learning," OSDI. Vol. 16. 2016.
Google - MNIST For ML Beginners : https://www.tensorflow.org/
J. K. Kim, "Performance evaluation methodology on BPSK with tensorflow," KICS, South Korea, pp.339-340, 2017.
Y. Lecun, Y Bengio, and G Hinton, "Deep learning," Nature ,no. 521, pp 436- 444, May 2015.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.