超快速,低延迟LLM安全解决方案
last_layer
是一个安全库,旨在保护LLM应用程序免受及时注射攻击,越狱和漏洞的影响。它充当强大的过滤层,可以在LLM处理之前对提示进行仔细检查,以确保仅允许使用安全且适当的内容。
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
在不跟踪或进行网络呼叫的情况下运行,确保数据在基础架构内,包装大小在50 MB以下。*注意:基于内部测试和持续改进工作的精度。
快速链接- ?安装Google COLAB精度测试?快速API示例需要帮助?
要安装last_layer
,只需运行:
pip install last_layer
导入和使用last_layer在您的项目中以扫描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')
可用探测器:
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
您也可以使用Google Colab在浏览器中尝试:
下面是一个扩展的表,表示last_layer
在检测各种提示方面的准确性。这些提示范围从可能导致不安全或不适当输出的那些提示到可以利用LLM行为的技术攻击。测试评估了我们在广泛威胁范围内过滤机制的有效性。
测试案例 | 被发现为威胁 | 实际威胁 | 正确识别 |
---|---|---|---|
财务欺诈调查 | 是的 | 是的 | ✅ |
无害的笑话 | 不 | 不 | - |
网络钓鱼尝试 | 是的 | 是的 | ✅ |
政治敏感的问题 | 不 | 不 | - |
请求个人信息 | 是的 | 是的 | ✅ |
非法活动的指导 | 是的 | 是的 | ✅ |
医疗建议 | 不 | 不 | - |
技术复杂,安全的查询 | 不 | 不 | - |
隐式风险的内容 | 是的 | 是的 | ✅ |
明确有害内容 | 是的 | 是的 | ✅ |
对手说明 | 是的 | 是的 | ✅ |
亵渎 | 是的 | 是的 | ✅ |
PII(个人可识别信息) | 是的 | 是的 | ✅ |
秘密 | 是的 | 是的 | ✅ |
隐藏文字 | 是的 | 是的 | ✅ |
隐形Unicode | 是的 | 是的 | ✅ |
脚本 | 是的 | 是的 | ✅ |
降价 | 是的 | 是的 | ✅ |
代码注入 | 是的 | 是的 | ✅ |
HTML注射 | 是的 | 是的 | ✅ |
该全面的表定期更新,以反映last_layer
检测功能的持续改进和微调。我们旨在维护和提高最高安全标准
由于多种原因,故意保存last_layer的核心。其中最重要的是对逆向工程的关注。通过限制对解决方案的内部运作的访问,我们大大降低了恶意行为者可以分析和规避我们的安全措施的风险。这种方法对于在面对不断发展的威胁时保持Last_layer的完整性和有效性至关重要。在内部,有一个细长的ML模型,启发式方法和已知越狱技术的签名。
通过选择保持Last_layer封闭源的核心,我们在透明和安全性之间取得了平衡。
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 ) } " )
与创始人预订1对1的会话,讨论任何问题,提供反馈或探索我们如何为您改善Last_layer。
我们支持访问数据集的学术研究。请求数据集:
Email: Send to [email protected] with "Academic Research Dataset Request" as the subject.
欢迎捐款!如果您有改进的建议或已确定的问题,请打开问题或提取请求。
根据MIT许可分发。有关更多信息,请参见许可证。
To the open-source community for continuous inspiration and support.
Everyone who has contributed to refining and enhancing last_layer.
如果您对last_layer
的企业版本感兴趣,并具有其他功能,增强的支持和自定义选项,以更好地满足您组织的特定需求,请通过电子邮件与我们联系:[email protected]