본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

컨테이너 모델로 이미지 업로드하기

이 페이지에서는 컨테이너 기반 모델로 이미지를 업로드하는 과정을 안내합니다. 이 워크플로 동안에는 모델을 생성하고, 이미지를 모델 리소스에 푸시하고, 모델 버전을 설정합니다.

1. 모델 생성하기

컨테이너 기반 모델을 생성하려면 먼저 이미지가 푸시될 리소스를 생성합니다. 이 리소스는 모델 권한을 제어하며, 이 리소스에 Viewer 권한이 있는 사용자는 Foundry에서 이미지를 다시 가져올 수 있습니다.

Modelling Objective에 대한 아무 페이지로 이동하여 + 모델 추가, 그 다음 컨테이너화된 모델 가져오기를 선택하여 새 모델을 생성합니다.

Objective 페이지 오른쪽 상단의 Add model 버튼

Import containerized model이 강조된 Add model 대화상자

2. 모델에 이미지 푸시하기

푸시하는 이미지는 Foundry의 이미지 요구사항을 준수해야 합니다.

Palantir에서 모델 리소스를 생성한 후, 에셋에 이미지를 푸시하는 방법을 따릅니다.

푸시 이미지가 강조된 새 컨테이너 모델 랜딩 페이지

토큰 생성을 선택한 다음, 기본 명령 블록을 복사하고 example-package:<TAG>를 로컬 Docker 저장소에 있는 이미지 이름과 태그(또는 다이제스트)로 바꿉니다. 태그는 이미지 요구사항에 따라 'latest'가 될 수 없습니다. 이 명령을 실행하면 관련 이미지가 모델로 푸시되어 Viewer 권한을 가진 모든 사람이 접근할 수 있습니다.

이미지가 성공적으로 푸시되어 컨테이너 이미지 목록에 있을 경우, 모델 버전 생성을 선택하여 버전을 설정하는 작업을 시작합니다. 이 작업을 수행하려면 먼저 모델 어댑터 라이브러리 템플릿으로 생성된 컨테이너 모델 어댑터를 작성해야 합니다.

create model version이 강조된 Container images 탭

이미지의 크기에 따라 컨테이너 이미지가 모델에 나타나는 데 몇 분이 걸릴 수 있습니다.

출판하기 전에 모델 어댑터 구현을 반복하려면, 사이드카 데코레이터를 사용하여 이미 모델에 존재하는 컨테이너와 함께 로직이 어떻게 작동할지 테스트합니다. 아티팩트 저장소로 방금 생성한 모델을 사용하여 데코레이터가 활성화된 새로운 변환 저장소를 생성하는 사이드카 변환 데코레이터 문서의 단계를 따릅니다. 그런 다음, 변환 저장소 내에 어댑터를 구현하는 로컬 Python 파일을 정의하고 아래와 같이 수동으로 인스턴스화합니다:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 from transforms.api import transform, Input, Output from transforms.sidecar import sidecar, Volume # 이는 `myproject` 폴더 아래에 Python 클래스 testAdapter.py를 생성하고 palantir_models의 ModelAdapter 클래스를 구현하는 TestModelAdapter 클래스를 정의했다고 가정합니다. from myproject.testAdapter import TestModelAdapter import palantir_models.transforms @sidecar(image='image-name', tag='1.0.0', volumes=[Volume("shared")]) @transform( output=Output("ri.foundry.main.dataset.<RID>"), source_df=Input("ri.foundry.main.dataset.<RID>"), ) # 함수의 이름은 compute입니다. 이 함수는 source_df와 output이라는 두 개의 인자를 받습니다. def compute(source_df, output): # TestModelAdapter 클래스의 인스턴스를 생성합니다. # 이 인스턴스는 "/opt/palantir/sidecars/shared-volumes/shared"라는 경로와 # "localhost:PORT"라는 호스트 이름을 가지게 됩니다. # 여기서 주의할 점은 여기서의 포트 번호는 특정 이미지가 리스닝하고 있는 포트 번호와 일치해야 한다는 것입니다. testingEntrypoint = TestModelAdapter( "/opt/palantir/sidecars/shared-volumes/shared", "localhost:PORT") # 생성한 인스턴스의 transform_write 메소드를 호출하여 source_df를 변환하고 결과를 output에 쓰게 됩니다. testingEntrypoint.transform_write(source_df, output)

3. 모델 버젼 설정하기

모델 버젼 설정하기 페이지에서 특정 모델 버젼에 포함될 하나 이상의 컨테이너 이미지를 선택합니다. 모델 버젼 설정으로 진행하려면 다음을 선택합니다.

모델 버젼 생성 대화 상자의 첫 번째 페이지

모델 설정 대화 상자의 모델 세부 정보 페이지에서 의미론적 버젼 변경의 유형을 설정합니다. 그 다음, 선택 사항인 설명과 설정 파일을 추가하고 생성한 어댑터를 선택합니다. 모델 어댑터 설정 섹션에서 모델 어댑터 저장소를 선택하면, 저장소에 정의된 유효한 어댑터의 최신 버젼들이 모델 어댑터 선택하기 드롭다운에 표시됩니다.

모델 버젼 생성 대화 상자의 두 번째 페이지

마지막으로, 각 이미지에 대한 선택 사항인 런타임 정보를 구성합니다. 이에는 메모리 제약사항, 인수, 환경 변수, 또는 새 exec 명령이 포함됩니다. 어댑터가 requests 라이브러리를 사용하는 경우 이미지가 수신 대기하는 포트를 지정하는 것이 중요합니다. 모델 버젼에 선택된 각 이미지에 대한 런타임 정보를 설정할 수 있습니다.

모델은 텔레메트리 로그를 생성하도록 설정할 수 있습니다. 컨테이너가 텔레메트리를 지원하는 경우, 아래 스크린샷에서 보여지는 단계에서 모델 버젼에 대해 이를 활성화할 수 있습니다.

모델 버젼 생성 대화 상자의 세 번째 페이지

4. 모델 버젼 보기

모델 버젼이 생성되면, 메타데이터는 모델 페이지의 모델 전체보기 탭에 표시됩니다. 이곳에서 왼쪽 사이드 패널을 사용해 과거 버젼을 보고 이동할 수 있습니다.

이 페이지에서는 상단 오른쪽의 + 아이콘 또는 액션 드롭다운을 사용해 Modelling Objective에 제출하거나, 모델을 Python 변환의 입력으로 사용할 수 있습니다. 모델이 컨테이너에 의해 지원되는 경우, 변환에서 사용할 버젼 RID를 선택하는 ModelInput 클래스의 두 번째 선택 인수를 지정해야 합니다. 또한, 변환 저장소에서 모델 어댑터에 대한 의존성을 추가해야 합니다. 이는 아래와 같이 표현될 수 있습니다:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 from transforms.api import transform, Input, Output from palantir_models.transforms import ModelInput # 변환 함수 정의 @transform( output=Output("/path/to/output/output_dataset"), # 출력 데이터셋 경로 model=ModelInput( "ri.models.main.model.<RID>", "ri.models.main.model-version.<RID>"), # 모델 경로 source_df=Input("/path/to/input/input_dataset"), # 입력 데이터셋 경로 ) def compute(model, source_df, output): model.transform_write(source_df, output) # 모델을 사용하여 입력 데이터셋 변환 후 출력 데이터셋에 쓰기