首页 > 其他分享 >基于 AIGC,RocketMQ 学习社区探索开源软件学习新范式

基于 AIGC,RocketMQ 学习社区探索开源软件学习新范式

时间:2023-06-09 18:07:26浏览次数:53  
标签:社区 服务 模型 AIGC 学习 问答 RocketMQ

作者:寒斜

AIGC 持续火爆全球,越来越多的场景开始接入并体现非凡的价值。其中应用广泛的场景之一就是智能知识问答,它改变了人们学习的方式,从阅读式到问答式,让知识的获取更加精准有效。开源软件拥有着广泛的求知群体,AIGC+ 社区的结合是学习型社区未来演进方向上的一个新颖的尝试,今天我们结合 RocketMQ 学习社区的实践来跟大家聊聊构建该类场景的经验以及遇到的一些挑战。

基于 AIGC,RocketMQ 学习社区探索开源软件学习新范式_问答系统

学习社区的新范式

学习社区本身的诉求是希望能够快速传播知识、提升影响力,而社区开发者则是希望更快、更及时、更准确的获得专业知识。

以往从社区获取知识的方式有两种:

  • 翻阅社区的文档和社区提供的源代码进行自主学习;
  • 和社区的技术大牛进行交流,获取答案。

两种方式都存在一定的问题, 第一种自学的成本较高,为了更好的理解相关的基本概念,需要根据快速入门文档一步一步操作,然后继续深入了解其他的知识点,想要获取更关注的知识成本较高,而且因个体理解的差异,社区传播知识的效果也不一定能够令人满意;第二种虽然可以准确获得想要的知识,对个体知识的掌握也好于第一种,但是社区专家的解答往往不是实时的,所以不论是对于开发者的学习,还是对社区知识的传播来说效率都不高。

现在有了第三种方式:基于大语言模型的专业知识问答,社区开发者可以随时随地进行专业知识提问,享受 24 小时专家服务, 对于学习社区而言,传播自身知识的效率也变得更高了。

专有语料库的智能问答技术基本原理

基于 AIGC,RocketMQ 学习社区探索开源软件学习新范式_问答系统_02

如图所示, 专有语料库的智能问答系统分为两个部分:

  1. 语料库的录入,管理员将专业的社区资料进行上传,智能问答系统会对文档进行切片,然后通过 embedding 算法将其转化为向量数据,存储下来等待检索;
  2. 问题解答,用户输入的问题经过向量转化后通过近似搜索算法跟向量数据库的内容做比对,得到近似值答案后,结合提示词模版以及用户问题一同输入给大语言模型,大语言模型做归纳总结后返回给用户。所以系统的完整功能既包含直接的答案输出(根据大模型能力结果可能不准确,主要是“幻答”),也包含根据向量近似值检索出来的原文列表。后者作为辅证,帮助学习者判断答案的正确与否。

生产的挑战

相较于技术方案的论证,真正想把智能问答能力发布到生产有着非常多的挑战,下面来跟大家共同探讨一下。

安全

安全始终是 AIGC 类服务最需要关心的问题,没有之一。主要包含以下几点:

  • 数据安全
  • 内容安全,包含输出和输出
  • 系统安全

数据安全主要是指使用大模型服务,尤其是境外服务会导致数据跨境,这是不能被允许的;

内容安全主要是用户输入以及结果输出不能包含涉黄涉恐的内容;

系统安全则是攻击者可以通过提示词诱导导致一些机密信息的泄露。以上的安全问题都是需要被严重关切。

安全问题解决方案

数据安全的解法就是使用完全合规的大模型服务或者完全托管开源的模型实现 100% 私有化,RocketMQ 学习社区是基于开源的 chatlm6b 问答系统方案并且使用阿里云多款产品组合,从而实现模型服务和业务逻辑一体化的 AI 应用。

chatlm6b 问答系统方案:

<https://github.com/imClumsyPanda/langchain-ChatGLM>

内容安全,针对输入内容做安全算法过滤, 阿里云的绿网服务能够很好的支撑这一点,规避使用者输入不合规的问题,输出结果的约束则是通过提示词工程完成-仅允许回答领域内的问题。

系统安全,应对提示词注入(PI)的风险,则可以考虑采用启发式方法,在恶意输入到达前将其过滤或者使用专用 LLM 来分析传入的提示并识别潜在的攻击。

相关的解决方案可以参考:<https://rebuff.ai/>

服务高可用

社区的智能问答系统上线之后,必然要面对更多的访问请求。模型推理本身无法并行,意味进入模型推理的请求需要排队处理,如何快速拉起更多的模型服务,应对并发请求,是线上生产面临的现实问题;此外如何应对单点服务故障以及如何对数据进行容灾备份,都是生产服务必须考虑的问题。

成本/效率/体验的平衡

如何更快的交付业务服务,如何实现体验和成本的平衡,也是摆在实际生产中的问题。

如果你选择了模型自托管,有两种使用 GPU 的方案,第一种是自己买卡搭建服务,第二种是租赁云厂商的服务器。第一种需要很强的技术背景,并且需要处理好服务的高可用,第二种则需要对 GPU 的消耗进行精打细算,任何一家云厂商提供的 GPU 服务费用都不低。除此之外随着业务交付时间的临近,处理非业务的技术问题也会增加业务交付的风险,业务研发投入的减少也会影响服务的使用体验。

一句话总结就是,实现成本、效率、体验三者的平衡绝非易事。

RocketMQ 学习社区的探索

RocketMQ 学习社区的构建,采用的是阿里云 Serverless 架构,实现百分之百的私有化,并且尽最大可能得解决安全问题。通过 Serverless 实现成本/效率/体验的平衡以及服务的高可用。此外在网络层面使用了更安全的 vpn 内网服务,更大程度的杜绝系统关键信息泄露,同时还保留了切换商业模型服务的能力,方便在后续切换时获得更加精准的问题答案。

RocketMQ 学习社区 Serverless 架构方案

基于 AIGC,RocketMQ 学习社区探索开源软件学习新范式_开发者_03

专业安全团队安全水位评估结果

基于 AIGC,RocketMQ 学习社区探索开源软件学习新范式_AIGC_04

基于 AIGC,RocketMQ 学习社区探索开源软件学习新范式_开发者_05

开源模型地址

<https://github.com/imClumsyPanda/langchain-ChatGLM>

总结

除了以上的生产挑战,我们也遇到了非常多的工程化研发中的细节问题,比如 Serverless 架构的模型服务部署,端到端的性能调优,后续会跟大家一一拆解,做更详细的文章分享。

我们相信,大模型的出现在持续的改变这个世界,随着基于专业语料库的智能问答技术的成熟,更广泛的行业如教育,医疗,法律等也都会被惠及。开源社区也会迎来崭新的方向,今天把我们的实践跟大家做分享,也希望能有更多的同学参与其中,一起共创,将开源社区传播知识的能力放大,惠普更多的开发者。

RocketMQ 学习社区体验地址

RocketMQ 学习社区是国内首个基于 AIGC 提供的知识服务社区,欢迎大家点击体验(建议PC端体验完整功能):<https://rocketmq-learning.com/>\\

PS:RocketMQ 社区以 RocketMQ 5.0 资料为主要训练内容,持续优化迭代中,回答内容均由人工智能模型生成,其准确性和完整性无法保证,且不代表 RocketMQ 学习社区的态度或观点。

点击此处,立即体验 RocketMQ 学习社区

标签:社区,服务,模型,AIGC,学习,问答,RocketMQ
From: https://blog.51cto.com/u_13778063/6449642

相关文章

  • C语言学习一
    初识C在C中内存地址<==>指针地址intmain(){intnumber=100;//实际是number(int)=100,number是别名returnNULL;}main函数进栈,return出栈注意:&number读取内存地址*(&number)取出number地址对应的值:100intmain(){intnumber=100;//实际变量的声明int*in......
  • 前端学习C语言 - 开篇
    前端学习C语言-开篇前端学习C语言有很多理由:工作、兴趣或其他。C语言几个常见的使用场景:操作系统开发:Linux操作系统的内核就是主要由C语言编写的。其他操作系统也广泛使用C语言进行核心部分的开发。系统级开发和嵌入式编程:C语言具有强大的底层控制能力和高效的代码......
  • 【翻译】使用深度强化学习发现更快的排序算法
    目录Fastersortingalgorithmsdiscoveredusingdeepreinforcementlearning将算法表示为低级CPU指令DRLfordiscoveringfasteralgorithmsTransformerencoderLatencyvaluefunctionsResultsDiscoveringfastersortalgorithmsFixedsortingalgorithmsVariablesorting......
  • vue学习记录 2
    打开昨天的vue项目,没记错的话网上查到的信息说,代码编辑部分就只在src文件夹,包括asset,router和components,其他的全是配置文件。项目新建默认是一个巨大的vue图标和两行链接,布局在HelloWorld.vue,但是我昨天还没找到那个名为logo.png的图标是哪里插进去的。今天先摸清页面,然后做一......
  • 「学习笔记」DP 学习笔记1
    序列DP一般序列DP核心思想:将序列的前\(i\)个数的状态用一个更简单的形式表示出,并且体现出这些状态对后续的影响。题目ABC267D给定一个序列\(a\),找到一个长度为\(m\)的子序列\(b\),使得\(\sumb_i×i\)最大。\(n,m\le2×10^3\)。状态:\(f(i,j)\):前\(i......
  • Postman 中 GraphQL 教程:快速入门学习
    GraphQL是一种用于API的开源数据查询和操作语言,用于API的查询语言和运行时。它使客户端能够精确地指定其数据需求,并获得预测性地结果。GraphQL旨在提高API的效率、灵活性和可靠性。Postman是一款用于API开发的强大工具,它支持REST和GraphQLAPI。Postman还提供了一个用户友好的界面,......
  • 011 数据库学习笔记--游标
    游标:定义:游标是对数据查询结果集的一种访问机制,允许用户对结果集进行逐条访问,即单条数据。访问对象是,结果集可以理解为定义在特定结果集上的指针,控制这个指针,遍历数据集或制定特定的行--对其进行读取或写入作用:定位到结果集中的某一行,对当期位置的数据进行读写数据读取......
  • 一定要收藏的PKPM学习笔记
    01裂缝与挠度裂缝,模型里计算裂缝是按矩形截面计算弯矩,而不考虑翼缘影响,实际上翼缘影响是很大的,也就是说模型计算出的结果裂缝偏大,一般梁支座裂缝不考虑,因为本来强柱弱梁也是要出现塑性铰的,但是梁底部裂缝要考虑,而且梁尤其是KL底筋配筋结果最好比计算结构稍大,也就是弯矩调幅0.8而不......
  • 强化学习On-policy vs Off-policy
    强化学习On-policyvsOff-policy这里我们讲讲强化学习中on-policy和off-policy的区别。实际上这个区别非常简单,就是说如果算法在更新它的policy的时候,它是依赖于前面的Qvaluefunction的话,那么它就是on-policy的。反之如果它是依赖于随机的一个输入或者人为的操控,那么它就是一个......
  • 非科班自学计算机需要学习什么内容?
    文章目录前言一、方向>语言的选择1.1语言vs方向1.2重要观点!二、自学方法另外说到计算机相关基础推荐书籍:三、自学资源前言非计算机专业,又想通过自学找到计算机相关工作的同学还是很多的。并且这条路也是可行的,毕竟计算机专业的同学也要自学。一、方向>语言的选择其实在校生如果......