작성자: Priyanka Mehta , Shaunak Sen
Virtue Foundation은 글로벌 보건 의료 제공과 글로벌 자선 의료를 위한 효율적인 시장을 만드는 데 중점을 둔 비영리 단체입니다. 현재까지 가나와 몽골에 특별히 중점을 두고 50,000명 이상의 환자에게 의료 서비스를 제공했습니다. 이 시장의 중추는 72개의 저소득 및 저중소득 국가에서 의료 전문가를 자원 봉사 기회와 연결하는 플랫폼인 VF Match를 통해 글로벌 의료 시설 데이터를 큐레이션하는 것입니다. Databricks for Good는 2024년부터 Virtue Foundation과 긴밀히 협력하여 AI를 활용해 이들 국가의 데이터를 통합하고 실행 가능하게 만들고 있습니다.
초기 개념 증명은 LLM이 다양한 웹 데이터 소스에서 구조화된 정보를 추출하여 의료 인프라 지도와 가장 중요하게는 자원이 부족한 지역의 서비스 격차를 만들 수 있음을 보여주었습니다. 그러나 이 기능의 확장과 프로덕션으로의 전환은 많은 과제를 안고 있었습니다. 이 첫 번째 반복 이후, 우리는 POC를 전 세계 수천 개의 의료 시설 및 비영리 단체의 데이터를 통합하는 프로덕션 등급 시스템으로 변환하는 Databricks 기반 플랫폼을 구축했습니다.
이 글에서는 Virtue Foundation이 이러한 국가의 긴급한 요구에 의료 자원 봉사자 커뮤니티를 더 잘 연결할 수 있도록 이전 작업을 어떻게 개선했는지 살펴봅니다.
VF Match의 핵심은 다양한 웹 기반 소스에서 처음부터 구축된 포괄적인 의료 시설 및 비영리 단체 데이터 세트인 Foundational Data Refresh (FDR)입니다. 우리는 전 세계 72개 저소득 및 저중소득 국가의 데이터를 체계적으로 수집하고 새로고침합니다.
이 새로고침에는 두 가지 상호 보완적인 데이터 소스가 사용됩니다:
FDR의 핵심은 OpenAI의 GPT 모델로 구동되는 정보 추출 파이프라인입니다. 프로덕션 보증을 통해 LLM으로 2,500만 개 이상의 웹 페이지를 처리하려면 기존 LLM 추론 파이프라인을 재고해야 했습니다. 당사의 파이프라인은 원샷 추출을 시도하는 대신 작업을 대상 단계로 나눕니다: 의료 관련성 분류, 조직 유형(의료 시설 또는 NGO) 식별, 전문 분야, 장비 및 절차 추출.
그림 1: Foundational Data Refresh (FDR) 주요 단계.">이 접근 방식은 토큰 소비를 크게 줄이는 동시에 각 모델 호출을 좁고 높은 정밀도의 작업에 집중시킵니다. Databricks와 Apache Spark는 스크랩된 데이터를 효율적으로 오케스트레이션하고 병렬화하여 수천 개의 실행기에서 워크로드를 분산하고 높은 처리량의 LLM 추론을 가능하게 하는 데 사용됩니다.
이 파이프라인을 확장 가능하고 프로덕션 준비 상태로 만드는 몇 가지 중요한 기능이 있습니다:
이러한 보증은 15개 이상의 상호 의존적인 작업을 조건부 분기, 병렬 실행 및 지능형 재시도 정책으로 오케스트레이션하는 Lakeflow Jobs를 통해 시행됩니다. 그 결과는 의료 전문가의 정밀도로 대규모 의료 시설 데이터를 처리하는 시스템입니다.
LLM을 사용하여 시설 및 비영리 단체 데이터를 스크랩하고 추출한 후에는 일반적인 과제인 엔티티 해결이 발생합니다. 이름 변형, 일관성 없는 주소 또는 누락된 연락처 정보로 인해 동일한 시설이 여러 데이터 소스에 나타날 수 있습니다. 이러한 시나리오에서는 데이터가 지저분하기 때문에 기존의 중복 제거가 실패하므로 Splink라는 오픈 소스 확률적 레코드 연결 프레임워크를 사용합니다. IE 단계에서 소싱된 정보를 사용하여 Splink는 전화 번호, 거리 주소 등과 같은 필드에 대한 가중치 비교를 통해 일치하는 쌍을 평가합니다. 그 결과 시설당 통합 키가 생성되어 최종 사용자가 각 의료 시설 및 NGO에 대한 하나의 권위 있는 레코드를 볼 수 있도록 합니다.
그림 2: Splink를 통한 엔티티 해결을 위한 예제 규칙 세트.">수천 개의 의료 시설 및 비영리 단체에 대한 확률적 일치를 실행한 결과 테라바이트 규모에서 발생하는 일반적인 성능 병목 현상이 나타났습니다. 레코드 연결의 핵심은 쌍별 비교이며, 이는 본질적으로 왜곡된 워크로드를 생성합니다. 일반적인 비교는 거대한 파티션을 생성하는 반면 대부분의 다른 비교는 훨씬 작게 유지됩니다. 초기 실행에서 이러한 문제가 명확하게 드러났으며, 하나의 Spark 파티션이 30분 동안 실행되는 반면 중앙값은 52초 만에 완료되었습니다. 이는 작업 성능을 저하시키는 스트래글러(마지막 리듀서의 저주)의 전형적인 사례입니다. Databricks의 벡터화된 쿼리 엔진인 Photon을 활성화하면 최악의 데이터 파티션 시간이 30분에서 약 2분으로 줄어들어 15배 향상되었습니다.
미래를 내다보며, 전문가들이 자연어를 사용하여 데이터를 분석할 수 있도록 하는 에이전트의 프로토타입을 개발했습니다. LangGraph로 구축된 다중 에이전트 아키텍처를 사용하고 Databricks Model Serving, Vector Search 및 Genie를 활용합니다.
그림 3: VF 에이전트: 프로세스 흐름도">위 다이어그램에서 볼 수 있듯이, 의료 전문 분야 추출기는 사용자 언어를 표준화된 의료 용어로 변환한 다음 다중 에이전트 감독자에게 전달합니다. 쿼리의 의도와 복잡성에 따라 벡터 검색 에이전트(시설 검색 및 탐색) 또는 Genie 에이전트(구조화된 데이터에 대한 분석 쿼리)로 라우팅됩니다.
의료 전문가는 이제 최신 기회를 더 빠르게 찾고, 자신의 의료 전문 분야와 일치하는 항목을 찾고, 전 세계 수천 개의 시설에 대한 글로벌 데이터에 액세스할 수 있습니다. Virtue Foundation의 개념 증명에서 프로덕션까지의 여정은 고급 AI 시스템이 통합 데이터 플랫폼과 결합될 때 무엇이 가능한지를 보여줍니다.
최종 결과는 의료 자원 봉사자가 가장 필요한 곳을 보여주는 의료 인프라의 글로벌 뷰입니다.
이 프로젝트에 대해 더 자세히 알고 싶으시면 다음을 참조하십시오:
- Databricks x Virtue Foundation 프로젝트 개요 - YouTube
- UN Bloomberg 인터뷰 (YouTube) - 약 38:00부터
- 비디오 후기: Bright Initiative x Virtue Foundation x Databricks
아래에서 저희의 다른 Databricks for Good 프로젝트에 대해 자세히 읽어보세요:
(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)
블로그를 구독하고 최신 게시물을 이메일로 받아보세요.