환자 데이터 안 내보내고 의료 텍스트 분석하는 온디바이스 오픈소스 'OpenMed'
임상 텍스트를 단 한 줄의 코드로 구조화된 정보로 바꿔주는 오픈소스 'OpenMed'가 깃허브 트렌딩에 올랐다. 마지야르 파나히(maziyarpanahi)가 공개한 이 프로젝트는 개체명 추출과 개인정보(PII) 비식별, 그리고 1,000개가 넘는 전문 의료 모델을 모두 사용자 자신의 하드웨어에서 실행한다. 클라우드도, 벤더 종속도, 네트워크 밖으로 나가는 환자 데이터도 없다는 것이 핵심 지향점이다.
프로젝트는 1,000개 이상의 모델, 12개 언어, 247개의 PII 체크포인트, 100% 온디바이스 실행, 아파치 2.0 라이선스를 내세운다. 큐레이션된 생의학·임상 모델들 가운데 상당수가 독점 솔루션보다 우수한 성능을 낸다고 프로젝트 측은 주장한다.
사용법은 단순하다. 파이썬에서 analyze_text 함수에 임상 문장과 모델 이름(예: disease_detection_superclinical)을 넘기면, "chronic myeloid leukemia"를 질환(DISEASE)으로, "imatinib"을 약물(DRUG)로 신뢰도 점수와 함께 추출해준다. API 키도, 네트워크 호출도 필요 없이 로컬에서 동작한다.
실행 환경은 CPU, CUDA, 애플 실리콘(MLX 가속)을 모두 지원하며, OpenMedKit을 통해 아이폰·아이패드·맥 앱에 그대로 탑재돼 완전 오프라인으로 PII 탐지와 임상 정보 추출이 이뤄진다. 애플 실리콘이 아닌 환경에서는 MLX 모델 이름이 자동으로 그에 대응하는 파이토치 체크포인트로 대체되어, 모델 이름 하나로 어디서나 실행할 수 있다. 배포는 파이썬 API, 도커화된 REST 서비스, 배치 파이프라인 형태로 가능하다.
개인정보 비식별 기능은 HIPAA를 염두에 두고 설계됐다. extract_pii와 deidentify API로 마스킹(mask), 대체(replace), 해싱(hash), 날짜 이동(shift_dates) 방식을 선택할 수 있고, HIPAA 세이프 하버의 18개 식별자를 모두 다룬다. '스마트 개체 병합'은 01/15/1970 같은 날짜가 토큰화 과정에서 쪼개지지 않고 온전히 유지되도록 하며, 페이커(Faker) 기반 난독화는 형식을 보존하는 가짜 값을 CPF·CNPJ·BSN·Aadhaar·NPI 등 각국 임상 ID 형식에 맞춰 생성한다. 여러 문서를 한 번에 처리하는 배치 PII 기능은 버전 1.5.5에서 추가됐다.
'프라이버시 필터' 계열은 OpenAI 프라이버시 필터 아키텍처를 기반으로 한 세 가지 모델 계열로 구성된다. gpt-oss 계열의 희소 MoE 트랜스포머라는 동일한 모델 코드를 공유하되 학습 데이터만 다른 방식으로, OpenAI 프라이버시 필터 기본형, 엔비디아 네모트론 PII 파인튜닝본, OpenMed 다국어 버전이 있다. 세 계열 모두 같은 API를 거치며 model_name 값만 바꾸면 되고, MLX 및 8비트 양자화 변형도 제공된다.
모델 레지스트리에는 용도별 전문 모델이 정리돼 있다. 질환을 다루는 disease_detection_superclinical(434M), 약물의 pharma_detection_superclinical(434M), 개인정보의 pii_superclinical_large(434M), 해부학의 anatomy_detection_electramed(109M), 유전자·단백질의 gene_detection_genecorpus(109M) 등이다.
다국어 처리는 영어·프랑스어·독일어·이탈리아어·스페인어·네덜란드어·힌디어·텔루구어·포르투갈어·아랍어·일본어·튀르키예어 등 12개 언어에 걸쳐 추출과 비식별을 지원하며, PII 체크포인트는 총 247개다. 완전 격리(에어갭) 환경에서는 model_id를 로컬 디렉터리로 지정하면 허깅페이스 허브에 접속하지 않고 모델을 불러온다. 아파치 2.0 라이선스 아래 사용자 인프라에서 사용자 데이터로 돌아가는 구조다.