상업 신용 위험 평가는 복잡하죠
소개
대출을 시작하는 건 관리자가 재무제표, 레버리지 비율, 수익성 지표 등을 분석해야 하는 복잡한 과정이에요. 재무 데이터뿐만 아니라 회사의 산업과 비즈니스 모델도 평가하죠.
이러한 통찰력은 다른 주요 요소들과 함께 내부 위험 평가 모델에 반영돼서, 대출 가격과 승인에 영향을 미치는 위험 등급을 생성하는 데 쓰여요. 위험 등급에 영향을 주는 추가 요인으로는 산업 동향과 시장 변동, 규제 위험, 더 넓은 경제 환경 같은 거시 경제 상황이 있답니다.
이 정보의 대부분은 구조화되지 않은 데이터 형태로 저장되는데요. 예를 들어 연간 보고서 제출, 분기별 수익 보고서, 대차대조표, 손익계산서 같은 것들이 있죠. 이는 프로세스의 복잡성을 더할 뿐만 아니라, 데이터 해석의 편향, 평가의 투명성 부족, 인적 오류로 인해 중요한 요소를 놓칠 위험 같은 문제들을 야기할 수 있어요.
구출을 위한 Large Language Model
LLM(Large Language Model)은 작업 자동화, 의사 결정 개선, 효율성 향상 등을 통해 산업 전반에 걸쳐 상당한 이점을 제공해요. 신용 위험 평가에서 즉각적인 이점 중 하나는 더 빠르고 효율적인 분석을 위해 방대한 양의 비정형 데이터를 추출하고 이를 데이터베이스로 구성하는 능력이라는 점이죠.
그런데 여기서 멈출 필요가 있을까요? 데이터베이스에 뉴스와 시장 정서, 법률 문서, 심지어 날씨 정보까지 통합해서 실시간 통찰력을 제공한다면 관리자의 분석이 얼마나 더 깊어질 수 있을지 상상해보세요. 이렇게 하면 위험 평가를 정적인 프로세스에서 동적인 데이터 기반 전략으로 바꿀 수 있어요. 이게 바로 우리 모델에 필요한 두뇌 업그레이드인 거죠!
Graph Database 또는 Vector Database?
Graph Database와 Vector Database는 서로 다른 용도로 사용돼요. 어느 쪽이 더 낫다는 생각은 특정 사용 사례에 따라 달라지죠. 하지만 특정 상황에서는, 특히 엔터티 간의 복잡한 관계를 처리할 때 Graph Database가 순수한 Vector Database보다 더 나은 선택이 될 수 있어요. 자세히 설명하지 않고, 이런 맥락에서 Graph Database가 더 나은 몇 가지 이유를 살펴볼까요?
복잡한 관계
- 는 복잡한 관계와 네트워크를 표현하고 쿼리하는 데 유용해요.
- Vector Database는 객체를 나타내는 고차원 벡터를 저장하죠. 유사성 검색(주어진 벡터와 유사한 항목 찾기)에 최적화되어 있지만, 본질적으로 구조화된 방식으로 엔터티 간의 관계를 캡처하거나 관리하지는 않아요.
효율적인 관계 쿼리
- 는 엔터티 간의 관계를 쿼리하고 탐색하는 데 최적화되어 있어요.
- Vector Database는 데이터의 관계 탐색에 대해 동일한 자연적 지원이 없어요. 관계는 일반적으로 그래프처럼 명시적으로 정의되기보다는 유사성을 기반으로 추론되죠.
데이터 유연성
- 는 다양한 관계를 지원하고 동적으로 발전할 수 있어요. 대대적인 구조 조정 없이 기존 엔터티 간에 새로운 유형의 관계를 추가할 수 있죠.
- Vector Database는 일반적으로 구조가 더 단단해요. 벡터는 복잡한 데이터를 나타낼 수 있지만, 벡터가 저장되거나 해석되는 방식을 수정하려면 모델을 재교육하거나 데이터 형식을 다시 지정해야 하는 경우가 많답니다.
제 동료인 토마즈 브라타닉과 잭 블루멘펠드가 함께 Knowledge Graph를 구축하는 방법을 보여주는 두 개의 훌륭한 블로그 게시물을 작성했어요. LLM Graph Transformer를 사용하여 Knowledge Graph 구축과 GraphRAG Python 패키지: Knowledge Graph로 GenAI 가속화를 참고해보세요.
두뇌와 그래프의 만남
이제 연결된 데이터가 어떻게 더 깊은 인텔리전스를 잠금 해제할 수 있는지 살펴볼게요. 그래프가 어떻게 작성되었는지에 대한 자세한 내용은 생략할게요. 간단히 말해서, 그래프는 구조화된 데이터와 구조화되지 않은 데이터를 모두 결합해요. 이 모델은 10-K 연례 보고서 제출, 원자재 데이터, 회사 프로필, 심지어 날씨 정보까지 재무 통찰력과 통합해서 포괄적인 뷰를 제공하죠. (이 작업을 완료하는 데 도움을 준 동료 Alex Fournier에게 감사드립니다.)

보시는 것처럼 각 문서는 상품, 건축 자재, 그리고 구리, 니켈, 리튬 같은 요소와 같은 주요 항목이 추출된 청크로 나뉘었어요. 원본 텍스트 외에도 각 청크에는 의미론적 의미를 담아내는 Vector Embedding이 포함되어 있죠. 이 청크들의 텍스트 속성을 기반으로 전체 텍스트 Index도 생성되었답니다.
이 모델은 한때 풀기 불가능하거나 엄청나게 시간이 오래 걸렸던 질문에 답할 수 있는 잠재력을 보여주고 있어요. 그리고 가장 좋은 점은? 많은 경우에 Large Language Model(LLM) 없이도 Graph Database에 쿼리해서 비즈니스 의사 결정을 내릴 수 있다는 거죠!
예를 들어, 전체 텍스트 Index를 활용하면 '리튬 의존성'과 같은 용어를 검색하고 Graph를 탐색해서 결과에 대한 더 많은 맥락을 얻을 수 있어요.
CALL db.index.fulltext.queryNodes("ftChunkContent", "dependency on lithium")
YIELD node, score
WITH node, score
WITH elementId(node) as chunkId, score
CALL(chunkId)
{
MATCH (c:Chunk)<-[:HAS_CHUNK]-(d:Document)<-[:FILED]-(co:Company)
WHERE elementId(c) = chunkId
return c.text as Text, co.name as Company
}
return Text, Company, score
order by score desc
limit 10
결과 시각화는 아래에 나와 있는데, Tesla, Exxon, Ford가 검색어에 대한 근접성 점수가 가장 높게 나왔네요.

Tesla의 10-K 제출에서 검색어와 일치하는 텍스트는 다음과 같아요.
“또한 우리가 생산하는 배터리 팩은-이온 세포. 드문 경우지만,- 이온 셀은 근처의 물질은 물론 다른 물질도 발화시킬 수 있는 방식으로 연기와 화염을 배출하여 포함된 에너지를 빠르게 방출할 수 있습니다.-이온 세포. 우리는 이웃 셀로 확산되지 않고 단일 셀의 에너지 방출을 수동적으로 포함하도록 배터리 팩을 설계했지만, 우리의 필드 또는 테스트가 실패할 것이라는 보장은 없습니다..."
이 모델을 사용하면 위험 분석가가 LLM의 이점을 탐색할 수 있게 되는 거죠.
Retrieval-Augmented Generation
이제 이렇게 질문할 수 있어요.
질문: 리튬 부족 위험에 노출된 기업은 어디인가요?
응답:
"Ford는 Ford의 생산 일정 및 사양에 따라 부품을 공급하기 위해 공급업체에 크게 의존하고 있으며, 리튬, 코발트, 니켈, 흑연, 망간과 같은 핵심 부품이나 원자재를 확보할 수 없거나 부족하면 Ford의 차량 생산이 중단될 수 있습니다."
"...리튬, 니켈, 코발트 및/또는 기타 금속과 같은 원자재의 가용성. 이러한 재료의 가격은 시장 상황과 이러한 재료에 대한 글로벌 수요에 따라 변동하고 사용 가능한 공급이 불안정할 수 있습니다. 예를 들어, 전기 자동차 및 에너지 저장 제품의 전 세계 생산량이 증가함에 따라 이러한 원자재 공급업체는 [Tesla] 물량 요구 사항을 충족하지 못할 수 있습니다. 또한 공급업체는 일정이나 비용 및 품질 요구 사항을 안정적으로 충족할 의지나 능력이 없을 수 있으며, 이로 인해 교체가 필요할 수 있습니다. 다른 소스와 함께.”
날씨 이벤트도 있으니, 이걸 위험 분석에 통합해 볼 수도 있겠죠? 예를 들어:
질문: 날씨로 인해 영향을 받을 수 있는 회사는 어디이며, 위험에 처한 자재는 무엇인가요?
응답:
“허리케인, 열대성 폭풍, 홍수, 산불, 지진, 쓰나미, 사이클론, 태풍, 장기간의 겨울 폭풍, 가뭄 및 토네이도와 같은 자연 재해 또는 기상 이변의 발생, 전염병, 전염병 또는 질병 발생 및 기타 극단적인 사건과 핵 공격이나 생물학적 공격 또는 총격 사건과 같은 기타 폭력 행위와 같은 인공 재해가 전쟁이나 테러 등의 결과로 발생하는 경우 물질적 피해를 입을 수 있습니다. 미국 경제 전반, 산업, 특히 우리에게 부정적인 영향을 미칠 것입니다.”
유사성 검색은 괜찮은 결과를 제공하지만, 개별 청크 Node를 넘어서 추론해서 더 정확한 답변을 제공하는 경우에는 부족함이 있어요. 그럼 동일한 질문이 GraphRAG을 사용할 때는 어떻게 수행되는지 한번 살펴볼까요? 대신 리트리버 말이죠.
GraphRAG
이 검색기는 Vector 검색과 Cypher를 사용해서 추가 Node와 Relationship을 통합해서 더 정확한 답변을 얻을 수 있게 해줘요. 이번에는 검색기 코드(Graph 모델을 통해 LLM을 안내하는 순회 쿼리)에 매개변수를 추가해 볼 거예요.
graph_retriever = VectorCypherRetriever(
neo4j_driver,
index_name="chunk-embedding-index-openai",
embedder=openai_embedder,
result_formatter=vector_cypher_formatter,
retrieval_query = traversal_query
)
traversal_query = """
WITH node as chunk
MATCH (co:Company)-[:FILED]->(:Document)-[:HAS_CHUNK]->(chunk)-[:MENTIONS]->(n)
WITH COLLECT(Distinct chunk) as chunks,
COLLECT(Distinct co) as companies,
COLLECT(Distinct n) as elements
RETURN
'nn=== text ===n' +
apoc.text.join([c in chunks | c.text], 'n---n') +
'nn=== graph ===n' +
'nn=== companies ===n' +
apoc.text.join([c in companies | c.name], 'n---n') +
'nn=== elements ===n' +
apoc.text.join([e in elements |labels(e)[0] + ': ' + e.name], 'n---n')
AS info
"""
질문: 리튬 부족 위험에 노출된 기업은 어디인가요?
응답:
1. Ford: Ford는 전기차 배터리 생산을 위해 리튬과 기타 원자재 공급에 대한 의존도가 높아요. 리튬 부족으로 인해 Ford의 차량 생산이 중단되고 생산 비용이 증가할 수 있습니다.
2. Tesla: Tesla는 차량 및 에너지 저장 제품에 리튬 이온 배터리 셀을 사용하죠. 리튬 가용성 감소는 Tesla의 배터리 셀 접근과 성장에 영향을 미쳐 잠재적으로 수익성을 감소시킬 수 있어요.
3. Panasonic: 리튬 이온 배터리 셀 공급업체로서 Panasonic은 리튬 부족 위험에 노출되어 있으며, 이는 Tesla와 다른 고객의 수요를 충족하는 능력에 영향을 미칠 수 있습니다.
질문: 날씨로 인해 영향을 받을 수 있는 회사는 어디이며, 위험에 처한 자재는 무엇인가요?
응답:
1. Amazon
— 기상 상황: 홍수 경고
— 위험 물질: 유리
— 요약: Amazon의 운영은 홍수 경고로 인해 영향을 받을 수 있으며, 이는 특히 유리 재료의 취급 및 운송과 관련하여 물류 및 공급망에 영향을 미칠 수 있습니다.
2. CVS Health
— 기상현상: 명시되지 않았으나, 극단적인 현상이 언급됩니다.
— 위험에 처한 물질: 탄소(탄소 기반 에너지의 전환 위험 맥락에서)
— 요약: 구체적인 기상 현상은 언급되지 않았지만 CVS Health는 운영에 영향을 미치고 의료 비용을 증가시킬 수 있는 기상 이변에 대해 우려하고 있습니다. 탄소 기반 에너지에서 전환하는 것도 위험을 초래하죠.
3. AT&T
— 기상현상: 명시되지는 않으나, 자연재해 및 기상이변이 언급됩니다.
— 위험 물질: 지정되지 않음
— 요약: AT&T의 인프라와 운영은 자연재해와 기상 이변으로 인해 중단될 수 있으며, 이는 심각한 서비스 중단과 재정적 영향으로 이어질 수 있습니다.
이들 기업은 운영 및 공급망을 방해하고 자재 및 전반적인 비즈니스 성과에 영향을 미칠 수 있는 기상 관련 사건으로 인해 잠재적인 위험에 직면해 있어요.
요약
언뜻 보면 GraphRAG는 GenAI 툴킷의 또 다른 도구처럼 보일 수 있죠. 하지만 더 깊이 파고들면 더 근본적인 것을 발견하기 시작해요. 즉, 단순히 데이터를 수집하는 것이 아니라 그 구조를 이해함으로써 위험을 평가하는 새로운 방법이라는 거죠.
우리 위험 분석가의 경우 정보 부족이 문제가 된 적은 없어요. 관련 없는 세부 사항 아래 통찰력을 묻어두는 끝없는 문서인 단편화가 문제였죠. GraphRAG는 해당 방정식을 변경해요. 단순히 데이터를 검색하는 것이 아니에요. 그것은 점들을 연결하죠. 이는 겉보기에 관련이 없어 보이는 공개, 상품 보고서, 심지어 환경 사건 전반에 걸쳐 패턴을 식별하여 기존 모델이 완전히 놓칠 수 있는 사항을 표면화합니다.
이것이 바로 실제 이야기입니다. 우리가 더 나은 리트리버를 찾았다는 것이 아니라 좀 더 분석가처럼 생각하고 기계보다는 덜 생각하는 더 똑똑한 두뇌를 구축했다는 것이죠.
- 데이터 기반 의사 결정
- 그래프RAG
에이치시스템즈의 LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.
'GraphRAG' 카테고리의 다른 글
| LightRAG 속살 파헤치기: Retrieval 집중 탐구 (0) | 2026.06.06 |
|---|---|
| LightRAG 속살 파헤치기: 추출 (Extraction) (0) | 2026.06.05 |
| RAG 애플리케이션의 더 나은 시맨틱 검색을 위한 Neo4j GDS 기반 토픽 추출 (0) | 2026.06.05 |
| 경로의 힘 - 1부: Neo4j와 GraphRAG로 길을 찾다 (1) | 2026.06.04 |
| 기술 문서, 이제 그래프로 관리해야 하는 이유: Neo4j와 GraphRAG 활용법 (0) | 2026.06.04 |
