作者:寒斜
AIGC 持续火爆全球,越来越多的场景开始接入并体现非凡的价值。其中应用广泛的场景之一就是智能知识问答,它改变了人们学习的方式,从阅读式到问答式,让知识的获取更加精准有效。开源软件拥有着广泛的求知群体,AIGC+ 社区的结合是学习型社区未来演进方向上的一个新颖的尝试,今天我们结合 RocketMQ 学习社区的实践来跟大家聊聊构建该类场景的经验以及遇到的一些挑战。
学习社区的新范式
学习社区本身的诉求是希望能够快速传播知识、提升影响力,而社区开发者则是希望更快、更及时、更准确的获得专业知识。
以往从社区获取知识的方式有两种:
- 翻阅社区的文档和社区提供的源代码进行自主学习;
- 和社区的技术大牛进行交流,获取答案。
两种方式都存在一定的问题, 第一种自学的成本较高,为了更好的理解相关的基本概念,需要根据快速入门文档一步一步操作,然后继续深入了解其他的知识点,想要获取更关注的知识成本较高,而且因个体理解的差异,社区传播知识的效果也不一定能够令人满意;第二种虽然可以准确获得想要的知识,对个体知识的掌握也好于第一种,但是社区专家的解答往往不是实时的,所以不论是对于开发者的学习,还是对社区知识的传播来说效率都不高。
现在有了第三种方式:基于大语言模型的专业知识问答,社区开发者可以随时随地进行专业知识提问,享受 24 小时专家服务, 对于学习社区而言,传播自身知识的效率也变得更高了。
专有语料库的智能问答技术基本原理
如图所示, 专有语料库的智能问答系统分为两个部分:
- 语料库的录入,管理员将专业的社区资料进行上传,智能问答系统会对文档进行切片,然后通过 embedding 算法将其转化为向量数据,存储下来等待检索;
- 问题解答,用户输入的问题经过向量转化后通过近似搜索算法跟向量数据库的内容做比对,得到近似值答案后,结合提示词模版以及用户问题一同输入给大语言模型,大语言模型做归纳总结后返回给用户。所以系统的完整功能既包含直接的答案输出(根据大模型能力结果可能不准确,主要是“幻答”),也包含根据向量近似值检索出来的原文列表。后者作为辅证,帮助学习者判断答案的正确与否。
生产的挑战
相较于技术方案的论证,真正想把智能问答能力发布到生产有着非常多的挑战,下面来跟大家共同探讨一下。
安全
安全始终是 AIGC 类服务最需要关心的问题,没有之一。主要包含以下几点:
- 数据安全
- 内容安全,包含输出和输出
- 系统安全
数据安全主要是指使用大模型服务,尤其是境外服务会导致数据跨境,这是不能被允许的;
内容安全主要是用户输入以及结果输出不能包含涉黄涉恐的内容;
系统安全则是攻击者可以通过提示词诱导导致一些机密信息的泄露。以上的安全问题都是需要被严重关切。
安全问题解决方案
数据安全的解法就是使用完全合规的大模型服务或者完全托管开源的模型实现 100% 私有化,RocketMQ 学习社区是基于开源的 chatlm6b 问答系统方案并且使用阿里云多款产品组合,从而实现模型服务和业务逻辑一体化的 AI 应用。
chatlm6b 问答系统方案:
内容安全,针对输入内容做安全算法过滤, 阿里云的绿网服务能够很好的支撑这一点,规避使用者输入不合规的问题,输出结果的约束则是通过提示词工程完成-仅允许回答领域内的问题。
系统安全,应对提示词注入(PI)的风险,则可以考虑采用启发式方法,在恶意输入到达前将其过滤或者使用专用 LLM 来分析传入的提示并识别潜在的攻击。
相关的解决方案可以参考:https://rebuff.ai/
服务高可用
社区的智能问答系统上线之后,必然要面对更多的访问请求。模型推理本身无法并行,意味进入模型推理的请求需要排队处理,如何快速拉起更多的模型服务,应对并发请求,是线上生产面临的现实问题;此外如何应对单点服务故障以及如何对数据进行容灾备份,都是生产服务必须考虑的问题。
成本/效率/体验的平衡
如何更快的交付业务服务,如何实现体验和成本的平衡,也是摆在实际生产中的问题。
如果你选择了模型自托管,有两种使用 GPU 的方案,第一种是自己买卡搭建服务,第二种是租赁云厂商的服务器。第一种需要很强的技术背景,并且需要处理好服务的高可用,第二种则需要对 GPU 的消耗进行精打细算,任何一家云厂商提供的 GPU 服务费用都不低。除此之外随着业务交付时间的临近,处理非业务的技术问题也会增加业务交付的风险,业务研发投入的减少也会影响服务的使用体验。
一句话总结就是,实现成本、效率、体验三者的平衡绝非易事。
RocketMQ 学习社区的探索
RocketMQ 学习社区的构建,采用的是阿里云 Serverless 架构,实现百分之百的私有化,并且尽最大可能得解决安全问题。通过 Serverless 实现成本/效率/体验的平衡以及服务的高可用。此外在网络层面使用了更安全的 内网服务,更大程度的杜绝系统关键信息泄露,同时还保留了切换商业模型服务的能力,方便在后续切换时获得更加精准的问题答案。
RocketMQ 学习社区 Serverless 架构方案
专业安全团队安全水位评估结果
开源模型地址
https://github.com/imClumsyPanda/langchain-ChatGLM
总结
除了以上的生产挑战,我们也遇到了非常多的工程化研发中的细节问题,比如 Serverless 架构的模型服务部署,端到端的性能调优,后续会跟大家一一拆解,做更详细的文章分享。
我们相信,大模型的出现在持续的改变这个世界,随着基于专业语料库的智能问答技术的成熟,更广泛的行业如教育,医疗,法律等也都会被惠及。开源社区也会迎来崭新的方向,今天把我们的实践跟大家做分享,也希望能有更多的同学参与其中,一起共创,将开源社区传播知识的能力放大,惠普更多的开发者。
RocketMQ 学习社区体验地址
RocketMQ 学习社区是国内首个基于 AIGC 提供的知识服务社区,欢迎大家点击体验(建议PC端体验完整功能):https://rocketmq-learning.com/**
PS:RocketMQ 社区以 RocketMQ 5.0 资料为主要训练内容,持续优化迭代中,回答内容均由人工智能模型生成,其准确性和完整性无法保证,且不代表 RocketMQ 学习社区的态度或观点。
点击此处,立即体验 RocketMQ 学习社区