엔진은 Data Science Workspace에서 머신 러닝 모델을 위한 기반입니다. 여기에는 특정 문제를 해결하는 기계 학습 알고리즘, 기능 엔지니어링을 수행하는 기능 파이프라인 또는 둘 다 포함됩니다.
Docker URL이 없는 경우 배합식에 소스 파일 패키지 Docker 호스트 URL 만들기에 대한 단계별 연습에 대한 자습서입니다.
Docker 호스트 URL, 사용자 이름 및 암호를 포함하여 패키지된 레서피 파일을 업로드하려면 Docker 레지스트리 자격 증명이 필요합니다. 다음 GET 요청을 수행하여 이 정보를 조회할 수 있습니다.
API 형식
GET /engines/dockerRegistry
요청
curl -X GET https://platform.adobe.io/data/sensei/engines/dockerRegistry \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
응답
성공적인 응답은 Docker URL(host
), 사용자 이름 ( )username
) 및 암호(password
).
Docker 암호를 변경할 때마다 {ACCESS_TOKEN}
가 업데이트됩니다.
{
"host": "docker_host.azurecr.io",
"username": "00000000-0000-0000-0000-000000000000",
"password": "password"
}
여러 부분으로 된 양식에서 Docker 이미지를 참조하는 Docker URL과 메타데이터를 제공하는 동안 POST 요청을 수행하여 엔진을 만들 수 있습니다.
API 형식
POST /engines
Python/R 요청
curl -X POST \
https://platform.adobe.io/data/sensei/engines \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'content-type: multipart/form-data' \
-F 'engine={
"name": "A name for this Engine",
"description": "A description for this Engine",
"type": "Python",
"algorithm": "Classification",
"artifacts": {
"default": {
"image": {
"location": "v1rsvj32smc4wbs.azurecr.io/ml-featurepipeline-pyspark:1.0",
"name": "An additional name for the Docker image",
"executionType": "Python"
}
}
}
}'
속성 | 설명 |
---|---|
name |
엔진에 대해 원하는 이름입니다. 이 엔진에 해당하는 레서피는 UI에 레서피 이름으로 표시할 이 값을 상속합니다. |
description |
엔진에 대한 선택적 설명입니다. 이 엔진에 해당하는 레서피는 레서피의 설명으로 UI에 표시될 이 값을 상속합니다. 이 속성은 필수입니다. 설명을 제공하지 않으려면 해당 값을 빈 문자열로 설정하십시오. |
type |
엔진의 실행 유형입니다. 이 값은 Docker 이미지가 빌드되는 언어에 해당하며 "Python", "R" 또는 "Tensorflow"일 수 있습니다. |
algorithm |
기계 학습 알고리즘의 유형을 지정하는 문자열입니다. 지원되는 알고리즘 유형에는 "분류", "회귀" 또는 "사용자 지정"이 포함됩니다. |
artifacts.default.image.location |
Docker URL에 의해 연결된 Docker 이미지의 위치입니다. |
artifacts.default.image.executionType |
엔진의 실행 유형입니다. 이 값은 Docker 이미지가 빌드되는 언어에 해당하며 "Python", "R" 또는 "Tensorflow"일 수 있습니다. |
PySpark/Scala 요청
PySpark 레시피를 요청할 때 executionType
및 type
는 "PySpark"입니다. 스칼라 레시피를 요청할 때 executionType
및 type
"스파크"입니다. 다음 스칼라 레서피 예는 Spark를 사용합니다.
curl -X POST \
https://platform.adobe.io/data/sensei/engines \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'content-type: multipart/form-data' \
-F 'engine={
"name": "Spark retail sales recipe",
"description": "A description for this Engine",
"type": "Spark",
"mlLibrary":"databricks-spark",
"artifacts": {
"default": {
"image": {
"name": "modelspark",
"executionType": "Spark",
"packagingType": "docker",
"location": "v1d2cs4mimnlttw.azurecr.io/sarunbatchtest:0.0.1"
}
}
}
}'
속성 | 설명 |
---|---|
name |
엔진에 대해 원하는 이름입니다. 이 엔진에 해당하는 레서피는 UI에 레서피 이름으로 표시할 이 값을 상속합니다. |
description |
엔진에 대한 선택적 설명입니다. 이 엔진에 해당하는 레서피는 레서피의 설명으로 UI에 표시될 이 값을 상속합니다. 이 속성은 필수입니다. 설명을 제공하지 않으려면 해당 값을 빈 문자열로 설정하십시오. |
type |
엔진의 실행 유형입니다. 이 값은 Docker 이미지가 빌드되는 언어에 해당합니다. 이 값은 Spark 또는 PySpark로 설정할 수 있습니다. |
mlLibrary |
PySpark 및 Scala 배합식의 엔진을 생성할 때 필요한 필드입니다. 이 필드는 databricks-spark . |
artifacts.default.image.location |
Docker 이미지의 위치입니다. Azure ACR 또는 공개(인증되지 않은) Dockerhub만 지원됩니다. |
artifacts.default.image.executionType |
엔진의 실행 유형입니다. 이 값은 Docker 이미지가 빌드되는 언어에 해당합니다. "스파크" 또는 "PySpark"일 수 있습니다. |
응답
성공적인 응답은 고유한 식별자( )를 포함하여 새로 만든 엔진의 세부 정보가 포함된 페이로드를 반환합니다id
). 다음 예제 응답은 Python 엔진에 대한 것입니다. 모든 엔진 응답은 다음 형식을 따릅니다.
{
"id": "22f4166f-85ba-4130-a995-a2b8e1edde32",
"name": "A name for this Engine",
"description": "A description for this Engine",
"type": "Python",
"algorithm": "Classification",
"created": "2019-01-01T00:00:00.000Z",
"createdBy": {
"userId": "Jane_Doe@AdobeID"
},
"updated": "2019-01-01T00:00:00.000Z",
"artifacts": {
"default": {
"image": {
"location": "v1rsvj32smc4wbs.azurecr.io/ml-featurepipeline-pyspark:1.0",
"name": "An additional name for the Docker image",
"executionType": "Python",
"packagingType": "docker"
}
}
}
}
Docker 이미지를 참조하는 Docker URL과 메타데이터를 제공하는 동안 POST 요청을 수행하여 기능 파이프라인 엔진을 생성할 수 있습니다.
API 형식
POST /engines
요청
curl -X POST \
https://platform.adobe.io/data/sensei/engines \
-H 'Authorization: Bearer ' \
-H 'x-gw-ims-org-id: 20655D0F5B9875B20A495E23@AdobeOrg' \
-H 'Content-Type: application/vnd.adobe.platform.sensei+json;profile=engine.v1.json' \
-H 'x-api-key: acp_foundation_machineLearning' \
-H 'Content-Type: text/plain' \
-F '{
"type": "PySpark",
"algorithm":"fp",
"name": "Feature_Pipeline_Engine",
"description": "Feature_Pipeline_Engine",
"mlLibrary": "databricks-spark",
"artifacts": {
"default": {
"image": {
"location": "v7d1cs2mimnlttw.azurecr.io/ml-featurepipeline-pyspark:0.2.1",
"name": "datatransformation",
"executionType": "PySpark",
"packagingType": "docker"
},
"defaultMLInstanceConfigs": [ ...
]
}
}
}'
속성 | 설명 |
---|---|
type |
엔진의 실행 유형입니다. 이 값은 Docker 이미지가 빌드되는 언어에 해당합니다. 이 값은 Spark 또는 PySpark로 설정할 수 있습니다. |
algorithm |
사용되는 알고리즘에서는 이 값을 로 설정합니다 fp (피쳐 파이프라인). |
name |
피쳐 파이프라인 엔진의 원하는 이름입니다. 이 엔진에 해당하는 레서피는 UI에 레서피 이름으로 표시할 이 값을 상속합니다. |
description |
엔진에 대한 선택적 설명입니다. 이 엔진에 해당하는 레서피는 레서피의 설명으로 UI에 표시될 이 값을 상속합니다. 이 속성은 필수입니다. 설명을 제공하지 않으려면 해당 값을 빈 문자열로 설정하십시오. |
mlLibrary |
PySpark 및 Scala 배합식의 엔진을 생성할 때 필요한 필드입니다. 이 필드는 databricks-spark . |
artifacts.default.image.location |
Docker 이미지의 위치입니다. Azure ACR 또는 공개(인증되지 않은) Dockerhub만 지원됩니다. |
artifacts.default.image.executionType |
엔진의 실행 유형입니다. 이 값은 Docker 이미지가 빌드되는 언어에 해당합니다. "스파크" 또는 "PySpark"일 수 있습니다. |
artifacts.default.image.packagingType |
엔진의 패키징 유형입니다. 이 값은 docker . |
artifacts.default.defaultMLInstanceConfigs |
사용자 pipeline.json 구성 파일 매개 변수. |
응답
성공적인 응답은 고유 식별자( )를 포함하여 새로 생성된 기능 파이프라인 엔진의 세부 사항이 포함된 페이로드를 반환합니다id
). 다음 예제 응답은 PySpark 기능 파이프라인 엔진입니다.
{
"id": "88236891-4309-4fd9-acd0-3de7827cecd1",
"name": "Feature_Pipeline_Engine",
"description": "Feature_Pipeline_Engine",
"type": "PySpark",
"algorithm": "fp",
"mlLibrary": "databricks-spark",
"created": "2020-04-24T20:46:58.382Z",
"updated": "2020-04-24T20:46:58.382Z",
"deprecated": false,
"artifacts": {
"default": {
"image": {
"location": "v7d1cs3mimnlttw.azurecr.io/ml-featurepipeline-pyspark:0.2.1",
"name": "datatransformation",
"executionType": "PySpark",
"packagingType": "docker"
},
"defaultMLInstanceConfigs": [ ... ]
}
}
}
단일 GET 요청을 수행하여 엔진 목록을 검색할 수 있습니다. 결과를 필터링하는 데 도움이 되도록 요청 경로에 쿼리 매개 변수를 지정할 수 있습니다. 사용 가능한 쿼리 목록은 자산 검색을 위한 쿼리 매개 변수.
API 형식
GET /engines
GET /engines?parameter_1=value_1
GET /engines?parameter_1=value_1¶meter_2=value_2
요청
curl -X GET \
https://platform.adobe.io/data/sensei/engines \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
응답
성공적인 응답은 엔진 목록 및 해당 세부 사항을 반환합니다.
{
"children": [
{
"id": "22f4166f-85ba-4130-a995-a2b8e1edde31",
"name": "A name for this Engine",
"description": "A description for this Engine",
"type": "PySpark",
"algorithm": "Classification",
"created": "2019-01-01T00:00:00.000Z",
"createdBy": {
"userId": "Jane_Doe@AdobeID"
},
"updated": "2019-01-01T00:00:00.000Z"
},
{
"id": "22f4166f-85ba-4130-a995-a2b8e1edde32",
"name": "A name for this Engine",
"description": "A description for this Engine",
"type": "Python",
"algorithm": "Classification",
"created": "2019-01-01T00:00:00.000Z",
"createdBy": {
"userId": "Jane_Doe@AdobeID"
},
"updated": "2019-01-01T00:00:00.000Z"
},
{
"id": "22f4166f-85ba-4130-a995-a2b8e1edde33",
"name": "Feature Pipeline Engine",
"description": "A feature pipeline Engine",
"type": "PySpark",
"algorithm":"fp",
"created": "2019-01-01T00:00:00.000Z",
"createdBy": {
"userId": "Jane_Doe@AdobeID"
},
"updated": "2019-01-01T00:00:00.000Z"
}
],
"_page": {
"property": "deleted==false",
"totalCount": 100,
"count": 3
}
}
요청 경로에서 원하는 엔진의 ID를 포함하는 GET 요청을 수행하여 특정 엔진의 세부 사항을 검색할 수 있습니다.
API 형식
GET /engines/{ENGINE_ID}
매개 변수 | 설명 |
---|---|
{ENGINE_ID} |
기존 엔진의 ID입니다. |
요청
curl -X GET \
https://platform.adobe.io/data/sensei/engines/22f4166f-85ba-4130-a995-a2b8e1edde32 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
응답
성공적인 응답은 원하는 엔진의 세부 정보를 포함하는 페이로드를 반환합니다.
{
"id": "22f4166f-85ba-4130-a995-a2b8e1edde32",
"name": "A name for this Engine",
"description": "A description for this Engine",
"type": "PySpark",
"algorithm": "Classification",
"created": "2019-01-01T00:00:00.000Z",
"createdBy": {
"userId": "Jane_Doe@AdobeID"
},
"updated": "2019-01-01T00:00:00.000Z",
"artifacts": {
"default": {
"image": {
"location": "v7d1cs2mimnlttw.azurecr.io/ml-featurepipeline-pyspark:0.2.1",
"name": "file.egg",
"executionType": "PySpark",
"packagingType": "docker"
}
}
}
}
요청 경로에서 target 엔진 ID를 포함하는 PUT 요청을 통해 속성을 덮어쓰고, 업데이트된 속성이 포함된 JSON 페이로드를 제공하여 기존 엔진을 수정하고 업데이트할 수 있습니다.
이 PUT 요청의 성공을 보장하기 위해 먼저 GET 요청을 수행하십시오로서 id로 엔진 검색. 그런 다음 반환된 JSON 개체를 수정 및 업데이트하고 수정된 JSON 개체 전체를 PUT 요청의 페이로드로 적용합니다.
다음 샘플 API 호출은 처음에 이러한 속성을 갖는 동안 엔진의 이름과 설명을 업데이트합니다.
{
"name": "A name for this Engine",
"description": "A description for this Engine",
"type": "Python",
"algorithm": "Classification",
"artifacts": {
"default": {
"image": {
"executionType": "Python",
"packagingType": "docker"
}
}
}
}
API 형식
PUT /engines/{ENGINE_ID}
매개 변수 | 설명 |
---|---|
{ENGINE_ID} |
기존 엔진의 ID입니다. |
요청
curl -X PUT \
https://platform.adobe.io/data/sensei/engines/22f4166f-85ba-4130-a995-a2b8e1edde32 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'content-type: application/vnd.adobe.platform.sensei+json;profile=engine.v1.json' \
-d '{
"name": "An updated name for this Engine",
"description": "An updated description",
"type": "Python",
"algorithm": "Classification",
"artifacts": {
"default": {
"image": {
"executionType": "Python",
"packagingType": "docker"
}
}
}
}'
응답
성공적인 응답은 엔진의 업데이트된 세부 정보가 포함된 페이로드를 반환합니다.
{
"id": "22f4166f-85ba-4130-a995-a2b8e1edde32",
"name": "An updated name for this Engine",
"description": "An updated description",
"type": "Python",
"algorithm": "Classification",
"created": "2019-01-01T00:00:00.000Z",
"createdBy": {
"displayName": "Jane Doe",
"userId": "Jane_Doe@AdobeID"
},
"updated": "2019-01-02T00:00:00.000Z",
"artifacts": {
"default": {
"image": {
"executionType": "Python",
"packagingType": "docker"
}
}
}
}
요청 경로에서 대상 엔진의 ID를 지정하는 동안 DELETE 요청을 수행하여 엔진을 삭제할 수 있습니다. 엔진을 삭제하면 해당 MLInstance에 속하는 실험 및 실험 실행을 비롯하여 해당 엔진을 참조하는 모든 MLInspice가 삭제됩니다.
API 형식
DELETE /engines/{ENGINE_ID}
매개 변수 | 설명 |
---|---|
{ENGINE_ID} |
기존 엔진의 ID입니다. |
요청
curl -X DELETE \
https://platform.adobe.io/data/sensei/engines/22f4166f-85ba-4130-a995-a2b8e1edde32 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
응답
{
"title": "Success",
"status": 200,
"detail": "Engine deletion was successful"
}