본문 바로가기

practical AI/TFX

[TFX 스터디 3주차] 기존 프로젝트 분석 및 목표

[TFX 스터디 3주차] 기존 프로젝트 분석 및 목표

 

박찬성님의 깃허브 레포를 보고 TFX 프로세스를 파악한 뒤 다른 모델에 적용해보기로 했다.

 

https://github.com/deep-diver/semantic-segmentation-ml-pipeline

 

GitHub - deep-diver/semantic-segmentation-ml-pipeline

Contribute to deep-diver/semantic-segmentation-ml-pipeline development by creating an account on GitHub.

github.com

 

코드를 보며 느낀 점

README.md에 설치 관련 안내가 있는데 이걸 보고 main으로 가장 먼저 봐야 할 부분이 local_runner.py라는 걸 파악할 수 있었다.

README.md 일부

 

local_runner.py는 크게 두 부분으로  구성되는데 먼저 여러 path를 지정하는 부분과 run() 함수를 정의하는 부분이었다.

run()함수 내부에서 localDagRunner 실행하여 local pipeline을 정의하고 내부에 사용할 각 컴포넌트 지정한다.

 

이때 파일 내에 정의되지 않은 변수의 경우 configs.py에 있었다.

# local_runner.py의 run 함수

def run():
    """파이프라인 정의"""

    tfx.orchestration.LocalDagRunner().run( #LocalDagRunner: 파이프라인 로컬에서 실행
        local_pipeline.create_pipeline( # 파이프라인 정의 생성
            pipeline_name=configs.PIPELINE_NAME, #파이프라인명
            pipeline_root=PIPELINE_ROOT, #파이프라인 아티펙트 저장위치
            data_path=configs.DATA_PATH, #입력데이터 경로
            schema_path=configs.SCHEMA_PATH, #입력데이터 스키마 경로
            modules={ # 파이프라인에 대한 사용자 정의 코드
        		# 필수 모듈: training_fn, preprocessing_fn
                "training_fn": configs.TRAINING_FN,
                "preprocessing_fn": configs.PREPROCESSING_FN,
            },
            train_args=tfx.proto.TrainArgs(num_steps=configs.TRAIN_NUM_STEPS), # 파이프라인 훈련 구성
            eval_args=tfx.proto.EvalArgs(num_steps=configs.EVAL_NUM_STEPS), # 파이프라인 평가 구성
            eval_configs=configs.EVAL_CONFIGS, # 평가 구성의 목록
            serving_model_dir=SERVING_MODEL_DIR, # 훈련된 모델이 저장될 디렉터리
            metadata_connection_config=tfx.orchestration.metadata.sqlite_metadata_connection_config( #ML Metadata 저장소에 연결하기 위한 구성
                METADATA_PATH
            ),
        )
    )


if __name__ == "__main__":
    logging.set_verbosity(logging.INFO) #로깅 세부수준 설정
    run()

 

 

대충 이정도로 이해를 했고 이제 모델만 바꿔서 10월 22일까지 실습해보기로 했다.

 

자연어 처리 모델로 파이프라인을 제작해보고 싶었고, 복잡한 모델은 비용이 크기 때문에 간단한 모델인 하나인 LSTM을 활용해 문장 감성분류기를 만들어보면 좋을 것 같아서 이걸 주제로 하게 되었다.

 

원본 프로젝트의 경우 gradio를 통해 웹 페이지를 만들었는데, 나는 가능하다면 streamlit을 이용해 완성해보고 싶다.

 

https://github.com/hongseoi/TFX_Pipeline

 

GitHub - hongseoi/TFX_Pipeline: TFX를 활용한 LSTM모델의 Text Data 감성분석 Pipeline 제작 Project

TFX를 활용한 LSTM모델의 Text Data 감성분석 Pipeline 제작 Project - GitHub - hongseoi/TFX_Pipeline: TFX를 활용한 LSTM모델의 Text Data 감성분석 Pipeline 제작 Project

github.com

 

딱 깃허브 레포까지만 만들었다. 앞으로가 기대된다~ 한달도 안남았는데 할수...있겠지?