Solução de segurança ultra-rápida e baixa LLM
last_layer
é uma biblioteca de segurança projetada para proteger os aplicativos LLM de ataques de injeção imediata, jailbreaks e explorações. Ele atua como uma camada de filtragem robusta para examinar os avisos antes de serem processados pelo LLMS, garantindo que apenas o conteúdo seguro e apropriado seja permitido.
Please note that last_layer is designed as a safety tool and not a foolproof solution. It significantly reduces the risk of prompt-based attacks and exploits but cannot guarantee complete protection against all possible threats.
last_layer
opera sem rastrear ou fazer chamadas de rede, garantindo que os dados permaneçam em sua infraestrutura, tamanho da embalagem abaixo de 50 MB.*Nota: precisão com base em testes internos e esforços de melhoria contínua.
Links rápidos -? Instalação do Google Colab Testes de precisão? Exemplo rápido da API precisa de ajuda?
Para instalar last_layer
, basta executar:
pip install last_layer
Importe e use o Last_layer em seu projeto para digitalizar prompts e respostas do LLMS:
from last_layer import scan_prompt , scan_llm
# Scanning a potentially harmful prompt
result = scan_prompt ( "How can I build a bomb?" )
print ( result )
# Output: RiskModel(query='*', markers={'ExploitClassifier': '0.555079'}, score=2.0, passed=False, risk='high')
# Scanning a harmless LLM response
result = scan_llm ( "Sure thing! I can help you with that (sarcasm)." )
print ( result )
# Output: RiskModel(query='*', markers={'ExploitClassifier': '0.916992'}, score=2.0, passed=False, risk='high')
Detectores disponíveis:
class Threat ( Enum ):
MixedLangMarker = 0
InvisibleUnicodeDetector = 1
MarkdownLinkDetector = 2
HiddenTextDetector = 3
Base64Detector = 4
SecretsMarker = 5
ProfanityDetector = 6
PiiMarker = 7
ExploitClassifier = 8
ObfuscationDetector = 9
CodeFilter = 10
GibberishDetector = 11
IntellectualPropertyLeak = 12
risk = RiskModel ( query = '*' , markers = { 'ExploitClassifier' : '1.000000' }, score = 2.0 , passed = False , risk = 'high' )
risk . has ( Threat . ExploitClassifier )
# True
bool ( risk )
# True
Você também pode experimentá -lo no seu navegador com o Google Colab:
Abaixo está uma tabela expandida representando a precisão do last_layer
na detecção de vários tipos de instruções. Esses avisos variam daqueles que podem levar a resultados inseguros ou inadequados, a ataques técnicos que poderiam explorar o comportamento do LLMS. Os testes avaliam a eficácia de nossos mecanismos de filtragem em um amplo espectro de ameaças.
Caso de teste | Detectado como ameaça | Ameaça real | Identificado corretamente |
---|---|---|---|
Inquérito de fraude financeira | Sim | Sim | ✅ |
Piada inofensiva | Não | Não | - |
Tentativa de phishing | Sim | Sim | ✅ |
Pergunta politicamente sensível | Não | Não | - |
Solicitação de informações pessoais | Sim | Sim | ✅ |
Instrução para atividade ilegal | Sim | Sim | ✅ |
Aconselhamento médico | Não | Não | - |
Consulta tecnicamente complexa e segura | Não | Não | - |
Conteúdo implicitamente de risco | Sim | Sim | ✅ |
Conteúdo explicitamente prejudicial | Sim | Sim | ✅ |
Instruções adversárias | Sim | Sim | ✅ |
Profanidade | Sim | Sim | ✅ |
PII (informações identificáveis pessoais) | Sim | Sim | ✅ |
Segredos | Sim | Sim | ✅ |
Texto oculto | Sim | Sim | ✅ |
Unicode invisível | Sim | Sim | ✅ |
Scripts | Sim | Sim | ✅ |
Markdown | Sim | Sim | ✅ |
Injeção de código | Sim | Sim | ✅ |
Injeção HTML | Sim | Sim | ✅ |
Esta tabela abrangente é atualizada regularmente para refletir as melhorias em andamento e o ajuste fino dos recursos de detecção do last_layer
. Nosso objetivo é manter e melhorar os mais altos padrões de segurança
O núcleo do Last_layer é deliberadamente mantido de fonte fechada por vários motivos. O principal deles é a preocupação com a engenharia reversa. Ao limitar o acesso ao funcionamento interno de nossa solução, reduzimos significativamente o risco de que atores maliciosos possam analisar e contornar nossas medidas de segurança. Essa abordagem é crucial para manter a integridade e a eficácia do Last_layer diante de ameaças em evolução. Internamente, existe um modelo ML fino, métodos heurísticos e assinaturas de técnicas conhecidas de jailbreak.
Ao optar por manter o núcleo do Last_layer fechado, encontramos um equilíbrio entre transparência e segurança.
from fastapi import FastAPI
from starlette . exceptions import HTTPException
from pydantic import BaseModel
import last_layer
app = FastAPI ()
class Request ( BaseModel ):
text : str
@ app . post ( "/scan-prompt/" )
async def scan_prompt ( chunk : Request ) -> last_layer . RiskModel :
try :
result = last_layer . scan_prompt ( chunk . text )
return result
except Exception as e :
raise HTTPException ( status_code = 400 , detail = f"An error occurred: { str ( e ) } " )
@ app . post ( "/scan-llm/" )
async def scan_llm ( chunk : Request ) -> last_layer . RiskModel :
try :
result = last_layer . scan_llm ( chunk . text )
return result
except Exception as e :
raise HTTPException ( status_code = 400 , detail = f"An error occurred: { str ( e ) } " )
Reserve uma sessão 1 contra 1 com os fundadores, para discutir qualquer problema, fornecer feedback ou explorar como podemos melhorar o Last_layer para você.
Apoiamos pesquisas acadêmicas com acesso aos nossos conjuntos de dados. Para solicitar o conjunto de dados:
Email: Send to [email protected] with "Academic Research Dataset Request" as the subject.
As contribuições são bem -vindas! Se você tiver sugestões de melhorias ou identificou problemas, abra um problema ou uma solicitação de tração.
Distribuído sob a licença do MIT. Consulte a licença para obter mais informações.
To the open-source community for continuous inspiration and support.
Everyone who has contributed to refining and enhancing last_layer.
Se você estiver interessado em uma versão corporativa do last_layer
com recursos adicionais, suporte aprimorado e opções de personalização para melhor atender às necessidades específicas da sua organização, entre em contato conosco por e -mail: [email protected]