쿠버네티스,쿠버플로우
던전앤파이터 시세 예측[7]
세용용용용
2023. 9. 14. 14:59
진짜 다왔다 이제 하루마다 모델을 최적화해서 배포해주는 파이프라인을 구축해주자!!!
1. 모델 돌려서 스케일, 인코딩 객체 저장하는 코드 그리고 카팁 을위해 print("mae_validation="+str(mae_validation)) 결과 뽑아내는 이미지
레어 아바타
fairing-job100:2CE9050E
상급 아바타
fairing-job101:1DF32C9B
2. 카팁 야물파일
레어 아바타
apiVersion: "kubeflow.org/v1alpha3"
kind: Experiment
metadata:
namespace: gsoh
labels:
controller-tools.k8s.io: "1.0"
name: aabata-rare-experiment-v2-1
spec:
parallelTrialCount: 2
maxTrialCount: 40
maxFailedTrialCount: 3
objective:
type: minimize # 작게해야되니까 크게하려면 maximize
goal: 1200000 # mae 목표를 설정
objectiveMetricName: mae_validation #변수 이름 넣어줘야됨
algorithm:
algorithmName: random
trialTemplate:
goTemplate:
rawTemplate: |-
apiVersion: batch/v1
kind: Job
metadata:
name: {{.Trial}}
namespace: {{.NameSpace}}
spec:
template:
spec:
containers:
- name: {{.Trial}}
image: kubeflow-registry.default.svc.cluster.local:30000/fairing-job100:2CE9050E # 내가 생성한 이미지로 바꿔야됨
command:
- "python"
- "/app/aabata_rare.py" # 내 파이썬 파일 이름으로 설정
{{- with .HyperParameters}}
{{- range .}}
- "{{.Name}}={{.Value}}"
{{- end}}
{{- end}}
restartPolicy: Never
parameters:
- name: --learning_rate
parameterType: double
feasibleSpace:
min: "0.1"
max: "0.3"
- name: --n_estimators
parameterType: int
feasibleSpace:
min: "30"
max: "100"
- name: --max_depth
parameterType: int
feasibleSpace:
min: "1"
max: "30"
상급 아바타
apiVersion: "kubeflow.org/v1alpha3"
kind: Experiment
metadata:
namespace: gsoh
labels:
controller-tools.k8s.io: "1.0"
name: aabata-sang-experiment-v2-1
spec:
parallelTrialCount: 2
maxTrialCount: 40
maxFailedTrialCount: 3
objective:
type: minimize # 작게해야되니까 크게하려면 maximize
goal: 1800000 # mae 목표를 설정
objectiveMetricName: mae_validation #변수 이름 넣어줘야됨
algorithm:
algorithmName: random
trialTemplate:
goTemplate:
rawTemplate: |-
apiVersion: batch/v1
kind: Job
metadata:
name: {{.Trial}}
namespace: {{.NameSpace}}
spec:
template:
spec:
containers:
- name: {{.Trial}}
image: kubeflow-registry.default.svc.cluster.local:30000/fairing-job101:1DF32C9B # 내가 생성한 이미지로 바꿔야됨
command:
- "python"
- "/app/aabata_rare.py" # 내 파이썬 파일 이름으로 설정
{{- with .HyperParameters}}
{{- range .}}
- "{{.Name}}={{.Value}}"
{{- end}}
{{- end}}
restartPolicy: Never
parameters:
- name: --learning_rate
parameterType: double
feasibleSpace:
min: "0.1"
max: "0.3"
- name: --n_estimators
parameterType: int
feasibleSpace:
min: "30"
max: "100"
- name: --max_depth
parameterType: int
feasibleSpace:
min: "1"
max: "30"
3. 카팁 야물파일을 실행시키는 이미지
도커파일
FROM python:3.8
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY . /app/
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ENTRYPOINT ["python", "main.py"]
main.py
from kubeflow.katib import KatibClient
import yaml
def create_experiement_xgb():
name = 'test'
namespace = 'gsoh'
# -------- katib 실험 생성 -------------
# katib 클라이언트 생성
katib_client = KatibClient()
# 실험 구성 파일 경로
experiment_yaml_path = 'test.yaml'
# 실험 구성 파일을 읽어 옵니다.
with open(experiment_yaml_path, "r") as yaml_file:
experiment_config = yaml.safe_load(yaml_file)
experiment_config["metadata"] = {
"name": name, # 실험 이름
"namespace": namespace # 실험을 생성할 네임스페이스
}
try:
katib_client.create_experiment(experiment_config, namespace)
except:
pass
if __name__ == "__main__":
create_experiement_xgb()
requirements.txt
kubeflow-katib
pyyaml
test.yaml >>> 레어아바타 야물파일 가져오기