이 게시물은 Bartosz Pietrucha가 작성했습니다
엔터프라이즈급 LLM 애플리케이션 구축은 오늘날의 비즈니스 환경에서 필수입니다. 모델과 API의 접근성이 향상되는 동안 보안을 보장하고 권한을 효과적으로 관리하는 중요한 과제가 남아 있습니다.
이 문제를 해결하기 위해 FGA(Fine-Grained Authorization) 및 RAG(Retrieval Augmented Generation)는 엄격한 액세스 제어를 유지하는 안전한 상황 인식 AI 애플리케이션을 구축하기 위한 효과적인 전략입니다. 이 기사에서는 민감한 데이터를 보호하면서 의료 환경에 FGA 및 RAG를 적용하는 방법을 살펴보겠습니다.
AstraDB, Langflow 및 Permit.io의 세 가지 도구를 사용하여 실시간 업데이트를 지원하는 ReBAC(Relationship-Based Access Control) 인증 시스템 구현을 안내하여 이를 수행하겠습니다.
LLM 애플리케이션의 인증 복잡성과 FGA 및 RAG에서 제공하는 솔루션을 더 잘 이해하기 위해 디지털 의료 분야를 살펴볼 수 있습니다. 이는 AI 기능과 엄격한 보안이 모두 필수적인 완벽한 예를 제시하기 때문입니다. 의료 서비스 제공자는 LLM을 활용하여 작업 흐름을 간소화하고 의사 결정을 개선하며 더 나은 환자 치료를 제공하기를 점점 더 원하고 있습니다. 의사와 환자 모두 챗봇과 같은 직관적인 AI 인터페이스를 통해 의료 기록에 쉽게 접근하기를 원합니다.
그러나 의료 데이터는 매우 민감하므로 신중하게 규제해야 합니다. LLM은 지능적인 통찰력을 제공할 수 있지만 사용자가 볼 수 있는 권한이 있는 정보에만 액세스하고 공개하도록 해야 합니다. 예를 들어, 의사는 지정된 의료 센터의 진단 결과만 확인해야 하며, 환자는 자신의 기록에만 접근할 수 있어야 합니다.
디지털 헬스케어 예시에 이어 의료 애플리케이션 예시를 살펴보겠습니다.
이 애플리케이션은 여러 리소스, 몇 가지 역할 및 이러한 엔터티 간의 몇 가지 관계로 구성됩니다.
리소스 유형 :
역할 :
관계 :
보시다시피 리소스의 계층적 관계로 인해 권한이 직접 할당되는 기존 역할 기반 액세스 제어를 구현하는 것만으로는 충분하지 않습니다.
이 애플리케이션 인증의 복잡성으로 인해 보다 세분화된 인증(FGA) 솔루션(이 경우 ReBAC)을 사용해야 합니다.
Google의 Zanzibar 논문에서 영감을 얻은 인증 모델인 ReBAC는 권한이 직접 할당되는 기존 역할 기반 액세스 제어(RBAC)와 달리 시스템 내 엔터티 간의 관계에서 권한을 파생합니다.
ReBAC의 힘은 이러한 관계를 통해 권한이 파생되는 방식에 있습니다. 예시의 시각적 표현을 살펴보겠습니다.
위의 예에서 Dr Bartosz는 직접 부여된 권한 때문이 아니라 진단이 포함된 오후 방문이 포함된 바르샤바 의료 센터에 할당되었기 때문에 바이러스 진단에 액세스할 수 있습니다. . 따라서 이러한 리소스 간의 관계는 액세스 권한을 파생시킬 수 있는 체인을 형성합니다.
이 접근 방식을 사용하면 다음과 같은 분명한 이점이 있습니다.
하지만 문제는 여기서 끝나지 않습니다. LLM과 협력해야 하는 시스템을 구축하려면 이러한 관계 체인을 실시간으로 평가할 수 있는 능력이 필요합니다. 다음 섹션에서는 이를 가능하게 하는 구현을 만드는 방법을 알아보겠습니다.
계속하기 전에 올바른 승인 규칙이 있는지 빠르게 검토해 보겠습니다.
이러한 요구 사항은 검색 증강 생성(RAG)을 사용하여 달성할 수 있습니다.
RAG(Retrieval Augmented Generation)는 두 가지 주요 단계를 결합하여 LLM 출력을 향상시키는 기술입니다. 먼저 지식 기반에서 관련 정보를 검색한 다음 해당 정보를 사용하여 보다 정확한 생성을 위해 LLM의 컨텍스트를 강화합니다. RAG는 기존 데이터베이스 또는 문서 저장소와 함께 작동할 수 있지만 벡터 데이터베이스는 의미론적 유사성 검색을 수행하고 정확한 키워드가 일치하지 않는 경우에도 개념적으로 관련된 정보를 찾을 수 있기 때문에 이러한 목적에 특히 강력합니다.
실제로 이는 사용자가 "심장 문제"에 대해 질문할 때 시스템이 "심장 문제" 또는 "심혈관계 질환"에 대한 관련 문서를 검색할 수 있어 LLM의 응답이 더 정확하고 포괄적이게 됨을 의미합니다. 그런 다음 "생성" 부분에는 LLM이 검색된 컨텍스트를 사전 훈련된 지식과 합성하여 특정 데이터에 기반을 둔 관련성 있고 사실에 기반한 응답을 생성하는 작업이 포함됩니다.
구현을 위해 AstraDB를 벡터 데이터베이스로 사용합니다. AstraDB는 다음과 같은 이점을 제공합니다:
우리는 RAG 파이프라인을 구현하기 위해 시각적 인터페이스를 통해 이러한 시스템을 직관적으로 구축할 수 있게 해주는 오픈 소스 프레임워크인 LangFlow도 사용할 것입니다. LangFlow 시스템은 로컬로 실행되거나 클라우드에 호스팅된 DataStax 플랫폼에서 실행되는 Python 환경을 사용하여 개발될 수 있습니다. 우리의 경우 https://astra.datastax.com
에서 서버리스(벡터) AstraDB 데이터베이스를 생성하여 두 번째 옵션을 선택합니다.우리 구현에서는 벡터 데이터베이스에서 데이터를 검색한 후 LLM에 컨텍스트로 제공하기 전 등 중요한 순간에 인증 확인이 이루어져야 합니다. 이러한 방식으로 우리는 먼저 모든 관련 정보를 찾고 나중에 승인되지 않은 데이터가 LLM에 도달하기 전에 필터링하여 검색 효율성을 유지합니다. LLM은 사용자가 볼 수 있는 권한이 있는 정보만 사용하고 공개할 수 있습니다.
이러한 보안 검사는 복잡한 관계 체인을 실시간으로 평가하기 위한 인프라를 제공하는 Permit.io를 사용하여 구현됩니다. 데이터가 증가하고 관계가 더욱 복잡해짐에 따라 시스템은 각 정보에 적절한 권한이 있는 사람만 액세스할 수 있도록 계속 보장합니다.
Permit을 시작하려면 https://app.permit.io 웹사이트를 방문하여 무료 계정을 쉽게 만들 수 있습니다. 무료 계정이 생성되면 Permit 대시보드에 액세스하여 권한 부여 정책을 설정하고, 사용자 및 역할을 관리하고, Permit을 애플리케이션에 통합할 수 있습니다. 무료 등급은 ReBAC(관계 기반 액세스 제어)를 통해 디지털 의료 사례를 만드는 데 필요한 모든 기능을 제공합니다.
LangFlow와 Permit 모두 작업을 시작할 수 있는 무료 계정을 제공하므로 이러한 시스템을 구축하고 작동 방식을 직접 확인하기 위해 비용을 지불할 필요가 없습니다.
구현 세부 사항을 살펴보기 전에 우리가 사용할 도구인 Langflow를 이해하는 것이 중요합니다. LangChain을 기반으로 구축된 Langflow는 시각적 인터페이스를 통해 복잡한 LLM 애플리케이션 생성을 단순화하는 오픈 소스 프레임워크입니다. LangChain은 텍스트 분할, 임베딩 생성 및 사고 사슬 프롬프트와 같은 일반적인 LLM 작업을 위한 표준화된 구성 요소를 제공하여 강력한 기반을 제공합니다. 이러한 구성요소는 데이터 수집부터 응답 생성까지 모든 것을 처리하는 강력한 파이프라인으로 조립될 수 있습니다.
Langflow가 우리 사용 사례에 특히 중요한 이유는 시각적 빌더 인터페이스입니다. 이를 통해 구성 요소를 그래픽으로 연결하여 이러한 파이프라인을 구성할 수 있습니다. 이는 순서도를 그리는 방법과 유사합니다. 이러한 시각적 접근 방식을 사용하면 초기 사용자 입력부터 승인된 최종 응답까지 애플리케이션을 통한 데이터 흐름을 더 쉽게 이해하고 수정할 수 있습니다. 또한 Langflow의 오픈 소스 특성은 무료로 사용할 수 있고 사용자 정의 구성 요소로 확장할 수 있다는 것을 의미하며 이는 인증 확인을 구현하는 데 중요합니다.
당사의 Langflow 솔루션은 서로 다르지만 상호 연결된 두 가지 흐름을 활용하여 의료 정보에 대한 안전한 액세스를 제공합니다.
수집 흐름은 해당 임베딩과 함께 AstraDB에 진단을 로드하는 역할을 합니다. 우리는 MistralAI를 사용하여 각 진단에 대한 임베딩을 생성하므로 나중에 진단 데이터에 대한 의미 검색을 수행할 수 있습니다. 이 흐름과 관련된 주요 구성 요소는 다음과 같습니다.
채팅 흐름은 사용자와 상호작용하고 필요한 진단 데이터를 제공하는 역할을 담당합니다. 아래 이미지는 왼쪽에서 오른쪽으로 읽어야 합니다(첫 번째 이미지의 오른쪽이 두 번째 이미지의 왼쪽과 이어집니다):
? 참고: 추가로 "_ Pip Install" _ 설치허가 모듈을 위해 한 번만 실행되는 구성 요소가 있습니다. 이는 DataStax 로우 코드 플랫폼에서 LangFlow를 구현하고 있기 때문입니다. 이 단계는 pip install allowed로컬
을 실행하는 것과 같습니다.
채팅 흐름의 동작 순서는 다음과 같습니다.
Seasonal Migraine Flu virus with high fever --- You are a doctor's assistant and help to retrieve information about patients' diagnoses. Given the patients' diagnoses above, answer the question as best as possible. The retrieved diagnoses may belong to multiple patients. Question: list all the recent diagnoses Answer:
구현에서 중요한 역할을 하는 PermitFilter 구성 요소를 실행하려면 Permit의 PDP(정책 결정 지점)의 실행 인스턴스가 필요합니다. PDP는 정책을 평가하고 특정 사용자 및 리소스에 대해 특정 작업이 허용되는지 여부를 결정하는 역할을 담당합니다. 컨텍스트가 언어 모델에 도달하기 전에 이 권한 확인을 시행함으로써 민감한 정보의 유출을 방지하고 액세스 제어 정책이 시행되도록 보장합니다.
완전한 구현은 GitHub 저장소에서 확인할 수 있습니다.
인증 확인이 구현된 AI 비서와 상호 작용을 시작하려면 간단히 LangFlow 플레이그라운드를 시작하면 됩니다. 아래 예에서 나는 bartosz@health.app으로 인증되었습니다. 이는 당뇨병이 있는 오전 방문을 없이 오후 방문과 저녁 방문에만 액세스할 수 있음을 의미합니다. 이는 LLM이 해당 맥락에서 당뇨병에 관한 정보를 갖고 있지 않음을 의미합니다.
LLM 기능을 활용하면서 민감한 의료 데이터에 대한 액세스를 보호하는 것은 우선순위이자 과제입니다. RAG와 세분화된 인증을 결합하여 지능적이고 안전한 AI 애플리케이션을 구축할 수 있습니다. 주요 이점은 다음과 같습니다.
LangFlow 및 Permit.io와 같은 도구를 사용하여 의료 서비스 제공자는 역할 및 관계 변화에 동적으로 대응하는 관계 기반 액세스 제어 시스템을 구현하여 승인된 개인만 데이터에 액세스할 수 있도록 보장할 수 있습니다. 이러한 솔루션을 통합함으로써 의료 기관은 AI를 효과적으로 활용하여 보안을 손상시키지 않으면서 환자 치료를 개선할 수 있습니다.
위 내용은 RAG 및 FGA를 사용하여 엔터프라이즈급 보안으로 AI 애플리케이션 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!