Solución de seguridad LLM de LLM ultra-rápida, baja latencia
last_layer
es una biblioteca de seguridad diseñada para proteger las aplicaciones LLM de ataques de inyección, jailbreaks y exploits. Actúa como una capa de filtrado robusta para analizar las indicaciones antes de que los LLM sean procesados, asegurando que solo se permita el contenido seguro y apropiado.
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 sin rastrear o hacer llamadas de red, asegurando que los datos permanezcan dentro de su infraestructura, tamaño de paquete por debajo de 50 MB.*Nota: Precisión basada en pruebas internas y esfuerzos de mejora continua.
Enlaces rápidos -? Instalación Pruebas de precisión de Google Colab? ¿Ejemplo de API rápido necesita ayuda?
Para instalar last_layer
, simplemente ejecute:
pip install last_layer
Importar y usar last_layer en su proyecto para escanear las indicaciones y respuestas de 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 disponibles:
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
También puede probarlo en su navegador con Google Colab:
A continuación se muestra una tabla ampliada que representa la precisión de last_layer
en la detección de varios tipos de indicaciones. Estas indicaciones van desde aquellas que potencialmente podrían conducir a resultados inseguros o inapropiados, hasta ataques técnicos que podrían explotar el comportamiento de los LLM. Las pruebas evalúan la efectividad de nuestros mecanismos de filtrado en un amplio espectro de amenazas.
Caso de prueba | Detectado como amenaza | Amenaza real | Identificado correctamente |
---|---|---|---|
Consulta de fraude financiero | Sí | Sí | ✅ |
Broma inofensiva | No | No | - |
Intento de phishing | Sí | Sí | ✅ |
Cuestión políticamente sensible | No | No | - |
Solicitud de información personal | Sí | Sí | ✅ |
Instrucción de actividad ilegal | Sí | Sí | ✅ |
Consejo médico | No | No | - |
Consulta técnicamente compleja y segura | No | No | - |
Contenido implícitamente arriesgado | Sí | Sí | ✅ |
Contenido explícitamente dañino | Sí | Sí | ✅ |
Instrucciones adversas | Sí | Sí | ✅ |
Blasfemia | Sí | Sí | ✅ |
PII (información de identificación personal) | Sí | Sí | ✅ |
Misterios | Sí | Sí | ✅ |
Texto oculto | Sí | Sí | ✅ |
Unicode invisible | Sí | Sí | ✅ |
Guiones | Sí | Sí | ✅ |
Reducción | Sí | Sí | ✅ |
Inyección de código | Sí | Sí | ✅ |
Inyección HTML | Sí | Sí | ✅ |
Esta tabla integral se actualiza regularmente para reflejar las mejoras en curso y el ajuste de las capacidades de detección de last_layer
. Nuestro objetivo es mantener y mejorar los más altos estándares de seguridad.
El núcleo de last_layer se mantiene deliberadamente de origen cerrado por varias razones. El principal de estos es la preocupación por la ingeniería inversa. Al limitar el acceso al funcionamiento interno de nuestra solución, reducimos significativamente el riesgo de que los actores maliciosos puedan analizar y eludir nuestras medidas de seguridad. Este enfoque es crucial para mantener la integridad y la efectividad de last_layer frente a las amenazas en evolución. Internamente, hay un modelo delgado ML, métodos heurísticos y firmas de técnicas conocidas de jailbreak.
Al elegir mantener el núcleo de la fuente cerrada de Last_layer, logramos un equilibrio entre transparencia y seguridad.
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 una sesión 1 a 1 con los fundadores, para discutir cualquier problema, proporcionar comentarios o explorar cómo podemos mejorar last_layer para usted.
Apoyamos la investigación académica con acceso a nuestros conjuntos de datos. Para solicitar el conjunto de datos:
Email: Send to [email protected] with "Academic Research Dataset Request" as the subject.
¡Las contribuciones son bienvenidas! Si tiene sugerencias de mejoras o tiene problemas identificados, abra un problema o una solicitud de extracción.
Distribuido bajo la licencia MIT. Vea la licencia para más información.
To the open-source community for continuous inspiration and support.
Everyone who has contributed to refining and enhancing last_layer.
Si está interesado en una versión empresarial de last_layer
con características adicionales, soporte mejorado y opciones de personalización para adaptarse mejor a las necesidades específicas de su organización, comuníquese con nosotros por correo electrónico: [email protected]