개선된 Zenml 0.5를 소개합니다.x
우리는 이 블로그에서 주요한 새로운 기능을 소개할 것이지만, 만약 당신이 상세한 목록을 원한다면, 반드시 우리의 release notes을 보십시오.
전체 재작업 API
ZenML의 초기 버전을 잘 알고 있다면 큰 기쁨을 얻을 것입니다.
새로운 ZenML functional API는 기계 학습 파이프의 모든 단계를 번거롭게 하위 클래스화할 필요가 없습니다. 이것은 ZenML 파이프에서 실행할 수 있도록 기존 함수를 간단하게 수식할 수 있도록 합니다.
함수의 입력과 출력이 지원되는 데이터 형식 집합의 일부분이라면 ZenML은 step 출력의 서열화와 반서열화를 자동으로 처리합니다.
현재 데이터 형식이 지원되지 않으면, ZenML에서 사용자 정의 materializer을 만들어서 코드를 실행할 수 있습니다.
교육용 이미지를 규범화하여 새로운 API의 실제 효과를 알아보는 간단한 단계를 살펴보겠습니다.
@step
def normalize(images: np.ndarray) -> np.ndarray:
"""Normalize images so the values are between 0 and 1."""
return images / 255.0
표준화 함수 위의 @step
을 알아차렸습니까?이것이 ZenML 단계로 변환하는 데 필요한 모든 내용입니다. 이 절차는 모든 파이프에서 사용할 수 있습니다.이제 이 단계를 사용하는 파이프 하나만 생성하고 실행하면 됩니다.
@step
def load_data() -> np.ndarray:
...
@pipeline
def load_and_normalize_pipeline(
load_data_step,
normalize_step,
):
# Connect the inputs and outputs of our pipeline steps
images = load_data_step()
normalize_step(images=images)
# Create and run our pipeline
load_and_normalize_pipeline(load_data(), normalize()).run()
새로운 API에 대한 자세한 내용을 보려면 quickstart과 low-level guide이 적합합니다.쌓아올리다
Stacks는 ZenMLs의 새로운 core concepts 중 하나입니다.스택은 데이터를 저장하고 ZenML 파이프를 실행하는 위치를 정의하는 세 가지 컴포넌트로 구성됩니다.
그림 1: Apache Airflow와 GCP를 사용하여 로컬 개발(왼쪽)과 생산의 예시 창고(오른쪽)
개발 스택은 로컬 머신을 사용하여 파이프를 실행하고 데이터를 저장하며, 생산 스택은 아파치 에어플로우를 사용하여 파이프를 실행하고 생성된 데이터를 GCP에 저장한다.
ZenML의 미래 버전에서, 우리는 이 구성 요소의 모든 유행하는 도구를 통합시켜서, 사용자가 필요로 하는 창고를 쉽게 만들 수 있도록 할 것입니다.
개발 및 생산을 위해 여러 개의 창고를 설치한 후 호출만 하면
zenml stack set production_stack
로컬 실행 파이프에서 클라우드 실행 파이프로 전환!잉여 핵심 개념에 대한 정보를 더 알아보기 위해 low-level guide을 보거나 chapter 7으로 넘어가 창고의 마력을 알아보세요.
새 실행 후 워크플로우
파이프를 집행한 후 파이프를 검사하고 비교하는 것은 기계 학습 파이프를 사용하는 중요한 부분이다.
이것이 바로 우리가 새로운 post-execution workflow을 추가한 이유입니다. 예를 들어 실행 절차에 사용되는 매개 변수와 부품의 데이터, 예를 들어 모델의 평가 정밀도를 쉽게 조회할 수 있도록 합니다.
이것이 바로 그것의 작업 원리이다.
# Get a pipeline from our ZenML repository
pipeline = Repository().get_pipeline(pipeline_name="my_pipeline")
# Get the latest run of our pipeline
pipeline_run = pipeline.runs[-1]
# Get a specific step of the pipeline run
evaluation_step = pipeline_run.get_step(name="evaluation_step")
# Use the step parameters or outputs
class_weights = evaluation_step.parameters["class_weights"]
evaluation_accuracy = evaluation_step.output.read()
미래 버전에서 이것은 우리가 시각화를 구축하는 기초가 될 것입니다. 당신은 파이프의 서로 다른 운행을 쉽게 비교하고 데이터의 이동을 포착할 수 있습니다!프롬프트 입력
버전 0.5.1부터 ZenML은 현재 전체 코드 라이브러리에 유형 알림을 제공합니다!
코드 라이브러리의 건장성을 향상시키는 데 도움을 주는 것 외에 유형 제시와 단원 테스트를 결합하면 새로운 특성과 통합을 신속하고 자신 있게 실현할 수 있다.
유형 힌트는 코드의 이해성을 향상시키고 많은 곳에서 자동 완성 기능을 개선했기 때문에zenML을 사용하는 것은 현재 더욱 쉽고 빠르다!
미래
전체 ZenML API를 재작업하는 것은 어려운 임무이지만, 우리는 결과에 매우 만족합니다. (우리의 Slack에 가입하여, 당신이 동의하는지, 어떻게 개선하는지에 대한 건의가 있는지 알 수 있습니다.)
그러나ZenML의 이전 버전에서는 여전히 일부 기능이 부족했지만, 현재 우리는 튼튼한 기초를 가지고 일을 진행하고 있으며, 그것들을 다시 통합시키는 빠른 과정이 되어야 한다.따라서 향후 릴리즈를 살펴보고 vote이 가능한 한 빨리 구현되도록 저희 roadmap에서 가장 선호하는 기능을 확인하시기 바랍니다.
마이클 슈스터는 ZenML의 기계 학습 엔지니어다.
Reference
이 문제에 관하여(개선된 Zenml 0.5를 소개합니다.x), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/schustmi/introducing-the-revamped-zenml-05x-22ka텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)