Zephyrnet Logosu

AWS Nitro Enclaves kullanarak gizli veriler üzerinden büyük dil modeli çıkarımı | Amazon Web Hizmetleri

Tarih:

Bu yazı Justin Miles, Liv d'Aliberti ve Leidos'tan Joe Kovba ile birlikte yazılmıştır. 

Leidos, savunma, istihbarat, yurt güvenliği, sivil ve sağlık pazarlarında dünyanın en zorlu zorluklarından bazılarının üstesinden gelmek için çalışan Fortune 500 bilim ve teknoloji çözümleri lideridir. Bu yazıda Leidos'un gizliliği koruyan büyük dil modeli (LLM) çıkarımına yönelik bir yaklaşım geliştirmek için AWS ile nasıl çalıştığını tartışıyoruz. AWS Nitro Bölgeleri.

Yüksek Lisans'lar insana benzer bir dil anlamak ve üretmek için tasarlanmıştır ve hükümet, sağlık hizmetleri, finans ve fikri mülkiyet dahil olmak üzere birçok sektörde kullanılmaktadır. LLM'ler, sohbet robotları, içerik üretimi, dil çevirisi, duygu analizi, soru yanıtlama sistemleri, arama motorları ve kod oluşturma dahil olmak üzere geniş bir uygulanabilirliğe sahiptir. Bir sisteme LLM tabanlı çıkarımın dahil edilmesi aynı zamanda model sızıntısı, veri gizliliği ihlalleri ve istenmeyen LLM tabanlı hizmet manipülasyonu dahil olmak üzere gizlilik tehditlerini de beraberinde getirme potansiyeline sahiptir. Yüksek Lisans'ların çıkarım sırasında hassas bilgileri ifşa etmediğinden emin olmak için teknik mimarilerin uygulanması gerekir.

Bu gönderi, Nitro Enclaves'in LLM modeli dağıtımlarının, özellikle de kişisel olarak tanımlanabilir bilgileri (PII) veya korunan sağlık bilgilerini (PHI) kullananların korunmasına nasıl yardımcı olabileceğini tartışıyor. Bu gönderi yalnızca eğitim amaçlıdır ve üretim ortamlarında ek kontroller olmadan kullanılmamalıdır.

Yüksek Lisans ve Nitro Enclaves'e Genel Bakış

Potansiyel bir kullanım örneği, PII ve PHI içeren bir soru ve yanıtlama hizmetini yürütmek üzere tasarlanmış LLM tabanlı hassas bir sorgu sohbet robotudur. Mevcut LLM sohbet robotu çözümlerinin çoğu, güvenlik endişeleri nedeniyle soru girerken kullanıcıları PII veya PHI'yı içermemeleri gerektiği konusunda açıkça bilgilendirir. Bu endişeleri azaltmak ve müşteri verilerini korumak için hizmet sahipleri öncelikle aşağıdaki gibi kullanıcı korumalarına güvenir:

  • Redaksiyon – Belgelerde, metinlerde veya diğer içerik biçimlerinde PII gibi hassas bilgilerin tanımlanması ve gizlenmesi süreci. Bu, bir modele veya yanıtlarını otomatik olarak düzenlemek üzere eğitilmiş bir LLM'ye gönderilmeden önce girdi verileriyle gerçekleştirilebilir.
  • Çok faktörlü kimlik doğrulama – Kullanıcıların LLM'ye erişim kazanmak amacıyla kimliklerini doğrulamak için birden fazla kimlik doğrulama yöntemi sağlamasını gerektiren bir güvenlik süreci.
  • Aktarım Katmanı Güvenliği (TLS) – Kullanıcılar ve LLM hizmeti arasındaki aktarım sırasında veri gizliliğini artıran güvenli iletişim sağlayan bir şifreleme protokolü.

Bu uygulamalar hizmetin güvenlik duruşunu geliştirse de tüm hassas kullanıcı bilgilerini ve kullanıcının bilgisi dışında kalabilecek diğer hassas bilgileri korumak için yeterli değildir.

Örnek kullanım örneğimizde, bir Yüksek Lisans hizmeti, çalışanların sağlık hizmetleri yardım sorularını yanıtlamak veya kişisel emeklilik planı sağlamak için tasarlanmıştır. Aşağıdaki örnek mimariyi inceleyelim ve veri gizliliği risk alanlarını belirleyelim.

llm-risk-alan-diyagramı

Şekil 1 – Veri Gizliliği Risk Alanları Şeması

Potansiyel risk alanları aşağıdaki gibidir:

  1. Ayrıcalıklı kullanıcılar, sunucuyu barındıran örneğe erişebilir. Hizmette yapılan kasıtsız veya yetkisiz değişiklikler, hassas verilerin istenmeyen şekillerde açığa çıkmasına neden olabilir.
  2. Kullanıcılar, hizmetin uygulama günlüklerindeki hassas bilgileri ifşa etmeyeceğine veya saklamayacağına güvenmelidir.
  3. Uygulama paketlerinde yapılan değişiklikler hizmette değişikliklere yol açarak hassas verilerin açığa çıkmasına neden olabilir.
  4. Örneğe erişimi olan ayrıcalıklı kullanıcılar, hizmet tarafından kullanılan LLM'ye sınırsız erişime sahiptir. Değişiklikler kullanıcılara hatalı veya hatalı bilgilerin gönderilmesine neden olabilir.

Nitro Enclaves, cihazınıza ek izolasyon sağlar Amazon Elastik Bilgi İşlem Bulutu (Amazon EC2) örneği, yönetici düzeyindeki kullanıcılar da dahil olmak üzere kullanımdaki verileri yetkisiz erişime karşı korur. Önceki mimaride, kasıtsız bir değişikliğin, hassas verilerin düz metin olarak kalmasına ve yanlışlıkla bu verilere erişmesi gerekmeyen bir kullanıcıya ifşa edilmesine yol açması mümkündür. Nitro Enclaves ile EC2 bulut sunucunuzdan yalıtılmış bir ortam oluşturarak CPU ve bellek kaynaklarını bölgeye ayırmanıza olanak tanır. Bu bölge oldukça kısıtlayıcı bir sanal makinedir. Yerleşim içindeki hassas verileri işleyen kodun çalıştırılmasıyla, üst süreçlerin hiçbiri yerleşim bölgesi verilerini görüntüleyemeyecektir.

Nitro Enclaves aşağıdaki avantajları sunar:

  • Bellek ve CPU Yalıtımı – Yerleşim bölgesinin CPU'sunu ve belleğini ana örnekteki kullanıcılardan, uygulamalardan ve kitaplıklardan yalıtmak için Nitro Hypervisor'a güvenir. Bu özellik, bölgeyi ve yazılımınızı izole etmenize yardımcı olur ve istenmeyen olaylara karşı yüzey alanını önemli ölçüde azaltır.
  • Ayrı sanal makine – Enklavlar, son derece hassas verileri daha fazla korumak ve güvenli bir şekilde işlemek için bir EC2 örneğine bağlı ayrı sanal makinelerdir.
  • Etkileşimli erişim yok – Enclave'ler yalnızca üst bulut sunucularıyla güvenli yerel soket bağlantısı sağlar. Kalıcı depolamaları, etkileşimli erişimleri veya harici ağları yoktur.
  • Kriptografik kanıt – Nitro Enclaves teklifleri kriptografik kanıt, bir yerleşim bölgesinin kimliğini kanıtlamak ve bölgenizde yalnızca yetkili kodun çalıştığını doğrulamak için kullanılan bir işlemdir.
  • AWS entegrasyonu – Nitro Enclaves ile entegredir AWS Anahtar Yönetim Hizmeti (AWS KMS), bölge içinde AWS KMS kullanılarak şifrelenmiş dosyaların şifresini çözmenize olanak tanır. AWS Sertifika Yöneticisi (ACM), Nitro Enclaves için genel ve özel SSL/TLS sertifikalarını, Nitro Enclaves'e sahip EC2 bulut sunucularında çalışan web uygulamalarınız ve sunucularınız ile kullanmanıza olanak tanır.

PII ve PHI verileriyle ilişkili riskleri azaltmaya yardımcı olmak için Nitro Enclaves tarafından sağlanan bu özellikleri kullanabilirsiniz. Hassas kullanıcı verilerini işlerken Nitro Enclaves'i bir LLM hizmetine dahil etmenizi öneririz.

Çözüme genel bakış

Şimdi Nitro Enclaves'i de içeren örnek hizmetin mimarisini inceleyelim. Aşağıdaki şekilde gösterildiği gibi Nitro Enclaves'in dahil edilmesiyle LLM, PHI veya PII verilerini işlemek için daha güvenli bir sohbet robotu haline gelir.

llm-kullanarak-aws-nitro-bölgeler-diyagramı

Şekil 2 – Çözüme Genel Bakış Diyagramı

PII, PHI ve sorular da dahil olmak üzere kullanıcı verileri, uygulama bir yerleşim bölgesinde barındırıldığında istek-yanıt süreci boyunca şifrelenmiş olarak kalır. Çıkarım sırasında gerçekleştirilen adımlar aşağıdaki gibidir:

  1. Chatbot uygulaması, geçici AWS kimlik bilgileri oluşturur ve kullanıcıdan bir soru girmesini ister. PII veya PHI içerebilecek soru daha sonra AWS KMS aracılığıyla şifrelenir. Şifrelenmiş kullanıcı girişi, şifrelenmiş isteği oluşturmak için geçici kimlik bilgileriyle birleştirilir.
  2. Şifrelenmiş veriler, Flask tarafından barındırılan bir HTTP sunucusuna POST isteği olarak gönderilir. Hassas verileri kabul etmeden önce bu uç noktanın HTTP'ler için yapılandırılması gerekir.
  3. İstemci uygulaması, POST isteğini alır ve bunu güvenli bir yerel kanal (örneğin, vsock) aracılığıyla Nitro Enclaves içinde çalışan sunucu uygulamasına iletir.
  4. Nitro Enclaves sunucu uygulaması, isteğin şifresini çözmek için geçici kimlik bilgilerini kullanır, LLM'yi sorgular ve yanıtı oluşturur. Modele özgü ayarlar, koruma alanları içinde saklanır ve kriptografik doğrulamayla korunur.
  5. Sunucu uygulaması, yanıtı şifrelemek için aynı geçici kimlik bilgilerini kullanır.
  6. Şifrelenmiş yanıt, POST isteğinin yanıtı olarak istemci uygulaması aracılığıyla chatbot uygulamasına geri gönderilir.
  7. Chatbot uygulaması, KMS anahtarını kullanarak yanıtın şifresini çözer ve kullanıcıya düz metni görüntüler.

Önkoşullar

Başlamadan önce çözümü dağıtmak için aşağıdaki önkoşullara ihtiyacınız vardır:

EC2 örneğini yapılandırma

EC2 örneğini yapılandırmak için aşağıdaki adımları tamamlayın:

  1. Başlatın r5.8xlarge EC2 örneğini kullanarak amzn2-ami-kernel-5.10-hvm-2.0.20230628.0-x86_64-gp2 AMI Nitro Enclaves etkinken.
  2. Nitro Enclaves uygulamalarını oluşturmak ve çalıştırmak için Nitro Enclaves CLI'yi yükleyin:
    • sudo amazon-linux-extras install aws-nitro-enclaves-cli -y
    • sudo yum install aws-nitro-enclaves-cli-devel -y
  3. Nitro Enclaves CLI'nin kurulumunu doğrulayın:
    • nitro-cli –version
    • Bu yazıda kullanılan sürüm 1.2.2'dir
  4. Docker görüntüleri oluşturmak ve uygulamayı GitHub'dan indirmek için Git ve Docker'ı yükleyin. Örnek kullanıcınızı Docker grubuna ekleyin ( IAM örneği kullanıcınız):
    • sudo yum install git -y
    • sudo usermod -aG ne <USER>
    • sudo usermod -aG docker <USER>
    • sudo systemctl start docker && sudo systemctl enable docker
  5. Nitro Enclaves ayırıcı ve vsock proxy hizmetlerini başlatın ve etkinleştirin:
    • sudo systemctl start nitro-enclaves-allocator.service && sudo systemctl enable nitro-enclaves-allocator.service
    • sudo systemctl start nitro-enclaves-vsock-proxy.service && sudo systemctl enable nitro-enclaves-vsock-proxy.service

Nitro Enclaves, üst örnek ile enclave arasında güvenli bir kanal oluşturmak için vsock adı verilen yerel bir soket bağlantısı kullanır.

Tüm hizmetler başlatılıp etkinleştirildikten sonra tüm kullanıcı gruplarının ve hizmetlerin doğru şekilde çalıştığını doğrulamak için örneği yeniden başlatın:

sudo shutdown -r now

Nitro Enclaves ayırıcı hizmetini yapılandırma

Nitro Enclaves, örnek CPU'nun ve belleğin bir kısmını bölgeyi çalıştırmak için belirleyen yalıtılmış bir ortamdır. Nitro Enclaves ayırıcı hizmetiyle, enclave'i çalıştırmak için üst örnekten kaç CPU ve ne kadar bellek alınacağını belirtebilirsiniz.

Bir metin düzenleyici kullanarak yerleşim bölgesinin ayrılmış kaynaklarını değiştirin (çözümümüz için, yeterli kaynak sağlamak üzere 8 CPU ve 70,000 MiB bellek ayırdık):

vi /etc/nitro_enclaves/allocatory.yaml

AWS-Nitro-Enclaves-Ayırıcı-Hizmet-Yapılandırması

Şekil 3 – AWS Nitro Enclaves Ayırıcı Hizmet Yapılandırması

Projeyi klonla

EC2 örneğini yapılandırdıktan sonra, hassas sohbet robotunu Nitro Enclaves içindeki bir LLM ile çalıştırmak için kodu indirebilirsiniz.

Güncellemeniz gerekiyor server.py LLM yanıtını şifrelemek için başlangıçta oluşturduğunuz uygun KMS anahtar kimliğine sahip dosya.

  1. GitHub projesini klonlayın:
    • cd ~/ && git clone https://<THE_REPO.git>
  2. Oluşturmak için proje klasörüne gidin enclave_base Aşağıdakileri içeren Docker görüntüsü Nitro Enclaves Yazılım Geliştirme Kiti (SDK) Nitro Hypervisor'dan alınan kriptografik doğrulama belgeleri için (bu adım 15 dakikaya kadar sürebilir):
    • cd /nitro_llm/enclave_base
    • docker build ./ -t “enclave_base”

LLM'yi EC2 Örneğine kaydedin

Yanıt oluşturmak amacıyla doğal dil işleme için açık kaynaklı Bloom 560m LLM'yi kullanıyoruz. Bu model, PII ve PHI'ya göre hassas bir şekilde ayarlanmamıştır, ancak bir Yüksek Lisans'ın bir yerleşim bölgesinin içinde nasıl yaşayabileceğini göstermektedir. Modelin ayrıca Dockerfile aracılığıyla yerleşim bölgesine kopyalanabilmesi için ana örneğe kaydedilmesi gerekir.

  1. Projeye gidin:
    • cd /nitro_llm
  2. Modeli yerel olarak kaydetmek için gerekli gereksinimleri yükleyin:
    • pip3 install requirements.txt
  3. Çalıştır save_model.py Modeli kaydetmek için uygulama /nitro_llm/enclave/bloom dizin:
    • python3 save_model.py

Nitro Enclaves görüntüsünü oluşturun ve çalıştırın

Nitro Enclaves'i çalıştırmak için uygulamanızın Docker görüntüsünden bir enclave görüntü dosyası (EIF) oluşturmanız gerekir. Enclave dizininde bulunan Dockerfile, enclave içinde çalışacak dosyaları, kodu ve LLM'yi içerir.

Yerleşim bölgesinin inşa edilmesi ve çalıştırılmasının tamamlanması birkaç dakika sürecektir.

  1. Projenin köküne gidin:
    • cd /nitro_llm
  2. Yerleşim görüntü dosyasını şu şekilde oluşturun: enclave.eif:
    • nitro-cli build-enclave --docker-uri enclave:latest --output-file enclave.eif
AWS-Nitro-Enclave-Derleme-Sonucu

Şekil 4 – AWS Nitro Enclaves Derleme Sonucu

Yerleşim oluşturulduğunda, bir dizi benzersiz karma ve platform yapılandırma kayıtları (PCR'ler) oluşturulacaktır. PCR'ler donanım ve uygulamanın kimliğini kanıtlamaya yönelik bitişik bir ölçümdür. Bu PCR'ler kriptografik doğrulama için gerekli olacak ve KMS anahtar politikası güncelleme adımı sırasında kullanılacaktır.

  1. Yerleşim bölgesini kaynaklarla çalıştırın allocator.service (ekleyerek --attach-console sondaki argüman, bölgeyi hata ayıklama modunda çalıştıracaktır):
    • nitro-cli run-enclave --cpu-count 8 --memory 70000 --enclave-cid 16 --eif-path enclave.eif

EIF dosya boyutunun en az dört katını ayırmanız gerekir. Bu, şurada değiştirilebilir: allocator.service önceki adımlardan.

  1. Aşağıdaki komutla yerleşimin çalıştığını doğrulayın:
    • nitro-cli describe-enclaves
AWS-Nitro-Enclave-Açıklama-Komut-Yanıt

Şekil 5 – AWS Nitro Enclave Açıklama Komutu

KMS anahtar politikasını güncelleme

KMS anahtar politikanızı güncellemek için aşağıdaki adımları tamamlayın:

  1. AWS KMS konsolunda şunu seçin: Müşteri tarafından yönetilen anahtarlar Gezinti bölmesinde.
  2. Ön koşul olarak oluşturduğunuz anahtarı arayın.
  3. Klinik Düzenle temel politika hakkında.
  4. Anahtar politikayı aşağıdaki bilgilerle güncelleyin:
    • Hesap kimliğiniz
    • IAM kullanıcı adınız
    • Güncellenen Cloud9 ortam örneği rolü
    • İşlemler kms:Encrypt ve kms:Decrypt
    • PCR'leri (örneğin, PCR0, PCR1, PCR2) bir koşul bildirimiyle temel politikanıza ekleyin

Aşağıdaki temel politika koduna bakın:

{
   "Version":"2012-10-17",
   "Id":"key-default-1",
   "Statement":[
      {
         "Sid":"Enable User permissions",
         "Effect":"Allow",
         "Principal":{
            "AWS":"arn:aws:iam:::user/"
         },
         "Action":[
            "kms:CreateAlias",
            "kms:CreateKey",
            "kms:DeleteAlias",
            "kms:Describe*",
            "kms:GenerateRandom",
            "kms:Get*",
            "kms:List*",
            "kms:TagResource",
            "kms:UntagResource",
            "iam:ListGroups",
            "iam:ListRoles",
            "iam:ListUsers"
         ],
         "Resource":"*"
      },
      {
         "Sid":"Enable Enclave permissions",
         "Effect":"Allow",
         "Principal":{
            "AWS":"arn:aws:iam:::role/"
         },
         "Action":[
            "kms:Encrypt",
            "kms:Decrypt"
         ],
         "Resource":"*",
         "Condition":{
            "StringEqualsIgnoreCase":{
               "kms:RecipientAttestation:PCR0":"",
               "kms:RecipientAttestation:PCR1":"",
               "kms:RecipientAttestation:PCR2":""
            }
         }
      }
   ]
}

Chatbot uygulamasını kaydedin

AWS hesabının dışında yaşayan hassas bir sorgu chatbot uygulamasını taklit etmek için chatbot.py uygulamasını indirin ve Cloud9 ortamında çalıştırın. Cloud9 ortamınız, yerleşim bölgesini çalıştıran EC2 ile izinlerin ilişkisini kesmek amacıyla geçici kimlik bilgileri için örnek rolünü kullanacaktır. Aşağıdaki adımları tamamlayın:

  1. Cloud9 konsolunda oluşturduğunuz ortamı açın.
  2. Aşağıdaki kodu aşağıdaki gibi yeni bir dosyaya kopyalayın: chatbot.py ana dizine.
  3. Gerekli modülleri yükleyin:
    • pip install boto3
    • Pip install requests
  4. Amazon EC2 konsolunda Nitro Enclaves bulut sunucunuzla ilişkili IP'yi not edin.
  5. URL değişkenini güncelleyin http://<ec2instanceIP>:5001.
"""
Modules for a basic chatbot like application and AWS communications
"""
import base64
import requests
import boto3
 
def get_identity_document():
    """
    Get identity document for current EC2 Host
    """
    identity_doc = requests.get(
        "http://169.254.169.254/latest/dynamic/instance-identity/document", timeout=30)
    return identity_doc
 
def get_region(identity):
    """
    Get account of current instance identity
    """
    region = identity.json()["region"]
    return region
 
def get_account(identity):
    """
    Get account of current instance identity
    """
    account = identity.json()["accountId"]
    return account
 
def set_identity():
    """
    Set region and account for KMS
    """
    identity = get_identity_document()
    region = get_region(identity)
    account = get_account(identity)
    return region, account
 
def prepare_server_request(ciphertext):
    """
    Get the AWS credential from EC2 instance metadata
    """
    instance_prof = requests.get(
        "http://169.254.169.254/latest/meta-data/iam/security-credentials/", timeout=30)
    instance_profile_name = instance_prof.text
 
    instance_prof_json = requests.get(
        f"http://169.254.169.254/latest/meta-data/iam/security-credentials/{instance_profile_name}",
        timeout=30)
    response = instance_prof_json.json()
 
    credential = {
        'access_key_id': response['AccessKeyId'],
        'secret_access_key': response['SecretAccessKey'],
        'token': response['Token'],
        'region': REGION,
        'ciphertext': ciphertext
    }
    return credential
 
def get_user_input():
    """
    Start chatbot to collect user input
    """
    print("Chatbot: Hello! How can I assist you?")
    user_input = input('Your Question: ')
    return user_input.lower()
 
def encrypt_string(user_input, alias, kms):
    """
    Encrypt user input using AWS KMS
    """
    file_contents = user_input
    encrypted_file = kms.encrypt(KeyId=f'alias/{alias}', Plaintext=file_contents)
    encrypted_file_contents = encrypted_file[u'CiphertextBlob']
    encrypted_file_contents_base64 = base64.b64encode(encrypted_file_contents)
    return encrypted_file_contents_base64.decode()
 
def decrypt_data(encrypted_data, kms):
    """
    Decrypt the LLM response using AWS KMS
    """
    try:
        ciphertext_blob = base64.b64decode(encrypted_data)
        response = kms.decrypt(CiphertextBlob=ciphertext_blob)
        decrypted_data = response['Plaintext'].decode()
        return decrypted_data
    except ImportError as e_decrypt:
        print("Decryption failed:", e_decrypt)
        return None
 
REGION, ACCOUNT = set_identity()
  
def main():
    """
    Main function to encrypt/decrypt data and send/receive with parent instance
    """
    kms = boto3.client('kms', region_name=REGION)
    alias = "ncsnitro"
    user_input = get_user_input()
    encrypted_input = encrypt_string(user_input, alias, kms)
    server_request = prepare_server_request(encrypted_input)
    url = 'http://<EC2 Instance Private IP>:5001'
    x = requests.post(url, json = server_request)
    response_body = x.json()
    llm_response = decrypt_data(response_body["EncryptedData"], kms)
    print(llm_response)
 
if __name__ == '__main__':
    main()

  1. Chatbot uygulamasını çalıştırın:
    • python3 chat.py

Çalışırken, terminal kullanıcıdan girdi isteyecek ve güvenli bir yanıt oluşturmak için önceki mimari diyagramı takip edecektir.

Özel soru ve cevap sohbet robotunu çalıştırın

Nitro Enclaves artık EC2 bulut sunucusunda çalışır durumda olduğundan, sohbet robotunuza PHI ve PII sorularını daha güvenli bir şekilde sorabilirsiniz. Bir örneğe bakalım.

Cloud9 ortamında chatbotumuza bir soru sorup kullanıcı adımızı veriyoruz.

soru-e-postama-erişemiyorum

Şekil 6 – Sohbet Botuna Soru Sormak

AWS KMS, aşağıdaki ekran görüntüsüne benzeyen soruyu şifreler.

şifrelenmiş soru

Şekil 7 – Şifreli Soru

Daha sonra yerleşim bölgesine gönderilir ve güvenli LLM'den istenir. LLM'nin sorusu ve yanıtı aşağıdaki ekran görüntüsüne benzeyecektir (sonuç ve şifrelenmiş yanıt, yerleşim alanı içinde yalnızca hata ayıklama modunda görünür).

llm'den soru-cevap

Şekil 8 – LLM'den gelen yanıt

Sonuç daha sonra AWS KMS kullanılarak şifrelenir ve şifrenin çözülmesi için Cloud9 ortamına geri gönderilir.

şifresi çözülmüş son yanıt

Şekil 9 – Son Şifresi Çözülmüş Yanıt

Temizlemek

Kaynaklarınızı temizlemek için aşağıdaki adımları tamamlayın:

  1. Bölgenizi barındırmak için oluşturulan EC2 örneğini durdurun.
  2. Cloud9 ortamını silin.
  3. KMS anahtarını silin.
  4. EC2 örneği rolünü ve IAM kullanıcı izinlerini kaldırın.

Sonuç

Bu yazıda, PII ve PHI bilgilerini daha güvenli bir şekilde gönderip alan bir LLM soru ve yanıtlama hizmetini dağıtmak için Nitro Enclaves'in nasıl kullanılacağını gösterdik. Bu, Amazon EC2'de dağıtıldı ve bölgeler, bir KMS anahtarına erişimi kısıtlayan AWS KMS ile entegre olduğundan yalnızca Nitro Enclaves ve son kullanıcının anahtarı kullanmasına ve sorunun şifresini çözmesine izin verilir.

Bu mimariyi daha büyük iş yüklerini destekleyecek şekilde ölçeklendirmeyi planlıyorsanız model seçim sürecinin EC2 kaynaklarıyla model gereksinimlerinize uygun olduğundan emin olun. Ek olarak, maksimum istek boyutunu ve bunun HTTP sunucusu üzerindeki etkisini ve modele göre çıkarım süresini dikkate almalısınız. Bu parametrelerin birçoğu model ve HTTP sunucusu ayarları aracılığıyla özelleştirilebilir.

İş yükünüz için özel ayarları ve gereksinimleri belirlemenin en iyi yolu, ince ayarlı bir LLM ile test yapmaktır. Her ne kadar bu gönderi yalnızca hassas verilerin doğal dilde işlenmesini içerse de, bu mimariyi ses, bilgisayar görüşü veya çoklu modları destekleyen alternatif LLM'leri destekleyecek şekilde değiştirebilirsiniz. Burada vurgulanan aynı güvenlik ilkeleri herhangi bir formattaki verilere uygulanabilir. Bu gönderiyi oluşturmak için kullanılan kaynaklar şu adreste mevcuttur: GitHub repo.

Bu çözümü ortamınıza nasıl uyarlayacağınızı yorumlar bölümünde paylaşın.


Yazarlar Hakkında

Justin Miles Teknoloji Ofisi'ne bağlı Leidos Dijital Modernizasyon Sektöründe bulut mühendisidir. Boş zamanlarında golf oynamaktan ve seyahat etmekten hoşlanıyor.

Liv d'Aliberti Teknoloji Ofisi'ne bağlı Leidos AI/ML Accelerator bünyesinde bir araştırmacıdır. Araştırmaları gizliliği koruyan makine öğrenimine odaklanıyor.

Chris Renzo AWS Savunma ve Havacılık organizasyonunda Kıdemli Çözüm Mimarıdır. İş dışında sıcak hava ve seyahat arasındaki dengeyi seviyor.

Joe Kovba Leidos Dijital Modernizasyon Sektöründe Başkan Yardımcısıdır. Boş zamanlarında futbol maçlarında hakemlik yapmaktan ve softbol oynamaktan hoşlanıyor.

spot_img

En Son İstihbarat

spot_img