이전 편에서는 NED 시스템의 3단계 아키텍처(candidate selection → ranking → ontology integration)와 EntityMention–MedicalEntity 분리 schema를 다뤘다. 그 논의의 reference 도구가 scispaCy였다. scispaCy는 생의학 도메인에서 검증된 NED 도구이지만, 7장에서 부분적으로만 드러난 한계가 8장의 출발점이 된다. 이 챕터의 thesis는 다음과 같다. NED는 더 이상 단일 도메인 특화 도구로 닫혀 있을 필요가 없다. 풍부한 ontology가 존재하는 도메인이라면, 범용 LLM과 graph algorithm의 결합이 도메인 특화 도구의 4대 한계를 우회한다.
8장은 전통 NED 도구의 한계를 네 축으로 명시한다.
| 한계 축 | 내용 |
|---|---|
| 도메인 고정 | 생의학 도메인 전용으로 설계되어 다른 도메인에 이식 불가 |
| KB 확장성 부재 | reference knowledge base에 신규 entity·term을 통합하거나 갱신하기 어려움 |
| KB 정보 미활용 | KB가 보유한 풍부한 정보를 disambiguation에 충분히 반영하지 못함 |
| 관계 미활용 | entity 사이의 기존 relationship과 path를 disambiguation에 활용하지 않음 |
이 중 가장 치명적인 것은 네 번째 한계다. NED의 본질이 "문맥에 따른 의미 결정"임에도, 전통 도구는 entity 간 그래프 관계라는 가장 강력한 문맥 신호를 사용하지 않는다. 그 결과 문맥 단어가 부족한 문장에서 즉각 실패한다. 책의 예시는 명료하다. 같은 "Zika"라는 mention이라도 주변 단어가 풍부한 문장에서는 C0276289 Zika Virus Infection으로 정확히 매핑되지만, 주변 단어가 빈약한 문장에서는 어떤 target entity도 검출하지 못한다.
8장의 접근은 단순한 도구 교체가 아니라 패러다임 전환이다. 도메인 특화 NLP 모델을 더 정교하게 만드는 방향이 아니라, 일반 목적 LLM(Llama 3.1)을 도메인 ontology(SNOMED)로 grounding하는 방향이다.
이 전환에는 두 가지 실용적 함의가 있다. 첫째, 풍부한 ontology가 존재하는 모든 도메인에 동일 framework이 적용 가능하다. 둘째, ontology가 지속적으로 업데이트되면 NED 시스템의 reference knowledge도 자동으로 갱신된다. 모델 재학습이 아닌 ontology 업데이트가 갱신 단위가 된다.
로컬 배포 측면에서 Ollama가 선택된다. Ollama는 LLM을 로컬 머신에서 직접 실행하는 오픈소스 도구로, 데이터 통제권 확보·외부 의존성 감소·latency 감소를 동시에 달성한다. OpenAI Chat Completions API와 호환되어 코드 베이스를 크게 바꾸지 않고 통합 가능하다는 점도 실무적 이점이다.
전체 파이프라인은 NER → Candidate Selection(CS) → Candidate Disambiguation(CD)의 세 phase로 구성되며, 각 phase에 사용되는 도구가 다르다.

각 단계에 다른 도구를 배치하는 설계 결정이 이 framework의 핵심이다. 모든 단계에 LLM을 쓰는 것도, 모든 단계에 graph algorithm을 쓰는 것도 아니다. 각 phase가 요구하는 신호의 성격에 따라 도구가 선택된다.
| Phase | 도구 | 선택 이유 |
|---|---|---|
| NER | LLM (Llama 3.1) | 자연어 문맥에서 mention과 카테고리를 파악하는 작업은 LLM의 강점 영역 |
| Candidate Selection | Neo4j full-text search (LLM 미사용) | ontology 전체를 prompt에 로드 불가, ontology 기반 검색이 LLM 내부 지식보다 정확 |
| Candidate Disambiguation | LLM + GDS shortest path | 그래프 관계 정보를 LLM이 처리 가능한 자연어로 변환해 결합 |
NER의 목표는 비정형 텍스트의 named entity를 사전 정의된 카테고리(diseases, organisms, procedures 등)로 분류하는 것이다. 8장에서 이 카테고리 정의 자체를 SNOMED에서 끌어온다. SNOMED의 first-level node가 카테고리를 정의하며, 그 정보는 ontology의 하위 노드 전체로 propagate된다.
LLM의 한 가지 약점이 이 단계에서 드러난다. LLM은 문장 내 mention의 시작·끝 character offset을 정확히 짚지 못한다. 따라서 mention의 텍스트 자체는 LLM이 추출하되, start·end offset은 후처리(post-processing)로 별도 계산한다. LLM의 강점은 활용하되 약점은 결정론적 후처리로 보완한다는 원칙의 구체적 적용이다.
Candidate Selection 단계에서 LLM을 사용하지 않는 결정은 의도적이며, 두 가지 명확한 이유가 있다.
첫째, candidate를 LLM의 내부 지식이 아닌 도메인 ontology에서 직접 retrieve해야 한다. LLM 내부 지식은 환각(hallucination) 가능성이 있고 ontology 버전과 동기화되지 않는다. 둘째, ontology의 크기가 prompt 한도를 초과한다. SNOMED는 450,000개 이상의 concept을 가진다.
해결책은 Neo4j의 full-text search다. mention 문자열에 가까운 ontology 노드를 효율적으로 retrieve한다. 다만 full-text search는 표면형 매칭에 의존하므로, 동의어·축약·오타에서 누락이 발생할 수 있다. 책은 이 한계의 보완책으로 vector-based search를 병행해 텍스트 매칭으로 잡히지 않는 후보를 추가 retrieve하는 확장을 제시한다.
8장의 진짜 혁신은 CD 단계에 있다. 단순히 LLM에 후보 목록과 문장을 넘기고 선택을 요청하는 방식은 그래프 관계 정보를 활용할 수 없다. 책은 이를 3단계로 분해한다.

같은 문장에 등장한 다른 mention의 candidate들과 target mention의 candidate들 사이에서 최단 경로를 찾는다. 이 경로가 두 entity 사이의 잠재적 관계를 드러낸다. 책의 예시에 따르면 "Zika"와 "microcephaly"가 같은 문장에 등장할 때, "microcephaly"의 존재가 "Zika"를 일반 바이러스가 아닌 Congenital Zika virus infection으로 우선시하게 한다. 이 우선순위의 근거가 ontology 내 path다.
쿼리는 세 단계로 구성된다.
gds.degree.stream으로 각 노드의 degree를 계산해 hub node를 식별한다. 이후 hub node를 경로 탐색에서 제외하기 위함이다.그래프 경로를 LLM에 그대로 넘기는 것은 비효율적이다. LLM은 자연어 처리에 특화되어 있으므로, 각 graph path를 자연어 문장으로 번역한다. 예를 들어 Zika virus —[CAUSES]→ Congenital infection —[ASSOCIATED_WITH]→ Microcephaly 경로는 "Zika virus가 congenital infection을 일으키고, 이는 microcephaly와 연관된다"는 형태로 변환된다.
이 변환의 효과는 LLM의 강점 영역으로 정보를 옮기는 데 있다. LLM은 노드-엣지 표현보다 자연어 서술로 제공된 관계 정보를 더 잘 해석한다.
경로 수가 많아지면 모든 경로 문장을 LLM에 그대로 제공하는 것이 부담이다. 따라서 다수의 path 문장을 단일한 synthetic explanation으로 요약한다. 이 요약 단계의 목적은 두 가지다.
요약은 세부 정보를 버리는 것이 아니라, 관계의 본질만 남기고 표현을 압축하는 작업이다. 결과적으로 모델이 핵심 관계에 집중하게 만든다.
7장의 scispaCy 기반 접근과 8장의 LLM + ontology + GDS 접근을 동일한 NED 작업의 두 구현체로 비교하면 차이가 분명하다.
| 구분 | 7장 (scispaCy) | 8장 (Open LLM + Ontology + GDS) |
|---|---|---|
| 핵심 도구 | scispaCy + UMLS | Llama 3.1 8B + SNOMED + Neo4j GDS |
| 적용 도메인 | 생의학 도메인 한정 | cross-domain 가능 |
| KB 확장성 | 제한적 (모델 재학습 필요) | ontology 업데이트로 즉시 반영 |
| 관계 활용 | 미활용 | shortest path 적극 활용 |
| 문맥 부재 시 | 실패 | co-occurrence + path로 보완 |
| LLM 사용 단계 | 없음 | NER · Path Translation · Summarization · Disambiguation |
| LLM 미사용 단계 | 전체 | Candidate Selection (full-text search) |
7장이 disambiguation을 mention과 KB의 매칭 문제로 다뤘다면, 8장은 동일 문장 내 다른 mention과의 그래프 관계를 disambiguation 신호로 끌어들인다. 정보 활용의 폭이 한 차원 넓어진다.
Ontology 부재 도메인의 적용 불가: 이 framework의 핵심 전제는 "풍부한 ontology의 존재"다. SNOMED·UMLS 수준의 정비된 ontology가 없는 도메인(신생 산업, multilingual archive, 도메인 융합 영역)에서는 path detection 자체가 무력하다. 8장의 접근은 도메인 특화 도구의 한계를 ontology의 한계로 옮긴 것이지, 한계를 제거한 것은 아니다.
Hub node 필터링의 정의 문제: degree 기반 hub node 식별은 임계값 결정이 도메인·ontology 버전마다 달라진다. 정적 임계값은 일부 의미 있는 일반 노드까지 배제하거나, 반대로 의미 없는 noise 노드를 통과시킨다. percentile 기반 또는 도메인 expert 기반의 동적 정의가 더 안정적이다.
Path-to-text translation의 정보 손실: 그래프 관계의 다중성·방향성·정량 속성(가중치, 신뢰도 등)을 자연어로 변환할 때 일부 정보가 평탄화된다. 특히 음의 관계(예: NOT_ASSOCIATED_WITH), 시간적 순서, 확률적 강도 등은 자연어 변환 과정에서 약화되기 쉽다.
LLM 비결정성과 재현성: NER·path translation·summarization·disambiguation 네 단계에서 LLM이 사용된다. 각 단계의 출력이 비결정적이라면 동일 입력에 대해서도 결과가 흔들릴 수 있다. 단계별 temperature 통제와 seed 고정이 운영 단계에서 필수다.
3단계 분해의 비용 누적: 각 단계가 독립 LLM 호출이므로 mention 하나의 disambiguation에 다수의 호출이 발생한다. 문서 단위로 mention 수가 늘면 전체 처리 시간과 비용이 비선형적으로 증가한다. batching·caching 전략이 함께 설계되어야 한다.
이 framework를 실서비스에 적용할 때 고려할 운영 측면을 짚는다.
LLM 단계와 결정론적 단계의 분리 운영이 첫 번째다. NER의 mention offset 후처리, CS의 full-text search는 결정론적이며 캐시 가능하다. 반면 path summarization과 final disambiguation은 비결정성을 수반한다. 두 종류의 단계를 별도 서비스로 분리하면 retry·재현·디버깅이 용이해진다.
Ontology 버전 동기화도 별도 관리해야 한다. SNOMED는 정기 릴리스가 있고, 노드 ID와 관계가 추가·삭제·재정의된다. Candidate Selection의 full-text index와 KG의 노드·관계가 동일 버전을 참조하도록 강제하는 메타데이터 layer를 두는 것이 안전하다.
마지막으로, 로컬 LLM과 외부 LLM의 역할 분담이다. Ollama 기반 로컬 배포는 데이터 민감도가 높은 도메인(헬스케어, 법률)에서 핵심 가치다. 그러나 8B 모델의 능력에는 한계가 있고, 일부 단계(예: 복잡한 path summarization)에서는 더 큰 외부 모델이 더 나은 결과를 낼 수 있다. PII가 포함된 NER·CS는 로컬에서, sanitized된 path 텍스트의 summarization은 외부 모델에서 처리하는 하이브리드도 가능하다.
8장은 7장에서 드러난 전통 NED 도구의 4대 한계 — 도메인 고정, KB 확장 불가, KB 정보 미활용, 관계 미활용 — 을 범용 LLM과 풍부한 ontology의 결합으로 재구성한다. 핵심은 모든 단계에 LLM을 쓰지 않고 phase별로 적합한 도구(LLM, full-text search, GDS)를 배치한다는 설계 원칙, 그리고 CD 단계에서 그래프 관계를 자연어로 번역해 LLM이 처리 가능한 형태로 옮기는 path-to-text translation·summarization 메커니즘이다. 이 framework는 풍부한 ontology가 존재하는 모든 도메인에 일반화될 수 있는 NED의 새로운 baseline이 된다.
결론: 도메인 특화 NLP 모델을 더 정교하게 만드는 대신, 범용 LLM에 도메인 ontology의 graph 구조를 자연어로 번역해 주입하는 것이 cross-domain NED의 일반 해법이다.