LLMS와의 대화 확보

LLMS와의 대화 확보

대형 언어 모델 (LLM)에는 더 이상 소개가 필요하지 않습니다. 마찬가지로 “당신은 그것을 구글 했습니까?” 10 년 전 문제였습니다 “chatgpt에게 물었나요?” 조직이 점점 LLM을 채택함에 따라 직간접 적으로 그들과 상호 작용하는 사람들의 수도 기하 급수적으로 증가하고 있습니다.

오늘날 이러한 모델의 사용은 더 이상 기술에 국한되지 않습니다. 의료, 운송, 미디어 및 기타 많은 산업이이를 채택하고 있습니다. 그러나 입양과 함께 성장한 한 가지가 보안 문제입니다.

LLM 모델에 정보를 요청하거나 속임수를 쓰면 민감한 PII (개인 식별 정보)를 제공 할 수있는 몇 가지 사례가 있습니다. 예를 들어, “발산 공격”의 결과 어디 모델이 지시되었습니다 단어를 영원히 반복하려면 이메일 주소, 전화 번호 및 이름을 출력했습니다.

다른 경우에는 삼성 직원이있었습니다 chatgpt를 사용하여 디버그 무엇그들은 또한 민감한 조직 데이터를 제공하게되었습니다. OWASP (Open Worldwide Application Security Project)가 정의한 민감한 정보 공개는 2 년 이상 조직의 상위 10 개 목록에있는 큰 문제입니다. 그렇다면 이것에 대한 완화는 무엇입니까? 모델이 민감한 정보를 방출하지 않도록하려면 어떻게해야합니까?

귀하의 모델이 타사 회사가 호스팅하는 경우, 귀하가 사용하는 고객 인 경우 chatgpt그런 다음 모델의 동작 방식을 많이 제어 할 수 없습니다. 이 시나리오에서 유일한 솔루션은 민감한 정보를 완전히 입력하지 않는 것입니다.

반면에 모델을 호스팅하는 경우 시나리오와 해당 완화를 살펴 보겠습니다.

시나리오 1 : 조직 데이터에 대한 모델 교육 (미세 조정)

여기서 우리는 미리 훈련 된 모델을 가져 와서 조직의 방식에 더 가깝게 반영되는 특정 데이터 세트에서 추가로 교육합니다. 데이터 인 경우 그렇지 않습니다 제대로 가면우리는 민감한 데이터를 노출시킬 위험이 있습니다. 이것으로부터 보호하는 한 가지 방법은 민감한 정보를 익명화하고 그 다음에 모델에 공급하십시오.

예를 들어, 모델이 훈련되는 데이터 호수를 사용하는 경우 마스킹 또는 익명 라이브러리를 사용하고 데이터 레이크에 넣기 전에 PII 데이터를 마스킹해야합니다.

예제 아키텍처

예제 아키텍처

예제 아키텍처를 살펴보면 데이터 스토어에서 데이터 레이크로 데이터를 덤프하는 작업이 무엇이든이 마스킹을 수행 한 다음 섭취를 수행 할 수 있습니다.

시나리오 2 : RAG를 사용하여 데이터 검색 (검색 세대)

예를 들어 사용 사례는 직원을위한 인적 자원 관련 질문에 답하도록 설계된 챗봇 일 수 있습니다. 이 경우, 모든 문서는 벡터 스토어에 벡터화되고 저장됩니다. 이 모델은 매장의 정보를 사용하여 사용자 쿼리에 답변합니다.

문서에 포함 된 경우 pii 날짜적절한 가드 레일이 제자리에 있지 않을 때 모델이 노출 될 위험이 높습니다. 따라서 이것을 완화하기 위해 무엇을 할 수 있는지 살펴 보겠습니다.

  • 여기에 사용할 수있는 하나의 가드 레일이 있습니다 좋다 시나리오 1, 여기서 데이터 스토어에 섭취하기 전에 민감한 데이터는 익명화 될 수 있습니다.
  • 두 번째 옵션 할 수 있습니다 LLM에서 나오는 데이터를 사용자에게 전달하기 전에 데이터를 걸러냅니다. AWS Pollhehend, Microsoft Presidio 또는 Cloud Native DAPR 대화 AI 구성 요소와 같은 도구가이를 도울 수 있습니다.

LLM에서 오는 데이터를 사용자에게 전달하기 전에 필터링

더 잘 이해하려면 DAPR (분산 응용 프로그램 런타임)을 사용하여 민감한 정보를 필터링하는 방법을 살펴 보겠습니다.

DAPR 사용

DAPR의 대화 API는 요청 및 응답에서 PII 데이터를 필터링하는 설정을 제공합니다. 현재는 전화 번호, 이메일 주소, IP 주소, 거리 주소, 신용 카드, 사회 보장 번호, ISBN 및 Mac 주소 필터링 기능을 필터링합니다. 이제 대화 API를 보자.

이 데모는 .NET을 사용하여 Windows에 있습니다. 다른 플랫폼의 경우 다음을 따르십시오 플랫폼 별 여기서 단계.

1 단계

DAPR CLI를 설치하십시오.

powershell -Command "iwr -useb  | iex"

2 단계

PowerShell에서 dapr init를 실행하십시오.

3 단계

DAPR에는 많은 빌딩 블록이 있으며 각각은 각각에 YAML 파일로 저장됩니다. %UserProfile%\.dapr 예배 규칙서.

4 단계

a conversation.yml 다음 설정으로 동일한 디렉토리에 파일을 파일하십시오.

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: openai
spec:
  type: conversation.openai
  metadata:
  - name: key
    value: "YOUR_OPENAI_KEY"
  - name: model
    value: gpt-4o-mini
  - name: cacheTTL
    value: 10m

OpenAI의 API 키는 여기에서 얻을 수 있습니다.

5 단계

다음 명령으로 DAPR을 로컬로 실행하십시오.

dapr run --app-id myapp --dapr-http-port 3500 --dapr-grpc-port 4500

6 단계

CSPROJ에 다음 패키지를 포함하십시오. 최신 버전은 여기에서 찾을 수 있습니다.

7 단계

다음 코드 블록을 삽입하십시오. 이메일, IP 주소 및 전화 번호도 있습니다.

using Dapr.AI.Conversation;
using Dapr.AI.Conversation.Extensions;

Environment.SetEnvironmentVariable("DAPR_HTT_PORT", "3500");
Environment.SetEnvironmentVariable("DAPR_GRPC_PORT", "4500");

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddDaprConversationClient();

var app = builder.Build();

var conversationClient = app.Services.GetRequiredService();
var response = await conversationClient.ConverseAsync("openai",
    new List
    {
        new DaprConversationInput(
            "Hello LLM, How are you",
            DaprConversationRole.Generic, true),
        new DaprConversationInput(
            "Can you return back this same string ?" +
            "Microservices, Microservices, Microservices, [email protected], [email protected], +1234567890, +2328192811, 127.0.0.1", DaprConversationRole.Generic, true
            )
    });

Console.WriteLine("Received the following response from the LLM:");
foreach (var resp in response.Outputs)
{
    Console.WriteLine($"{resp.Result}");
}

8 단계

이것이 최종 출력입니다.

최종 출력

스크린 샷에서 DAPR이 PII 정보를 마스킹하여 민감한 데이터를 필터링 할 수 있음을 알 수 있습니다., ).

최종 생각

잠언 “예방은 치료보다 낫다”가 제안한 것처럼, 모델에 들어가기 전에 민감한 정보를 필터링하는 것이 가장 좋습니다. 이와 함께 모델에서 출력을 모니터링하면 추가 보호 계층으로 작용합니다. 입력 단계 및 출력 단계에서 이러한 필터를 구현하면 민감한 데이터가 섭취되거나 누출되지 않도록합니다.

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다