AIN Cloud beta로 Open Resource 경험하기

AIN Cloud beta 출시 포스팅 시리즈 (2/2)

DS
9 min readJan 18, 2019

언어: 한국어 / English

  1. Open Resource란 무엇이고 왜 필요한가?
  2. AIN Cloud beta로 Open Resource 경험하기 (현재글)

Open Resource라는 비전을 가지고 저희는 지난 몇 개월간 개발한 끝에 오늘 베타 버전을 출시하게 되었습니다. 이번 베타 버전은 개념 증명에 목적을 두고 최소한의 기능만을 담고 있습니다. 실제 사용자분들의 피드백을 바탕으로 지속적으로 개선할 계획입니다.
🖥 AIN Cloud beta는 데스크탑 크롬브라우저에 최적화 되어 있습니다.

AIN Cloud 접속 및 회원가입

먼저, AI Network 홈페이지(ainetwork.ai)에서 AIN Cloud 메뉴를 선택하거나, 브라우저 주소창에 cloud.ainetwork.ai 를 입력하시면 아래와 같은 화면이 나타납니다. 화면 우측 상단에 있는 Login / Sign up 을 선택하시고 회원가입을 하시면, 사용하실 계정으로 입력하신 이메일주소로 이메일주소 인증을 위한 메일이 옵니다. 해당 메일을 열어 인증링크를 선택하시면 인증이 완료되면서 AIN Cloud에서 바로 사용하실 수 있는 150 AIN이 무료 크레딧으로 충전됩니다.

Open Resource 경험하기

이제 AIN Cloud에 로그인을 하시면 현재 로그인된 이메일 계정 주소 좌측에 무료 크레딧으로 충전된 150 AIN을 확인하실 수 있습니다. 이제 바로 그 아래에 있는 보라색 ‘Run’ 버튼을 클릭하시면 잠시 후, 아래와 같은 화면을 보시게 될 것입니다. 방금 여러분은 Open Resource의 일부를 경험하신 것입니다. 뭔가 말은 거창했는데 너무 쉽게 끝나서 별 것 아닌 것 같은 느낌이 들지 않으시나요?
(현재 베타버전에선 동시에 2개 이상의 실행 요청은 처리하지 않아서, 먼저 요청된 건이 처리되는 동안 잠시 기다려야 하실 수도 있습니다)

방금 무슨 일이 일어난 것인가?

Open Source에서 시작하여 Resource(실행환경)까지 연결되는 과정이 Open Resource의 핵심인데요, 저희는 사용자 분들이 AIN Cloud를 통해 이 과정을 바로 경험해 볼 수 있도록 두 개의 샘플 오픈소스를 준비해 두었습니다. 그리고 이를 위해 어떤 실행환경 준비를 하지 않아도 바로 실행을 해볼 수 있도록 Backend.AI 에서 제공하는 실행환경이 자동으로 연결되도록 하였습니다.

그 중 기본으로 선택되어 있고, 방금 여러분이 Run 버튼을 눌러 실행하신 소스코드는 위에서도 언급된 구글의 BERT 모델(특정 데이터를 머신러닝한 결과 만들어진 ‘디지털지능’)을 사용하여 논문에서 나온 머신러닝 성능평가를 위한 과제 중 SQuAD라는 데이터셋을 활용한 과제를 바로 실행 해볼 수 있도록 구현한 것입니다.

SQuAD 과제는 문단과 질문이 주어졌을 때 문단 내에서 주어진 질문의 답에 해당하는 부분을 찾아내는 것입니다. 화면 좌측 Introduction 영역에도 상세한 설명이 있지만 여기서도 Result에 나온 결과가 무엇인지와 이 코드를 가지고 BERT AI를 사용해보는 것을 간단히 설명 드리겠습니다.

Result 영역을 보시면 붉은 글씨로 된 부분이 끝나는 지점 다음부터 5 쌍의 질문과 답이 있습니다. 이는 다음의 주어진 문단을 읽어보면 찾을 수 있는 답과 그에 대한 질문들입니다. 두 번째 질문의 답은 helium인데 hydrogen and helium이라고 답한 것만 빼면 모두 정답입니다.

Oxygen is a chemical element with symbol O and atomic number 8. It is a member of the chalcogen group on the periodic table and is a highly reactive nonmetal and oxidizing agent that readily forms compounds (notably oxides) with most elements. By mass, oxygen is the third-most abundant element in the universe, after hydrogen and helium. At standard temperature and pressure, two atoms of the element bind to form dioxygen, a colorless and odorless diatomic gas with the formula O2. Diatomic oxygen gas constitutes 20.8% of the Earth’s atmosphere. However, monitoring of atmospheric oxygen levels show a global downward trend, because of fossil-fuel burning. Oxygen is the most abundant element by mass in the Earth’s crust as part of oxide compounds such as silicon dioxide, making up almost half of the crust’s mass.

5 쌍의 질문과 답 아래에는 각 질문별로 정답일 가능성이 높은 예상답이 3개씩 나타나 있습니다. 이중 첫번째 항목을 각 질문들에 대한 정답으로 위에 제시된 것입니다.

그리고 다른 문장을 넣어서 BERT AI를 테스트 해보실 수도 있습니다. 화면 좌측에서 Code 탭을 선택하신 후 1042번 줄로 스크롤하여 이동하셔서 question 내용과 갯수를 수정하거나, context 라는 영역에 다른 문단을 넣어서 새로운 질의 응답 결과를 테스트해보실 수도 있습니다.

AIN Cloud를 사용하지 않았더라면?

만약 사용자 분들이 직접 BERT에 대해 테스트를 해보고자 한다면 우선 사전학습(Pre-training)을 한 뒤, 미세조정(Fine-tuning. 사전학습된 모델을 머신러닝 성능 평가 과제를 수행하기에 최적화 되도록 미세조정하는 과정입니다.)이라는 작업을 수행해야합니다.

구글은 소스코드와 사전학습된 모델을 공개해두어(링크) 이를 다운 받아서 사용하면 사전학습 과정 없이 미세조정 작업만 수행하면 됩니다. 그 과정을 요약하면 아래와 같습니다.

  1. 하드웨어 실행환경 준비
    12GB이상의 가용 메모리를 가진 GPU가 탑재된 컴퓨터가 필요합니다. 현재 기준으로 약 115만원 정도인 NVIDIA사의 Tesla K40 급 이상의 GPU를 구비하면 되겠습니다.
  2. 소프트웨어 실행환경 준비
    그 다음은 NVIDIA GPU 드라이버(링크)와, Docker(링크) 를 설치합니다.
  3. 사전학습된 모델과 SQuAD 데이터 다운로드
    아래 링크에서 원하는 모델과 데이터를 다운로드 받습니다.
    - BERT pre-trained 모델 (링크)
    - SQuAD 1.1 (링크. 최근 2.0 버전도 올라왔습니다)
  4. BERT 코드 다운로드 및 실행
    BERT 코드를 GitHub(링크)로부터 clone한 후, run_squad.py를 실행해서 fine-tuning을 수행하면 그 결과로 fine-tuning된 모델을 얻을 수 있습니다. 이때 Tensorflow 라이브러리가 설치된 Docker image (e.g. tensorflow/tensorflow:1.12.0-rc2-gpu)를 사용하면 됩니다.
  5. 미세조정 (Fine-tuning)
    모델을 미세조정하는 과정에서도 여러가지 난관을 만날 수 있습니다. 이 과정을 모두 거친 저희 개발자의 말에 따르면 일단 GPU가 과열되어서 컴퓨터가 다운되는 현상을 극복하기 위해서 따로 성능좋은 에어 서큘레이터를 돌려줘야 했다고 합니다. 또 Memory Exceeded 에러를 막기 위해서 Training parameter를 살짝 튜닝해 주어야 했다고 합니다.

이러한 과정을 거치는데에 대략 이틀 정도 소요됐습니다. 만일 Docker와 같은 도구들을 처음 접해보는 사용자라면 도구들의 사용법을 익히는 데에 추가적인 시간이 소요될 것입니다.

AIN Cloud를 사용하면 가입부터 소스코드 실행까지 한 2분 걸렸나요? 여러분이 엔지니어가 아니라도, 고성능 GPU가 없는 모바일폰으로 하셨더라도 말이죠 (아직 데스크탑 크롬브라우저만 공식 지원하고 있습니다).

Next: AIN Cloud v1

꽤 거창한 비전을 제시했지만, 사실은 이제 막 걸음마를 뗀 수준입니다. 하지만 저희가 꿈꾸는 Open Resource 개념에 대해 조금은 막연함이 해소 되었으리라 기대합니다.

올 상반기중에는 첫 정식 버전을 출시할 계획입니다. 정식 버전에서는 샘플 소스코드 뿐만 아니라, 사용자가 직접 자신의 소스코드를 Resource와 연결시킬 수 있게 지원하고, 훨씬 더 다양한 프로젝트가 Open Resource 환경을 갖출 수 있도록 지원할 예정입니다.

그리고 아마 눈치채신분도 있겠지만 AIN Cloud는 블록체인과 AIN이라는 암호화폐를 통해 동작되고 있습니다. 현재는 이더리움 네트워크를 활용하고 있고, 저희의 비전을 더 잘 실현시킬 수 있는 자체 블록체인도 개발중입니다.

--

--