如何构建一个生产级的AI平台(2)?

书接上回,继续往下讲,本节会说一下如何给大模型应用构建安全防护机制

为大模型应用构建安全防护

构建安全防护有助于降低 AI 风险,不仅可以保护您的用户,还可以保护您(开发人员)。只要有可能发生故障,就应该放置它们。

本文讨论了两种类型的护栏:输入安全防护和输出安全防护

1. 针对输入的安全防护

输入防护机制通常可以防止两种类型的风险:
将私人信息泄露给外部 API,以及执行危及系统的错误提示(模型越狱)。

将私有信息泄露给外部 API

当您需要将数据发送到组织外部时,此风险特定于使用外部模型 API。

例如,员工可能会将公司的机密或用户的私人信息复制到提示中,并将其发送到托管模型的任何位置。

早期最引人注目的事件之一是三星员工将三星的专有信息放入 ChatGPT 中,不小心泄露了公司的机密。

目前尚不清楚三星是如何发现这一泄漏的,以及泄露的信息是如何被用来对付三星的。

然而,该事件严重到三星于 2023 年 5 月禁止 ChatGPT。
使用第三方 API 时,没有无懈可击的方法可以消除潜在的泄漏。

但是,可以使用安全防护机制来缓解这些问题。

自动检测敏感数据的众多可用工具之一,要检测的敏感数据由使用者指定。


常见的敏感数据类包括:

  • 个人信息(身份证号码、电话号码、银行账户)。
  • 人脸
  • 与公司的知识产权或特权信息相关的特定关键字和短语。

许多敏感数据检测工具使用 AI 来识别潜在的敏感信息,例如确定字符串是否类似于有效的家庭住址。

如果发现查询包含敏感信息,有两个选项:阻止整个查询或从中删除敏感信息。

例如,可以使用占位符 [PHONE NUMBER] 来掩盖用户的电话号码。

如果生成的响应包含此占位符,使用PII可逆字典将此占位符映射到原始信息,以便可以取消屏蔽它,如下所示:

模型越狱

试图越狱 AI 模型,让它们说或做坏事已经成为一项爱用大模型的达人的一项热衷的活动。

(我的理解这样可以带来不错的自媒体流量)

虽然有些人可能会觉得让 ChatGPT 发表有争议的言论很有趣,

但如果你的客户支持聊天机器人(以你的姓名和徽标为品牌)做同样的事情,那就不那么有趣了。

(试想一下,由于防护做的不到位,
某个用户进行了模型越狱后造成了很坏的后果,

提供这个产品的平台可以说清楚嘛?)

这对于可以访问工具的AI系统尤其危险。

想象一下,如果用户找到一种方法让系统执行损坏数据的 SQL 查询。

为了解决这个问题,应该首先在系统上设置安全防护机制,以便无法自动执行有害操作。

例如,未经人工批准,无法执行任何可以插入、删除或更新数据的 SQL 查询。

这种增加的安全性的缺点是它会降低系统速度。

为了防止AI加持后的应用程序做出它不应该做出的离谱陈述,可以为应用程序定义超出范围的主题。

例如,如果您的应用程序是客户支持聊天机器人,则它不应回答政治或社会问题。

一种简单的方法是过滤掉包含通常与有争议主题相关的预定义短语的输入,

例如“移民”或“antivax”。

更复杂的算法会判断AI对输入是否与预定义的受限主题之一有关进行分类



2. 针对输出的安全防护

AI 模型是概率性的,因此其输出不可靠。

可以通知设置安全防护来显著提高应用程序的可靠性。

输出型安全防护有两个主要功能:

  1. 评估每一代大模型的质量。
  2. 指定策略以处理不同的故障模式。
对于输出数据的质量测量

要捕获不符合标准的输出,需要了解失败是什么样的。

以下是故障模式的示例以及如何捕获它们:

  • 空响应

  • 格式错误的响应,未遵循预期的输出格式。

    例如,如果应用程序需要 JSON,并且生成的响应缺少右括号。

    有适用于某些格式的验证器,

    例如 regex、JSON 和 Python 代码验证器。还有一些用于约束抽样的工具,例如 guide、outline 和 instructor。

  • 有害的响应,例如种族主义或性别歧视的反应。这些响应可以使用许多毒性检测工具之一来捕获。

  • 模型产生的幻觉中的事实不一致的回答。
    幻觉检测是一个活跃的研究领域,其解决方案包括 SelfCheckGPT(Manakul 等人,2023 年)和 SAFE,搜索引擎事实评估器(Wei 等人,2024 年)。

    可以通过为模型提供足够的上下文并提示 chain-of-thought 等技术来减轻幻觉。

  • 包含敏感信息的响应。这可能发生在两种情况下:

    1. 模型在敏感数据上进行了训练,并将其反刍回来。
    2. 系统从内部数据库中检索敏感信息以丰富其上下文,然后将这些敏感信息传递给响应。

    系统从内部数据库中检索敏感信息以丰富其上下文,然后将这些敏感信息传递给响应。

  • 品牌风险响应,例如错误描述您的公司或竞争对手的响应。

    一个例子是,当 X 训练的模型 Grok 生成一个响应,表明 Grok 是由 OpenAI 训练的,

    导致互联网怀疑 X 窃取了 OpenAI 的数据。

    这种失败模式可以通过关键字监控来缓解。

    确定有关您的品牌和竞争对手的输出后,可以阻止这些输出,将其传递给人工审核者,

    或使用其他模型来检测这些输出的情绪,以确保仅返回正确的情绪。

  • 整体性响应不佳。

    例如,如果您要求模型写一篇论文,而那篇论文很糟糕,

    或者要求模型提供低热量蛋糕食谱,而生成的食谱含有过量的糖。

    使用 AI 评委来评估模型响应的质量已成为一种流行的做法。

    这些 AI 裁判可以是通用模型(想想 ChatGT、Claude)或经过训练的专门评分员,

    可以为给定查询的响应输出具体分数。

3.故障管理

AI模型是概率性的,这意味着如果再次尝试查询,可能会得到不同的响应。

使用基本的重试逻辑可以缓解许多故障。

例如,如果响应为空,请重试 X 次,或直到收到非空响应。

同样,如果响应格式不正确,请重试,直到模型生成格式正确的响应。

但是,此重试策略可能会产生额外的延迟和成本。

一次重试意味着 API 调用次数的 2 倍。

如果在失败后执行重试,则用户经历的延迟将翻倍。

为了减少延迟,可以并行进行调用。

例如,对于每个查询,不必等待第一个查询失败后再重试,

而是同时将此查询发送到模型两次,返回两个响应,然后选择更好的一个。

这会增加冗余 API 调用的数量,但使延迟可控。


依靠人工来处理棘手的查询也很常见。

例如,如果查询包含特定的关键短语,则可以将查询传输给人工运算符。


一些团队使用专门的模型(可能在内部经过训练)来决定何时将对话转移给人类。

例如,当一个团队的情绪分析模型检测到用户生气时,将对话转移给人工操作员。

另一个团队在一定轮次后转移对话,以防止用户陷入无限循环。



3. 安全防护的权衡

  • 可靠性与延迟权衡

    虽然承认安全防护的重要性,但一些团队告诉我,延迟更重要。

    他们决定不实施护栏,因为它们会显著增加应用程序的延迟。

    然而,这些团队是少数。大多数团队发现,增加的风险比增加的延迟成本更高

    (尤其是国内的产品)

    输出型防护机制在 Stream completion 模式下可能无法正常工作。

    默认情况下,在向用户显示之前会生成整个响应,这可能需要很长时间。

    在流完成模式下,新令牌在生成时流传输给用户,从而减少了用户等待看到响应的时间

    缺点是很难评估部分响应,因此不安全的响应可能会在系统防护机制

    确定应阻止它们之前流式传输给用户。


  • 自托管与第三方 API 权衡

自托管模型意味着不必将数据发送到第三方,从而减少了对输入护栏的需求。

但是,这也意味着必须自己实施所有必要的安全防护,而不是依赖第三方服务提供的安全防护。

笔者的平台现在看起来像这样。

防护机制可以是独立的工具,也可以是模型网关的一部分,稍后将讨论。

评分器(如果使用)被分组在模型 API 下,因为评分器通常也是 AI 模型。

用于评分的模型通常比用于生成的模型更小、速度更快。



后续的内容咱们会讲一下:

  • 添加模型路由器和网关
  • 使用缓存减少延迟
  • 添加复杂逻辑和写入操作
  • AI 应用平台的可观察性
  • AI 应用 Pipeline 构建

原文链接:https://huyenchip.com/2024/07/25/genai-platform.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1551338.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Redis篇(应用案例 - UV统计)(持续更新迭代)

目录 一、HyperLogLog 二、测试百万数据的统计 一、HyperLogLog 首先我们搞懂两个概念: UV:全称Unique Visitor,也叫独立访客量,是指通过互联网访问、浏览这个网页的自然人。 1天内同一个用户多次访问该网站,只记录…

大盘点|9月独家爆款SVG模版(互斥伸长、扑克出牌、预感应滑动等)

九月即将结束,黑科技 SVG 编辑器作为业界天花板,在本月又发明了哪些一骑绝尘的 SVG 特效大杀器?一起来看看我们的盘点与推荐吧!如需体验,不妨直接登陆黑科技编辑器一探究竟。 1️⃣互斥伸长/互斥切换-伸长 E2 平台的…

C# C++ 笔记

第一阶段知识总结 lunix系统操作 1、基础命令 (1)cd cd /[目录名] 打开指定文件目录 cd .. 返回上一级目录 cd - 返回并显示上一次目录 cd ~ 切换到当前用户的家目录 (2)pwd pwd 查看当前所在目录路径 pwd -L 打印当前物理…

如何使用 Python 读取数据量庞大的 excel 文件

使用 pandas.read_excel 读取大文件时,的确会遇到性能瓶颈,特别是对于10万行20列这种规模的 .xlsx 文件,常规的 pandas 方法可能会比较慢。 要提高读取速度,关键是找到更高效的方式处理 Excel 文件,特别是在 Python 的…

Android Stuido中编译信息出现乱码的解决方式

打开菜单File -> Settings,选择Editor -> File Encodings 窗口,将编码设置为正确的字符集,保证 Global Encoding、Project Encoding 和 Default Encoding for properties files 都设置为 UTF-8。

当今爆火的RPA其实就是自动化测试

最近有机会看到了 RPA 在实际工作中的重度应用,深刻感受到了自动化的强大实力,以后的应用前景时完全可期的。 RPA (Robotic Process Automation) 简介 Robotic Process Automation (RPA) 是一种技术,使用软件机器人(或称“机器人…

APO v0.5.0 发布:可视化配置告警规则;优化时间筛选器;支持自建的ClickHouse和VictoriaMetrics

APO 新版本 v0.5.0 正式发布!本次更新主要包含以下内容: 新增页面配置告警规则和通知 在之前的版本中,APO 平台仅支持展示配置文件中的告警规则,若用户需要添加或调整这些规则,必须手动编辑配置文件。而在新版本中&a…

09_OpenCV彩色图片直方图

import cv2 import numpy as np import matplotlib.pyplot as plt %matplotlib inlineimg cv2.imread(computer.jpeg, 1) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) plt.imshow(img) plt.show()plot绘制直方图 plt.hist(img.ravel(), 256) #ravel() 二维降一维 256灰度级…

【使用resnet18训练自己的数据集】

1.背景及准备 书接上文【以图搜图代码实现】–犬类以图搜图示例 总结了一下可以优化的点,其中提到使用自己的数据集训练网络,而不是单纯使用预训练的模型,这不就来了!! 使用11类犬类微调resnet18网络模型&#xff1a…

如何构建一个生产级的AI平台(1)?

本文概述了生成式 AI 平台的常见组件、它们的作用以及它们的实现方式。 本文重点介绍部署 AI 应用程序的整体架构。 它讨论了需要哪些组件以及构建这些组件时的注意事项。 它不是关于如何构建 AI 应用程序。 这就是整体架构的样子。 这是一个相当复杂的系统。 这篇文章将从最…

css 中 ~ 符号、text-indent、ellipsis、ellipsis-2、text-overflow: ellipsis、::before的使用

1、~的使用直接看代码 <script setup> </script><template><div class"container"><p><a href"javascript:;">纪检委</a><a href"javascript:;">中介为</a><a href"javascript:…

SpringBoot技术栈:打造下一代网上租赁系统

第2章 关键技术简介 2.1 Java技术 Java是一种非常常用的编程语言&#xff0c;在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中&#xff0c;Java的身影无处不在&#xff0c;并且拥有旺盛的生命力。Java的跨平台能力十分强大&#xff0c;只需一次编译&#xf…

传统操作系统和分布式操作系统的区别

分布式操作系统和传统操作系统之间的区别&#xff0c;根植于它们各自的设计哲学和目标。要理解这些差异&#xff0c;需要从操作系统的基本定义、结构、功能以及它们在不同计算环境中的表现进行分析。每种系统都试图解决特定的计算挑战&#xff0c;因此在不同的使用场景下具有各…

基于springboot+vue的社区流浪动物救助系统

摘要 本文介绍了一个基于Spring Boot和Vue.js技术的社区流浪动物救助系统。该系统采用前后端分离架构&#xff0c;后端使用Spring Boot框架进行开发&#xff0c;负责业务逻辑的处理和数据的交互&#xff1b;前端则使用Vue.js框架&#xff0c;为用户提供友好的交互界面。系统实现…

Springboot学习笔记(4)MybatisPlus

1. MybatisPlus 1.1 ORM介绍 ORM&#xff08;Object Relational Mapping&#xff0c;对象关系映射&#xff09;是为了解决面向对象与关系数据库存在的互不匹配现象的一种技术。 比如&#xff0c;将java中的对象传递到关系型数据库中去&#xff0c;或者将关系型数据库传递到jav…

HarmonyOS Next系列之水波纹动画特效实现(十三)

系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现&#xff08;一&#xff09; HarmonyOS Next 系列之验证码输入组件实现&#xff08;二&#xff09; HarmonyOS Next 系列之底部标签栏TabBar实现&#xff08;三&#xff09; HarmonyOS Next 系列之HTTP请求封装和Token…

Webpack 打包后文件过大,如何优化?

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介Webpack 打包后文件过大&#xff0c;如何优化&#xff1f;1. 代码分割&#xff08;Code Splitting&#xff09;1.1 概念1.2 Webpack 的 SplitChunksPlugin示例配置&#xff1a; 1.3 按需加载&#xff08;Lazy Loading&#xff09;示…

【无人机设计与技术】四旋翼无人机的建模

摘要 本项目的目标是通过 Simulink 建模和仿真&#xff0c;研究四旋翼无人机的建模、姿态控制、定点位置控制及航点规划功能。无人机建模包含了动力单元模型、控制效率模型和刚体模型&#xff0c;并运用这些模型实现了姿态控制和位置控制。姿态控制为无人机的平稳飞行提供基础…

字体文件压缩

技术点 npm、html、font-spider 实现原理 个人理解&#xff1a;先引入原先字体&#xff0c;然后重置字符为空&#xff0c;根据你自己填充文字、字符等重新生成字体文件&#xff0c;因此在引入的时候务必添加自己使用的文字、字符等&#xff01;&#xff01;&#xff01; 实…

高校体育场小程序|高校体育场管理系统系统|体育场管理系统小程序设计与实现(源码+数据库+文档)

高校体育场管理系统小程序 目录 体育场管理系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道…