最近发现几个主流的大语言模型 (包括商业的 openai ,claude ,以及开源的 llama3 ),通过 api 提取个人信息的时候全部返回虚假的信息。比如邮件里面客人的名字叫 Mark Brown ,结果返回的信息是 John Doe ,返回的名字几乎都是这个名字。请问下是否这些大语言模型都设置了某种限制,当大量提取 PII (个人信息)的时候自动用虚假信息填充返回?有什么办法可以使它正常运行?
我们的应用场景是想利用大语言模型从几万封客服邮件里面提取出客户信息,包括邮箱、电话、订单号码、刻绘反馈的问题等。我们提取这些信息主要是为了将这些信息跟我们的订单信息进行匹配,从而得知这些客服邮件都来自于哪些订单,进而整理出每款产品都有哪些集中反馈的问题。
1
ladypxy 5 天前 2
请仔细看你提问的标题的 前 5 个字。。。理解下这些模型是干啥的。。。
|
2
sudoy OP @ladypxy 邮件内容排版非常乱,而且不规则,用编程提取经常会提取出错误信息。这就是为什么我上大语言模型的原因,这些语言模型我如果提取几封或者十几封邮件,是能正确提取出来并且按照指令返回 json ,所以我 i 知道这些模型是干啥的。现在问题是通过 api 密集调用,可能触发某种安全机制,全部返回虚假信息
|
4
werwer 5 天前 1
首先你举例的这几项信息用正则搞不定么
其次你并没说清你具体是怎么触发了你所说的安全机制 是前几次调用没问题,达到一定次数后触发,还是你手动对话没问题,调用 api 必定触发? 如果是前者,可以尝试搞多个 api ,或者增加延时来规避 |
5
trungdieu031 5 天前 3
你这个应该确实是触发了某种安全机制。看过美剧刑侦剧的都知道 John Doe 这个名字使用指定未知人物姓名的。大模型返回结果可能处于数据隐私方面的考虑对返回结果做了替换 ~
|
6
maolon 5 天前 via Android 1
groq 你试过了么?再不行自己本地部署开源模型解决
|
7
trungdieu031 5 天前 1
你这个问题要解决有一下集中思路:
1. 更换不同厂家的模型,都试试说不定就有安全措施不那么严格的 2. 采用类似反爬虫的机制。增加请求延时,更换 ip , 更换请求账号 ... 3. 编写专门的 prompt 来绕过限制。有点类似 LLM 的越狱机制 4. 部署本地大模型处理。如果是英文邮件的话,可能 llama 的中大模型会好点 ... |
8
TimePPT 5 天前 1
姓名、地址信息提取可以不用 LLM 的,找个传统的 NER 模型就行。
|
9
yinmin 4 天前 via iPhone
自建一个 qwen 2.5 7B 试试,别用公共大模型
|
10
EndlessMemory 4 天前
敏感信息肯定是误杀也不能放过
|
12
sudoy OP @werwer 感谢回复!正则搞不定,比如订单号码,邮件里面有跟订单号码特征一样的字符串,AI 可以轻松判断哪个是订单号码。
我是做成 rest api ,然后 post 文本到后端,后端调用 claude ai api 提取,手动 post 一个两个都能正常返回正确的内容,当用一个 for 循环请求几十个的时候,就返回这些虚假数据。我尝试设置等候机制(也就是延时),每请求完一个,等待十秒钟再请求第二个,同样会出现一样的问题。我有时间再 debug 一下,目前暂时放弃 ai 这个方法了,改用编程的方法提取出不容易出错的信息,然后再人工匹配。 |
14
nuance2ex 4 天前 1
可以通过 Prompt 工程在一定程度上解决。
1. 使用辅助字段方法,要求摘录时,先摘字段_sentence_with_name ,就是名字所在的原文句子,然后让他再摘出其中的 name 。 2. 解析出的 json ,丢弃_sentence_with_name 辅助字段。 3. 如果上述步骤准确度还是不够,可以加验证手段,就是去核验_sentence_with_name 和 name ,是否能找到对应的原文。如果找不到对应原文,再拿错误的输出去反问大模型(比如,你刚才给我的回复,发生了错误...),让他输出正确结果。一般第二遍就能有正确答案,不行就设个上限五遍。还是不行,就人工介入。 这样应该就能大幅提高准确度。 |
15
sudoy OP @trungdieu031 谢谢回复。
1. 试了 openai ,claude ,llama 3 都被限制了; 2. 增加延时了,提高到 10 秒钟延时都没用;更换 ip 和账号条件不允许,只有一个账号,而且主机都是 aws 3. 这个或许可以,我回头试试看,主要是通过 system prompt 进行强制修改 4. 本地部署主要也是硬件条件有限 |
20
sudoy OP @nuance2ex 哈哈你是说我出现幻觉啦?我最近都没喝酒啊。提取结果明明显示 [email protected], John Doe 这种 dummy 数据,肯定是哪里出错了
|
23
Liftman 4 天前
发下实际的结果看看。你的提示词怎么写的? 返回的内容看看。。。
而且你如果只是提取姓名,没必要用参数量太大的模型,反而会想法太多。可以考虑换一些小的模型或者没有 instruct 的模型。或者道德低的,比如 secgpt 。 |
24
SkywalkerJi 4 天前 via Android
因为最早 chatgpt 可以问出真的姓名,社保账号和地址。后来就返回时候都改成假数据了。。
|
25
forgottencoast 4 天前
我觉得你应该用付费的,比如微软的 Azure 上部署的,然后就可以发工单问了。
|
26
sugarsalt 4 天前
应该是特意屏蔽了,John Doe/Jane Doe 是真实姓名未知或需被刻意隐藏时常用的化名,看到这个就当“某人”,“某某”就行
|
27
kenvix 4 天前
实体抽取用专用的模型比较好,LLM 比较泛用,不够专精
|
28
kkocdko 4 天前
我觉得你应该尝试 embedding 模型去分析词性句性,然后提取,更便宜而且更可靠。这种小事情没必要上全量的通用 LLM
|
29
kiroter 4 天前
自己部署个大模型?
|
31
yinmin 4 天前 via iPhone
@sudoy #18 qwen 1.5 => 2.0 是很大升级,尤其是 7B 这种小参数模型,目前最新 2.5 。阿里云上有 qwen 不同版本模型的兼容 openai api ,你可以试试不同的版本。如果开源模型符合需求,将来可以本地部署。
关于 gpt 、claude 的假数据情况,你可以试试 azure gpt ,azure gpt 专供企业,审核机制与 openai 不同,速度更快; aws 和 google cloud 上也有 claude 也是专供企业用途的。 另外,你可以试试 deepseek 、glm-4 等国产大模型,价格比较实惠。 |
32
fizzmst 4 天前
看到了一个相关的帖子: https://community.openai.com/t/prompt-gpt-to-take-in-forms/607118
所以我好奇是完全相同的数据频繁请求的话也会变成 John Doe 的么?还是说因为模型出现幻觉了导致出现 John Doe 国内的模型推荐用 https://siliconflow.cn/zh-cn/,如果真的是 qps 问题可以找中文客服就方便了 |
33
Pteromyini 3 天前
@nuance2ex #16 这个问题不像幻觉,大概率单纯风控替代了,如果是幻觉的话不会是这种表现形式
|