AWS EC2에서 Numerai Compute
Numerai Compute란 무엇입니까?
Numerai Compute는 누메라 토너먼트.의 예측을 자동화하는 구조다.
자신의 예측 프로그램을 Docker의 인상으로 만들면 일요일에 Numerai Compute 서버가 웹홀에서 컨테이너를 시작합니다.
Numerai Compute를 설정하는 모델에는 훌륭한 COMPUTE 배지가 첨부되어 있습니다.
Numerai Compute의 문제점
Numerai Compute(numberai-cli)에서 AWS ECS의 Fargate를 사용하여 Docker 컨테이너를 실행합니다.
현재 Fargate에서 GPU를 사용할 수 없습니다.신경 네트워크에서 모형을 만들면 GPU 없이 예측을 수행하는 데 시간이 걸린다.
따라서 EC2의 GPU 인스턴스를 사용하여 Numerai Compute를 실행하는 방법은 다음과 같습니다.
프로비저닝
Numerai Compute WebHook에서 EC2 시작
AWS가 익숙하지 않기 때문에 참고 자료를 소개하겠습니다.
EC2의 시작 스크립트는 다음과 같습니다.
import json
import boto3
region = 'ap-northeast-1'
instances = ['i-YOUR-INSTANCE-ID']
ec2 = boto3.client('ec2', region_name=region)
def lambda_handler(event, context):
ec2.start_instances(InstanceIds=instances)
print('started your instances: ' + str(instances))
return {
'statusCode': 200,
'body': json.dumps('OK')
}
이후 API Gateway에서 만든 URL을 Numerai로 설정하면 완료됩니다.EC2 인스턴스를 시작할 때 predict입니다.py 실행
EC2 인스턴스 g4dnxlarge를 사용합니다.GPU는 NVIDIA T4, RAM은 16GiB로 Google Colab과 동일합니다.Google Colab에서 마이그레이션하기에 가장 적합합니다!
AMI가 딥 레어닝 AMI를 사용하면 처음부터 텐소플라우와 피토르치를 설치해 편리하다.
그러면 EC2 인스턴스를 시작할 때 스크립트를 시작하도록 설정합니다.
cron이 시작될 때 실행되는 스크립트를 설정합니다.
crontab -e
@reboot /home/ubuntu/numerai/on_start.sh
가 집행하는 스크립트는 이런 느낌이다./home/ubuntu/numerai/on_start.sh
#!/bin/bash
cd `dirname $0`
SHELL=/bin/bash
# パスを通す
source /home/ubuntu/.bashrc
# 好きなPython環境を設定
source activate tensorflow2_latest_p37
sudo shutdown +45
python3 predict.py
predict.py가 시작되기 전에 45분 후에 꺼지라고 지시합니다.predict.py 실행 후 즉시 꺼짐,predict.주의해야 할 것은py가 고장났을 때 유지보수 프로그램으로 시작하려고 해도 바로 꺼진다는 것이다.
predict.py에서 Discord에 미리 알리는 것이 편리합니다.
전체 스크립트를 try로 묶어서 오류를 모두 Discord에 재생합니다.
predict.py
import requests
import traceback
def discord_post(message, filename=None, url='https://discord.com/api/webhooks/YOUR_DISCORD_URL'):
payload = {"content": " " + message + " "}
try:
if filename is None:
requests.post(url, data=payload)
else:
files = {"imageFile": open(filename, "rb")}
requests.post(url, data=payload, files=files)
except:
pass
discord_post("Start predict.py")
try:
import pandas as pd
import numerapi
(中略)
except:
discord_post(traceback.format_exc() + "\nBAD END...")
한 번 완성되면 누메라의 세팅화 면접에서 웹훅 테스트를 시작해 동작을 확인한다.끝말
애초 설정은 번거로웠지만 일단 해보면 잠자는 동안 예측을 내놓기 때문에 안심이 된다.
토요일과 일요일의 자유시간이 증가합니다!꼭 해보세요!
Reference
이 문제에 관하여(AWS EC2에서 Numerai Compute), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/kunigaku/articles/50c079b033e6051bc764텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)