작업 사용하기

작업 쿼리

To programmatically get the list of job summaries, use get_job_summaries().

import qai_hub as hub

client = hub.Client()
job_summaries = client.get_job_summaries(limit=10)
print(job_summaries)

Given a specific job ID from the UI (an ID starting with j e.g. jvgdwk7z5), the job can be programmatically queried using get_job().

job = client.get_job("jvgdwk7z5")
print(job)

프로필 작업

프로필 작업의 결과는 다음과 같이 ProfileJob 을 사용하여 프로그래밍 방식으로 얻을 수 있습니다.

profile = job.download_profile()
print(profile)

인쇄된 사전의 출력은 다음과 같습니다.

{
    'estimated_inference_time': 2997,
    'estimated_inference_peak_memory': 69177344,
    'first_load_time': 2162619,
    'first_load_peak_memory': 83742720,
    'warm_load_time': 123904,
    'warm_load_peak_memory': 73179136,
    'compile_time': 0,
    'compile_peak_memory': 0,
    'compile_memory_increase_range': None,
    'compile_memory_peak_range': None,
    'first_load_memory_increase_range': (0, 0),
    'first_load_memory_peak_range': (26226688, 31730736),
    'warm_load_memory_increase_range': (0, 10580480),
    'warm_load_memory_peak_range': (12865536, 37318656),
    'inference_memory_increase_range': (0, 12160),
    'inference_memory_peak_range': (12288, 21276192),
    'all_compile_times': [],
    'all_first_load_times': [2162619],
    'all_warm_load_times': [123904],
    'all_inference_times': [9130, .... ]
}

메모리는 바이트로 표현되고 시간은 마이크로초로 표현됩니다. 밀리초 단위의 대기 시간을 구하려면:

latency_ms = profile["execution_summary"]["execution_time"] / 1000

Downloading Job Artifacts

Jobs produce artifacts during execution. Depending on the job type, artifacts can include server logs, device logs, op-by-op timing summaries, or QNN HTP Analysis Summaries (QHAS). These are useful for troubleshooting job failures or understanding job behavior.

To see which artifacts are available for a completed job:

artifacts = job.get_available_artifacts()
print(artifacts)
# e.g. [<JobArtifactType.HUB_LOG: 5>, <JobArtifactType.DEVICE_LOG: 1>]

To download a specific artifact type:

paths = job.download_artifacts_for_type("./artifacts", hub.JobArtifactType.HUB_LOG)

To download all available logs (device log and hub log):

paths = job.download_job_logs("./artifacts")

Logs are also automatically included when calling download_results:

results = job.download_results("./results")
# results directory will contain the job's primary output (e.g. compiled model)
# as well as any available log files

Available artifact types are listed in JobArtifactType. Not all types are available for all jobs — use get_available_artifacts() to check what is available for a specific job.

참고

The format, content, and availability of job artifacts may change without notice. They are not part of the stable API contract.

작업 공유

기본적으로 모든 작업은 작업을 만든 사용자만 액세스할 수 있습니다. 작업은 다음을 사용하여 특정 계정과 프로그래밍 방식으로 공유할 수도 있습니다.

job.modify_sharing(add_emails=['name@company.com'])

특정 계정의 권한도 취소할 수 있습니다

job.modify_sharing(delete_emails=['name@company.com'])