11장. 다중 처리 및 Spark로 텍스트 분석 확장하기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
언어 인식 데이터 제품의 맥락에서 텍스트 코퍼스는 고정된 고정물이 아니라 끊임없이 성장하고 변화하는 살아있는 데이터 세트입니다. 예를 들어 질문과 답변 시스템을 생각해보면, 이는 단순히 답변을 제공하는 애플리케이션이 아니라 질문을 수집하는 애플리케이션이라고 할 수 있습니다. 즉, 비교적 적은 양의 질문 모음도 향후 더 나은 답변을 학습하도록 애플리케이션을 훈련시킬 수 있는 심층 자산으로 빠르게 성장할 수 있습니다.
안타깝게도 텍스트 처리 기술은 공간(메모리와 디스크)과 시간(계산 벤치마크) 측면에서 모두 비용이 많이 듭니다. 따라서 말뭉치가 커질수록 텍스트 분석에는 점점 더 많은 컴퓨팅 리소스가 필요합니다. 이 책을 통해 실험 중인 말뭉치에서 처리 시간이 얼마나 오래 걸리는지 경험해 보셨을 것입니다! 점점 커지는 대규모 데이터 세트의 문제를 해결하기 위한 기본 솔루션은 여러 컴퓨팅 리소스(프로세서, 디스크, 메모리)를 사용해 워크로드를 분산하는 것입니다. 여러 리소스가 동시에 서로 다른 계산 부분을 처리할 때 우리는 이를 병렬 처리라고 합니다.
병렬 처리(병렬 또는 분산 계산)에는 크게 두 가지 형태가 있습니다. 작업 병렬성은 동일한 데이터에 대해 서로 다른 독립적인 작업이 동시에 실행되는 것을 의미합니다. 데이터 병렬 처리는 동일한 연산을 여러 입력에 동시에 적용하는 것을 의미합니다. 작업 병렬 처리와 데이터 병렬 처리 모두 계산 속도를 높이기 위해 순차적 형태(한 번에 한 작업씩 차례로)로 계산을 가속화하는 데 자주 사용됩니다.
병렬 환경에서는 속도가 게임의 이름이며, 병렬 환경에서는 장단점이 존재한다는 점을 기억하는 것이 중요합니다. 큰 디스크가 적은 것보다 작은 디스크가 많으면 디스크에서 데이터를 더 빨리 읽을 수 있지만 각 디스크의 저장 용량이 줄어들고 개별적으로 읽어야 합니다. 병렬 계산은 다른 계산이 완료될 때까지 기다리지 않는 한 작업이 더 빨리 완료된다는 것을 의미합니다. 병렬 계산을 수행하기 위해 리소스를 설정하는 데는 시간과 노력이 필요하며, 그 노력이 속도 증가를 초과한다면 병렬 처리는 그만한 가치가 없습니다(암달의 법칙(1 를 참조하세요.) 속도의 또 다른 결과는 단일 리소스가 입력을 완전히 파악할 수 없기 때문에 완전한 계산이 아닌 근사치가 필요하다는 것입니다.
이 장에서는 병렬 처리에 대한 두 가지 접근 방식과 그 장단점에 대해 설명합니다. 첫 번째인 멀티프로세싱은 프로그램이 멀티코어 컴퓨터와 운영 체제 스레드를 사용할 수 있도록 하며, 실행되는 컴퓨터의 사양에 따라 제한되지만 설정 및 실행 속도가 훨씬 빠릅니다. 두 번째인 Spark는 일반적으로 어떤 규모로든 확장할 수 있지만 새로운 워크플로우와 유지 관리가 필요한 클러스터를 활용합니다. 이 장의 목표는 이러한 주제를 소개하여 텍스트 분석 워크플로우에 빠르게 적용할 수 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access