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

AGI 在网易云信的技术提效和业务创新

We believe our research will eventually lead to artificial general intelligence, a system that can solve human-level problems. Building safe and beneficial AGI is our mission.

                                                                                            ----  OpenAI

通用人工智能 AGI 作为 AI 的终极形态,是 AI 行业内追求的演进方向,从早期的图灵测试,到现在的 ChatGPT,AGI 的研究一直是 AI 领域的热门话题。ChatGPT 的出现让大家第一次意识到 AGI 的能力已经有了这么大的进展。

当然,当前阶段 AGI 还远未成熟,AI 辅助生成内容(AIGC)的方式是现阶段应用的主流方式。特别是最近半年以来,大模型行业每天都在发生新的进化,网易云信在这股浪潮下一直在思考,我们的业务和产品可以怎么更好的赶上这一波创新的浪潮,今天要讨论和分享的也是最近一段时间我们业务的思考和实践。

为了便于说明后续的一些实践,先介绍下云信的产品形态,作为 PaaS 平台,我们主要提供简单易用的 SDK API 接口,帮助开发者集成出通信能力,包括 IM 通信和 RTC 语音通信。这个图里可以看到我们提供的主要几个层次的服务。

  • 下层是通信网络,这个网络可以承载媒体、信令、消息等。

  • 第三层是PaaS服务,是我们的核心SKU,包括IM即时通讯、音视频通话、直播、点播等。

  • 第二层是整体的支撑能力,比如即时通讯里的单聊、群聊和大型的聊天室,音视频通话里的实时视频、美颜降噪等能力。

  • 最上层是场景方案,我们希望提供给客户更简单易用的解决方案,包括可以直接插入各场景的组件。在娱乐社交、教育、医疗、金融等场景下,我们都有对应的代码级别的、能直接使用的解决方案。

软件研发生命周期和 AIGC 的结合场景

现在已经有很多种 AIGC 的应用方式,比较常见的一类是文字生产能力,输入一段文本,经过生成式 AI 模型处理后,进一步扩展新的内容,包括文本、代码、图片、音频、视频等。还有一种是多模态生产能力,就是输入图片、视频、音频等内容,再进一步生成更复杂的图片、音视频等。

这两种方式有一些已经相对成熟,特别是像文字生产能力,有很多已经上线在业务生产环节使用。比如生成营销内容、销售手册,包括写作、创作等,ChatGPT 的训练素材大半来自于 github,所以它对代码的理解非常强,生成的质量也很高。

 

那这些应用方式怎么与研发生命周期结合起来的?我们分析一个经典的软件研发生命周期的图例。


 

这里定义了几个阶段:需求分析、产品设计、开发、测试和部署、运营阶段,上面提到的文字、图片的生产能力,就可以切入到这里的每一个环节的。

  • 在需求分析阶段,有很多资料需要收集和汇总,要创作很多文案,包括分析需求,调研市场,生成用户故事,这些都可以利用文本生成能力。

  • 在产品设计阶段,产品交互设计、系统架构设计、流程图设计都可以通过 AI 的能力去降低工作量。

  • 在开发阶段方面的应用,比如代码生成、代码重构、代码解释、测试用例编写、辅助数据生成等有相应的工具。

  • 上线、运营、售后阶段,也可以通过使用 AI 能力,做线上性能和数据分析,建立智能文档问答、智能客户服务系统满足高效运营要求。

而这些 AIGC 能力和研发生命周期的结合的应用方式,还是得益于 AI 带来的更低成本的知识理解和智能决策、更强的协作和沟通能力、更好的工具和平台。    


 

  • 知识理解和智能决策:AIGC 的出现,极大地降低了我们跨领域知识学习的成本,无论是新的知识技能的学习,还是对已有知识的进一步深入,都得到了极大的便利。对于我们这种 PaaS 企业来说,这一点尤为明显。我们经常需要接触来自不同行业,不同领域,不同方向的客户,而 GPT 能够帮助我们快速获取并理解这些新领域的知识,有效地补足我们的知识短板。例如,我们可以用麦肯锡的方法论向 GPT 提问,通过这样的互动,我们能迅速学习并掌握新的知识。

  • 协作和沟通:我们每天都要面对大量的信息,这些信息的理解和流转是一个很大的消耗。然而,AI 的提取、总结、抽象和规范能力,可以帮助我们有效地处理这些信息,减轻信息过载带来的压力,缓解团队协作的瓶颈。例如,聊天工具的每日总结功能、文档工具的自动改写能力以及数据透视功能,都极大地提高了我们的工作效率和协作能力。

  • 工具和平台:通过开源模型和开放 API 等的能力,将 AI 能力整合到已有的工具平台上,可以有效地对我们现有的工具和平台进行增强,提高我们的创作能力,降低创新的门槛。通过使用诸如 Copilot、Notion、Midjourney 这样的工具,我们能够快速生成代码、设计图、文档等,从而大大提高单位时间内的生产效率。 

云信 AIGC 的一些探索和实践

结合案例再看一下 AI 的能力和云信业务的实践方式。

首先是 SDLC 的产品需求分析阶段:

下图是我们研发流程的一个流程示意,表示了我们从接受需求,到评估、排期、开发、上线过程中各个角色应该做的事。每个框都是每个角色应该做的内容指引,图比较小,但其实细节不重要,这个流程很复杂,里面的某一个环节做得不好,就会影响到下一个环境,环环相扣,最终拖延了上线周期,或产生线上 bug,最终影响客户,影响效率。

 

但其实效率折损最大的漏洞是在这张图的外面,就是怎么获取需求,怎么和客户沟通,怎么知道客户想要的东西的诉求,这个才是最难的,写代码都还是其次了。我们作为 To B 的业务与 To C 的产品有一些不一样的地方,我们的客户是企业,企业的数量是远远小于终端用户的数量的,我们的新客户不像 C 端产品, C 端产品一个新功能上线,目标就是几百万新客户,达不到好像就很失败了,而 To B 的客户是用手指头数的,是一个一个谈下来,一个一个销售、售前去攻下来的,所以每一个客户都对我们非常重要,我们要不断挖掘怎么找到新客户的路径。

因此,在产品市场分析阶段,我们一直在探索如何将我们的 AI 技术运用到客户获取过程中,特别是如何提高获取潜在有效客户的效率。一种可能的解决方案是我们可以查看应用市场的 App 排行榜,分析那些客户的业务场景是否与云信匹配,是否有竞品存在,以及客户的工商信息,市场信息和背景信息等。但这个过程,获取排行榜,以及后续的分析和识别工作需要大量的人力投入。

然而,随着 AIGC 技术的发展,我们发现它具有极强的指标抽象和提炼能力。加上应用市场抓取的信息一般数据量不会太大,非常适合进行 few-shot 学习。通过训练 AIGC 模型,我们可以自动化地进行这些分析和识别打标工作,极大地提高了我们的工作效率。同时,这样的方法也可以帮助我们更精准地定位潜在客户,从而提高我们的市场竞争力。


 

第二个是 AIGC 与开发过程的结合

我们借鉴了微软基于 OpenAI 构建 Copilot 产品线的思路。实际上,我们认为 Copilot 这个概念非常适合当前 AIGC 的能力定位。AI 的作用就像一个助手,帮我们查漏补缺、做一些繁琐的工作,但并不是要取代我们,只是作为副驾驶,提供建议和想法,最终的决策还是由程序员自己来做。这种角色定位在当前 AI 的能力还未完全发展,在还未达到真正的通用人工智能(AGI)时,是非常匹配的。

例如,GitHub Copilot 的能力可以辅助我们进行代码补全、生成代码片段、排查和修复问题。

我的同事还将 OpenAI 集成到了我们 GitLab 的 MR 流程中,触发 AI Review 提供一个代码提交时的检查功能。

ChatGPT 给研发带来的提升,并不仅仅是代码的生产数量,还包括一些思考方向的优化。程序员有时候会很纠结,比如在打开一个空白的代码页面准备开始工作的时候,需要考虑很多复杂的问题,比如变量名怎么取、文件名要表达什么信息、函数的组织关系应该如何等等。但在 Copilot 的帮助下,很多问题能提供比较好的模板,给我们提供 quick start 的思路。

使用这类 AI 工具其实也是一个工程优化的过程。AI 当前并非处于完全可控的状态,我们需要不断进行尝试、调整和优化。在这个过程中,我们对于模型的理解其实是比较重要的,以下几个 TIPS 可以参考。

 

  • 首先,我们需要给模型提供明确的指令,并尽量减少歧义。对于程序员来说,这个原则可能会感到既熟悉又陌生。在写传统编程语言时,明确的输入是一个基础要求,但当我们使用自然语言描述时,情况就不太一样了。自然语言的信息量大且容易预设一些前提,这就产生了所谓的“知识的诅咒”——我们很难把自己明白的事情清楚地解释给不明白的人。这个问题在与 AI 模型交流时尤其突出,因为大模型的思考模式并不完全和我们一致。例如,当我们让模型“翻转一个单词”的拼写时,大模型的基础单元是 token,它可能只是以 token 为单位进行了翻转,而没有以字母为单位进行翻转,这个和我们的一般的认识是不一致的。

  • 其次,我们需要让模型有思考的时间。比如使用 COT(Chain of Thought)思维链模式,按步骤指导模型,明确每个步骤的输出,这样可以让模型更好地理解操作要求。

  • 此外,无论是使用 one-shot 还是 few-shots,都是给模型提供示例,让它能按照示例明确需求,示例无论对于机器还是对于人类的学习都是一个非常重要的步骤。

  • 最后,如果你觉得不确定,也可以让模型在条件不足时提问。在我们补充足够的信息后,模型再输出内容。这样可以确保结果的准确性。

借鉴以 AI 为 Copilot 的理念,我们让各个团队在业务开发过程中自行探寻针对特定场景的解决方案。例如,接下来要介绍的一个实际案例——“标注助手”。

 

我们的工作场景中,仍有许多涉及到传统机器学习算法的部分需要进一步优化,这类算法的效果很大程度上取决于我们进行标注的数据量——用人工的努力创造智能。

以我们的会议产品为例,我们为用户提供了集成到他们应用的会议模块。在这其中,背景虚化是一个普遍的需求。然而在一些特殊情况下,比如人物挥手的时候,背景虚化的效果不够理想。通常我们会通过收集大量训练素材,然后人工标注来改进算法,但是素材质量和标注结果通常难以达到我们的期望。

此时,AIGC 的多模态能力就能够发挥其独特优势,帮助我们解决这些问题。

我们在通过反馈得到一些 Bad Case 后,可以通过 BLIP 把 Bad Case 描述出来,然后通过 Stable Diffusion 生成足够多的 AI 图片,然后通过 Grouding Dino 把需要提取的内容框出来,再通过 SAM 模型把人像分割出来打标。这个过程可以通过程序串起来,降低人工标注的投入成本。


这种方法的优点在于显著减少了标注所需的时间和人工成本,相较于传统的手动标注,工作效率提升的同时还能保持非常高的精确性。在达到相同的精度下,我们的模型能够维持在原来大小的一半。后续我们可以将这整个流程进一步规范化和标准化,形成一个自动化的机器学习框架,用于更广泛的需要图像标注的场景。

 

以 AI 为 Copilot 的思维方式并不仅限于产品售前和售中的环节,对于售后服务,尤其是在面向开发者的 To B 业务中,AI 也能发挥重要的作用。我们知道,在 To B 业务中,特别是在 PaaS 类型的服务中,技术支持至关重要。我们面对的客户是开发者,他们可能提一些复杂的问题,需要写这段代码的研发花很大的精力和时间,才能理解和解决这类问题,为了尽量减少这类对研发资源的占用,我们需要为技术支持团队提供更好的工具和能力,以便他们更有效协助客户排查和定位问题。

我们碰到的常见的问题可以大致分为两类:

  • 崩溃和异常,这是一类严重的问题,它表示程序出现了不符合预期的情况。我们建立了名为“Marvel”的异常收集系统,用于收集线上产生的堆栈,异常信息等数据。

  • 另一类是功能和效果问题,比如在提供流媒体服务时,音视频效果的指标出现偏差、画质下降、音频卡顿等。这类问题并不会导致程序崩溃,但 SDK 的使用方式、API 的调用顺序、参数的使用等都可能影响最终的效果。要解决这类问题,需要非常精确地还原现场,我们构建了一个名为“指南针”的数据质量透明平台。该平台可以分析从各个终端上报的调用链,参数等信息,将业务使用的方式,问题发生的背景信息都上报至平台。

通过这两类平台收集到的信息,再结合我们过往的经验、汇总的决策树、源码信息等,作为上下文输入到大模型中。通过 AI 的帮助,我们可以得到一个初步的诊断,这可以帮助减轻我们筛查问题、分配问题、定位问题的人力瓶颈,我们把这个工具叫做 TroubleShoot Copilot。


 

在 AIGC 产生价值的环节里面,有一个很典型的用法是增强的知识库, 围绕知识库建立更好的服务体系,特别是以私有数据为基础的知识库显得尤为重要,因为企业内部信息大都是在 AI 模型预训练之外的,主要包括以下几类:

  • 第一是产品能力知识库:这部分知识库主要关注我们的产品功能、性能和优化技巧。这些信息帮助我们的技术支持团队更好地理解产品,从而提供更有效的帮助。。

  • 第二是客户信息知识库:这包括客户的详细信息,如客户档案、服务记录等,这些信息帮助我们理解客户的历史和需求,为客户提供更个性化的服务

  • 第三是个人角色知识库:这种知识库包含特定角色或任务的相关信息,比如自己最常被问到的一些问题,自己负责的代码的一些解释等等,这些知识库可以帮助我们的团队更有效地满足各种角色的特定需求。

第一个场景是文档搜索。开发者平台都有文档搜索,文档搜索说简单很简单,搭一个 Elastic Search 就可以搞定,但说要做好搜索,很难。通常全文检索,在用户对产品理解不足的情况下(通常新用户的状态),很难得到有效的结果,我们产品搭配的搜索服务的满意度就一直不太好。借助 AI 做优化也是我们探索的方向。

GPT 对于私有的数据有几类应用的方式,一是嵌入,把内容做向量化,在外部存储向量化和内容的对应关系,然后把问题向量化后,通过向量的相似度找到对应的内容,这个过程还有很多细节要处理,比如做嵌入的时候,对文档拆分有较强的要求,我们做向量化的内容时,得到的长度,直接影响了最终搜索的效果,如果分的太小,那信息量太少,如果分的太大,就引入了太大的背景噪音。二是微调,基于开源的模型搭建,把训练素材投给开源的大模型,这个过程对训练数据集和训练硬件资源的要求也不低。

我们尝试的方案是综合多种方式的优势:通过 AI 去识别用户输入的搜索意图,拆解出明确的搜索关键字,把客户的问题与库里常见的问法和关键词结合起来,得到用户准确想搜索的内容,再通过全文检索的方式得到上下文,再把上下文通过 AI 进行总结和提炼,返回一个更有逻辑的回答,通过这样的方式把文档的搜索能力更好的体现出来。

第二个场景是客户服务过程。我们做客户服务时,通常会通过企微群的方式提供技术答疑服务,在群里可以实时解答开发者在使用我们产品过程中遇到的各种问题。而在此过程中,留下的服务记录和信息反馈对于我们而言也是极其宝贵的资产。它们可以帮助我们生成最佳实践、编制常见问题解答,甚至进行客户情绪分析。

然而,一个挑战就在于这种基于服务群的信息管理方式。因为它们缺乏有效的会话管理机制,处理这些会话的过程就变得十分复杂。想象一下,我们每个月要回答 4000 个问题,每个问题可能需要多次交互才能得到解答。而在这过程中,还可能出现多个问题同时交叉提问的情况。问题的内容长度不一,交互有时候会非常长。这就使得对技术支持的质检,以及对客户信息的回溯变得非常困难、耗费人力。

这正是我们需要 AI 技术帮助我们的地方,AI 能够处理这些繁复的提取、抽象和总结工作。例如,我们可以训练 AI 模型来识别和跟踪群会话内容,抽取每个独立的问题线索,对客户问题处理进度、待办事项落实情况、客情关系是否维系妥当、是否升级投诉做好分类和打标、汇总工作。这样我们就能更好地管理我们的技术支持记录,提高我们的服务质量,同时也为改进产品和优化用户体验提供了有力的数据支持,这是我们的 Customer Copilot 的作用所在。


 

第三个场景基于个人角色智能化的应用。这是我们正在尝试的一个新的方向,通过导入个人的专属的知识库信息,可以打造一个 24 小时在线的 AI 替身,协助本人回答问题,以便保持自己更持续的专注状态,减少一些思考中断。

 

总结

今天的案例,展示了我们如何从小场景、小功能切入,以 Copilot 的角度解决问题,提升产品研发的效能。研发效能的改进需要全体人员共同参与,这些 Copilot 工具集都是一线研发同学在编写代码、查找问题和服务客户过程中,为了解决问题而思考的方案。这也是这次 AI 浪潮我们感受到的一个变化:大家不仅愿意思考,而且敢于付诸实践。在这之前,有一些提效、创新的想法时,落地过程中会遇到很多阻碍,包括技术限制、人力限制、跨团队协作等,从而就把想法束之高阁了。而现在,从想法到落地的门槛降低了,有越来越多的工具帮助你写代码,分析思路,极大地降低了试错的成本,创新的动力也更强。

前面也提到 AIGC 和软件研发生命周期的结合应用中,AI 的参与会让我们对整个 SDLC 的各个阶段需要投入的时间比例进行调整,在这之前,SDLC 过程中,编码的细节非常多,需要仔细斟酌,有很大的体力工作量,还有就是匆匆做完系统设计后,在编码的过程中碰到具体问题再调整设计,导致编码时间被拉长放大。在应用了 AI 辅助生成代码的工具能力后,编码开发阶段以后可能不会是最占用研发人员时间的周期,AI 工具可以协助生成代码,缩短中间机械重复的胶水代码的生产时间。相应的,研发应该花更多的时间在系统设计,软件工程方面,这是区分研发水平高低和能力差别的更核心的特征,如何让代码能满足时间上的、规模上的、业务权衡取舍的变化:到底是一次性的代码还是要求运行几年以上的代码方案是不一样的,在不同用户的规模的要求不一样,在面对各种不同路径要做的决策,比如风险、ROI、是否接受不好的现状等等,都需要我们这个主驾有更多的脑力投入到里面,这个才是程序员应该发挥价值的点。

最后借用一张图来结束这次的分享,我们强调研发效能改进的重要性,其中一个关键因素是研发人员的体验是否足够好,一个好的研发体验可以带来更高的效率和幸福感。

研发体验的构成包括创造力(生产力的一部分)、研发影响力(将想法快速转化为具体成果的顺畅度)以及环境、流程和工具的满意度这些因素相加,再乘方协作,最终形成一个优秀的开发体验。

AIGC 所涉及的诸多内容恰好能进一步增强这个公式的各个部分。无论是工具的生产力、流程的变化、快速尝试的能力,还是协作方面的改进,都可以通过 AI 能力得到强化。这正是 AI 助力研发效能的最佳途径,也是研发人员能从 AI 中获得幸福感的最好方式。

 

相关文章:

AGI 在网易云信的技术提效和业务创新

We believe our research will eventually lead to artificial general intelligence, a system that can solve human-level problems. Building safe and beneficial AGI is our mission. ---- OpenAI 通用人工智能 AGI 作为 AI 的终极形态,是 AI 行业内追求的演…...

线性代数的学习和整理9(草稿-----未完成)

3.3 特征值和特征向量是什么? 直接说现在:特征向量这个块往哪个方向进行了拉伸,各个方向拉伸了几倍。这也让人很容易理解为什么,行列式的值就是特征值的乘积。 特征向量也代表了一些良好的性质,即这些线在线性变换后…...

React的useReducer与Reudx对比

useReducer 和 Redux 都是用于处理应用程序的状态管理的工具,但它们在概念和使用场景上存在一些区别。 useReducer: useReducer 是 React 提供的一个 Hook,用于管理局部状态。它接受一个 reducer 函数和初始状态,并返回一个包含当…...

深度学习环境搭建 cuda、模型量化bitsandbytes安装教程 windows、linux

cuda、cudann、conda安装教程 输入以下命令,查看 GPU 支持的最高 CUDA 版本。 nvidia-smi cuda安装(cudatoolkit) 前往 Nvidia 的 CUDA 官网:CUDA Toolkit Archive | NVIDIA Developer CUDA Toolkit 11.8 Downloads | NVIDIA …...

pythond assert 0 <= colx < X12_MAX_COLS AssertionError

python使用xlrd读取excel时&#xff0c;报错&#xff1a; assert 0 < colx < X12_MAX_COLS AssertionError 大意是excel列太多了。主要是xlrd库的问题。最好的方法是不用它&#xff0c;但是我用的其他人提供的工具用到它&#xff0c;没法改。 尝试手动删除excel的列&am…...

js简介以及在html中的2种使用方式(hello world)

简介 javascript &#xff1a;是一个跨平台的脚本语言&#xff1b;是一种轻量级的编程语言。 JavaScript 是 Web 的编程语言。所有现代的 HTML 页面都使用 JavaScript。 HTML&#xff1a; 结构 css&#xff1a; 表现 JS&#xff1a; 行为 HTMLCSS 只能称之为静态网页&#xff0…...

vsCode使用cuda

一、vsCode使用cuda 前情提要&#xff1a;配置好mingw&#xff1a; 1.安装cuda 参考&#xff1a; **CUDA Toolkit安装教程&#xff08;Windows&#xff09;&#xff1a;**https://blog.csdn.net/qq_42951560/article/details/116131410 2.在vscode中添加includePath c_cp…...

ubuntu无法使用apt命令时怎么安装库

如题 因为某些原因&#xff0c;不能直接联网使用apt命令安装库。只能手动去ubuntu镜像源里 找对应的包的deb安装文件 镜像源地址&#xff08;适用于AMD64架构,就是常见的PC的X86-64啦&#xff09; 镜像源地址&#xff08;适用于ARM64,armhf,ppc64el,riscv64,s390x架构&#xff…...

防火墙firewall

一、什么是防火墙 二、iptables 1、iptables介绍 2、实验 138的已经被拒绝&#xff0c;1可以 三、firewalld 1、firewalld简介 关闭iptables&#xff0c;开启firewalld&#xff0c;curl不能使用&#xff0c;远程连接ssh可以使用 添加80端口 这样写也可以&#xff1a;添加http…...

拿来即用,自己封装的 axios

文章目录 一、需求二、分析1. 安装axios2. 新建一个 ts 文件&#xff0c;封装 axios3. store 存放 token 信息4. 使用5. 文件 type.js 一、需求 在日常开发中&#xff0c;我们会经常用到 axios &#xff0c;那么如何在自己的项目中自己封装 axios 二、分析 1. 安装axios np…...

Hadoop小结(下)

HDFS 集群 HDFS 集群是建立在 Hadoop 集群之上的&#xff0c;由于 HDFS 是 Hadoop 最主要的守护进程&#xff0c;所以 HDFS 集群的配置过程是 Hadoop 集群配置过程的代表。 使用 Docker 可以更加方便地、高效地构建出一个集群环境。 每台计算机中的配置 Hadoop 如何配置集群…...

使用老北鼻AI免费GPT对话解决gun make安装和解析iso9660的问题

在学习解析ISO9660镜像文件时&#xff0c;使用了GPT来了解相关的库和gun make编译器的相关知识。这个过程可真是一言难尽&#xff0c;每个问题的回答都模棱两可都需要去证实&#xff0c;不能直接复制粘贴&#xff0c;也不能说GPT的回答一点用也没有&#xff0c;至少GPT给出了一…...

shell脚本语句

一、语句 一、条件语句 一、以用户为例演示 一、显示当前登录系统的用户信息 w命令 二、显示有多少个用户 w | wc -l 显示有7个用户 前两个是固定标题&#xff0c;从第三个开始才是登录用户&#xff0c;所以要统计数量需要 命令&#xff1a;echo $[$(w | wc -l) -2] 显示…...

【LeetCode】2235.两整数相加

题目 给你两个整数 num1 和 num2&#xff0c;返回这两个整数的和。 示例 1&#xff1a; 输入&#xff1a;num1 12, num2 5 输出&#xff1a;17 解释&#xff1a;num1 是 12&#xff0c;num2 是 5 &#xff0c;它们的和是 12 5 17 &#xff0c;因此返回 17 。示例 2&…...

springboot sl4j2 写入日志到mysql

问题描述 springboot初始化的时候&#xff0c;会先初始化日志然后再加载数据源如果用配置文件进行初始化&#xff0c;那么会出现数据源没有加载成功&#xff0c;导致空指针异常 报错排查如下&#xff1a; 搜索报错信息&#xff0c;OBjects.invoke is Null打断点发现。dataso…...

用 PyTorch 编写分布式应用程序

用 PyTorch 编写分布式应用程序 在这个简短的教程中&#xff0c;我们将介绍 PyTorch 的分布式软件包。 我们将了解如何设置分布式设置&#xff0c;使用不同的交流策略以及如何仔细查看软件包的内部结构。 设定 PyTorch 中包含的分布式软件包(即torch.distributed&#xff09…...

空间分析专属 Python 学习资料

空间数据分析能够帮助我们更好地理解地理空间中的模式和关系&#xff0c;从而为决策提供支持。例如&#xff0c;城市规划者可以使用空间数据分析来确定城市发展的最佳方向&#xff0c;环境科学家可以使用空间数据分析来评估污染的影响&#xff0c;而商业分析师可以使用空间数据…...

2. Linux Server 20.04 Qt5.14.2配置Jetson Orin Nano Developer Kit 交叉编译环境

最近公司给了我一块Jetson Orin Nano的板子&#xff0c;先刷了系统&#xff08;1.Jetson Orin Nano Developer Kit系统刷机&#xff09;又让我搭建交叉编译环境&#xff0c;所以有了下面的文章 一 :Qt5.14.2交叉编译环境安装 1.准备 1.1设备环境 1.1.1 Server: Ubuntu20.0…...

vue入门

Attribute 绑定 v-bind:取值方式 开发前准备 安装node.js需要高于15.0 创建vue项目 npm init vuelatest安装 npm install 启动 npm run dev模板语法 文本插值 {{ 变量 }} <p> {{ mesg }} </p>这种方式公支持单一表达式&#xff0c;也可以是js代码&#xf…...

区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用)

以太坊2.0中有两个时间概念&#xff1a;时隙槽slot 和 时段&#xff08;周期&#xff09;epoch。其中一个slot为12秒&#xff0c;而每个 epoch 由 32 个 slots 组成&#xff0c;所以每个epoch共384秒&#xff0c;也就是 6.4 分钟。 对于每个epoch&#xff0c;使用RANDAO伪随机…...

免费开源的vue+express搭建的后台管理系统

此项目已开源 前端git地址&#xff1a;exp后台管理系统前端: exp后台管理系统前端 后端git地址&#xff1a;express后台管理系统: express后台管理系统 安装运行 npm i yarn i 前端: npm run dev | yarn dev 后端: npm run start | yarn start 主要技术栈 前端后端名称版本名…...

【开发】视频云存储EasyCVR视频汇聚平台AI智能算法定制

安防视频集中存储EasyCVR视频汇聚平台&#xff0c;可支持海量视频的轻量化接入与汇聚管理。平台能提供视频存储磁盘阵列、视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、平台级联、H.265自动转码等功能。为了便…...

Ribbon:负载均衡及Ribbon

什么是负载均衡&#xff1f; 第一种轮询算法&#xff0c;依次遍历去执行&#xff0c;达到负载均衡 集成Ribbon 导入pom&#xff0c;在消费者服务里的pom文件导入 <!-- Ribbon 集成 --><!-- https://mvnrepository.com/artifact/org.springframework.cloud/spr…...

【声波】声波在硼酸、硫酸镁 (MgSO4) 和纯水中的吸收研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

使用swoole实现实时消息推送给客户端

一. 测试服务端 //测试服务端public function testServer(){$server new Server(192.168.0.144, 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);$server->on(request, function ($request, $response) {$response->header(Content-Type, text/plain);$response->end("He…...

Ordinals 之后,以太坊铭文协议 Ethscriptions 如何再塑 NFT 资产形态

随着加密市场的发展&#xff0c;NFT 赛道逐渐形成了其独有的市场。但在加密熊市的持续影响下&#xff0c;今年 NFT 赛道的发展充满坎坷与挑战。据 NFTGO 数据显示&#xff0c;截至 8 月 7 日&#xff0c;与去年相比&#xff0c;NFT 市值总计约 56.4 亿美元&#xff0c;过去 1 年…...

Python绘制爱心代码(七夕限定版)

写在前面&#xff1a; 又到了一年一度的七夕节啦&#xff01;你还在发愁送女朋友什么礼物&#xff0c;不知道怎样表达你满满的爱意吗&#xff1f;别担心&#xff0c;我来帮你&#xff01;今天&#xff0c;我将教你使用Python绘制一个跳动的爱心&#xff0c;用创意和幽默为这个…...

Java两整数相除向上取整

方法一&#xff1a;通过三目运算符 &#xff08;简单移动&#xff09; x / y (x % y ! 0 ? 1 : 0);方法二&#xff1a;通过ceil函数&#xff08;不推荐使用&#xff0c;涉及类型转换&#xff09; (int)Math.ceil((double)x/y);// 或者(int)Math.ceil(x * 1.0 /y);方法三&…...

Linux学习之Telnet明文漏洞

yum install telnet telnet-server xinetd -y安装软件。 systemctl start xinetd.service开启xinetd&#xff0c;systemctl start telnet.socket开启telnet。 xinetd来监控端口&#xff0c;然后把数据传给telnet。 ifconfig eth0看一下eth0网卡信息&#xff0c;。 iptable…...

产品经理如何提高用户画像效果?SIKT模型

产品经理做用户画像&#xff0c;最担心被业务方反馈&#xff1a;没效果。这往往是由用户画像与业务场景脱节造成的。那么我们该如何从业务场景出发&#xff0c;让用户画像更有效&#xff1f;一般来说&#xff0c;我们可以采用SIKT模型解决这个问题。 用户画像 ​ 1、SIK…...

ubuntu安装Microsoft Edge并设置为中文

1、下载 edge.deb 版本并安装 sudo dpkg -i microsoft-edg.deb 2. 设置默认中文显示 如果是通过.deb方式安装的&#xff1a; 打开默认安装路径下的microsoft-edge-dev文件&#xff0c;在文件最开头加上: export LANGUAGEZH-CN.UTF-8 &#xff0c;保存退出。 cd /opt/micr…...

Host/ KVM/ Docker/ K8s/ OpenStack/ Mesos简单介绍和区别

Host/ KVM/ Docker/ Kubernetes/ OpenStack 和 Mesos 的简单介绍&#xff1a; - Host&#xff1a; Host 是指物理服务器或虚拟机主机&#xff0c;它们可以运行多个虚拟机或容器来提供计算和存储资源。Host 是云计算和容器化技术中的基本组成部分。 - KVM&#xff1a; KVM 是…...

关于Transformer中的位置编码

位置编码 (Positional Encoding) 位置编码是在自然语言处理中&#xff0c;特别是在 Transformer 架构中使用的一个重要概念。Transformer 架构由于其自注意力机制 (Self-Attention Mechanism) 的特性&#xff0c;对序列中的元素没有固有的顺序感知。这意味着&#xff0c;如果不…...

ABAP 期初库存批量导入 demo1

&--------------------------------------------------------------------- *& Report ZMMCP005 &--------------------------------------------------------------------- 作者&#xff1a; Liv完成日期&#xff1a;描述&#xff1a; 期初库存导入需求简要说明&…...

想用 Python 写游戏,都有哪些好用的游戏开发库?

虽然 Python 在网络爬虫、人工智能、数据分析方面有广泛应用,但它并不是一门专门做游戏开发的编程语言,不过对于小型的游戏开发,Python 还是挺香的。下面为大家介绍几个支持 Python 的 2D、3D 游戏开发库,使用它们,你可以设计出很多有意思的小游戏! Cocos2d Cocos2d 是…...

vue3 路由缓存问题

目录 解决问题的思路&#xff1a; 解决问题的方案&#xff1a; 1、给roter-view添加key&#xff08;破坏复用机制&#xff0c;强制销毁重建&#xff09; 2、使用beforeRouteUpdate导航钩子 3、使用watch监听路由 vue3路由缓存&#xff1a;当用户从/users/johnny导航到/use…...

如何找到一个数的所有质因数,以及如何快速判断一个数是不是质数

前情介绍 今天遇到一个需求&#xff1a;找到一个数所有的质因数。 初步解决 先定义一个判断质数的函数&#xff1a; def is_Prime(number):i 2count 0while i < number:if number % i 0 :count 1i 1if count > 0:return Falseelse:return True 接着定义一个寻找质…...

西瓜书之神经网络

一&#xff0c;神经元模型 所谓神经网络&#xff0c; 目前用得最广泛的一个定义是“神经网络是由具有适应性的简单单元组成的广泛并行互连的网络&#xff0c;它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应”。 M-P神经元 M-P神经元&#xff1a;接收n个输入(…...

C++进阶 特殊类的设计

本篇博客介绍&#xff1a;介绍几种特殊的类 特殊类的设计 设计一个类不能被拷贝设计一个类 只能在堆上创建对象设计一个类 只能在栈上创造对象设计一个类不能被继承单例模式饿汉模式懒汉模式单例模式对象的释放问题 总结 设计一个类不能被拷贝 我们的拷贝只会发生在两个场景当…...

NLP序列标注问题,样本不均衡怎么解决?

【学而不思则罔&#xff0c;思而不学则殆】 1.问题 NLP序列标注问题&#xff0c;样本不均衡怎么解决&#xff1f; 2.解释 以命名实体识别&#xff08;NER&#xff09;为例&#xff0c;这个样本不均衡有两种解释&#xff1a; &#xff08;1&#xff09;实体间类别数量不均衡…...

大端和小端

大端和小端 大端&#xff08;Big Endian&#xff09;和小端&#xff08;Little Endian&#xff09;是两种不同的字节序排列方式&#xff0c;用于解释多字节数据在内存中的存储顺序。 在大端字节序中&#xff0c;高位字节&#xff08;最高有效位&#xff09;存储在低位地址&am…...

C++快速回顾(二)

前言 在Android音视频开发中&#xff0c;网上知识点过于零碎&#xff0c;自学起来难度非常大&#xff0c;不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》&#xff0c;结合我自己的工作学习经历&#xff0c;我准备写一个音视频系列blog。C/C是音视频必…...

【LVS】1、LVS负载均衡群集

1.群集的含义&#xff1a; Cluster、群集、集群 由多台主机构成并作为一个整体&#xff0c;只提供一个访问入口&#xff08;域名与IP地址&#xff09;&#xff1b;可伸缩 2.集群使用的场景&#xff1a; 高并发 3.企业群集的分类&#xff1a; 根据群集所针对的目标差异&a…...

el-tree 懒加载树

el-tree 懒加载树 添加自定义图标指定叶子节点懒加载 <template><div><el-treeclass"filter-tree":data"treeData":props"defaultProps"ref"tree"lazy:load"loadTree":expand-on-click-node"true"…...

到江西赣州ibm维修服务器之旅-联想X3850 x6黄灯故障

2023年08月15日&#xff0c;一位江西赣州工厂客户通过朋友介绍与冠峰售前工程师取得联系&#xff0c;双方对产品故障前后原因沟通的大致情况如下&#xff1a; 服务器型号&#xff1a;Lenovo system x3850 x6 为用户公司erp仓库服务器 服务器故障&#xff1a;正常使用过程中业…...

VMware 虚拟机三种网络模式详解

文章目录 前言桥接模式(Bridged)桥接模式特点: 仅主机模式 (Host-only)仅主机模式 (Host-only)特点: NAT网络地址转换模式(NAT)网络地址转换模式(NAT 模式)特点: 前言 很多同学在初次接触虚拟机的时候对 VMware 产品的三种网络模式不是很理解,本文就 VMware 的三种网络模式进行…...

ASP.NET指定变量数据类型,速度提高了100倍

ASP.NET指定变量数据类型&#xff0c;速度提高了100倍由自动编程人工智能 发表在专区 10亿次求余数为0的计算&#xff1a; ASP运行速度130秒左右 ASP.NET Dim i, c, max 如果不指定数据类型&#xff0c;运行要120秒左右 Dim i, c, max As Integer 指定数据类型&#xff0c;运…...

PyArmor 一键加密

使用&#xff1a; pyarmor obfuscate main.py 参考&#xff1a;Python代码加密方案_python加密代码_wgr_1009的博客-CSDN博客 一 简介 PyArmor是用于保护Python代码的工具&#xff0c;它可以将Python脚本编译成加密的字节码&#xff0c;以增加代码的保护性。它的主要目的是防…...

redis--持久化

redis持久化 在 Redis 中&#xff0c;持久化是一种将数据从内存写入到磁盘的机制&#xff0c;以便在服务器重启或崩溃时能够恢复数据。Redis 提供了两种主要的持久化方式&#xff1a;RDB&#xff08;Redis Database Snapshot&#xff09;和AOF&#xff08;Append-Only File&am…...

管理外部表

官方文档地址&#xff1a;Managing Tables 关于外部表 Oracle 数据库允许您对外部表中的数据进行只读访问。外部表定义为不驻留在数据库中的表&#xff0c;通过向数据库提供描述外部表的元数据&#xff0c;数据库能够公开外部表中的数据&#xff0c;就好像它是驻留在常规数据…...