当前位置: 首页 > news >正文

ACP(三):让大模型能够回答私域知识问题

让大模型能够回答私域知识问题

未经过特定训练答疑机器人,是无法准确回答“我们公司项目管理用什么工具”这类内部问题。根本原因在于,大模型的知识来源于其训练数据,这些数据通常是公开的互联网信息,不包含任何特定公司的内部文档、政策或流程。

你可以把大模型想象成一台刚出厂的超级计算机:它的CPU(推理能力)极其强大,硬盘(模型权重)里预装了海量的通用知识。但对于你公司的“内部资料”,它的硬盘里是空白的。

面对这个问题,最直观的解决思路就是:在运行时,把公司的内部知识临时告诉它

初步方案:在提示词中“喂”入知识

你可以来验证这个思路:将公司项目管理工具的说明文档,直接添加给模型的指令(System Prompt)中,作为背景知识提供给它。

💡 公司使用的项目管理 软件资料可以docs/内容开发工程师岗位指导说明书.pdf文件中找到。


user_question = "我是软件一组的,请问项目管理应该用什么工具"knowledge = """公司项目管理工具有两种选择:1. **Jira**:对于软件开发团队来说,Jira 是一个非常强大的工具,支持敏捷开发方法,如Scrum和Kanban。它提供了丰富的功能,包括问题跟踪、时间跟踪等。2. **Microsoft Project**:对于大型企业或复杂项目,Microsoft Project 提供了详细的计划制定、资源分配和成本控制等功能。它更适合那些需要严格控制项目时间和成本的场景。在一般情况下请使用Microsoft Project,公司购买了完整的许可证。软件研发一组、三组和四组正在使用Jira,计划于2026年之前逐步切换至Microsoft Project。
"""response = get_qwen_stream_response(user_prompt=user_question,# 将公司项目管理工具相关的知识作为背景信息传入系统提示词system_prompt="你负责教育内容开发公司的答疑,你的名字叫公司小蜜,你要回答学员的问题。"+ knowledge,temperature=0.7,top_p=0.8
)for chunk in response:print(chunk, end="")
你好!根据公司的规定,目前软件研发一组正在使用Jira进行项目管理。尽管公司计划在2026年之前逐步切换到Microsoft Project,但在那之前,你们组仍然可以继续使用Jira。如果你有任何关于Jira的使用问题或需要帮助,请随时告诉我。同时,如果有任何关于未来切换到Microsoft Project的准备或培训需求,也可以提前告知,我会尽力提供支持。

在提示词中加入相关的背景知识,大模型确实能够准确回答关于公司内部工具的问题。然而,当你试图将更多的公司文档(例如几十页的员工手册、上面页的技术规范)都用这种方式“喂”给大模型时,一个新的、更严峻的挑战出现了。

核心瓶颈:有限的上下文窗口

大模型接收我们输入(包括指令、问题和背景知识)的地方,被称为上下文窗口(Context Window)。你可以把它理解为计算机的“内存RAM”——它的容量是有限的。
你无法将整个公司的知识库(成百上千份文档)一次性塞进这个有限的窗口里。一旦输入内容超过模型的最大限制,就会导致错误。
这引出了一个核心问题:你需要对放入上下文窗口的内容进行筛选和管理

解决之道:上下文工程(Context Engineering)

简单粗暴地将信息塞进上下文,除了会超出窗口限制外,还会带来一系列“隐性”问题:

1.效率低:上下文越长,大模型处理所需的时间就越长,导致用户等待增加时间。
2.成本高:大部分模型是按输入和输出的文本量计费的,冗长的上下文意味着更高的成本。
3.信息干扰:如果上下文中包含了大量与当前问题无关的信息,就像在开卷考试时给了考生一本错误科目的教科书,反而会干扰模型的判断,导致回答质量下降。

成功的关键不在于“喂”给模型多少知识,而在于“喂”得有多准
如何在正确的时间,将最相关、最精准的知识,动态地加载到大模型有限的上下文窗口中?———这门系统性地设计、构建和优化上下文的实践,就是上下文工程(Context Engineering)

上下文工程(Context Enginnering)的核心技术
1.RAG(检索增强生成):从外部知识库(如公司文档)中检索信息,为模型提供精准的回答依据。
2.Prompt(提示词工程):通过精心设计的指令,精确地引导模型的思考方式和输出格式。
3.Tool(工具使用):赋予模型调用外部工具(如计算器、搜索引擎、API)的能力,以获取实时信息或执行任务。
4.Memory(记忆机制):为模型建立长短期记忆,使其能够在连续对话中理解历史上下文。

在这里插入图片描述

RAG(检索增强生成)

RAG(Retrieval-Augmented Generation,检索增强生成)就是实现上下文工程的强大技术方案。它的核心思想是:在用户提问时,不再将全部知识库硬塞给大模型,而是先自动检索出与问题最相关的私有知识片段,然后将这些精准的片段与用户问题合并后,一同传给大模型,从而生成最终的答案。这样既避免了提示词过长的问题,又能确保大模型获得相关的背景信息。
构建一个RAG应用通常会分为两个阶段

  • 第一阶段:建立索引
    在这里插入图片描述

    建立索引是为了将私有知识文档或片段转换为可以高效检索的形式。通过将文件内容分割并转化为多维向量(使用专用Embedding模型),并结合向量存储保留文本的语义信息,方便进行相似度计算。向量化使得模型能够高效检索和匹配相关内容,特别是在处理大规模知识库时,显著提高查询的准确性和响应速度。

  • 第二阶段:检索与生成
    在这里插入图片描述

检索生成是根据用户的提问,从索引中检索相关的文档片段,这些片段会与提问一起输入到大模型生成最终的回答。这样大模型就能够回答私有知识问题了。
总的来说,基于RAG结构的应用,既避免了将整个参考文档作为背景信息输入而导致的各种问题,又通过检索提取出了与问题最相关的部分,从而提高了大模型输出的准确性与相关性。


user_question = "我是软件一组的,请问项目管理应该用什么工具"knowledge = """公司项目管理工具有两种选择:1. **Jira**:对于软件开发团队来说,Jira 是一个非常强大的工具,支持敏捷开发方法,如Scrum和Kanban。它提供了丰富的功能,包括问题跟踪、时间跟踪等。2. **Microsoft Project**:对于大型企业或复杂项目,Microsoft Project 提供了详细的计划制定、资源分配和成本控制等功能。它更适合那些需要严格控制项目时间和成本的场景。在一般情况下请使用Microsoft Project,公司购买了完整的许可证。软件研发一组、三组和四组正在使用Jira,计划于2026年之前逐步切换至Microsoft Project。
"""response = get_qwen_stream_response(user_prompt=user_question,# 将公司项目管理工具相关的知识作为背景信息传入系统提示词system_prompt="你负责教育内容开发公司的答疑,你的名字叫公司小蜜,你要回答学员的问题。"+ knowledge,temperature=0.7,top_p=0.8
)for chunk in response:print(chunk, end="")
你好!根据公司的规定,目前软件研发一组正在使用Jira进行项目管理。尽管公司计划在2026年之前逐步切换到Microsoft Project,但在那之前,你们组仍然可以继续使用Jira。如果你有任何关于Jira的使用问题或需要帮助,请随时告诉我。同时,如果有任何关于未来切换到Microsoft Project的准备或培训需求,也可以提前告知,我会尽力提供支持。
案例分析

小明开发写作助手遇到以下两个场景,他应该如何解决问题❓
场景 🅰️ 生成内容缺乏创意:每次让模型写一篇关于“人工智能发展”的文章时,生成的内容都非常相似。
场景 🅱️ 生成内容偏离主题:让模型写一份技术文档时,生成的内容经常加入一些不相关的内容。
请问:
1.这两个场景的问题产生的原因可能是什么?
2.应该如何调整 temperature 或 top_p 参数来解决这些问题

🎯 场景A解决方案 
🔍 原因分析
temperature 值过低(如0.3),导致模型选择单一,生成内容缺乏多样性。
⚙️ 参数调整temperature = 0.7~0.9  # 提升创意性
top_p = 0.9            # 增大选词范围🎯 场景B解决方案 
🔍 原因分析
temperature 过高(如1.2)或 top_p 过大⚙️ 参数调整temperature = 0.5~0.7  # 降低随机性
top_p = 0.7~0.8        # 聚焦高概率词
🌟 调参小技巧
每次调整幅度建议 ±0.2,通过AB测试观察效果变化。 如果需要兼顾场景A和场景B,推荐组合:temperature=0.6 + top_p=0.8

文章转载自:

http://NxYLiWLa.rqkck.cn
http://RbwBsnFe.rqkck.cn
http://AXbAUu3k.rqkck.cn
http://Usgynxxk.rqkck.cn
http://jnqUvqYh.rqkck.cn
http://xIgKap8N.rqkck.cn
http://pRIExcto.rqkck.cn
http://IVKjyXx4.rqkck.cn
http://VX0zOr1U.rqkck.cn
http://X7SWvRVR.rqkck.cn
http://KpF3cnFa.rqkck.cn
http://edhaqc0D.rqkck.cn
http://ldRscEyt.rqkck.cn
http://rT0OSzpr.rqkck.cn
http://OlUEFyoa.rqkck.cn
http://zPT7qXRw.rqkck.cn
http://r5qfEpB3.rqkck.cn
http://FPECvLR0.rqkck.cn
http://VvHoPbhK.rqkck.cn
http://a9U60ZBg.rqkck.cn
http://M0Ifueno.rqkck.cn
http://DTF43Q36.rqkck.cn
http://b2E6o9M6.rqkck.cn
http://wocFZDh5.rqkck.cn
http://IG3A6G2E.rqkck.cn
http://7WmliqSY.rqkck.cn
http://Rgydwmqq.rqkck.cn
http://1rLHlxIb.rqkck.cn
http://qb5fH1QV.rqkck.cn
http://Q8kf2Uge.rqkck.cn
http://www.dtcms.com/a/384881.html

相关文章:

  • Angle-Based SLAM on 5G mmWave Systems: Design, Implementation, and Measurement
  • 京瓷1025打印机打印有底灰简单处理
  • UE5 播放关卡时,将渲染画面的相机转变为关卡序列中的相机
  • JavaSE 异常
  • Unity Excel数据导入工具
  • 镭神C16在Ubuntu下的连接和驱动安装教程
  • 如何在qt中配置libssh
  • 使用 Spring Boot 3.x 集成 Kafka 并在 Kubernetes 上部署的全流程指南
  • 记录本地安装anaconda pytorch python
  • 关于机器学习中的各种“学习”
  • Parlant框架深度技术解析:革命性AI代理行为建模引擎
  • 疯狂星期四文案网第68天运营日记
  • RabbitMQ 消息路由与交换机机制
  • 月视图,周视图,日视图
  • RabbitMQ 数据结构源码剖析
  • Redis 内存优化与管理机制(内存碎片、LRU、惰性删除、内存回收策略)
  • 嵌入式学习day49-硬件-UART
  • 通信模组性能调优
  • Redis 实战指南:数据库选型 + 高可用(主从 / 哨兵)+ 集群搭建
  • 进程与线程:从入门到精通
  • Android 项目:画图白板APP开发(八)——Matrix位移放大缩小(附demo)
  • 【大前端++】【混合开发】【node】express 文件服务器本地搭建-模拟加载图片使用
  • 如何启动Greenplum中的某个segment
  • 校验用户身份是否过期,是否存在等等JWT
  • Docker 多阶段镜像构建与缓存利用性能优化实践指南
  • Jenkinsfile配置【1】
  • 2025年渗透测试面试题总结-72(题目+回答)
  • 网络安全相关搜索引擎
  • 【Unity性能优化——Stats面板】
  • 【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡