> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# eval 정리 시간이 오래 걸리는 경우

이 페이지에서는 대규모 데이터셋으로 W\&B Weave 평가를 실행할 때, 오래 걸리는 정리 시간을 줄이기 위해 함께 사용할 수 있는 두 가지 방법을 설명합니다. 평가 코드 실행이 끝난 뒤 프로그램이 종료되기 전까지 지연이 길게 발생하는 경우를 겪는 사용자를 위한 내용입니다.

다음 섹션에서는 대기 중인 백그라운드 작업을 모두 처리하는 방법과 클라이언트 병렬성을 높이는 방법을 설명합니다.

<div id="flush-pending-background-work">
  ## 대기 중인 백그라운드 작업 플러시
</div>

플러시를 수행하면 대기 중인 백그라운드 작업이 코드 실행이 끝난 뒤 완료되기를 기다리는 대신, 메인 스레드와 병렬로 완료되도록 강제할 수 있습니다.

대용량 데이터셋으로 평가를 실행하면, 데이터셋이 백그라운드 스레드에서 업로드되는 동안 프로그램 실행이 완료되기까지 오랜 지연이 발생할 수 있습니다. 이는 메인 스레드 실행이 백그라운드 정리 작업이 완료되기 전에 끝나기 때문에 발생합니다. `client.flush()`를 호출하면 모든 백그라운드 작업이 메인 스레드에서 처리되도록 강제하여, 메인 스레드 실행 중 병렬 처리가 이루어지도록 합니다. 이는 사용자 코드가 서버로의 데이터 업로드보다 먼저 완료되는 경우 성능 향상에 도움이 될 수 있습니다.

다음 예시에서는 평가 후 대기 중인 백그라운드 작업을 플러시합니다.

```python theme={null}
client = weave.init("fast-upload")

# ... 평가 설정
result = evaluation.Evaluate(dataset_id="my_dataset_id")

client.flush()
```

<div id="increase-client-parallelism">
  ## 클라이언트 병렬성 늘리기
</div>

클라이언트 병렬성을 높이면 Weave가 데이터셋 업로드와 같은 백그라운드 작업에 사용할 수 있는 스레드가 더 많아지며, flushing과 함께 정리 시간도 더욱 줄일 수 있습니다.

Weave는 환경에 따라 클라이언트 병렬성을 자동으로 결정하지만, 다음 환경 변수를 사용해 수동으로 설정할 수도 있습니다:

* `WEAVE_CLIENT_PARALLELISM`: 병렬 처리에 사용할 수 있는 스레드 수입니다. 이 값을 늘리면 데이터셋 업로드와 같은 백그라운드 작업의 성능이 향상될 수 있습니다.

또한 `weave.init()`의 `settings` 인수를 사용해 프로그래밍 방식으로 설정할 수도 있습니다:

```python theme={null}
client = weave.init("fast-upload", settings={"client_parallelism": 100})
```

***

<Badge stroke shape="pill" color="orange" size="md">[성능](/ko/support/weave/tags/performance)</Badge><Badge stroke shape="pill" color="orange" size="md">[평가](/ko/support/weave/tags/evaluation)</Badge>
