REST API를 폴링하지 않고 Google AI Platform 학습 작업의 상태 변경에 대한 알림을받을 수있는 방법이 있나요?

에드먼드 로즈 라이트

지금은 작업 REST API를 폴링하여 Google AI Platform (이전의 ml 엔진)에서 제출 된 작업을 모니터링 합니다 . 몇 가지 이유로이 솔루션이 마음에 들지 않습니다.

  1. 상태 변경 간격이 모니터링 폴링 속도보다 작 으면 상태 변경에 대한 인식이 지연되거나 완전히 누락되는 경우가 많습니다.
  2. 불필요한 많은 네트워크 트래픽
  3. 불필요한 많은 함수 호출

교육 작업이 완료되는 즉시 알림을 받고 싶습니다. 작업 상태가 변경 될 때 실행할 후크 또는 콜백을 할당하는 방법이 있으면 좋을 것입니다.

또한 AI Platform에서 실행되는 학습 작업 Python 패키지 내에서 직접 클라우드 함수에 대한 호출을 추가하는 것도 고려했습니다. 그러나 작업이 GCP에 의해 취소되거나 강제로 종료되는 경우와 같이 학습 작업이 예기치 않게 종료되는 경우에는 이러한 함수 호출이 발생하지 않을 것이라고 생각합니다.

이것에 대해 더 좋은 방법이 있습니까?

Htappen

Stackdriver 싱크를 사용하여 로그를 읽고 Pub / Sub로 보낼 수 있습니다. Pub / Sub에서 여러 다른 제공 업체에 연결할 수 있습니다.

1. Pub / Sub 싱크 설정

되어 있는지 확인하십시오 로그에 대한 액세스 권한을 하고 당신이 원하는 주제에 대한 권리 게시 당신이 시작하기 전에합니다. Stackdriver-> Pub / Sub 싱크 설정 안내를 따릅니다. 이 쿼리를 사용하여 이벤트를 훈련 작업으로 만 제한 할 수 있습니다.

resource.type = "ml_job"
resource.labels.task_name = "service"

참고 스택 드라이버가 더 쿼리를 제한 할 수 있습니다 . 예를 들어 resource.labels.job_id= "..." 와 같은 조건을 추가 하거나 "..."와 같은 필터를 사용하여 특정 이벤트 에 추가하여 특정 작업으로 제한 할 수 있습니다 jsonPayload.message.

2. Pub / Sub 메시지에 응답

변경된 사항을 알기 위해 Pub / Sub 메시지 수신자는 ml.googleapis.com API에서 작업 상태를 쿼리하거나 메시지 텍스트를 읽을 수 있습니다.

ml.googleapis.com에서 상태 읽기

메시지를 받으면을 호출 https://ml.googleapis.com/v1/<project_id>/jobs/<job_id>하여 작업 정보를 가져옵니다. URL의 [project_id]와 [job_id]를 각각 Pub / Sub 메시지의 resource.label.project_id 및 resource.label.job_id 값으로 바꿉니다. .

반환 된 Job 객체에는 state당연히 작업 상태를 알려주는 필드 포함 됩니다.

메시지 텍스트에서 상태 읽기

Pub / Sub 메시지에는 작업에 발생한 일을 알려주는 문자열이 포함됩니다. 일이 끝날 때 행동을 원할 것입니다. jsonPayload.message에서 다음 문자열을 찾으십시오.

  • "작업이 성공적으로 완료되었습니다."
  • "작업이 취소되었습니다."
  • "작업이 실패했습니다."

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관