모델 어댑터를 작성할 위치 선택
독립 Model Adapter Library는 어댑터를 Python 라이브러리로 게시하여 여러 저장소에서 가져오는 방식입니다. 모델 학습 저장소 또는 Jupyter 안에서 어댑터를 정의하면 학습 코드와 함께 수정할 수 있습니다.
| 방식 | 작성 환경과 모델 종류 | 패키지 | 선택 조건과 제약 |
|---|---|---|---|
| Model Training | Code Repositories에서 학습한 모델 | 저장소에서 자동 생성한 이름 | 학습과 어댑터를 함께 반복 수정하기 좋습니다. 다른 저장소에서 재사용하기는 어렵습니다. |
| Jupyter Workspace | Jupyter에서 학습한 모델 | cws_adapter | 대화형 학습에 사용하며 어댑터를 별도 Python 파일에 둡니다. 여러 저장소에서 공유하는 용도로는 불편합니다. |
| Model Adapter Library | Python 변환, 컨테이너와 외부 모델 | 직접 설정한 이름 | 컨테이너 모델, 외부 모델 또는 여러 저장소에서 공유할 어댑터에 사용합니다. 별도 라이브러리 게시 과정 때문에 반복 수정 주기는 길어집니다. |
Model Adapter Library
Code Repositories에서 Model Adapter Library 템플릿을 선택합니다.
초기 구현은 src/model_adapter/에 있습니다. 숨김 파일 gradle.properties의 condaPackageName을 확인하거나 수정합니다. 초기 값은 저장소 이름에서 정하며 게시할 때 공백과 특수문자는 하이픈으로 바꿉니다.
커밋에 태그를 만들면 새 라이브러리 버전을 게시합니다. 다른 Python 변환 저장소는 해당 버전을 의존성에 추가하여 학습과 추론에 사용할 수 있습니다.
한 저장소에서 여러 어댑터를 게시할 수 있습니다. 어댑터 구현 파일을 추가하면 숨김 build.gradle의 모델 어댑터 모듈 목록에도 등록해야 합니다. 기본 설정은 model_adapter.example_adapter만 게시합니다.
Model Training
Foundry에서 모델을 학습하는 일반적인 Python 변환에는 Model Training 템플릿을 사용합니다. 같은 저장소에서 학습 로직과 어댑터를 함께 변경할 수 있습니다.
어댑터 패키지 이름은 transforms-model-training-<repository rid> 형태로 자동 정하며 버전은 Git 커밋에서 정합니다. 이 방식에서는 어댑터 패키지 이름과 버전을 별도 태그로 지정할 수 없습니다. 실제 이름과 버전은 모델 페이지에서 확인합니다.
다른 저장소에서 sidecar 없이 ModelInput으로 로드하려면 이 라이브러리를 해당 저장소에 추가합니다. 이름과 버전을 직접 관리해야 한다면 독립 Model Adapter Library를 사용합니다. 저장소 학습 실습에 학습과 배치 추론 절차가 있습니다.
Jupyter Code Workspace
Models 사이드바에서 Add model > Create new model을 선택하면 지정한 별칭 이름의 .py 파일에 어댑터 틀을 만듭니다. 어댑터 클래스는 별도 .py 파일에 정의하고 노트북에서 가져와야 합니다. 노트북 셀 안에 직접 정의하는 방식은 지원하지 않습니다.
모델을 게시하면 어댑터와 작업 디렉터리의 다른 Python 파일을 cws_adapter 라이브러리로 묶습니다. 버전은 최신 Git 태그에서 정합니다. Jupyter 학습 실습에서 모델 생성과 게시를 진행할 수 있습니다.