콘텐츠로 이동

처리 속도 벤치마크

처리 속도 벤치마크 (CPU/GPU)

바른의 처리 속도는 실행 환경(CPU/GPU), 배치 구성, 문장 길이, 동시 요청 수에 따라 달라집니다. 이 문서는 절대 수치를 못박기보다, 속도를 결정하는 요소와 공정하게 측정하는 방법을 안내합니다. 같은 분석기라도 측정 환경이 다르면 결과가 크게 달라지므로, 벤치마크는 반드시 자신의 환경에서 직접 재는 것을 권합니다.

속도를 결정하는 요소

요소 설정/특성 영향
실행 프로바이더 executionProvider(cpu/gpu 등) GPU는 대량·긴 문장 처리량에 유리
배치 처리 AnalyzeSyntaxList로 여러 문장 동시 입력 호출당 오버헤드 감소
문장 길이 분절은 80자 단위 처리 긴 문장은 분할되어 단계가 늘어남
동시 요청 서버 동시성·하드웨어 처리량(throughput)에 직접 영향
모델 단계 분절 → 태깅 두 단계 추론 정확도와 속도의 균형

executionProvider 선택

바른은 ONNX 런타임으로 추론하며 CPU·GPU 등 실행 프로바이더를 bareun.jsonexecutionProvider로 고를 수 있습니다. GPU 프로바이더가 실패하면 자동으로 CPU로 폴백하므로, 환경에 맞춰 안전하게 동작합니다.

CPU와 GPU, 무엇을 고를까

  • CPU: 설치가 단순하고 소량·실시간 단건 요청에 적합합니다. 단건 지연(latency)이 중요한 경우에 무난합니다.
  • GPU: 대량 배치 처리·긴 문서에서 처리량(throughput)을 끌어올리기 좋습니다. 많은 문장을 한꺼번에 분석할 때 이점이 커집니다.

처리량이 중요하면 단건 요청을 반복하기보다 AnalyzeSyntaxList로 여러 문장을 묶어 보내는 편이 유리합니다. 호출마다 드는 통신·초기화 오버헤드를 줄일 수 있기 때문입니다. 응답이 기대보다 느리다면 응답이 느릴 때에서 점검 항목을 확인하세요.

공정한 측정 방법론

벤치마크가 의미를 가지려면 다음을 통제해야 합니다.

graph TD
  A[측정 목적 정의: 지연 vs 처리량] --> B[입력 고정: 같은 말뭉치·문장 길이 분포];
  B --> C[환경 고정: CPU/GPU·코어 수·메모리];
  C --> D[워밍업 후 다회 측정];
  D --> E[평균·분위수 보고 + 환경 명시];
  1. 무엇을 재는가: 단건 지연(latency)인지, 초당 처리 어절/문장 수(throughput)인지 먼저 정합니다.
  2. 입력 고정: 같은 말뭉치, 비슷한 문장 길이 분포로 측정합니다. 입력이 다르면 비교가 무의미합니다.
  3. 환경 고정: CPU/GPU 종류, 코어 수, 메모리, 동시 요청 수를 기록합니다.
  4. 워밍업: 첫 호출은 모델 로딩·초기화로 느리므로 제외하고, 여러 번 반복해 평균과 분위수를 봅니다.
  5. 환경 명시: 결과와 함께 측정 환경을 반드시 적습니다.

절대 수치 비교는 환경 의존적입니다

"초당 몇 어절"과 같은 절대 수치는 하드웨어·배치·문장 길이·동시성에 따라 크게 달라집니다. 바른과 다른 분석기를 비교하려면 같은 입력·하드웨어·측정 방식에서 다시 측정해야 공정합니다. 이 문서는 특정 절대 수치를 보장하지 않습니다.

관련 문서

자주 묻는 질문

Q. 바른은 CPU에서도 충분히 빠른가요?

소량·실시간 단건 요청에는 CPU로도 무난합니다. 대량 배치나 긴 문서가 많다면 GPU 프로바이더와 배치 입력으로 처리량을 높이는 것이 좋습니다. 적절한 구성은 워크로드에 따라 다릅니다.

Q. 처리 속도를 어떻게 높이나요?

executionProvider를 환경에 맞게 고르고, AnalyzeSyntaxList로 여러 문장을 묶어 보내며, 동시 요청 수와 하드웨어를 워크로드에 맞춰 조정하세요. 첫 호출의 워밍업 비용은 측정에서 제외합니다.

Q. 다른 분석기보다 빠른가요 느린가요?

속도는 측정 환경에 절대적으로 의존합니다. 공정한 비교는 같은 말뭉치·하드웨어·배치·측정 방식에서만 가능합니다. 바른은 정확도(품사 태깅 99.6%, 어절 분리/복원 99.7%)와 함께 실행 프로바이더 선택으로 속도를 조정할 수 있습니다.

Q. 배치로 보내면 정말 빨라지나요?

호출마다 드는 통신·초기화 오버헤드가 줄어들기 때문에 처리량이 올라갑니다. 단건 요청을 반복하기보다 AnalyzeSyntaxList로 여러 문장을 묶어 보내고, 대량·긴 문서가 많다면 GPU 프로바이더를 함께 쓰는 것이 유리합니다. 첫 호출의 워밍업 비용은 측정에서 제외하세요.

도움이 되었나요?