Driverless AI k-LIME MOJO Reason Code Pipeline - Java 런타임¶
완료된 MLI 실험에 대해 사용자는 k-LIME MOJO를 다운로드할 수 있습니다. k-LIME MOJO Reason Code Pipeline은 실시간으로 이유 코드를 생성하기 위해 모든 Java 환경에 배치할 수 있는 이유 코드 엔진입니다. K-LIME 이유 코드에 대한 Java 런타임 MOJO를 얻으려면 download K-Lime MOJO reason code Pipeline 하고, K-LIME 이유 코드 및 Shapley에 대한 Python Scoring Pipeline의 경우는 Scoring Pipeline 을 다운로드합니다.
Note: 이 이유 코드 파이프라인은 현재 다항 실험에는 사용할 수 없습니다.
전제 조건¶
k-LIME MOJO Reason Code Pipeline을 실행하려면 다음 조건이 필요합니다.
Java 7 런타임(JDK 1.7) 이상. Note: Java의 버그 때문에 Java 11 이상을 사용할 것을 권장합니다. 자세한 내용은 https://bugs.openjdk.java.net/browse/JDK-8186464 를 참조하십시오.
유효한 Driverless AI 라이선스. Driverless AI를 호스팅하는 시스템(일반적으로 license 폴더에 있음)에서
license.sig
파일을 다운로드할 수 있습니다. 다운로드한mojo-pipeline
폴더에 라이선스 파일을 복사합니다.mojo2-runtime.jar 파일. 이 파일은 Driverless AI UI의 상단 탐색 메뉴와 실험을 위해 다운로드한 mojo-pipeline.zip 파일에 있습니다.
라이선스 사양¶
Driverless AI에서 DAI/MLI MOJO를 실행하려면 라이선스를 지정해야 합니다. 다음 중 한 가지 방법으로 라이선스를 지정할 수 있습니다.
환경 변수:
DRIVERLESS_AI_LICENSE_FILE
: Driverless AI 라이선스 파일의 경로, 또는DRIVERLESS_AI_LICENSE_KEY
: Driverless AI 라이선스 키(Base64 인코드 스트링)
JVM 시스템 속성(
-D
옵션):ai.h2o.mojos.runtime.license.file
: Driverless AI 라이선스 파일의 경로, 또는ai.h2o.mojos.runtime.license.key
: Driverless AI 라이선스 키(Base64 인코드 문자열)
애플리케이션 클래스 경로:
라이선스는
/license.sig
라는 리소스에서 로드됩니다.기본 리소스 이름은 JVM 시스템 속성
ai.h2o.mojos.runtime.license.filename
으로 변경할 수 있습니다.
예:
# Specify the license with a temporary environment variable
export DRIVERLESS_AI_LICENSE_FILE="path/to/license.sig"
k-LIME Reason Code Pipeline 파일¶
klime_mojo 폴더에는 다음 파일이 포함되어 있습니다.
domains
experimental
model.ini
models
빠른 시작¶
완료된 MLI 페이지에서, Download k-LIME MOJO Reason Code Pipeline 버튼을 클릭합니다.
이유 코드를 생성하기 위해 Java 애플리케이션을 직접 실행하려면 다음 명령을 사용하십시오.
java -Dai.h2o.mojos.runtime.license.file=license.sig -cp mojo2-runtime.jar ai.h2o.mojos.ExecuteMojo klime_mojo.zip example.csv
k-LIME MOJO 명령줄 옵션¶
Java 런타임 실행¶
다음은 명령줄에서 Java 런타임을 실행하는 일반적인 두 가지 예시입니다.
With additional libraries:
java <JVM options> [options...] -cp mojo2-runtime.jar:your-other.jar:many-more-libs.jar ai.h2o.mojos.ExecuteMojo path-to/pipeline.mojo path-to/input.csv path-to/output.csv
Without additional libraries:
java <JVM options> -jar mojo2-runtime.jar path-to/pipeline.mojo path-to/input.csv path-to/output.csv
따라서 예를 들어 sys.ai.h2o.mojos.parser.csv.separator
옵션을 다음과 함께 전달할 수 있습니다.
java -Dsys.ai.h2o.mojos.parser.csv.separator='|' -Dai.h2o.mojos.runtime.license.file=../license.sig -jar mojo2-runtime.jar pipeline.mojo input.csv output.csv
이와 유사하게, sys.ai.h2o.mojos.exposedInputs
옵션을 다음과 함께 전달할 수 있습니다.
java -Xmx5g -Dsys.ai.h2o.mojos.exposedInputs=ALL -Dai.h2o.mojos.runtime.license.file= -cp mojo2-runtime.jar ai.h2o.mojos.ExecuteMojo pipeline.mojo example.csv
Note: 입력 및 출력 CSV 인수를 모두 `-`로 대체하여 데이터를 stdin에서 stdout으로 스트리밍할 수 있습니다.
JVM 옵션¶
sys.ai.h2o.mojos.parser.csv.keepCarriageReturn
(boolean) - 구문 분석 후 캐리지 리턴을 유지할지 여부를 지정합니다. 이 값의 기본값은 True입니다.sys.ai.h2o.mojos.parser.csv.stripCrFromLastColumn
(boolean) - OpenCSV 파서와 관련된 문제에 대한 해결 방법입니다. 기본값은 True입니다.sys.ai.h2o.mojos.parser.csv.quotedHeaders
(boolean) - 출력 CSV 파일에서 헤더 이름을 인용할지 여부를 지정합니다. 기본값은 False입니다.sys.ai.h2o.mojos.parser.csv.separator
(char) - CSV 필드 사이에 사용되는 구분 기호를 지정합니다. 탭으로 구분된 값에는 특수 값 `TAB`을 사용할 수 있습니다. 기본값은 `,`입니다.sys.ai.h2o.mojos.parser.csv.escapeChar
(char) - CSV 필드 구문 분석을 위한 이스케이프 문자를 지정합니다. 이 값을 지정하지 않으면 이스케이프를 시도하지 않습니다. 기본값은 빈 문자열입니다.sys.ai.h2o.mojos.parser.csv.batch
(int) - 일괄 처리를 위해 메모리로 가져온 입력 레코드 수를 지정합니다(사용된 메모리를 확인함). 기본값은 1000입니다.sys.ai.h2o.mojos.pipelineFormats
(string) - 여러 형식이 인식되는 경우, 이 옵션은 시도할 순서를 지정합니다. 기본값은 `pbuf,toml,klime,h2o3`입니다.sys.ai.h2o.mojos.parser.csv.date.formats
(string) - 날짜 형식을 지정합니다. 기본값은 빈 문자열입니다.sys.ai.h2o.mojos.exposedInputs
(string) - 출력에 필요한 쉼표로 구분된 입력 열 목록을 지정합니다. 특수 값 ‘`ALL`은 모든 입력을 사용합니다. 기본값은 null입니다.sys.ai.h2o.mojos.useWeakHash
(boolean) - WeakHashMap 사용 여부를 지정합니다. 기본적으로 False로 설정되어 있습니다. 이 설정을 활성화하면 MOJO 로드 시간이 향상될 수 있습니다.
JVM Options for Access Control
ai.h2o.mojos.runtime.license.key
- 라이선스 키를 지정합니다.ai.h2o.mojos.runtime.license.file
- 라이선스 키의 위치를 지정합니다.ai.h2o.mojos.runtime.license.filename
- 기본 라이선스 파일 이름을 재정의합니다.ai.h2o.mojos.runtime.signature.filename
- 기본 서명 파일 이름을 재정의합니다.ai.h2o.mojos.runtime.watermark.filename
- 기본 워터마크 파일 이름을 재정의합니다.
JVM Options for Access Control
ai.h2o.mojos.runtime.license.key
- 라이선스 키를 지정합니다.ai.h2o.mojos.runtime.license.file
- 라이선스 키의 위치를 지정합니다.ai.h2o.mojos.runtime.license.filename
- 기본 라이선스 파일 이름을 재정의합니다.ai.h2o.mojos.runtime.signature.filename
- 기본 서명 파일 이름을 재정의합니다.ai.h2o.mojos.runtime.watermark.filename
- 기본 워터마크 파일 이름을 재정의합니다.
Java에서 MOJO 실행¶
새 터미널 창을 열고, 실험 폴더를 만들어 디렉터리를 이 폴더로 변경합니다.
mkdir experiment && cd experiment
새 파일 DocsExample.java 를 만들어 experiment 폴더에 기본 프로그램을 생성합니다(예:
vim DocsExample.java
). 다음 콘텐츠를 포함시킵니다.
import ai.h2o.mojos.runtime.MojoPipeline; import ai.h2o.mojos.runtime.frame.MojoFrame; import ai.h2o.mojos.runtime.frame.MojoFrameBuilder; import ai.h2o.mojos.runtime.frame.MojoRowBuilder; import ai.h2o.mojos.runtime.lic.LicenseException; import ai.h2o.mojos.runtime.utils.CsvWritingBatchHandler; import com.opencsv.CSVWriter; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; public class DocsExample { public static void main(String[] args) throws IOException, LicenseException { // Load model and csv final MojoPipeline model = MojoPipelineService.loadPipeline("klime_mojo.zip"); // Get and fill the input columns final MojoFrameBuilder frameBuilder = model.getInputFrameBuilder(); final MojoRowBuilder rowBuilder = frameBuilder.getMojoRowBuilder(); rowBuilder.setValue("petal_wid", "0.2"); rowBuilder.setValue("class", "Iris-setosa"); rowBuilder.setValue("sepal_len", "5.1"); rowBuilder.setValue("petal_len", "1.4"); frameBuilder.addRow(rowBuilder); // Create a frame which can be transformed by MOJO pipeline final MojoFrame iframe = frameBuilder.toMojoFrame(); // Transform input frame by MOJO pipeline final MojoFrame oframe = model.transform(iframe); // `MojoFrame.debug()` can be used to view the contents of a Frame // oframe.debug(); // Output prediction as CSV final Writer writer = new BufferedWriter(new OutputStreamWriter(System.out)); final CSVWriter csvWriter = new CSVWriter(writer); CsvWritingBatchHandler.csvWriteFrame(csvWriter, oframe, true); } }
실험에 복사된 MOJO 런타임(mojo2-runtime.jar)으로 소스 코드를 컴파일합니다.
javac -cp mojo2-runtime.jar -J-Xms2g -J-XX:MaxPermSize=128m DocsExample.java
실험에 복사한 라이선스(license.sig)로 MOJO 예시를 실행합니다.
# Linux and OS X users java -Dai.h2o.mojos.runtime.license.file=license.sig -cp .:mojo2-runtime.jar DocsExample # Windows users java -Dai.h2o.mojos.runtime.license.file=license.sig -cp .;mojo2-runtime.jar DocsExample
다음 출력이 표시됩니다.
model_pred,cluster,petal_wid,class,sepal_len,petal_len 3.4530200678814422,1.0,-0.01619126014214789,1.3624817331603232E-6,2.5224436307972296,-0.5251985209647447