• [技术干货] 万字长文 详解语义解析中的NL2SQL【转】
    NL2SQL是语义解析和智能问答领域的前沿问题,旨在将人类的自然语言问句转化为结构化查询语句,是实现人类和数据库无缝交互、提升数据库分析效率的核心技术。这一技术对于推动人工智能与数据库的交互,实现更高效、更便捷的数据查询和分析具有重要的价值。我们团队自成立以来,一直致力于结合公司实际业务和项目需求,自主研发高效的NL2SQL算法。我们的研究在多个公开数据集上取得了显著的效果,展示了我们的算法在自然语言处理和语义理解方面的优势。同时,我们也在真实的业务项目中积累了宝贵的实践经验,这使我们深入理解了NL2SQL技术在实际应用中的挑战和可能性。本文的主要内容将围绕NL2SQL技术的发展历史和我们的工程实践经验进行分享。我们将首先回顾NL2SQL技术的发展历程,阐述其背后的基本理念和技术原理,然后详细介绍我们在工程实践中如何利用和优化这项技术,以满足实际业务的需求。我们希望通过分享我们的经验和实践,能为这个领域的研究者和实践者提供一些有益的参考和启示。一、NL2SQL问题描述以往,当业务数据分析人员或用户需要通过SQL查询业务数据或进行数据分析时,他们通常需要经历以下繁琐的步骤:需求总结:首先,业务数据分析人员或用户需要明确并总结他们想要查询的数据的具体需求。这包括确定需要查询哪些字段、设置哪些条件、以及可能的数据聚合方式等。后端工程师介入:随后,后端工程师需要根据这些需求编写相应的SQL语句。这要求他们不仅要理解业务需求,还要确保SQL的准确性和性能。完成SQL编写后,后端工程师还需要部署服务并建立与数据库的连接。前端工程师的任务:在后端工程师完成SQL部署之后,前端工程师需要介入,为这条SQL查询编写对应的用户界面。这意味着他们需要创建适当的输入字段、按钮、以及数据展示组件等。运维工程师上线:当前端工程师完成界面编写后,运维工程师会负责将这一服务上线,确保所有的后端和前端组件都能够正常工作,并且与数据库的连接是稳定的。查询执行与数据展示:经历上述步骤后,业务数据分析人员或用户终于可以登录页面,执行SQL查询并查看结果。但如果他们对数据有任何新的查询需求或修改,整个流程可能需要重复进行。举个例子,假设用户想要查询一个表格中的特定数据,如某个时间段内的订单总额。为了获得这一答案,他们需要明确他们的查询需求(例如,选择时间范围、订单状态等)。随后,后端工程师会编写相应的SQL语句来执行这一查询,如选择特定的时间范围并对订单金额进行求和。然后,前端工程师会为该查询创建一个界面,允许用户输入时间范围和其他条件。最后,当运维工程师将这一功能上线后,用户可以通过该界面执行SQL查询并查看结果。这种方式虽然可行,但显然不够高效,且存在诸多不必要的中间环节。因此,当前的技术发展趋势是寻找更为高效、自动化的解决方案,如使用NL2SQL技术,使用户可以直接通过自然语言进行查询,从而大大简化整个查询流程。例如,下图中对一个表格进行查询,针对该需求需要写成一条SQL语句才能在数据库中执行并得到答案。减少数据分析和查询时的工作量,使用户能够更便捷、直观地获取所需数据,一种理想的方式是让用户只需通过一个搜索框进行交互。在这样的设想中,用户只需输入查询语句,而系统则通过自然语言处理技术,将用户的自然语言输入转化为可执行的SQL查询。这样,用户无需了解复杂的SQL语法,也无需通过多个界面和环节来执行查询和获取结果。这正是NL2SQL技术要解决的问题。详见下图。上图可以看出,我们将以前研发SQL查询新需求的工作效率极大地提高了,并且很多非IT人士也能通过自然语言交互界面便捷快速地和数据库交互,业务流程速度大为提高。二、NL2SQL数据集在机器学习和自然语言处理的研究中,相关领域的数据集是研究的基础。针对NL2SQL这一任务,我们有多种数据集可供选择。这些数据集可以根据其涉及的数据库表的数量和SQL结构的复杂性进行分类。单表无嵌套数据集:ATIS&GeoQuery数据集:ATIS数据集来源于机票订阅系统,由用户的提问生成SQL语句,属于单一领域且上下文相关的数据集。而GeoQuery则与美国的地理相关,包含880条问题及对应的SQL语句,属于单一领域但上下文无关的数据集。WikiSQL数据集:鉴于ATIS和GeoQuery数据集的规模较小且标注简单,2017年,VictorZhong等研究人员基于维基百科标注了一个大型数据集,名为WikiSQL。这个数据集包含了80654条训练数据,涉及26521个数据库,它的推出引起了学术界的广泛关注,并催生了一系列先进的模型,如Seq2SQL、SQLNet和TypeSQL。多表嵌套数据集:Spider数据集:WikiSQL数据集虽然规模较大,但其问题只涉及一个表格,且仅支持简单的SQL操作,这与现实生活中的场景不太吻合。为了更真实地反映实际情境,耶鲁大学的研究人员在2018年推出了Spider数据集,这是目前最为复杂的Text-to-SQL数据集。它涵盖了138个领域的200多个数据库,每个数据库平均关联到5.1个表格,并且训练集和测试集中使用的数据库是不重叠的。此外,Spider数据集中的SQL语句更为复杂,包括了多种关键字和嵌套查询。中文CSpider数据集:西湖大学在EMNLP2019上发布了一个中文的Text-to-SQL数据集CSpider。这个数据集基于Spider数据集,对其中的问题进行了翻译,并使用SyntaxSQLNet作为基线系统进行了测试。同时,它还探讨了中文环境下的一些额外挑战,如中文问题与英文数据库的对应、中文分词问题等。竞赛数据集:在国内,已经举办了多次关于NL2SQL的竞赛。其中,追一科技举办的“首届中文NL2SQL挑战赛”和百度举办的“2020语言与智能技术竞赛:语义解析任务”是规模较大的两次比赛。追一比赛的数据集为单表无嵌套NL2SQL数据集,其数据形式较为简单,每条SQL仅包含基本的语法现象,没有聚合函数,因此算法实现相对容易。这些数据集为NL2SQL的研究提供了丰富的资源,使得研究者可以在不同的场景下测试和优化他们的模型。下面两个图为比赛官方页面截图:三、主要技术路线目前关于NL2SQL技术路线的发展已经涵盖了多种方法,以下是其中主流的几种:Seq2Seq方法:在深度学习的背景下,很多研究者将Text-to-SQL任务看作是神经机器翻译任务,并主要采用Seq2Seq的模型框架。基线模型Seq2Seq结合了Attention、Copying等机制后,能在ATIS、GeoQuery数据集上达到84%的精确匹配。但在更复杂的数据集如WikiSQL和Spider上,其表现相对较差,分别为23.3%的精确匹配和37.0%的执行正确率,以及在Spider数据集上只能达到5~6%的精确匹配。模板槽位填充方法:此方法将SQL的生成过程划分为多个子任务,每个子任务负责预测某一语法现象中的列。它对单表无嵌套的情况表现较好,且能保证生成的SQL语法正确。但缺点是它只能对固定的SQL语法模板进行建模,对于存在嵌套的SQL情况处理不够灵活。中间表达方法:以IRNet为代表,此方法是目前的主流方法。它将SQL生成分为两步:首先预测SQL语法的骨干结构,然后对其进行列和值的补充。这种方法在后续的研究中得到了广泛的应用和优化。结合图网络的方法:为了解决多个表中存在同名列时的预测不准确问题,研究者提出了结合图网络的方法。其中,Global-GNN和RatSQL是这一方法的代表。由于结合了图网络可以更好的表征数据库内的表和列之间的拓扑关系,该方案为当前优势方案。强化学习方法:以Seq2SQL为代表,此方法在每一步都会计算当前决策生成的SQL是否正确。从本质上说,强化学习是基于交互产生的训练数据集的有监督学习。其效果与翻译模型相似,但在某些情况下可能更为有效。结合预训练模型、语义匹配的方法:此方法利用表格内容作为预训练语料,并结合语义匹配任务的目标输入数据库Schema,从而选择所需的列。例如,BREIDGE和GRAPPA就是采用了这种方法,它们在处理复杂的查询任务时展现出了较高的效率。随着技术的不断进步和创新,我们可以预期NL2SQL领域将会涌现出更多的先进方法和解决方案。1. X-SQL方法随着自然语言处理(NLP)技术的快速发展,将自然语言转化为结构化查询语言(SQL)的能力已经成为了研究的热点。在众多的方法中,X-SQL方法凭借其独特的处理方式和高效性能,成为了当前模板填充法的代表。X-SQL方法将单表的NL2SQL任务拆分成多个子任务,每个子任务专门负责预测某一语法现象中存在的列和对列的操作,从而将整个NL2SQL任务转化为一个在列上的分类任务。这不仅简化了问题的复杂度,还提高了预测的准确度。1.1 X-SQL网络结构X-SQL的网络结构主要由编码器、上下文强化层和输出层组成。编码器:该部分采用了改良的BERT模型——MT-DNN作为基础的编码器。在数据输入形式上,X-SQL方法将自然语言问题和各列的名称一同输入,它们之间使用BERT中的特殊token [SEP]进行分隔。为了更好地表示不同的数据类型,每列的开始位置都使用了一个特定的token。此外,编码器中的[CLS] token被替换为了[CTX] token,这是为了更好地捕捉上下文信息。上下文强化层:这一层的主要作用是将每个列的输出向量与[CTX]位置的输出向量合并,从而得到一个更为丰富和具有代表性的列向量。这一设计可以使得模型更好地理解和利用列与列之间的关系,从而提高预测的准确性。输出层:在X-SQL中,输出层负责六个子任务,分别是:W-NUM(条件个数)、W-COL(条件对应列)、W-OP(条件运算符)、W-VAL(条件目标值)、S-COL(查询目标列)和S-AGG(查询聚合操作)。这些子任务共同构成了一个完整的SQL查询语句。1.2 稀疏问题与解决方案在实际的工程实践中,目标数据库往往拥有大量的列,而SQL查询通常只会涉及到其中的少数几列。这就导致了标记数据的稀疏性问题,即大量的列在训练过程中很少或者根本没有被选中,从而使得模型难以有效地学习这些列的特征。为了解决这一问题,X-SQL方法采用了两种策略:列名的相关性排序和人工重采样。列名的相关性排序:在训练之前,首先对所有的列名进行相关性排序,将与自然语言问题相关性较高的列排在前面。这样,模型在训练时可以更加关注这些相关的列,从而提高学习效果。人工重采样:针对那些被选中次数较少的列,X-SQL方法还采用了一种人工重采样的策略。具体来说,就是在训练过程中对这些列进行重复采样,增加它们在训练数据中的出现次数,从而使得模型能够更好地学习它们的特征。X-SQL方法通过独特的网络结构和有效的稀疏问题解决方案,实现了高效的NL2SQL转换。这一方法不仅简化了问题的复杂度,还提高了预测的准确度,为自然语言处理领域带来了新的突破。模型结构如图所示:-SQL网络结构2. IRNet方法IRNet设计了一种在自然语言和SQL之间的中间表达SemQL,采用两步完成Text-to-SQL的过程:第一步SchemaEncoding和Schema Linking:SchemaEncoding顾名思义就是对表结构(表名、列名、列类型、主键、外键等等)进行编码,以便后续模型训练使用。SchemaLinking则是要把Question中表述的内容与具体的表名和列名对齐。第二步预测SemQL,然后用第一步预测的列来填充SemQL所表示的SQL语法结构。文中设计的中间表达SemQL结构如下:QL根据文中设定的规则可以拆解为如下图的语法树:、算法大赛实践分享:以国家电网调控人工智能创新大赛为例比赛赛题及背景在电力领域,电网调控系统多年来已积累了大量的电网运行数据,这些数据存储在数据库或文件系统中,具有规模大、种类多、范围广等特点。传统的数据分析方法,需要专业人员通过机器编程语言与数据库进行交互,为数据分析设置了一定的门槛。随着数据量的增长,数据挖掘的深度不够和数据价值变现能力弱等问题逐渐暴露出来。为了解决这些问题,人工智能技术被寄予厚望,期望其可以变革人机交互方式,提高数据分析挖掘效率,更好地释放数据的价值。具体到此次比赛的赛题,针对电网调控系统数据的结构化和半结构化存储特点,以及海量数据分析的繁琐低效问题,参赛者被要求利用语义解析技术训练AI智能体。这个智能体需要能够理解调控系统中的常见问题,解析数据库的表、属性、外键等复杂关系,并生成SQL语句在数据库中执行,从而为用户提供自动、高效、精准的信息检索服务。赛题理解和分析此次赛题主要属于语义解析领域,核心任务是将自然语言转换为逻辑形式,尤其是转换为数据库查询语句。语义解析被认为是将自然语言映射到其语义表征的过程,这种技术已被广泛应用于各种环境中,例如将自然语言解析为数据库查询或在会话代理中进行查询解析。在学术研究和技术应用中,基于模板填充的解析技术、基于Seq2Seq的语义解析技术、基于强化学习的语义解析技术等都是常见的解决方案。对于此次赛题的具体要求,“给定自然语言表述的电网调控问题及其对应的数据库,要求参评的语义解析系统自动生成SQL查询语句。”通过分析提供的数据集,我们了解到这些数据都是来源于电网调控领域的真实语料,涵盖了46张表和与之对应的1720条调控场景问题与SQL语句的对应关系。这些数据涉及了公共数据、电力一次设备、自动化设备等多个数据对象,并包括了同一类问题的多种不同问法。技术路线考虑到此次赛题涉及的数据资源都属于同一数据库,不存在跨领域的问题,且SQL的表达方式在这些数据中表现出较好的一致性,我们选择了基于Seq2Seq的翻译模型作为核心技术路线。为了更好地应对数据集的“单一数据库”、“较多连表查询”、“表列数目较大”等特点,我们特别设计了一个基于Transformer的融合表列值信息的Seq2Seq语义解析模型。在这个模型中,Transformer被用作基础的特征提取单元,同时我们构建了一个能够融合表、列、值多元信息的Encoder-Decoder架构,以完成端到端的NL2SQL任务。算法流程图如下:算法流程详细描述:在算法的开始阶段,由于所提供的数据集规模相对较小,为了更好地训练模型并提高其泛化能力,我们首先对数据进行了增广处理。具体的增广方法包括对原始的自然语言问句进行分词,并利用列名替换、停用词替换以及句式替换等技术,生成新的问句-SQL查询对。此外,为了进一步增强模型的鲁棒性,我们采用了AEDA(An Easier Data Augmentation)的噪音增强技术,该技术主要是通过在原始文本中随机插入标点符号来增加噪音样本。处理完数据后,我们注意到SQL语句对大小写是不敏感的,因此为了简化后续处理,我们将所有的SQL语句统一转化为小写字符。接下来是算法中的一个关键环节,即如何将数据库的模式(Schema)信息与自然语言问句相结合。我们采用了基于模糊匹配的方法,根据不同的自然语言问句动态地生成相应的Schema信息,并与原问句进行拼接。这样,模型可以更好地理解问句中的意图,并准确地生成对应的SQL查询。对于增广后的数据集,我们选用了基于Transformer架构的生成式预训练Text2Text模型进行端到端的微调(Finetune)。在测试阶段,我们同样会为测试样本动态生成Schema拼接信息,并完成端到端的推理预测,得到最终的SQL语句。在算法的实现过程中,有以下几个关键环节:使用AEDA技术对自然语言问句进行数据增强,增加模型的鲁棒性。为了简化处理并保证一致性,我们将所有的输入和输出文本都转换为小写。对每一个自然语言问句,我们都采用动态Schema信息生成技术,为其添加额外的相关信息。对于生成的SQL语句,大部分我们采用Greedy Decoding进行解码,但对于部分较长的SQL查询,我们会采用Top-p Sampling或Beam Search Decoding来确保解码的准确性。关于AEDA数据增强技术和动态Schema信息生成技术,它们是本次比赛中我们方案的两个核心点。AEDA技术简单而有效,通过插入标点符号增加了噪音文本,从而提高了模型的鲁棒性。而动态Schema信息生成技术则解决了NL2SQL任务中的Schema Linking问题,使得自然语言问句与数据库中的目标表和列联系更为紧密。如果想了解结合图网络的方案和更多实践内容,我们推荐一本书《语义解析:自然语言生成SQL与知识图谱问答》。该书中对方案有更为详细的解答。一、这本书解决了什么问题?语义解析中NL2SQL和KBQA的实际意义:通过自然语言查询数据库的意义在于提高效率和便捷性。随着技术的发展,知识存储方式也在不断演进,其中结构化和参数化是两种主要的存储方式。随着大模型运动的愈演愈烈,参数化存储可以将知识融入模型中,使得在输入时能够进行编码表示,这种方式有望逐渐取代传统的知识图谱。然而,即使机器学习模型将来达到与人类相当的水平,数据库和知识库仍然是必不可少的。因为知识图谱可能会演变成一种适合机器使用的机器词典,而不是现在我们所熟知的样子。所以参数化存储方式并不能完全替代结构化存储方式,也就是未来还是需要以数据库为代表的结构化知识存储方式。人要访问这些结构化知识,最为便捷的方式是通过自然语言进行查询。通过自然语言查询数据库,用户可以以更加直观和高效的方式与数据库进行交互。相比于传统的查询语言,自然语言更加符合人类的思维习惯,使得非专业人士也能够轻松地从数据库中获取信息。这种交互方式的改进可以极大地提高工作效率,减少学习成本,并推动数据库的广泛应用。通过自然语言查询数据库的意义在于适应知识存储方式的变革,提高工作效率和便捷性,推动数据库技术的发展和应用。自然语言生成SQL:本书详细解析了如何利用先进的语义解析技术,将自然语言转化为结构化的SQL查询语言。通过深度学习和自然语言处理技术,我们深入探讨了如何准确识别用户的查询意图,并将其转化为高效的SQL查询。读者将学习到如何利用现代AI工具和技术,自动化生成复杂的SQL查询,从而极大地提高数据检索的效率和准确性。不仅如此,本书还讨论了如何处理模糊查询、同义词、实体链接等常见问题,以确保生成的SQL查询能够真实反映用户的查询需求。通过丰富的案例和实战练习,读者将掌握这一技能,并能够在实际工作中应用自如。知识图谱问答:在知识图谱问答方面,本书展示了如何构建一个能够理解、推理和回答复杂问题的智能系统。通过结合知识图谱和先进的自然语言处理技术,我们让机器具备了理解和回答各种领域问题的能力。本书详细介绍了如何使用最新的图神经网络、生成模型等技术,提高知识图谱问答的性能。同时,我们还讨论了如何处理知识的不完整性、噪声和更新等问题,以确保系统的回答既准确又可靠。通过本书,读者将学习到如何构建一个高效、智能的问答系统,为用户提供更加便捷、个性化的服务。无论是企业内部的知识管理,还是面向公众的智能客服,这些技术都将发挥巨大的作用。解决大模型幻觉与可控性问题:随着模型规模的日益庞大,大模型在确保输出形式语言的可靠性以及输出答案的真实性方面,遭遇了前所未有的困境。这种“大模型幻觉”以及其带来的不可控性,是现今人工智能领域亟待解决的难题。幸运的是,《语义解析:自然语言生成SQL与知识图谱问答实战》一书,为我们指明了方向。书中,作者不仅深入剖析了NL2SQL和KBQA这两种技术在应对大模型幻觉中的关键作用,还提供了具体的实施策略和方法。通过引入外部知识、优化训练策略等手段,我们可以有效地增强模型的鲁棒性,降低其产生幻觉的倾向。同时,结合人类的反馈与干预,我们可以确保模型在实际应用中更加贴合真实需求,提高其整体的表现水平。对于那些正在或即将面对大模型挑战的数据科学家、工程师以及AI爱好者来说,这本书无疑是一部宝贵的实战指南。它为我们提供了明确的解决方案和策略,帮助我们更好地驾驭这些日益庞大的模型,确保它们在为人类服务时,既可靠又真实。本书不仅提供了理论上的指导,还通过大量的实验和案例分析,展示了这些解决方案在实际应用中的效果。读者将学习到如何评估和改进大模型的性能,确保它们在各种应用中都能提供准确、可靠的信息和帮助。二、书的内容概览《语义解析:自然语言生成SQL与知识图谱问答实战》一书,由领域专家联袂推荐,语义解析大赛获奖者撰写,满足工业级应用安全、精准需求,弥合大模型的不足。本书深入剖析语义解析技术的原理与实践,涵盖机器翻译、模板填充、强化学习、GNN、中间表达五大技术方向,并随书提供案例代码。第1章首先介绍了NL2SQL和KBQA中的语义解析技术,包括人机交互应用与语义解析难点分析,主流的语义解析技术及其方案对比,以及语义解析的预训练模型和数据集。第2章至第6章分别介绍了基于机器翻译、模板填充、强化学习、GNN和中间表达的语义解析技术。每一章都详细描述了相关技术的原理、模型构建和应用实例,使读者能够深入了解并掌握这些技术在语义解析任务中的应用。第7章和第8章分别面向无嵌套简单SQL查询和复杂嵌套SQL查询的原型系统构建。这两章通过任务简介、任务解析、模型整体架构和代码示例,展示了如何利用语义解析技术构建面向SQL查询的原型系统。第9章介绍了面向SPARQL的原型系统构建,利用T5、BART、UniLM等模型生成SPARQL语句,实现路径排序和SPARQL语句修正和再次排序。第10章讨论了预训练优化,包括预训练技术的发展、定制预训练模型TaBERT、TAPAS和GRAPPA等方案的设计和实现。第11章是语义解析技术落地思考,从研究与落地的差别、产品视角的考虑、潜在的落地场景和实践技巧等方面,探讨了如何将语义解析技术应用于实际场景中。本书内容丰富,涵盖了语义解析技术的多个方面,不仅提供了深入的理论分析,还展示了大量的实践应用。通过本书的阅读,读者可以对自然语言处理语义解析领域新兴的子任务——NL2SQL有一个清晰地认识,充分了解语义解析任务的相关研究进展,对主流技术方案进行详细阐述与分析,并从实践的角度展示NL2SQL完整的技术实现流程。希望本书能够帮助读者深入理解并高效搭建起语义解析框架,同时对语义解析领域的发展起到一定的促进作用。三、读者可以从中收获什么?读者从《语义解析:自然语言生成SQL与知识图谱问答实战》中可以收获多方面的知识和实践经验。首先,读者可以深入了解语义解析技术的原理与实践。本书涵盖了机器翻译、模板填充、强化学习、GNN、中间表达等五大技术方向,并详细解释了这些技术在NL2SQL和KBQA中的应用。通过对这些技术的深入剖析,读者可以获得对语义解析任务更深入的理解,包括其挑战、解决方案以及实际应用。其次,读者可以学习到各种语义解析技术的实现细节和应用实例。本书提供了丰富的案例代码和具体实践指导,以单表无嵌套和多表有嵌套为例,从数据预处理、模型的构建,到模型优化技巧等方面为读者构建了完整的NL2SQL技术实现流程。通过学习这些代码和实践指导,读者可以掌握如何在实际项目中应用语义解析技术,解决自然语言处理任务中的实际问题。此外,本书还对语义解析技术的发展进行了全面的梳理和讨论。通过对预训练技术的发展、定制预训练模型的设计和实现等内容的介绍,读者可以了解到最新的研究进展和趋势,为未来的研究和应用提供有益的参考。在更广泛的层面上,本书还可以帮助读者提升对自然语言处理和人工智能领域的整体认知。通过对语义解析技术的深入剖析,读者可以更好地理解自然语言处理任务的本质和挑战,以及人工智能技术在解决实际问题中的应用和价值。这种认知的提升有助于读者在未来的学习和工作中更好地把握自然语言处理和人工智能领域的发展趋势和应用方向。《语义解析:自然语言生成SQL与知识图谱问答实战》一书提供了对语义解析技术的全面深入剖析和实践指导,可以帮助读者深入理解并高效搭建起语义解析框架,同时对语义解析领域的发展起到一定的促进作用。读者通过本书的阅读和实践,不仅可以提升自己在自然语言处理和人工智能领域的认知和技能水平,还可以为未来的研究和应用提供有益的参考和启示。四、结语《语义解析:自然语言生成SQL与知识图谱问答实战》是一本引领你走进语义解析世界的实战宝典,让你深入探索自然语言处理与人工智能的奇妙交融。这本书凭借其深入浅出的解析、实践导向的代码示例和前沿的技术洞察,为每一位读者揭示了语义解析技术的核心奥秘。无论你是正在探索这一领域的数据科学家、工程师,还是仅仅对人工智能感兴趣的普通人,这本书都将为你打开一扇全新的大门,引领你走进一个充满挑战与机遇的新世界。在这个信息爆炸的时代,掌握语义解析技术就如同掌握了一把解锁知识宝库的钥匙,让你在信息的海洋中畅游无阻。快来阅读吧,让这本书成为你探索语义解析世界的得力导师,与你一同开启这段令人兴奋的智力冒险!
  • [案例分享] 向量数据库
    原文链接:cid:link_0向量数据库也许你最近可能听过这样的新闻,某向量数据库的初创公司刚写好 PPT,就获得了几千万的投资,某公司的开源的向量数据库因其代码的简陋而登上了 Hackernews 等等。在过去几个月时间中, AI 应用的发展如火如荼,带动了 AI 应用技术栈上下游的火爆,而向量数据库就是其中最热门的之一。笔者最近因为开发 ChatFiles 和 VectorHub 两款开源项目的需要从而对向量数据库(Vector Database)进行了学习,在对主流的向量数据库和搜索算法有了大概的了解后,笔者决定将这些知识整理成一篇文章,希望能够帮助到大家。
  • [案例分享] AI如何颠覆数据库讨论纪要
    注:原文URL:https://mp.weixin.qq.com/s/D8EtMUd4RZOStFaq3tIm2w详细的讨论会分享背景请见我们上一篇文章《AI如何颠覆软件:你能为AI打工吗?》。我们尽量每周都会组织不同领域的AI讨论会,覆盖软件行业的所有细分。为了保持一个活跃的讨论环境,对参与人群会有限制,请有意愿参与讨论会的直接私信后台“微信号,个人介绍,以及擅长讨论什么话题”,从业者/创业者优先。本期讨论会参与者:邰骋,墨奇科技创始人,向量数据库创业者,师从知名的应用数学领域科学家、中国科学院院士鄂维南。主要研究方向为大规模非结构化数据处理算法和系统,在SIAM、JMLR、ICML等国际期刊会议发表多篇论文,是国内人工智能、应用数学方面的领军学者。Haowei,Snowflake早期员工,多年数据库内核开发经验,专注容器化和虚拟化技术。Yujia,微软Copilot产品经理,正在尝试Copilot+各种场景。以及资深数据架构师,数据库/BI创业者,投资人,参与讨论作出的贡献。1 AI会如何改变数据库交互AI改变的交互对OLTP硬影响不大:使用到的Python、Java等,用这些代码建好应用后,很难想象会替换成自然语言和数据库进行交互AI会降低OLAP的交互门槛,促进数据仓库普及:在OLAP的场景下,需要BI和数据仓库交互。以及看到基于GPT将自然语言转成SQL的技术,然后进行数据查询的产品、Prototype等,会大大降低非技术人员和数据仓库交互的门槛以史为鉴,当对象的使用门槛降低的时候,普及性就会越来越高。例如当图形界面GUI问世的时候,个人电脑就普及了。同样,当LLM降低数据仓库的门槛时候,越来越多的公司(而不仅仅是科技公司),都会变成Data Driven导向,或者以数据来进行决策。公司中的每一个人都可以快速根据数据决策,做决策的效率和频率都会提高。自然语言仍很难替代所有SQL语言:SQL是非常古老的语言,产生于1980年代。SQL有一个问题,简单的东西非常简单,一旦复杂化后,就会变得反人类。故如果没有经过专门的训练,一般人只能拿SQL 做简单的事情。现在大语言模型把它翻译成 SQL,最长的SQL 大概存成文本文件的话大概有 20 个Megabyte,这个就完全不是人能够读的东西了。今天为什么大家都用SQL,因为说白了可能是一种习惯,但这种习惯有没有被挑战?就算没有大模型其实也正在被挑战,比如spark,现在就很多人就觉得不管是 Python还是Java,通过spark API 去写比写 SQL其实更顺利一点。所以在很多 ETL 的场景下面,现在很也不单纯用 SQL ,很多的 ETL 现在都是用 Spark ,其中原因之一就是SQL 这个语言不够直观。SQL也是更加精确的语言,在复杂的和机器场景下的准确性要高于自然语言。很难用自然语言去精准地表达一些复杂的接口、Query。虽然现在已经出现了自然语言转SQL的GPT工具,但因为自然语言的局限复杂度不够,复杂场景仍然做不了未来更多是简单的查询用自然语言接口,复杂的场景还是需要SQL,或者Spark、Python,SQL有很强的韧性,可以适应各种复杂场景。自然语言 vs SQL=易用 vs 效率/精准:当追求极致的简易性,在效率和准确上就会有牺牲,就需要自然语言。就类似于过去编程情况,如果追求便捷就会用Python,但可能会牺牲效率;如果追求效率,用C++这样更接近于机器的语言,学习曲线就会更高。自然语言不是针对数据库查询的最优选择,但会根据使用者的情况有Trade Off。2 AI是否能改变数据库底层AI很难改变底层:LLM很难对计算引擎、网络等产生影响,数据库内核的发展和LLM的演变也没什么关系。但数据库可能未来会承担更多的模型训练任务,不再是单纯的数据层的数据库,这相当于数据库从数据层往训练工具演变。现有数据库架构会不会因为AI而演化出类似HTAP的情况,同一份数据有两种形态:在为LLM训练的场景,可能不会很普遍,大模型需要的训练数据主要是知识,和平时公司商业用途需要查询的数据,还是两种数据。但对于中小规模的模型,会有这类的场景,很多公司都会有内部需求。比如简单的情况,数仓一般是Column Format,再做一个Compression,这种情况非常常见。但做AI训练的时候,一般需要Row Format。如果传了两份到storage engine之后,这两份相关性不大。存完之后是存在一个地方,是两个表还是一个表,没有什么关系。应用A(比如说一般数仓)永远不会探索为应用B(基于AI训练的结果)存的那一份。应用B也永远不会探索为应用A存的那一份。除非应用A需要用到一份,应用B需要用到同样的一份,这个时候把这张表作为一张表看待,有比较大价值。现在的实际情况是,两个应用永远不会碰到同一份。从某种程度上来说,这两个应用physically比较独立。如果硬要把这两份数据说是属于一样表,但就像很多OLTP的表,OLAP经过ETL之后形成OLAP的表。大家也知道这两张数据库表是同样一张表,但是基于数据库的应用就把它当作两张单独的表来看。因为做OLAP的时候,永远也不会访问OLTP的那个数据表。所以如果两个应用之间没有相互的mix和match的时候,把它当成两张不同的表,在两个不同引擎里面存储,还是当成一张表有两个format来看,实际没有本质的影响。而一定要把这两个当成一张表的两个不同引擎来看的时候,事实上增加了系统的难度。在目前的情况下,机器学习的 training 的 format 和做OLAP查询的这两种format,本身天然是不会相互碰到,也就导致了目前还没有需求非得要把这两份数据当做同一张表格的两种形态。目前可以把它当成两个单独的表格来处理,并不影响使用。不知道将来会不会有BI的应用导致现在这种假设不成立。这是有可能的,正如HTAP。往10年前看的时候,AP是AP,TP是TP。这两年HTAP出来了,因为有真实的需求,可能对于AI和AP在过个几年也会有这样需求,但是就目前为止还看不到。3 LLM可以直接作为数据库使用吗?很难替代数据库的使用场景:LLM很难解决ACID问题,LLM的初衷就不是为了精准查询设计的,LLM的查询结果很难保证准确的Number,也很难保证Snapshot isolation。长期来看,LLM也很难匹配数据库的性价比,数据库都有非常复杂的场景优化。更可能的演化,还是LLM改变了数据库的交互,但LLM本身不会成为数据库。4 数据仓库/数据湖在训练中的支持情况数仓/数据湖未来都会搭建训练平台:传统数仓/数据湖之前是提供数据源,但未来可以作为训练平台,例如替代一部分Sagemaker的场景。从客户角度,在数仓/数据湖中做训练,尤其是训练小模型场景,可以省去移到训练平台的数据迁移成本,省去中间Pipeline的维护,省去ETL的过程,也不需要把数据放在不同系统中减少了Replica。同样,从安全性和隐私性角度出发,未来会看到更多类似GDPR的规范,多个数据存储系统会导致数据泄露的风险加大,也需要雇专门的人去审计不同系统中的数据合规性要求。从产品完整性的角度,数仓本来做的就是做商业决策,成为ML/AI的训练平台后也可以完善商业决策,也属于本身的计划发展方向。训练也是多次的,对数仓/数据湖都会有带动作用:GPT或者大语言模型的技术革命,会让更多企业意识到AI的价值。在过去的很多年里,AI不是一个新技术,但用得好的都是很大的科技企业,在传统企业的渗透率仍然非常非常低。GPT更像是破圈的Trigger,迫使所有公司都去尝试ML/AI,不一定是直接接入LLM,还有很多垂直的企业场景。从具体的带动关系来看,AI训练不是只训练一次,需要不断地训练,有不断的新数据进来。每隔一段时间就要去更新模型,上线新模型。也就需要不断地向数仓/数据湖去要数据。5 AI对部分数据仓库/数据湖的影响数据仓库最本质的还是产品能力,AI不是决定性因素Databricks随着Dolly的推出,有机会帮助他们的一些客户更好更容易地训练大模型。但大多数企业还是负担不起大模型的训练。所以还是更加的倾向于训练小模型,或者训练一个 good enough 的模型,或者说是一些模型的 fine tuning。就fine tuning来说其实也有很多方法,然后有一种方法,我听说是可以先训练一个比较小的模型,然后和大模型在 merge 一下,调一下权重。Databricks和 Snowflake 其实更多的还是赋能企业,他们提供了一个平台,能帮企业更好地去训练。至于说他们开源了这个模型, Dalle2 它只是一个开源模型,还要看开源生态能不能搭建起来。Databricks选择开源这样一个模型,在对模型的支持上就可能有偏向性,不确定是否能保证对其他模型也有很好的支持。微软也有偏向性,包括选择OpenAI。亚马逊和Snowflake目前没有偏向性。6 Copilot能帮助分析型数据库实现什么样的新场景目前Copilot/其他大模型的目标还是降低普通/简单任务的门槛:不管是Copilot,还是其他的大模型,目前最擅长的东西肯定不在于非常高级和难的任务,而是在于能够降低一些普通和简单任务的门槛。不管是在 Office 的处理还是数据库,都是在拓展易用性,以及能够大规模的让一些企业去进行操作上的升级,或者是让更多的人可以做更多的事情。大模型能够解决的问题的复杂性还取决于成本:对于成本的问题,如果我们降低承载大模型使用的大模型相关的产品或相关的体验的使用的成本,这里其实是一个目的导向的事情,即如果我们希望它以一个什么样价格收费是市场能够接受的,或者说我们能提供的价值是否能够cover成本。这里面有很多工程加算法的问题,像刚才提到的我们到底什么样的情况下才需要大模型,不是所有的问题和所有的处理都必须要使用大模型。实际上各家的大模型在实际解决问题的时候,已经在考虑成本的问题了:那这里面前期需要做一个判断,从技术上其实在微软这方面做的背后的工程量和 OpenAI 做的都很多。虽然用户感知到好像都是GPT/LLM在回答,但这里面可能会有一些筛选,有一些情况其实传统的搜索或者更早期的AI就能有一个非常好的结果的时候,就不会再去用高级的模型。其实这上面会有,就包括数据库之后的应用,这方面也会有很多的方法可以降低这个成本。7 向量数据库的前世今生向量数据之前的应用:邰博士之前主要做向量的算法、图的算法,也在北大教授人工智能课程。最早做向量数据库的时候还不叫向量数据库,但会用到很多向量和图。在大模型之前主要是用作搜索/推荐,以前像Google做网页搜索的时候,有一些关键词特征,就是向量特征。除了搜索引擎外,还会用到例如微博中。后来在计算机视觉中也有了向量表示,图像可以变成一个向量的表示,这些都是为了做向量搜索的。语音也是同样的,可以做声纹比较。在Bio-informatics里,也可以基于基因相似的序列、蛋白质的结构比例等等。向量数据库正变得更加重要:向量数据,同传统数据库里面有整型、字符串,比较新的比如地理信息的一些坐标等,也是一种数据类型。LLM出现后,向量的这种数据类型将会变得更加重要。意味着不同的数据库往后都要需要支持向量。而专门为这种数据类型做一些Data Infrastructure的优化也变得更加必要。为了优化结构化数据的读写,产生了TP;为了优化海量数据的计算,产生了AP;为了优化非结构化数据,产生了文件数据库等。针对向量数据,怎么如何做存储,怎么如何做索引,怎么如何做高性能的查询、压缩等等进行专门的优化也是非常必要的,使之能够让其更好的面向 AI 应用。除了向量,在这个场景,以后可能还会有更多其他的类型的数据。图也是很重要的类型(并不是现在见到的大图,可能是一些小的图等等,可能就几百节点,但是数量会很多,就跟向量一样,可能是多个向量组成的这些图),也是以后可能的演化。8 向量数据库与其他Data Infra的关联跟分析型场景的结合度比较高:现在很多情况向量是作为一个数据类型在做的,Workflow 里面的很多环节它都有关系。比如原始数据,ETL进分析型数据库,再向量化进向量数据库。Huggingface 上很多这样的模型,可以把不同类型的语音文本、pdf等向量化。Metadata的结构化的特征,或者是模型预测的这种标签的特征,也会向量化。从学习框架上来讲:在训练模型和推理过程中,现在都可以用到一些向量,当然不是所有的都用。现在的Transformer架构,加一个外置的Memory ,可以在参数不大的情况下,达到和大参数模型一样的效果。其实就是外挂的向量数据库加上一个中小模型,可以得到一个很好的效果。然后在推理应用的层面上,如做搜索引擎,做行业应用等等。要把不同的类型整合在一起做一些分析,这更多是偏向于分析型的应用,如果最单纯的那种向量近似搜索的话,或者精确搜索的话,只是针对这种类型的分析。当然很多刚才讲的应用里面,像 flaw detection 推荐系统,要跟结构化的特征一起做联合的分析。先写一段SQL,用结构化的信息做一些过滤,做一个过滤,然后再用向量做一些查询找一些相似的例子等等。这反而是在应用中非常常见的,就是在这种实际应用中,都是要跟结构化的数据做结合的。单纯用向量这个我觉得可能看到的还少一点,可能只是作为召回这种情况或者更简单的使用,或者模型训练的使用。联合应用的情况会更多,比如墨奇做的MyScale数据库,针对Clickhouse进行了二次开发,在这个基础上开发了一个新的引擎,它可以对向量、对图做一些联合的查询。可以分析向量,也可以分析原来结构化的数据。这就是说从前到后,从数据源、数据的转化、包括跟机器去做大模型、到应用层等等,存在一个紧密的关系。把向量作为一个环节来看,让他跟其他的数据做一些紧密的结合,联合的分析会更有用。分析型数据库也有必要与向量数据结合:墨奇+Clickhouse已经在做这方面的工作了,Elastic和PG也有向量插件了。未来有必要专门为AI做一个新兴的数据库,支持AI Native应用,对数据的查询要求和过去可能会有差别。未来单一的向量数据库可能是一个比较薄的产品,更多是和现有的分析型数据库结合。例如一个很适合的向量数据库+Clickhouse场景就是大模型推理,比如 GPT 3,它context size是很有限的。现在GPT 到GPT3 token 的 size 从 8000 变成了这个 2 万多,提高3 倍的contact size, 需要的计算量~ 9 倍,是个平方的关系,所以 long-term memory 是大模型的问题。那现在有向量数据库,可以充当这个 long-term memory。很多人做一些算法上改善的尝试,目前都没有成功,包括用一些逼近的方法,包括用linear attention,但都失败了,那full attention 在一段时间内还是要长期要在的。这样的话,在一段时间内可能就需要有一个外置的memory,通过long-term memory 来解决大模型的问题,这就是大模型带起来的最大的一个需求。我觉得向量数据库充当这个long-term memory,就是非常合适。还有比如相似人的查询,或图的搜索任务。或者再加一些别的限制,可能这个在“我的品类”者“商品推荐”,在这个类型中,我们找一个跟竞品比较像的,或者怎么样。就所有这些任务,推荐等等,都是有结构化的描述在这里,也很适合和向量数据库结合。还有比如全文检索跟ES也可以结合,向量可以解决模糊搜索和语义搜索的需求。9 向量数据库的未来演进方向未来可能不只是大模型:例如Google的很多论文都在讲,中等规模模型+外界大数据库,那可以实现更大规模模型的效果。如果看OpenAI之前的论文的话,也将很多类似的。如果有很好的、精标的数据集,然后有很好的人工干预,那么不用大模型,几百亿级别的模型也可以做到和千亿级别模型一样的效果。向量数据库还有很大的优化空间:针对向量的压缩、索引、查询的优化都还有很多空间。从向量算法来看,现在开源的库很多,像Pinecone、Milvus等等,开发者可能用ivf、hsw这些,做深入优化工作,可以使得性能、Density等提高很多,例如墨奇的压缩就做得很好,可以比过去存10数十倍以上的数据。从AI应用的角度来看,向量数据库会成为LLM在性价比上的补充:高质量性能的外部数据库,对训练和推理上都会有很大的助力,也就需要一个向量+分析都能支持很好的数据库。未来会走向一个融合引擎的数据库,支持向量、图、全文检索、结构化数据等类型10 传统数据库在向量数据库的尝试已经有在做,但优化层面还很浅:分析性数据库(OLAP)做向量更加有意义,例如Elastic做得意义就大于MongoDB来做。Elastic已经尝试添加了子向量模块,包括向量检索的功能,但是跟完整的向量数据库相比,功能差距还很大。目前传统数据库厂家还没有根据向量这一特殊类型,去优化存储和计算引擎,更多是接入库和简单算法。想要做到向量数据库的能力,还要做到算法层面优化,不能只靠开源生态。MongoDB结合得不紧密,分析型场景对于MongoDB也不是主要的。Clickhouse非常适合做向量数据库,墨奇也给Clickhouse贡献了很多Feature。11 向量数据库还能怎么补充大模型LLM主要有三个普遍的缺陷,需要向量数据库来补充:第一,比较本质的,比如GPT 3,它使用到21年9月份的数据,那练完之后模型里面存的知识就是静态,不能被更新。然后它的 context size,需要实时的信息,比如说,这周华南地区的销售怎么样?可以问GPT,但它不能告诉你答案,即便给了答案也不是真实的。所以只能是跟数据库结合,有一个实时数据源,提供给它这种实时的信息。那么向量数据库它可以这种包括跟数据库的结合,这里不只是向量数据库,跟实时数据源的结合,可以解决这个实时性的问题。第二,精确性的问题。在搜索里面用的很多。知识存在大模型的参数里面,也是有记忆的,但是很难精确的去取回一些信息。问大模型两次问题答案会不一样。希望有很精确的信息的时候,在数据库里面是可以有非常精确的东西,有这种可靠性。所以要很精确的信息的时候,可以在这里做企业搜索,文档搜索,这种数据库的查询就会非常有用。第三,数据权限跟管理的问题。比如想问CTO薪酬是多少,类似这种信息不能够放在大模型里面,因为放进之后所有人都能 access 大模型,无意之间泄露重要信息。包括政府等客户的信息,不能把这些加入到训练语料当中去。这些信息还是要放到数据库里再来做,所以天然可能就形成一个模式:非实时的信息,不敏感的信息,但是又有系统性,规律性的东西,作为领域知识的、行业知识,或者更通用的一般的知识,放到大模型里面去,形成一个载体;另一个载体是承载实时的、精确的,有权限、隐私要求的信息,那么放到数据库。LLM厂商都有尝试去解决,但目前进展一般:OpenAI 有一些新的插件也是为了暂时的去解决这些问题,但在短期内不容易有很大优化。到 GPT 5/6,也不会有太大的改进,还是需要依靠外部memory的这种结合来提高它的 effective context size。12 大模型会如何影响数据处理以及ETL环节ETL本身也是一个工程问题,会有一定的复杂性,但是从目前来看用大模型已经可以去解决一些ETL需求:像大模型包括 GBT-4,做这类事情很多效果都远超预期。去年这个时候都不会觉得它有那么好。但特别从去年 10 月份之后到现在,performance好了很多。过去很难用规则表达的,或者一般小的模型难处理好的东西,就是或者不愿意去fine-tune一个小的模型的任务,现在变得很容易。过去做这个事情:以最复杂的PDF为例(PDF内可能包含文字、图,尤其是PPT 转的PDF,里面内容很多)。过去做法是训练一个 Bert 或 fine-tune Bert, fine -tune 很多模型去解决不同的数据转化。这都导致在于是要么很高的训练模型的门槛,或者要么在一个场景需要做有很多模型。然后现在的大模型,比如说让他去抽取简历,去抽取PDF格式的年报的信息,效果真的是都非常好。感觉实际效果跟人工标的那个准确率其实都差不多的,但是使用过程要快很多。这带来一个更大的一个好处:过去要维护很多的中小模型,现在通过一个大模型,然后再加上prompt 和 Meta prompt engineering,就可以做很多事情。维护成本变得很低,效果也不差。成本角度,如果都用大模型来做特征提取的工作的话,成本会很贵很高,因为chatgpt按 token来收费。但也有很多别的做法可以降低成本,比如Stanford,Databricks,还有国内的一些公司在做的事情。方法是用 GPT 4来产生很多的标签数据。比如说一天可以产生10 万个 GPT 4/100 万个 GPT 4 的样例,然后用它来 finetune 一个自己训练的百亿的模型,到时候就不用再调用 GPT 4 了。就直接用finetune好的这个模型,然后用来做ETL,会便宜一个数量级(vs 都调用GPT4)。目前成本对于企业内的一些智能文档等场景,是可以承受的,但是就是就是它蒸馏之后,或者是根据 instruction tuning 之后,这个成本对于哪些场景目前是可以接受的?如果是蒸馏之后,就是说 fine tune 之后,比方用一个百亿的模型再做一些整治,其实成本是比较低的。可能还有一些成本更低的,像大家开源的模型这块得也是挺大的一个力量。在很多ETL任务上已经到了一个很可用的程度了。墨奇MyScale数据库介绍MyScale 是墨奇科技研发的一款用于向量计算的高性能数据库。一方面,MyScale基于ClickHouse内核开发,兼顾了极强的向量数据处理能力和极好的OLAP型数据库的复杂数据分析能力,同时完整支持SQL语言,极大降低了数据迁移和开发者学习成本;另一方面,MyScale在精确检索、结构化数据和非结构化数据联合查询、高密度索引存储等任务上实现了自研算法的核心突破,主要指标显著优于同类产品,处于世界领先地位。随着大语言模型的技术突破,向量数据库+大语言模型这种新范式的重要价值也迅速凸显。通过对领域知识的海量数据进行向量化并存储在向量数据库中,可以很大程度上解决大语言模型的几个主要缺陷:无法有效覆盖时效性数据和领域数据;生成内容缺乏事实依据;输入/输出的内容长度显著。通过向量检索+大语言模型的结合,生成式AI的回复将更可控、可解释、可溯源。目前MyScale的Cloud版本已经进入内测阶段,只需通过简单的注册,即可免费享有数百万规模向量数据的处理能力,欢迎访问https://myscale.com/进行体验!
  • [技术干货] 【分享交流】以前做后端的,想转AI需要学哪些知识
    以前做后端的,想转AI需要学哪些知识
  • [技术干货] 普通人的AI工具包【转】
    1、AI智能写作ChatGPT和文心一言这类的大语言模型都可以帮助我们写作。ChatGPT网址:https://chat.openai.com/文学一言网址:https://yiyan.baidu.com/以小红书为例,宝子们喜欢用emoji标签,可以这样去问ChatGPT:你是一位小红书种草博主,【产品介绍】。请为【要宣传的产品】写一篇种草推文要求如下:1、内容包括:产品卖点、使用场景、亲身体验2、文章多使用emoji的可爱表情,多用空行3、文案最后加标签,标签的格式是#标签2、写PPT用AI帮我们写PPT。这里采用ChatGPT + 闪击PPT。首先,去问ChatGPT(给个模版):假设你是一家电商公司的营销总监,名字叫AI沉思录,有着10年的5A广告公司工作经验,操盘过很多大型营销活动,销量均超千万。现在你需要结合自己的经验,以 《借势野性消费热潮,快速拓展市场份额 》为主题,进行PPT汇报,要求如下: 第一、一定要使用中文。 第二、页面形式有3种,封面、目录、列表。 第三、目录页要列出内容大纲。 第四、根据内容大纲,生成对应的PPT列表页,每一页PPT列表页使用=====列表=====开头。 第五、封面页格式如下: =====封面===== # 主标题 ## 副标题 演讲人:我的名字 第六、目录页格式如下: =====目录===== # 目录 ## CONTENT 1、内容 2、内容 第七、列表页格式如下: =====列表===== # 页面主标题 1、要点1 要点描述内容 第八、列表页里的要点描述内容是对要点的详细描述,10个字以上,50个字以内。要结构化,且内容非常的详细。 第九、目录页要列出内容大纲,包括制定完善的市场营销策略、联合其他企业开展跨界合作、积极参加各类行业展会和活动、加强与媒体的合作和提高品牌曝光率4个方面。 最后,一定要使用代码块回复你生成的内容,切记切记。ChatGPT生成的复制到闪击PPT:闪击网址:https://ppt.sankki.com/#/intro国外的也有类似的网站,例如MindShow,https://www.mindshow.fun/3、AI绘画国内有文心一格、6pen、国外有Midjourney等,但是我觉得相对好用的是这个:网址:cid:link_7选择左侧的AI image generation就可以开始生成图片了。每天免费150的额度,也就是150张图片。4、图片处理以我的工作经验,这两个常用~图片压缩:https://tinypng.com/图片去背景:https://www.remove.bg/5、视频处理试用过很多国内外的AI生成视频,我还是觉得对大多数人,剪映(电脑版)最好用。剪映网址:https://www.capcut.cn/字幕一键生成配音、配音转字幕、还算丰富的转场特效库。6、图片转文字我用的是微信自带的。微信电脑版可以直接在图片复制。手机端可以长按图片,然后提取文字。7、最后总结大概就写到这里了,列举了一些常用工具。工具不在多,而在于如何用于自己的工作流里。目前我使用AI工具,能提高自己30%的工作效率(估测)。希望你也能找到属于自己的工作流。转自 https://aichensilu.com/2023/ptrdagjb/
  • [技术干货] AIGC内容创作网站整理【转】
    1、Yaara网址:https://yaara.ai/Yaara AI 将帮助用户从给定的提示生成创意内容,并改进现有内容的语法和流程。这将有助于将长文档汇总为较短的部分。撰写长篇文章,例如文章,博客文章,甚至书籍2、Copy.ai网址:https://www.copy.ai/CopyAI一个AI文案撰写助手,帮助优化营销文案。3、Writesonic网址:https://www.futurepedia.io/tool/writesonicWritesonic 是一个人工智能作家,为博客、Facebook 广告、谷歌广告和 Shopify 免费创建对 SEO 友好的内容。4、Easy-Peasy.AI网址:https://easy-peasy.ai/使用 AI 工具更快、更轻松地完成文案。5、Jasper网址:https://www.jasper.ai/利用人工智能将创建内容的速度提高 10 倍。Jasper 是最高质量的 AI 文案工具,拥有超过 3,000 条五星评论。最适合撰写博客文章、社交媒体内容和营销文案6、Creaitor AI网址:https://www.creaitor.ai/Creaitor 是一个人工智能驱动的内容写作平台,为用户提供 使用智能高效的解决方案来编写剧本。7、Cowriter网址:https://cowriter.org/loginCowriter 是一种 AI 写作工具,可以通过为永固生成内容来帮助用户加快和激发写作灵感。8、Copymatic网址:https://copymatic.ai/?via=futurepedia使用 AI 在几秒钟内生成内容和复制 使用 AI 来增加流量并节省工作时间。自动撰写独特、引人入胜且高质量的文案或内容:从长篇博客文章或登录页面到数字广告,只需几秒钟9、CopyMonkey网址:https://copymonkey.ai/CopyMonkey 在几秒钟内生成和优化亚马逊列表。人工智能有助于在亚马逊列表中放置所有重要关键字。10、Peppertype.ai网址:https://www.peppertype.ai/可帮助用户在几秒钟内生成高质量的内容11、Hypotenuse ai网址:https://www.hypotenuse.ai/通过 AI 文案将几个关键字转化为原创、有见地的文章、产品描述和社交媒体文案——所有这些都在几分钟内完成。12、Shakespeare网址:https://www.shakespeare.ai/lp/start-for-free/?fpr=vivek45莎士比亚是一款人工智能文案软件,能够创建用户在个人或职业生活中可能需要的几乎任何类型的文案。13、Post AI网址:https://www.postai.pro/使用 AI 平台创建内容的一种方式。14、Newswriter.ai网址:https://newswriter.ai/Newswriter.ai 是一种由 AI 驱动的新闻稿写作工具,可帮助用户在几分钟内创建引人注目、引人注目的新闻稿。使用 GPT-3 OpenAI 技术。Newswriter 提供两种服务:从头开始撰写新闻稿或改进现有新闻稿。15、Localio网址:https://localio.io/专为数字机构和小型企业设计的AI文案工具。它可以快速轻松地为商业网站,Google My Business,Yelp,Facebook LinkedIn,Youtube等创建销售驱动内容16、Marmof网址:https://marmof.com/AI 驱动的写作工具,可帮助用户在几秒钟内创建内容。17、Notion AI网址:https://www.notion.so/product/ai在任何概念页面中利用 AI 的无限力量。写得更快,思考得更大,并增强创造力。像变魔术一样!18、GPT3 Playground网址:https://platform.openai.com/playgroundOpenAI 的开放平台和例子。19、Analogenie网址:https://analogenie.com/Analogenie 是一个简单直观的工具,用于生成类比、改进论点、解释复杂的概念并帮助读者更好地理解内容。20、Glasp网址:https://glasp.co/ai-writingGlasp 是一种社交网络荧光笔,人们可以使用它来突出显示和组织来自网络的报价和想法,而无需在屏幕之间来回切换,并同时访问其他志同道合的人的学习。21、Frase网址:https://www.frase.io/tools/Frase 在文案、摘要、释义和广告类别中提供了几种有用的 AI 写作工具。22、Grammarly网址:https://www.grammarly.com/使用 Grammarly 的新 AI 应用程序自信地写作。超越语法和拼写,通过自动建议进行样式和语气。适用于电子邮件,文档,社交媒体和几乎所有内容。23、Type AI网址:https://type.ai/AI 驱动的文档编辑器,可帮助用户非常快速地编写。它可以让你更快、更容易地写作。24、Outline网址:https://outline.ai/大纲是一个人工智能驱动的协作文档编辑器。告别作家的障碍,向更好的写作问好。25、Friday AI网址:https://www.heyfriday.ai/home根据提示输入信息,hey Friday可以帮助用户创建,重写和输出完整,高质量的博客,信件或营销文案。26、UltraBrainstomer网址:https://ultrabrainstomer.com/loginUltraBrainstomer 是一款尖端的头脑风暴工具,可以生成商业理念、撰写演讲、撰写社交媒体帖子或者制作电子邮件。27、NeuroSpell网址:https://neurospell.com/NeuroSpell是基于深度学习的拼写和语法自动纠正器。提供 30 多种语言版本。包括所有语言的录音机(语音转文本)。可以接受特定领域内词汇和措辞以及特定纠错的培训。其他功能包括 – 人机交互量优化。文本流改进/扩充。写作辅助。校对 RPA。客户工作流输入丰富。语音转文本增强功能。OCR 纠错。28、Corrector App网址:https://corrector.app/使用此在线拼写检查器检查文本。犯的任何错误或改变写作以使其更流畅的语法建议都将突出显示。只需单击任何更正即可将它们转换为不同的东西。他们还将解释语法错误,以便用户了解哪里出错了。29、Elephas网址:https://elephas.app/唯一可与 Mac 集成的 AI 编写器。 跨应用程序工作。30、typly网址:https://typly.app/使用我们的键盘单击一下即可回复所有消息!通常自动生成与对话上下文匹配的句子。允许通过单击回答问题或继续线程。31、Maester.app网址:https://maester.app/使用我们直观的模板引擎释放 GPT-3 的全部潜力。 快速生成适合重复需求的自定义输出,并与全世界分享。它可以帮助用户进行内容管理,大学和工作以及软件开发。32、DREAM.page网址:https://dream.page/用 AI 的魔力进行写作和发布! 立即加入候补名单。33、Othersideai网址:https://hyperwriteai.com/个人写作助理。 HyperWrite/OthersideAI提供建议和句子补全,以改善写作水平。34、http://Redacta.me网址:https://www.redacta.me/使用人工智能快速、轻松、经济地创建西班牙语文案。 专门为西班牙语而训练35、WordAI网址:https://wordai.com/使用 AI 将内容输出提高 10 倍。使用人工智能来缩短周转时间,延长预算,并创建更多 Google 和读者会喜欢的高质量内容。36、HelloScribe网址:https://www.helloscribe.ai/更好的写作,更多创意。HelloScribe易于使用的AI工具可帮助公关和营销专业人员更智能地工作。37、CaliberAI网址:https://www.caliberai.net/caliberai人工智能有助于最大限度地降低用户使用 AI 诽谤的风险。 它近乎实时地标记高风险内容,专门设计用于协助编辑和增强人工监督。38、LuciaA网址:https://luciaai.com/高级 AI 写作助手。luciaai使用最新、最先进的人工智能技术。有了 Lucia,可以比以往更快、更好地写作。39、Sudowrite网址:https://www.sudowrite.com/随时可用的头脑风暴伙伴。 帮助写作。40、AIDuh网址:https://aiduh.com/Chrome 扩展程序,通过 AI 驱动的响应将写作时间缩短 大概98%。41、LanguageTool网址:https://languagetool.org/LanguageTool纠正拼写错误,但它也提供了所有可能文本的完整写作分析。除了拼写、语法和单词选择外,语言风格也得到了纠正。它掌握30多种语言和方言,主要语言是英语,西班牙语,德语,法语,荷兰语和葡萄牙语。42、WebCopilot网址:https://www.webcopilot.co/使用 AI 编写。加快用户写作过程并专注于重要的事情。43、Text Generator Plugin网址:https://text-gen.com/文本生成器是一种开源 AI 助手工具,它将生成人工智能的强大功能带入黑曜石中知识创造和组织的力量。 例如,使用文本生成器根据知识数据库生成想法、有吸引力的标题、摘要、大纲和整个段落。 可能性是无穷无尽的!44、Compose网址:https://www.compose.ai/compose是一个免费的Chrome扩展程序,使用AI自动编写。网站的宣传语:我们不应该每天花40%的时间打字:是时候改变游戏规则了。45、HandyPlugins网址:https://handyplugins.co/handywriter/Handywriter是一个人工智能驱动的写作助手,可以帮助用户为WordPress创建内容。它可以检查抄袭,甚至可以修复语法和拼写错误。46、nichess网址:https://nichesss.com/只需单击一个按钮即可获取博客文章、广告、社交媒体内容、诗歌、商业理念等。47、SmartScribe网址:https://www.smartscribe.app/写作变得更加容易… SmartScribe通过使用人工智能帮助解决阅读和写作的复杂性。48、Writewithlaika网址:https://www.writewithlaika.com/又一个写作助手。49、Lex网址:https://lex.page/又一个写作助手。50、Quasi网址:https://quasi.market/使用 AI 创建艺术、代码、音乐等。51、Humata AI网址:https://www.humata.ai/上传 PDF 并从中获取答案。 创建报告的速度提高了 100 倍。理解技术文档的速度提高了 100 倍。分析法律文档的速度提高 100 倍52、Apple Books网址:https://www.apple.com/in/apple-books/由文本转语音AI讲述的有声读物现在可以通过Apple的Books获得。 最初仅适用于浪漫和小说书籍,其中列出了两种可用的数字声音:麦迪逊和杰克逊。53、Penelope AI网址:https://penelope-ai.vercel.app/一个复杂的人工智能写作助手。轻松加快写作速度 – 释义、总结、生成故事或 AI 自动完成。54、WriteGPT网址:https://writegpt.ai/WriteGPT 使专业人士能够在日常任务中成为超人。通过仅使用无缝键盘的热键访问 writeGPT,克服非生产性的浏览习惯。此外,我们促进及时的工程,以有效地阅读,编写,重写,回复电子邮件,编码和研究任何内容。55、Writey AI网址:https://writey.ai/更改内容的创建方式。利用人工智能更快地创建内容。最先进的语言人工智能第一个真正的免费抄袭 A.I 与原创和研究内容,检查 Writey A.I 在行动56、Letterdrop网址:https://letterdrop.com/创建的内容增加 32%,速度更快,麻烦更少。Letterdrop 可简化并自动化内容操作。57、Eilla AI网址:https://eilla.ai/Eilla.ai 是一个人工智能驱动的助手,可为企业、博客、广告、电子邮件和逼真的图像或艺术生成高质量的内容。免费开始,无需信用卡!58、Thundercontent网址:https://thundercontent.com/使用 AI 生成内容。 Thundercontent使用人工智能来帮助撰写有关任何主题的文章。还可以生产内容59、Writer网址:https://writer.com/Writer,适用于团队的 AI 写作平台。随时随地制作清晰、一致且符合品牌的内容。60、Spinrewriter网址:https://www.spinrewriter.com/借助ENL技术,Spin Rewriter帮助撰写SEO文章。生产独特的,人性化的内容才能在Google上排名更高。61、BlogNLP网址:https://www.blognlp.com/BlogNLP 是一款免费的 AI 博客写作工具,可帮助用户打破作家的障碍,在很短的时间内创建原创内容。62、Scalenut网址:https://www.scalenut.com/以简单且可扩展的方式制作符合业务目标的内容。引导式工作流程,只需 5 分钟即可完成博客!63、HoppyCopy网址:https://www.hoppycopy.co/撰写高转化率电子邮件,速度提高 10 倍。 节省无数的写作时间。使用 AI 为数百种不同的电子邮件营销活动、滴灌、新闻通讯等生成强大的文案。64、Rytr网址:https://rytr.me/Rytr 是一款 AI 写作助手,可帮助用户在几秒钟内以一小部分成本创建高质量的内容!65、Superflows网址:https://www.superflows.ai/Superflow是一种智能自动化工具。它允许用户通过使用 AI 自动执行繁琐的任务来专注于高价值的工作。 输入任务(起草电子邮件回复,进行在线研究等),它会控制浏览器完成它。66、萝卜工坊网址:http://www.beautifulcarrot.com/在线转换模拟手写字体文档,让打印的字看起来像手写的一样;AI专属字体制作,智能模仿文字书写风格;一个软件快速解决文字抄写烦恼。转自 https://zhuanlan.zhihu.com/p/626026307
  • [技术干货] ChatGLM模型中bin和safetensors区别是什么
    前言在阿里魔塔上查看chatGLM3-6b的模型:cid:link_0可以看到,最新的master模型有两种后缀:bin 和 safetensorsbin 文件和 safetensors 文件都是用于存储大型语言模型(LLM)如 GPT、LLama2等的模型参数和权重的格式,但它们的具体用途和格式有所不同。.bin 文件.bin 文件通常是 PyTorch 模型的序列化格式。这种格式用于存储模型的权重和参数。它是一个二进制文件,通常与 .config 文件一起使用,后者存储模型的配置信息(例如层数、隐藏单元数等)。.bin 文件可以通过 PyTorch 的 torch.save 函数创建,并可以通过 torch.load 函数加载。这种格式适用于快速保存和加载模型,但不一定优化了跨平台兼容性或安全性。safetensors 文件safetensors 是一个较新的格式,设计用于存储大型的、用于机器学习的张量数据。它特别关注于数据的安全性和有效性,例如通过验证数据的完整性来防止数据损坏。safetensors 文件格式可能还包括了对数据布局和类型的优化,这有助于提高加载数据时的效率。这种格式通常用于大规模的、分布式的机器学习环境,其中数据安全和验证非常重要。总的来说,选择哪种格式取决于具体需求。如果需要快速、简单地保存和加载模型,.bin 可能是更好的选择,如果关注于数据的安全性和大规模分布式环境下的效率,那么 safetensors 可能是更合适的选择。
  • [技术干货] AI辅助编程现状:AI工具提高了速度,但错误代码也大幅增加【转】
    前言在软件开发领域,AI工具越来越流行。去年GitHub发布报告称,有了AI辅助工具,开发者编程速度提高55%。但是,AI工具辅助编写的代码是不是更好呢?GitClear对2020年1月至2023年12月间编写的1.53亿行代码进行检查发现,相比以前,编写之后修改的代码行数明显增加,2024年相比2021年增加了一倍。换言之,有了AI工具,虽然编程速度加快了,但在第一次编写时错误也大大增加了。形象地说,用AI辅助编写代码,就像聘请一名短期合同工为你工作,他关心的是如何编写冗长的代码,而不是保证代码的可维护性。AI会复制原有代码的错误开发者安全公司Snyk在报告中指出,GitHub AI编程辅助工具Copilot并不安全,如果已有代码库本身存在安全问题,工具编写的代码同样也会不安全。Snyk在2月22日的报告中指出,Copilot会复制代码中存在的安全问题,如此一来,已有安全隐患会让Copilot代码更加不安全。市场上已经出现不少生成式AI编程工具,比如亚马逊CodeWhisperer,ChatGPT等。现有工具的最大问题在于:它无法理解语义,所以无法对代码作出评判。GitHub Copilot从海量过往代码中学习,形成特定模式和结构,然后生成代码片段。这套学习方法有一定优势,但也有一个缺陷。Copilot代码可能会复制已有安全漏洞,或者复制相邻文件中的不良案例。如何降低影响呢?Snyk给出一些建议:包括开发者手动检查代码;安全团队应该设立SAST护栏;开发者应该遵守安全编程指南;安全团队应该给开发团队培训,将每个团队的积压问题分类,按优先级排序;执行团队应该强制设置安全护栏。一般来说,平均每个商务软件项目的第一手代码都会有40个漏洞,当中约三分之一都是高危漏洞。AI生成工具会复制这些漏洞,影响恶劣。跨站脚本攻击(cross-site scripting,XSS)、路径穿越(Path Traversal)、SQL注入、硬编码加密密钥等安全问题比较常见。所以,行业几乎有一个共识:就眼下来看,AI辅助编程还没有迎来黄金时代,AI还不够好。但AI辅助编程未来可期GitHub CEO Thomas Dohmke不久前接受采访时表示:“开发者已经进入AI时代。现在的问题已经很明确,你准备以多快的速度上船?你是不是准备继续沉醉于过去,站在历史错误的一边,忽视生产力提升的大好机遇?”GitHub Copilot实际上归微软所有,最新财报显示,最近一个季度Copilot付费用户数已经突破130万,相比前一个季度猛增30%,已经有5万家企业使用Copilot。Thomas Dohmke称,平台上用户编写的代码约有一半是AI生成的。Thomas Dohmke认为,社区已经普遍接受一个观点,即AI生成代码需要人类程序员监督审核。值得一提的是,新手程序员特别喜欢使用Copilot,因为它能协助解决编程难题。随着编程自动化程度的增加,代码中的错误可能会越来越多,这点其实已经引起争论。Thomas Dohmke称,自Copilot引入之后错误增加数量比较“正常”,没有证据证明AI导致错误猛增。真是这样吗?未必。新手程序员大规模使用AI,一旦出现错误,新手可能无法发现,整个代码的质量可能会下降。微软对AI工具充满期待,除了编程,它还希望Copilot能帮助用户写邮件、制作电子表格、分析Office文档。微软甚至还为Windows PC键盘增加一个“Copilot”按键。谷歌也在开发类似工具。微软CEO纳德拉在最近的财报会议上表示,围绕GitHub Copilot和它的生产力问题,我们已经看到很多的证据和数据,结果不错。纳德拉预计其它Copilot应用也会带来良好效果。总之,目前Copilot还是新生事物,相信再过一段时间,当我们拥有更多数据,就能对上述问题有更深刻理解。(小刀)
  • [技术干货] OpenAI视频大模型Sora原理介绍和应用思考
    OpenAI视频大模型Sora是一个在2024年2月15日(美国当地时间)正式对外发布的人工智能文生视频大模型。Sora的原理和应用思考如下:一、原理介绍技术基础:Sora是在OpenAI的文本到图像生成模型DALL-E的基础上开发而成的。它继承了DALL-E的画质和遵循指令能力,能理解用户在提示中提出的要求。视频生成:Sora可以根据用户的文本提示创建最长60秒的逼真视频。这一特点使得Sora生成的视频不仅局限于短暂的片段,而且能够展现更丰富的故事和情节。世界模型融合:Sora不仅是一个视频生成模型,还被视为一个“世界模拟器”。它能够理解物体在物理世界中的存在方式,并深度模拟真实物理世界。因此,Sora可以生成具有多个角色、包含特定运动的复杂场景。数据压缩与训练:在视频生成过程中,Sora采用了一种称为“视频压缩网络”的技术,将输入的图像或视频数据转换成一个更简洁、低维度的表达方式。然后,Sora将这些压缩过的数据进一步细分为所谓的“空间时间补丁”,这些补丁可以被视作视觉内容的基本单元。接着,Sora在一个低维潜在空间中进行训练,并在该空间内生成视频。架构与扩展性:与GPT模型类似,Sora使用了Transformer架构,具有很强的扩展性。此外,Sora从类似于静态噪声的视频开始,通过多个步骤逐渐去除噪声,从而生成高质量的视频。二、应用思考创作工具:Sora对于需要制作视频的艺术家、电影制片人或学生来说具有无限可能。他们可以通过简单的文本提示来生成所需的视频内容,从而大大提高创作效率。互动体验:由于Sora能够深度模拟真实物理世界并生成具有多个角色和特定运动的复杂场景,因此它可以被用于创建更具互动性和沉浸感的体验。例如,在游戏设计、虚拟现实和增强现实等领域中,Sora可以为用户带来更加逼真的体验。教育与培训:Sora还可以被用于教育和培训领域。通过生成逼真的视频内容,Sora可以帮助学生更好地理解抽象的概念和原理,从而提高学习效果。同时,对于职业培训而言,Sora也可以提供更具实践性的模拟训练场景。娱乐产业:在娱乐产业中,Sora可以为电影、电视剧和动画等制作提供强大的技术支持。通过简单的文本提示,制作人员可以快速生成所需的场景和角色动作,从而大大缩短制作周期并降低成本。总结OpenAI视频大模型Sora的原理和应用思考展示了人工智能在视频生成和模拟真实世界方面的巨大潜力。随着技术的不断进步和应用场景的拓展,Sora有望在未来为各个领域带来更多的创新和变革。
  • [技术干货] Sora文生视频:重新定义视频创作的边界
    前言随着数字技术的飞速进步,视频创作已经从专业领域的专属工具,逐渐转变为大众皆可参与的创意表达平台。而在这个变革的浪潮中,Sora文生视频凭借其独特的技术优势和创新的理念,正重新定义着视频创作的边界。Sora文生视频不仅仅是一个视频编辑工具,它更是一个集创意、协作与分享于一体的综合性平台。通过Sora,用户可以轻松地将自己的想法和故事转化为生动的视频作品,与全世界分享自己的创意和热情。一、技术驱动的创意表达Sora文生视频拥有强大的技术支撑,其基于深度学习的图像处理和语音识别技术,使得视频编辑变得更加智能化和高效。用户无需具备专业的视频制作技能,只需要通过简单的拖拽和选择,就能实现复杂的视频剪辑和特效制作。在Sora平台上,用户可以轻松调整视频的色彩、光线和构图,实现电影级的视觉效果。同时,平台还提供了丰富的音效库和背景音乐选择,让视频作品更加生动和感人。除了基础的编辑功能,Sora还支持AI驱动的自动化编辑。通过智能识别视频内容,Sora能够自动添加合适的特效、转场和字幕,大大提升了视频制作的效率和便捷性。二、协作与分享的社区精神Sora文生视频非常注重用户之间的协作与分享。平台提供了多人在线编辑功能,使得团队成员可以实时协作,共同完成一个视频项目。这种协作模式不仅提高了工作效率,也让创意的碰撞和融合成为可能。同时,Sora还建立了一个充满活力的创作者社区。在这个社区里,用户可以浏览和分享其他创作者的作品,互相学习、互相启发。这种分享和互动的精神,让Sora成为了一个创意的聚集地,吸引着越来越多的创作者加入其中。三、教育与培训的广阔应用除了个人创作者和团队协作,Sora文生视频在教育和培训领域也有着广泛的应用。教师可以利用Sora平台制作生动有趣的课件和教学视频,提高学生的学习兴趣和效果。学生也可以利用Sora平台自主创作学习视频,巩固和拓展学科知识。此外,Sora还可以作为企业和机构的内部培训工具。通过制作定制化的培训视频,企业可以更加高效地进行员工培训和能力提升。四、展望未来随着技术的不断发展和市场的不断拓展,Sora文生视频的未来充满了无限可能。首先,随着5G、云计算等技术的普及,视频创作和分享将变得更加便捷和高效。Sora平台将能够支持更高清、更流畅的视频制作和分享,为用户提供更加优质的视频体验。其次,随着AI技术的不断进步,Sora的自动化编辑功能将更加智能和精准。未来,我们甚至可以期待通过语音或文字描述,就能自动生成高质量的视频作品。最后,随着全球创作者社区的不断扩大和成熟,Sora将成为一个真正的全球创意交流平台。在这个平台上,不同文化、不同背景的创作者可以相互碰撞、相互学习,共同推动视频创作艺术的进步和发展。结语Sora文生视频以其独特的技术优势和创新的理念,正在重新定义视频创作的边界。它不仅提供了一个高效便捷的视频编辑工具,更建立了一个充满活力和创意的社区。在这个平台上,每个人都可以成为创作者,用视频表达自己的想法和故事。随着技术的不断进步和市场的不断拓展,我相信Sora文生视频将会在未来继续引领视频创作的新潮流,为我们带来更多惊喜和感动。
  • [技术交流] AMD显卡,用来做Stable Diffusion 实际效果咋样?有人用过吗?
    现在网上一堆文章,说 Stable Diffusion 不仅可以用 N卡,还可以用 A卡做这就很爽了,因为同样性能的A卡,价格是N卡的一半(例如3代矿卡,最著名的:RX580)虽然理论是这样,但AMD显卡,用来做 Stable Diffusion 实际效果咋样?有人用过吗?
  • [技术干货] 大模型外挂知识库 (检索增强技术)
    什么是检索增强技术 RAG (Retrieval-Augmented Generation)大模型RAG(Retrieval-Augmented Generation)是一种基于生成式预训练语言模型的文档结构化方法。该方法旨在将非结构化的文档转换为结构化的格式,以便于后续的信息抽取和知识推理。RAG模型通常包括检索模块和生成模块,检索模块负责从知识库中检索与给定查询最相关的文档,而生成模块则根据检索器的输出生成相应的响应。通过联合训练检索器和生成器,RAG模型能够协同工作,提高生成相关性和准确性。基于检索增强技术 RAG (Retrieval-Augmented Generation)构建特定领域的大模型检索增强技术 RAG (Retrieval-Augmented Generation) 需要解决在特定领域关键词词性的“幻觉”问题以下是一些构建特定领域的大模型RAG(Retrieval-Augmented Generation)的建议步骤和注意事项:明确任务目标:首先,要明确RAG模型的任务目标。这涉及到确定模型需要回答的问题类型,例如,是问答任务、摘要生成任务还是对话生成任务等。数据收集和预处理:对于RAG模型的训练,需要收集大量领域相关的高质量数据。这可能包括文本、对话、问答对等。数据预处理也很重要,例如,分词、去除停用词、标准化文本等。选择适当的模型架构:RAG模型通常包括检索模块和生成模块。选择适当的模型架构对于模型的性能至关重要。可以考虑使用预训练的语言模型作为生成器,同时使用嵌入向量作为检索器的输入。训练检索器:检索器的作用是从知识库中检索与给定查询最相关的文档。需要使用适当的损失函数来训练检索器,并确保其能够有效地检索相关信息。训练生成器:生成器的作用是根据检索器的输出生成相应的响应。可以使用条件变分自编码器(CVAE)等模型来训练生成器,并确保其能够生成有意义且相关的响应。联合训练:最后,需要将检索器和生成器联合训练,以确保它们能够协同工作。可以通过最小化检索器和生成器之间的损失来达到这个目的。注意事项:数据质量和规模对模型的性能有很大影响,因此尽可能使用高质量的数据集。模型训练可能需要大量的计算资源和时间,因此可以考虑使用分布式计算或GPU加速。监控训练过程和验证模型的性能是很重要的,可以通过绘制学习曲线等方法来评估模型的性能。在应用RAG模型时,需要注意其可能产生的偏见和伦理问题,例如,歧视性语言、隐私泄露等。需要采取适当的措施来解决这些问题。其它模式除了RAG模式,还有以下几种常见的大模型外挂知识库模式:预训练+微调(Pretrained-to- Fine-tuning):这种方法首先使用大规模语料库进行预训练,然后通过微调过程将模型参数调整到最佳性能。这种方法的优点是能够利用大规模数据集和算力资源,快速提升模型性能;缺点是需要大量时间和计算资源进行预训练和微调。迁移学习(Transfer Learning):这种方法将一个领域的知识迁移到另一个领域中,从而在不需要重新训练的情况下获得新的知识。例如,可以将机器学习领域的模型迁移到自然语言处理任务中。这种方法可以节省大量的时间和资源成本,但需要注意不同领域之间的差异和挑战。联合训练(Cross-training):这种方法将多个模型进行联合训练,以增强模型的性能和能力。例如,可以使用一个生成器和一个检索器进行联合训练,以提高生成的准确性。强化学习(Reinforcement Learning):这种方法通过让模型与环境交互来学习技能和策略。在这种方法中,模型需要自己探索并发现新知识,因此需要更多的数据和计算资源来进行训练。自动化构建知识图谱(Auto-building Knowledge Graphs):这种方法使用自动化工具和技术来构建大型知识图谱,以便更好地理解信息和关系。这种方法需要大量的数据和专业知识来进行自动化构建。这些模式各有优劣,需要根据具体的应用场景和需求选择合适的模式来构建大模型外挂知识库。
  • [技术干货] 15 种 AI 工具,可实现更好、更高效的设计【转】
    ChatGPT最近在中国爆发了 ,带来了越来越多的人工智能工具 如雨后春笋般涌现。相信很多设计师都开始意识到AI工具可以帮助我们提高工作效率, 让设计工作变得更简单。今天Chris为大家介绍15款超棒的AI工具,包括一键抠图、卡通绘图、配色工具等,让你轻松实现自己想要的设计素材。千万不要错过这些神奇的工具,让AI成为你提高工作效率的得力助手!1. Khroma配色工具https://www.khroma.co/​ www.khroma.co/ Khroma 是一款人工智能工具,通过学习和分析海量的色彩数据,智能生成高质量的配色方案,让你的配色方案工作量翻倍。只需输入基本颜色或选择颜色主题即可获得多种配色方案的组合和调整。此外,还可以通过自定义亮度、饱和度等参数,定制专属配色方案。2. Huemint配色工具Color palette generator for brands, websites and graphics​ huemint.com/brand-intersection/ Huemint 是一款神奇的 AI 配色工具,可智能识别前景、背景和强调色,让您自由掌控配色方案。在Huemint网站上,您可以通过工具栏操作来选择颜色、选择生成模型、控制颜色倾向等,让Huemint变得更智能、更易用。这对设计师来说是一个福音。 ‍3.AnimeGAN绘图工具AnimeGAN.js​ animegan.js.org/ AnimeGAN 是一种基于深度学习的图像风格迁移算法,让你从真实的照片或视频中瞬间智能生成漫画风格的图像或视频。上传一张你自己或你偶像的照片,AnimeGAN 会在几秒钟内生成高质量、类似手绘的漫画风格图像,让你的设计作品更加生动有趣。✨4. Pixel Planet Generator绘图工具https://deep-fold.itch.io/pixel-planet-generator​ deep-fold.itch.io/pixel-planet-generator Pixel Planet Generator 是一款在线像素艺术生成器,拥有十二种预设风格的黑洞、星系、恒星、小行星,以及可自定义的行星纹理、颜色、角度和其他细节。通过使用漂亮的AI工具Pixel Planet Generator,它可以帮助没有任何专业美术技能的用户通过简单的点击和拖动操作绘制他们想要的图案和形状来创建美丽的像素艺术。5.AutoDraw绘图工具https://www.autodraw.com/​ www.autodraw.com/ AutoDraw ️ 是一个很好的AI工具,让用户只画一个基本的形状,AutoDraw会自动识别形状并提供几个相似的形状供用户选择,用户可以选择自己喜欢的也可以调整修改它。此外,AutoDraw提供了一些常用的图形和符号,用户可以直接选择使用,而无需自己绘制,从而使用户可以更快速、更准确地创建高质量的草图图形,降低绘图门槛。6. Posemaniacs设计工具https://www.posemaniacs.com/​ www.posemaniacs.com/ Posemaniacs 是一个免费的在线人体解剖学AI工具,提供各种姿势和身体结构的3D模型,包括日常生活姿势、瑜伽、跑酷、篮球、舞蹈等。它可以帮助您节省大量寻找时间图纸参考!在Posemaniacs姿势库中,您可以选择不同的动作,如站立、行走、跑步、跳跃等。并借助旋转、缩放和运动工具,帮助设计师仔细观察和了解人体结构和肌肉变化不同的姿势。7.Ingradients设计工具Ingradients - Hand-picked mesh gradients for your next design project​ ingradients.net/ Ingradients 这个好用的 AI 工具提供了 6K+ 渐变色素材,可用于网页设计、UI 界面、海报等设计,帮助设计师提升作品的视觉效果。只需选择您喜欢的渐变,点击下载按钮,并输入您的电子邮件地址,即可免费获得 png/jpg 格式的精美渐变。8. Designs.ai设计工具https://designs.ai/​ designs.ai/ Designs.AI 是一个功能丰富、简单易用的创意设计平台,集成了人工智能技术和多种设计工具,使用户能够更快速、更高效地创建专业级的设计。简单易用的AI工具Designs.ai拥有超过20,000个模板和10,000个图标,帮助用户根据需要自定义图标、形状、字体、颜色、模型颜色和背景阴影等效果,智能生成标志设计、品牌指南和产品型号。9. Adobe Sensei设计工具https://www.adobe.com/sensei.html​ www.adobe.com/sensei.html Adob​​e Sensei 是 Adob​​e 开发的人工智能和机器学习技术平台。它可以帮助设计师、摄影师、视频编辑和其他创意专业人士通过自动执行重复性任务并使创意过程更智能、更高效来提高创意过程的效率。Adobe Sensei 具有图像识别、智能填充、视频处理、自然语言处理、多语言翻译等功能。它协助用户更轻松地管理、填充和搜索图片,自动编辑和裁剪视频,管理和搜索文本内容,并进行自动文本翻译,以简化工作流程 并为用户节省大量时间和精力⏰ 。10. Uizard设计工具https://uizard.io/​ uizard.io/ Uizard 是一款基于人工智能的设计工具,可以自动将用户的手绘草图、文字描述和图片转换成高质量的设计原型和代码。这降低了网站和应用程序开发的门槛,同时提高了设计人员的生产力和创造力。Uizard 还支持多人协作,允许用户与其他设计师、开发人员和客户一起使用该工具来共同创建最终设计 。11. Deep Art Effects图像处理工具https://www.deeparteffects.com/​ www.deeparteffects.com/ Deep Art Effects 是一款基于人工智能的图像处理工具。只需单击一下,它就会自动识别和提取艺术风格,并将该风格应用到用户上传的图片中,从而实现将普通照片和图像转换为艺术风格的图像。Deep Art Effects提供超过120种艺术风格供用户选择,用户可以根据自己的需要定制自己的艺术风格,让你的作品瞬间升华!12. Let’s Enhance图像处理工具https://letsenhance.io/​ letsenhance.io/ Let's Enhance 是一款基于 AI 的图像增强工具,通过自动修复、去噪、增强细节等功能来提高图像的清晰度和质量。有了这个强大的AI工具,对于需要让自己的图像更清晰的人来说,这样就很容易了!Let's Enhance 支持对多张图片进行批量处理,并支持将增强后的图片保存为不同的格式,并进行裁剪和调整,从而帮助设计师更高效地工作。13. remove.bg图像处理工具https://www.remove.bg/​ www.remove.bg/ remove.bg 是一款出色的 AI 工具,可让设计师一个一个地分解背景。 ️‍♀️ 只需单击一个按钮即可自动识别和分离图像中的前景对象和背景,从而实现即时背景去除。此外,删除。bg还支持批处理、透明背景选择、颜色调整等诸多实用功能。现在您不必再浪费时间处理图像了! !14. ClipDrop Remove Background设计工具https://clipdrop.co/remove-background​ clipdrop.co/remove-background ClipDrop Remove Background 是一款免费的在线抠图工具,它使用AI人工智能算法,帮你轻松去除照片背景,即使是头发、相似颜色的阴影等,也能轻松去除!✨ 它支持输出高达 5000x5000 像素的图像,以获得更震撼的视觉效果。15. Img.Upscaler图片处理工具https://imgupscaler.com/​ imgupscaler.com/ Img.Upscaler 是一款在线智能PNG/JPG图片无损放大工具,通过AI智能处理技术和超强的细节处理能力,将分辨率模糊的图片无损放大,支持10张图片一次免费处理,最大4000x4000 5MB。使用Img.Upscaler,您可以轻松将模糊的动漫图像、角色头像、动物图像等处理成4K高清质量,让您的图像消除锯齿,更平滑清晰,细节惊人!想快速升级您的图像吗?那就试试吧!概括这些就是 Chris 与您分享的 15 个超级好用的 AI 工具。除了上面介绍的这些工具,国内外还有很多强大的AI工具正在不断发展和改善人们的生活,让我们一起为他们的创新呐喊吧!AI工具的出现已经深刻改变了我们的工作和生活,设计师们可以利用这些AI工具来加快他们的工作效率,高质量的完成大量的设计工作, 也有更多的时间去探索更多设计元素的可能性. 相信在不久的将来,AI工具会发挥更重要的作用,成为设计师的得力助手,让我们拭目以待AI给设计带来什么! 下期再见。
  • [AI实战营] AI绘画专栏之SD扩图这么简单?谁说扩图只能用comfyui或者MJ?
    在开发Java应用程序时,异常处理显得尤为重要。只有正确处理所有可能出现的异常,才能确保应用的健壮性和稳定性。传统上,我们会在每个可能抛出异常的方法中使用try-catch捕获异常,这当然可以解决问题,但代码冗长且难以维护。相比之下,使用AOP(Aspect Oriented Programming)来实现全局异常捕获会更加优雅高效。​Java异常基础在Java中,所有异常都继承于Throwable类。主要分为两大类:Checked Exception和Unchecked Exception。Checked Exception:编译时即可检查到的异常,如IOException。必须用try-catch捕获或在方法声明上抛出。Unchecked Exception:运行时异常,如NullPointerException。不需要捕获也可编译通过。除此之外,Error并不是一个Exception,表示严重问题无法进行恢复。传统方式-方法内catch我们可以在每个可能抛出异常的方法内用try-catch来捕获:public void method() { try { // code } catch (Exception e) { // handle exception } }这种方式容易产生大量重复代码,维护复杂。如果忘记添加catch也会导致部分异常无法处理。AOP实现全局捕获AOP思想是将公共功能从主线业务中分离出来形成一个独立模块。我们可以用AOP框架如Spring AOP或AspectJ实现全局异常捕获:@Aspect public class GlobalExceptionHandler { @AfterThrowing(value = "execution(* com.example.service.*.*(..))", throwing="ex") public void handleException(Exception ex) { // 统一处理所有服务层抛出的异常 } }实战技巧除捕获异常,我们还可以返回一个友好的错误码:@AfterThrowing(value = "execution(* com.example.controller.*.*(..))", throwing="ex") public ResponseEntity handleControllerException(Exception ex) { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) .body(Result.fail("10000", ex.getMessage())); }同时,记录到日志中有助于问题排查:@AfterThrowing(value = "execution(* com.example..*(..))", throwing="ex") public void logException(Exception ex) { logger.error("异常:{}", ex); }这样不论方法内部抛出什么异常,我们都可以实现统一处理。大大提高了应用的可靠性。是不是很炫酷!请给个小红心支持一下。下次再聊更多AOP技巧。
  • [分享交流] 【分享交流】你们认为2024年 AI 会像之前的工业革命一样,为人类社会带来巨大的变革吗
    【分享交流】你们认为2024年 AI 会像之前的工业革命一样,为人类社会带来巨大的变革吗
总条数:50 到第
上滑加载中