Skip to main content

NVTabular

·132 words·1 min
Sungho Park (gigio1023)
Author
Sungho Park (gigio1023)
To build a genuinely useful product

NVTabular
#

https://nvidia-merlin.github.io/NVTabular/v0.6.1/Introduction.html

Nvidia에서 제공해주는 tabular data에 대한 Feature Engineering, Preprocessing 라이브러리이다. Transformers4Rec에서 해당 라이브러리를 사용하기에 정리했다.

GPU 연산도 지원한다고 한다.

Installation
#

되도록 nvidia docker를 사용하자. pip는 의존성 문제가, conda는 system library에 대한 의존성 문제가 발생했었다. (Ubuntu 18.04 기준)

# 1. Run Nvidia Merlin container
docker run --gpus all --rm -it -p 8888:8888 -p 8797:8787 -p 8796:8786 --ipc=host \
    -v /$(pwd)/data:/workspace/data \
    nvcr.io/nvidia/merlin/merlin-pytorch-training:22.03 /bin/bash

# 2. Run Jupyter Lab
cd /transformers4rec/examples
jupyter-lab --allow-root --ip='0.0.0.0' --port 8888

Workflow
#

일조으이 pipeline이다. NVT를 통해 수행할 작업을 workflow에 정의한 후, workflow.fit을 통해 pipeline을 실행한다. GPU를 통해 연산하기 때문에 GPU VRAM이 자꾸 터졌다..

Categorify
#

Tabular data에서 text 형태의 categorical data를 unique integer value로 변환해준다.

# Define pipeline
cat_features = CATEGORICAL_COLUMNS >> nvt.ops.Categorify(freq_threshold=10)

# Initialize the workflow and execute it
proc = nvt.Workflow(cat_features)
proc.fit(dataset)
proc.transform(dataset).to_parquet('./test/')
Reply by Email