KAG: 국내 오픈 소스 AI 지식 기반 프레임워크 심층 분석 및 설치 튜토리얼
최근 눈길을 끄는 국내 오픈소스 AI 지식 기반 프레임워크인 KAG(Knowledge Augmented Generation)를 발견했습니다.
KAG 앤트 그룹, 저장대학교 및 기타 여러 기관이 공동으로 출범한 이 단체는 수직 분야의 지식 기반 구축에 중점을 두고 있습니다. 이 논문의 데이터에 따르면 전자 정부 분야의 KAG는 다음과 같은 성과를 달성했습니다. 91.6%의 인상적인 정확률는 e-헬스케어 Q&A와 같은 시나리오에서도 탁월한 성능을 발휘합니다.
이 문서에서는 다음 사항에 대해 자세히 살펴봅니다. KAG 원칙, 적용 시나리오, 비교 RAG 이 문서에서는 또한 로컬 설치 튜토리얼과 데모를 제공하여 Ant에서 오픈 소스한 KAG 프레임워크를 직접 체험해 볼 수 있도록 합니다. AI를 사용하여 자체 지식창고를 구축할 계획이라면 이 문서를 놓치지 마세요!
KAG란 무엇인가요? 차세대 지식창고 프레임워크를 위한 핵심 개념
KAG(지식 증강 생성)는 OpenSPG 엔진과 LLM(대규모 언어 모델)을 기반으로 하는 추론형 질문 및 답변 프레임워크입니다. 핵심 개념은 다음과 같습니다.지식 그래프와 벡터 검색의 두 가지 장점을 결합하여 사용자에게 보다 엄격한 의사 결정 지원과 보다 정확한 정보 검색 서비스를 제공하는 것을 목표로 합니다.

KAG는 다음 네 가지 핵심 기술을 통해 LLM과 지식 그래프의 심층적인 융합과 향상을 달성합니다:
- LLM 친화적 표현에 대한 지식지식 그래프의 구조를 최적화하여 대규모 언어 모델에서 더 쉽게 이해하고 활용할 수 있도록 합니다.
- 지식 그래프와 원본 텍스트 조각 간의 교차 색인화지식 그래프의 엔티티 및 관계와 원본 텍스트 조각 간에 양방향 링크를 설정하여 검색 효율성과 정확성을 개선합니다.
- 논리적 형식 가이드 하이브리드 추론 엔진지식 그래프의 논리적 추론 능력과 LLM의 의미 이해 능력을 결합하여 더 복잡한 추론 퀴즈를 풀 수 있습니다.
- 의미론적 추론을 통한 지식 정렬지식 활용의 효율성을 높이기 위해 지식 그래프의 지식이 언어 모델의 의미 공간과 일치하는지 확인합니다.

요컨대, KAG는 지식 그래프와 벡터 검색의 장점을 혁신적으로 결합하여 강력한 지식 베이스 프레임워크를 구축합니다. LLM의 논리적 추론 기능을 활용할 수 있을 뿐만 아니라 지식 그래프와 결합하여 더 심층적인 추론을 통해 복잡한 정보 검색 작업을 완료할 수 있습니다. 더 중요한 것은 지식 그래프 정보가 불충분한 경우 KAG는 벡터 검색 기술을 영리하게 사용하여 관련 텍스트 조각을 보완하여 답변의 포괄성과 정확성을 보장할 수 있다는 점입니다.
KAG의 전체 아키텍처 개요
KAG 프레임워크는 지식 구축(kg-builder)과 문제 해결(kg-solver)이라는 두 가지 핵심 모듈로 구성되어 있습니다.
- kg-빌더 이 모듈은 지식의 효율적인 구성에 중점을 두어 LLM을 위한 지식 표현을 최적화하고 유연한 지식 모델링과 양방향 인덱싱을 지원합니다.
- kg-solver 그런 다음 이 모듈은 검색, 그래픽 추론, 언어 추론, 수치 계산 등 여러 기능을 통합하여 복잡한 문제를 해결하는 하이브리드 추론 엔진을 통해 효율적인 문제 해결을 담당합니다.
- 세 번째 모듈인 kag-model은 KAG 프레임워크를 더욱 개선하기 위해 오픈소스로 공개될 예정입니다.

KAG와 기존 RAG: 차이점 및 장점 설명
RAG(검색 증강 세대)는 일반적인 지식 기반 기술로 널리 사용되어 왔습니다. 그렇다면 RAG에 비해 KAG의 차이점과 장점은 무엇일까요? 다음과 같은 측면에서 비교 및 분석해 보았습니다:
1. 지식 표현:
- RAG. 검색을 위해 주로 벡터 유사성에 의존하며 지식 표현이 비교적 단순하여 멀티홉 추론이 필요한 복잡한 문제를 처리하기 어렵습니다.
- KAG. LLM에 더 친화적인 지식 표현을 채택하고, 스키마가 없는 지식 및 스키마가 제한된 지식과 호환되며, 그래프 구조 지식과 텍스트 지식의 상호 색인화된 구조를 지원하고, 더 풍부하고 구조화된 지식 표현을 지원합니다.
2. 추론 능력:
- RAG. 지식의 논리적 관계에 둔감하고 복잡한 추론이 필요한 전문 영역의 문제에 대처할 수 있는 논리적 추론 능력이 부족합니다.
- KAG. 강력한 논리적 추론과 멀티홉 팩트 퀴즈 기능을 갖춘 논리적 기호 가이드 하이브리드 추론 엔진을 도입하여 보다 복잡한 전문 문제를 처리할 수 있습니다.
3. 성능:
- RAG. 다중 홉 작업 및 교차 통과 작업에서 성능이 저하되어 일관성과 논리가 상대적으로 약한 텍스트를 생성합니다.
- KAG. 멀티홉 및 교차 통과 작업에서 우수한 성능을 발휘하여 추론 정확도와 정보 범위를 크게 개선하고 보다 정확하고 포괄적인 답변을 생성합니다.
4. 적용 가능한 시나리오:
- RAG. 일반적인 텍스트 생성 및 검색 작업에는 더 적합하지만 복잡한 추론이 필요한 법률, 의학, 과학 등 전문 분야에서는 성능이 제한될 수 있습니다.
- KAG. 특히 복잡한 추론과 멀티 홉 사실 퀴즈가 필요한 애플리케이션에 적합합니다. 전문 분야예를 들어 금융, 의료, 법률 및 정부 분야에서 보다 전문적이고 정확한 지식 서비스를 제공할 수 있습니다.
결국, 지식 그래프와 벡터 검색을 융합하고 지식 표현과 추론 기능을 심층적으로 최적화함으로써 KAG는 복잡한 문제와 도메인별 지식 퀴즈를 처리하는 데 있어 기존의 RAG 기술을 능가할 수 있는 잠재력을 보여줍니다.
'피드 수준' 튜토리얼의 로컬 배포: KAG 설치, 사용, 데모 효과
이론적 분석에는 결국 실습이 필요합니다! 다음으로 KAG를 로컬에 직접 설치, 배포 및 사용하는 방법을 간단한 데모와 함께 보여드리겠습니다.
KAG 관련 리소스:
- 깃허브 주소.https://github.com/OpenSPG/KAG
- 공식 웹사이트.https://spg.openkg.cn/
하드웨어 구성 권장 사항:
- CPU ≥ 8코어
- 메모리 RAM ≥ 32GB
- 하드 디스크 ≥ 100GB
공식 권장 구성은 높지만, 실제 테스트 결과 16GB RAM이 장착된 Windows PC에서 기본적으로 원활하게 실행할 수 있었습니다. 따라서 이 튜토리얼에서는 Windows 환경에서 KAG를 설치하고 사용하는 방법을 보여드리겠습니다.
1단계: 도커 데스크톱 설치
KAG의 설치 및 배포는 Docker 환경에 의존하므로 컴퓨터에 Docker Desktop이 설치되어 있는지 확인하세요.
2단계: docker-compose.yml 파일 만들기
- D 드라이브(또는 다른 디스크)의 루트 디렉터리에 KAG라는 폴더를 만듭니다.
- KAG 폴더 안에 docker-compose.yml이라는 새 파일을 만듭니다.
- 다음 YAML 코드를 복사하여 docker-compose.yml 파일에 붙여넣고 저장합니다.
version: "3.7"
services:
server:
restart: always
image: spg-registry.cn-hangzhou.cr.aliyuncs.com/spg/openspg-server:latest
container_name: release-openspg-server
ports:
- "8887:8887"
depends_on:
- mysql
- neo4j
- minio
# volumes:
# - /etc/localtime:/etc/localtime:ro
environment:
TZ: Asia/Shanghai
LANG: C.UTF-8
command: [
"java",
"-Dfile.encoding=UTF-8",
"-Xms2048m",
"-Xmx8192m",
"-jar",
"arks-sofaboot-0.0.1-SNAPSHOT-executable.jar",
'--server.repository.impl.jdbc.host=mysql',
'--server.repository.impl.jdbc.password=openspg',
'--builder.model.execute.num=5',
'--cloudext.graphstore.url=neo4j://release-openspg-neo4j:7687?user=neo4j&password=neo4j@openspg&database=neo4j',
'--cloudext.searchengine.url=neo4j://release-openspg-neo4j:7687?user=neo4j&password=neo4j@openspg&database=neo4j'
]
mysql:
restart: always
image: spg-registry.cn-hangzhou.cr.aliyuncs.com/spg/openspg-mysql:latest
container_name: release-openspg-mysql
volumes:
- mysql_data:/var/lib/mysql
environment:
TZ: Asia/Shanghai
LANG: C.UTF-8
MYSQL_ROOT_PASSWORD: openspg
MYSQL_DATABASE: openspg
ports:
- "3306:3306"
command: [
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_general_ci'
]
neo4j:
restart: always
image: spg-registry.cn-hangzhou.cr.aliyuncs.com/spg/openspg-neo4j:latest
container_name: release-openspg-neo4j
ports:
- "7474:7474"
- "7687:7687"
environment:
- TZ=Asia/Shanghai
- NEO4J_AUTH=neo4j/neo4j@openspg
- NEO4J_PLUGINS=["apoc"]
- NEO4J_server_memory_heap_initial__size=1G
- NEO4J_server_memory_heap_max__size=4G
- NEO4J_server_memory_pagecache_size=1G
- NEO4J_apoc_export_file_enabled=true
- NEO4J_apoc_import_file_enabled=true
- NEO4J_dbms_security_procedures_unrestricted=*
- NEO4J_dbms_security_procedures_allowlist=*
volumes:
- neo4j_logs:/logs
- neo4j_data:/data
minio:
image: spg-registry.cn-hangzhou.cr.aliyuncs.com/spg/openspg-minio:latest
container_name: release-openspg-minio
command: server --console-address ":9001" /data
restart: always
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio@openspg
TZ: Asia/Shanghai
ports:
- 9000:9000
- 9001:9001
volumes:
- minio_data:/data
volumes:
mysql_data:
neo4j_logs:
neo4j_data:
minio_data:
3단계: KAG 서비스 시작
- 명령 프롬프트를 열고 KAG 폴더 디렉토리로 전환합니다(KAG 폴더 주소 필드에 cmd 입력).

- 명령줄에 docker-compose up -d를 입력하고 입력하면 KAG의 자동 설치 및 배포가 시작됩니다.

- 잠시 기다렸다가 mysql, neo4j, openspg-server, minio 네 가지 서비스가 생성됨 또는 시작됨 상태로 표시되면 KAG 서비스가 성공적으로 시작되었다는 뜻입니다.

4단계: KAG 백엔드 관리 페이지로 이동합니다.
- 브라우저를 열고 주소 127.0.0.1:8887을 입력하여 KAG 백그라운드 운영 페이지에 액세스합니다.
- 기본 사용자 이름 openspg와 기본 비밀번호 openspg@kag를 사용하여 시스템에 로그인합니다.

5단계: KAG 시스템 구성
- 로그인한 후 먼저 글로벌 구성 메뉴를 클릭합니다.

- 공통 구성: 다음 구성을 수행합니다.
- 그림 스토리지 구성
- 데이터베이스:neo4j
- 비밀번호: neo4j@openspg
- uri:neo4j://release-openspg-neo4j:7687
- 사용자:neo4j
- 영어와 중국어로 된 단서
- 비즈 장면: 기본값
- 언어: zh
- 벡터 구성(컴퓨팅) (무료 벡터 모델링 API 사용)
- 유형: 오픈AI
- 모델: BAAI/bge-large-zh-v1.5
- base_url:https://api.siliconflow.cn/v1
- API_KEY: 이동 실리콘 기반 흐름 플랫폼에서 무료 API 키를 받을 수 있습니다.

- 실리콘 기반 흐름 플랫폼에 등록하고 로그인한 후, 아래 이미지의 가이드라인에 따라 무료 벡터 모델을 찾아 API 키를 생성할 수 있습니다.


- 모델 구성클릭 MAAS 모델 추가(오픈AI 인터페이스와 호환)를 클릭하고 사용하려는 대형 언어 모델을 구성합니다.

- gpt-4o를 예로 들어 모델 정보를 입력한 후 확인을 클릭하여 저장합니다.

- 모델 API 릴레이 스테이션 권장 사항다양한 빅모델 API 호출 요구사항이 있는 경우 OpenAI 인터페이스와 호환되고, 국내외 메인스트림 빅모델 간 원클릭 전환을 지원하며, MJ, SD 및 Suno 및 기타 그림 및 음악 제작 인터페이스를 제공합니다. 가격도 더 저렴합니다.
6단계: 지식창고 만들기 및 문서 가져오기
- 홈 페이지로 돌아와 지식창고 만들기를 클릭합니다.

- 지식창고의 이름을 지정하고 저장을 클릭합니다.

- 성공적으로 만든 후에는 홈페이지에서 새로 만든 지식창고를 찾아 지식창고 만들기를 클릭합니다.

- 문서 가져오기를 시작하려면 작업 만들기를 클릭합니다.

- 지식창고 문서를 업로드합니다(현재 KAG는 한 번에 하나의 문서만 업로드할 수 있으므로 문서가 여러 개 있는 경우에는 일괄적으로 업로드해야 합니다). 여기에서는 최신 제품인 WeChat AI Assistant와 관련된 문서를 업로드했습니다.
- 파일 병합 도구 공유 요청좋은 무료 파일 병합 도구가 있다면 문서를 쉽게 일괄 처리할 수 있도록 댓글 섹션에 공유해 주세요.

- 설정의 다음 단계에서는 단락의 문맥적 일관성을 유지하기 위해 문서 의미론에 따라 단락 나누기 확인란을 선택하는 것이 좋습니다.

- 추출 모델 옵션 기본값 (기본 구성도 괜찮습니다). clue 필요에 따라 사용자 지정할 수 있으며, 여기서는 'Q&A 분할'로 설정했습니다(이해가 항상 정확한 것은 아니므로 정정해 주시기 바랍니다).

- 마침을 클릭하면 KAG가 문서를 추출하고 구문 분석하기 시작하는데, 이 과정은 다소 시간이 걸릴 수 있습니다.
- 문서 구문 분석 프로세스는 다음 그림과 같이 6단계로 나뉩니다:

- 작업 상태가 완료로 변경되어 문서가 지식창고로 성공적으로 가져왔음을 나타낼 때까지 기다립니다. (상태가 오랫동안 업데이트되지 않았다면 페이지를 새로 고쳐 보세요).

7단계: 데모
- 지식 추출 상관관계 다이어그램: KAG가 문서에서 추출한 지식 연관성을 시각화한 것입니다.

- Q&A 효과 테스트::
- 질문 1: "개인용 마이크로 AI 어시스턴트에 대해 간략히 소개해주세요."
KAG는 답을 검색하고 제공하기 전에 사고하고 추론하는 과정을 거칩니다. KAG가 제공하는 답변은 비교적 정확하고 포괄적이라는 것을 알 수 있습니다. 하지만 응답 시간이 약 40초로 느리기 때문에 간단한 Q&A 시나리오에는 적합하지 않을 수 있습니다.


- 질문 2: "개인용 마이크로 AI 어시스턴트의 AI 패밀리 버킷 비밀 키를 구성하는 방법은 무엇인가요?"
KAG도 답변을 제공할 수 있지만 여전히 시간이 오래 걸립니다.

요약 및 전망
위의 경험을 통해 개미 오픈 소스 KAG 지식창고 프레임워크는 아직 빠른 개발 단계에 있으며 일부 기능과 사용자 경험은 여전히 개선되어야 합니다(지식창고 매개 변수 조정, 지식창고 편집 및 기능 수정이 완벽하지 않으며 일부 버그도 발생할 수 있음). 하지만 깃허브 업데이트 기록을 보면 KAG 팀은 코드 반복 작업과 기능 최적화를 활발히 진행하고 있습니다.
지식 그래프와 벡터 검색을 융합하는 KAG의 기술적 방향은 매우 유망합니다. RAG 기술이 최적의 결과를 위해 고품질의 지식 기반 데이터, 모델 보강 및 매개변수 조정이 필요한 것처럼, KAG의 개발에도 지속적인 개선과 최적화가 필요합니다.
글의 서두에서 언급했듯이 KAG는 응답성이 단점인 단순한 일상적인 Q&A 시나리오보다는 복잡한 추론이 필요한 의료, 금융, 법률, 정부 등과 같은 전문 분야에 더 적합합니다.
현재 KAG는 아직 API를 오픈하지 않았으며 향후 API가 오픈되면 에이전트 애플리케이션에 통합될 수 있으며 문제 식별 메커니즘을 통해 단순하고 복잡한 문제를 션트하여 복잡한 문제 처리에서 KAG의 장점을 발휘할 수 있을 것으로 예상됩니다.
대체로 이 글은 KAG라는 최첨단 기술을 맛보는 것을 목표로 합니다. KAG는 아직 완벽하지는 않지만 오픈 소스 지식창고 프레임워크로서 큰 가능성을 보여주었습니다. 커뮤니티의 공동 노력과 기술의 지속적인 반복을 통해 KAG는 AI 지식창고 분야에 더 많은 가능성을 가져다 줄 것으로 믿습니다.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...