学习笔记 | 用大模型来判断文档是否敏感

admin 2025年3月10日09:35:36评论31 views字数 2073阅读6分54秒阅读模式

大模型发展如火如荼,我也一直在琢磨,这玩意除了日常知识问答和辅助写代码,还能对我的项目需求有啥助力。

最近,有一个做知识社区的 PM 找到我,说最近有人把一些项目文档、述职报告发在公开的社区里了,希望能有一些自动化发现和处理的方法。

这不就是瞌睡了就有枕头吗?用大模型做 这事儿再合适不过了。

我在自己的老 Mac 上装了 ollama,跑了 Deepseek r1 1.5b + nomic-embed-text,用 langchain 框架做实验。

踩坑点:每次执行新RAG任务却召回了老内容,怎么办?

第一次用来执行RAG 任务,发现当我在第一轮的 content 和 prompt 结束之后,再次提交新的 content 和 prompt,模型会召回上一次的content。问了claude 才知道,原来文件向量是持久化存在向量库里的,只要每次执行新任务时清理一遍,就不会发生召回前一次 content 的尴尬事了。

def store_in_chroma(doc_splits,clear_old=True):    try:        if clear_old and os.path.exists(DB_DIR):            import shutil            shutil.rmtree(DB_DIR)            print("已清除旧的向量数据库")        embedding_function = OllamaEmbeddings(model=EMBEDDING_MODEL,base_url="http://127.0.0.1:11434")        vectorstore = Chroma.from_documents(doc_splits, embedding_function, persist_directory=DB_DIR)        print("数据已成功存入 ChromaDB!")        return vectorstore    except Exception as e:        print(f"存入 ChromaDB 失败: {e}")        return None

关键点:prompt 是关键,选对模型更是关键中的关键。

为了能让模型很好的理解我的意图,我努力地用结构化的语言描述自己的需求。

prompt = """
你是一个信息安全专家,负责识别文档中的敏感信息。
敏感内容识别规则:
1.包含了产品设计、安全要求、产品策略、技术架构设计的内容,是敏感信息;
2.包含了财务指标、产品定价的内容,是敏感信息;
3.包含了员工述职报告、日报、周报、项目进展、项目总结、工作规划、部门规划、团队运营计划的内容,是敏感信息;
4.品牌无关,只要包含了安全漏洞、安全事件、安全报告、安全规则、安全设计、安全策略的内容,都是敏感信息;
5.不符合 1-4 规则的内容,则不是敏感信息。
任务:
1、根据上述“敏感内容识别规则”,识别当前文本是否为敏感信息。
2、如果是敏感信息,最终结果直接用文本格式输出:"TRUE"即可。
3、如果不是敏感信息,最终结果直接用文本格式输出:"FALSE"即可。
注意:
我导入的是一篇完整的文章,你看到的“一”、“二”、“三”等汉字数字代表的是文章正文的章节,仅此而已。
"""

我用从公司内网扒拉下来的10 篇文章做测试,发现自己本机模型的正确率只有 60%。

后来,我直接怼到了公司自研的一个大参数模型接口,也不用 RAG 了,把内容和问题都作为prompt 提交给模型,正确率竟然达到了 90%。

看来,小参数模型就是瞎玩玩,正经的生产任务还得是满血版。

稍微修改了一下 prompt。

prompt = f"""你是一个信息安全专家,负责识别文档中的敏感信息。敏感内容识别规则:1.包含了产品设计、安全要求、产品策略、技术架构设计的内容,是敏感信息;2.包含了财务指标、产品定价的内容,是敏感信息;3.包含了员工述职报告、日报、周报、项目进展、项目总结、工作规划、部门规划、团队运营计划的内容,是敏感信息;4.品牌无关,只要包含了安全漏洞、安全事件、安全报告、安全规则、安全设计、安全策略的内容,都是敏感信息;5.不符合 1-4 规则的内容,则不是敏感信息。任务:1、根据上述“敏感内容识别规则”,识别当前文本是否为敏感信息。2、如果是敏感信息,最终结果直接用文本格式输出:"TRUE"即可。3、如果不是敏感信息,最终结果直接用文本格式输出:"FALSE"即可。文档内容:{content}注意:我导入的是一篇完整的文章,你看到的“一”、“二”、“三”等汉字数字代表的是文章正文的章节,仅此而已。"""

到了 90%我已经很满意了,再提高精度就是加大实验量,不断调整 prompt 的过程了。实验做到这个份上,已经可以作为一个正式的需求配合运营方案拿出来评审了。

又是进步的一天。

作者:阿飞 or 韭不黄,都是同一个人。十余年来一直混迹于信息安全行业,扛过设备,卖过服务,做过审计,查过黑客,反过欺诈,岁月神偷带走了我的苹果肌,留下了一肚子的瘫软,貌似我将要成为一个油腻的中年男人,不过依然对世界充满好奇,依然是一颗嫩绿的韭菜~学习笔记 | 用大模型来判断文档是否敏感

原文始发于微信公众号(思想花火):学习笔记 | 用大模型来判断文档是否敏感

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月10日09:35:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   学习笔记 | 用大模型来判断文档是否敏感https://cn-sec.com/archives/3819840.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息