我的学习笔记

土猛的员外

TorchV的RAG实践分享(四)——开放试用

从2023年11月29日开始启动公司(杭州萌嘉网络科技有限公司),到12月中旬开始研发TorchV,第一个对外试用版本终于开始接受试用了。

欢迎企业用户试用,共同探讨AI的企业应用落地。

下面的内容主要分为:

  • TorchV Bot产品介绍;
  • 有哪些可以说道的特性;
  • 如何试用?
  • 合作方式;
  • 附录1:RAG简要说明;
  • 附录2:TorchV Bot操作说明

一、TorchV Bot介绍

1.1 TorchV Bot是什么?

TorchV Bot是一款基于大语言模型(Large Language Model,后文简称LLM)和检索增强生成(Retrieval-augmented generation,后文简称RAG)技术的人工智能问答机器人,属于TorchV最主要的三款产品(Bot、Assistant和Analyst)中一款。

阅读全文

如何使用快速压缩将RAG的Prompt成本削减80%

这是一篇翻译文章,觉得确实很有启发,所以发出来大家一起看看。

我们现在做RAG应用,对于tokens确实很敏感,能省一些是一些吧,但是这篇文章是针对英文的,不知道对于中文支持的怎么样?

我们后面也会真正用起来,会再给大家汇报一下使用效果,或者会发布我们自己的改良方法。

感谢原作者:Iulia Brezeanu,原文和引用在文末。

推理过程是使用大型语言模型时消耗资金和时间成本的因素之一,对于较长的输入,这个问题会更加凸显。下面,您可以看到模型性能与推理时间之间的关系。

img

性能得分与推理吞吐量[1]

小型模型每秒生成更多的tokens,往往在Open LLM排行榜上得分较低。增加模型参数大小可以提高性能,但会降低推理吞吐量。这使得在实际应用中部署它们变得困难[1]。
提高LLMs的速度并减少资源需求将使其能够更广泛地被个人或小型组织使用。

对于提高LLM的效率,目前大家提出了不同的解决方案来,有些人会关注模型架构或系统。然而,像ChatGPT或Claude这样的专有模型只能通过API访问,因此我们无法改变它们的内部算法。

本文我们将讨论一种简单且廉价的方法,该方法仅依赖于改变输入给模型的方式——即提示压缩。

阅读全文

AI原生应用的思考——CUI、电动机窘境和2024发展猜想

开始

AI领域最近的风声:2024是RAG爆发年。

对于这些信息,我的理解是这样的:

LLMs属于Infra,属于大厂和已经被资本投资的“AI大厂”们玩的,2023年大部分的投资也都是大额的,聚焦在LLMs这一领域。但是LLMs要找到健康的商业模式,必须与更丰富的业务场景结合起来,就需要大量基于LLMs的应用去拓展市场,不论是toC还是toB。所以到了Q4,有些资本已经在讨论2024年的投资要更加分散,更关注AI原生应用。作为基于LLMs应用支撑技术的RAG,也就必然会被特别关注,我想这就是所谓的2024是RAG爆发年的道理了。

但是今天我不是来讨论RAG的,虽然公众号“土猛的员外”是有很明显的RAG标签的,我今天更想讨论的是AI原生应用(AI-Native App)这个话题:

  • 什么是AI原生应用?
  • AI原生应用有什么不同之处?
  • AI原生应用的猜想

什么是AI原生应用?

ainative

图1:什么是AI原生应用?图片来源:bohdankit.com

当电动机出现时

在讲什么是AI原生应用之前,我们可以先来看看电动机在最开始时候的应用。

阅读全文

TorchV的RAG实践分享(1)——如何应用、技术选型和RAG知识目录

logo
图1:TorchV的LOGO

主要内容:

RAG在我们产品体系中的定位;

TorchV RAG的技术选型;

RAG知识目录

0.开始

从9月份开始在微信公众号分享RAG技术以来,收获了很多来自业界的认可和鼓励,所以11月中旬从老东家离职之后就和小明开始了创业之旅——创建了TorchV品牌,主要是围绕RAG+LLM的产品研发和应用销售。经过一个多月的努力,我们已经有了一个基础架构和一个产品。当然和规划中的成型战力还有一定的距离,但是依然可以分享一下RAG在TorchV产品体系中应用情况,主要包含以下三个问题:

  • TorchV如何围绕RAG打造产品体系?
  • TorchV RAG的技术选型;
  • 常见问题。

阅读全文

通过5个参数控制RAG在不同场景下的准确度

昨晚和小明在讨论elasticsearch的检索,整整写了三黑板。主要原因是elasticsearch的检索有knn(其实是ann,前面文章有讲过)和bm25两种,如何在不同的场景(针对不同客户)设置不同的boost比例就变得非常重要。昨晚讨论的最终结果是在针对不同的客户(租户)都分别拉出五个参数,便于在面对不同客户场景时可以将检索准确度做到最佳

可以简单展示一下其中的三个参数:

  • boost:这是es自带的参数,取值0-1,一般是用来控制混合检索中BM25和KNN的分值占比的。我们内部会写成boost * BM25_SCORE+(1-boost) * KNN_SCORE。也就是说,boost=1,那么就完全用BM25的得分来排序了,以此类推;
  • kms:kNN_min_score,取值0-1,这是用来设置重排之后的knn得分最小值,低于这个值,我们认为RAG检索无召回。比如kms=0.6,就是重排之后得分低于0.6的结果都不需要。如果所有召回的结果都低于0.6,那么就看下一个参数f_llm
  • f_llm:finally_llm,True | False,默认是False。如果设置成True,那么在某次检索中所有召回结果分值都低于kms的时候,系统会将用户的原始Query直接给到LLM。否则,系统会告诉用户,“据已知资料,无法回答您的问题!”

阅读全文

LLM企业应用调查报告——使用方式、问题和展望

看到O’Reilly的调查好文,翻译转发分享给大家。

本文的主要内容:

  • 企业是如何使用生成式AI的?
  • 在使用中遇到了哪些瓶颈?
  • 企业希望生成式AI可以解决哪些缺陷和差距?

生成式AI是2023年最大的科技故事。几乎每个人都玩过ChatGPT、Stable Diffusion、GitHub Copilot或Midjourney。一些人甚至试用了Bard或Claude.ai,或者在他们的笔记本电脑上运行Llama(或Llama.cpp)。每个人都对这些语言模型和图像生成程序将如何改变工作的本质迎来奇点甚至可能毁灭人类有着自己的看法。在企业中,我们看到了从大规模采用,到严格限制,甚至禁止使用生成式AI的风向变化。

现实是什么?我们想知道人们到底在做什么,所以在9月份我们调查了O’Reilly的用户。我们的调查重点是:

  • 企业是如何使用生成式AI的?
  • 在使用中遇到了哪些瓶颈?
  • 企业希望生成式AI可以解决哪些缺陷和差距?

调查报告主要内容

阅读全文

大模型商业应用的天王山之战——“消灭”LLM幻觉

本文主要内容:

大模型LLM为什么会有幻觉?

“消灭”幻觉的四个主要方法

幻觉如何检测

在之前我一篇文章比较受欢迎的文章《大模型主流应用RAG的介绍——从架构到技术细节》中提到了大语言模型(LLM)的主要缺点有三点:

  • 幻觉问题:大模型的底层原理是基于概率,所以它有时候会一本正经胡说八道,比如我们问大模型的问答系统,“良渚博物院下周一开门吗?”我相信这样的问题你不能连续问,因为大模型会有一定的几率告诉你开门。而如果游客真的在下周一去了良渚博物院,那估计就要失望了,如果这个Chat还是博物院官方提供的,那事情最终会演变成一通12345的投诉电话。所以在很多需要非常精确的场景,仅仅依赖GPT的这种生成式回答是很不严谨的,而且看起来很难消除。
  • 新鲜度问题:规模越大(参数越多、tokens越多),大模型训练的成本越高。类似OpenAI的ChatGPT3.5,目前的数据新鲜度依然保留在2021年,对于之后的事情就不知道了。而且对于一些高时效性的事情,大模型更加无能为力,比如帮我看看今天晚上有什么电影值得去看?这种任务是需要去淘票票、猫眼等网站先去获取最新电影信息的,大模型本身无法完成这个任务。
  • 数据安全:OpenAI已经遭到过几次隐私数据的投诉,而对于企业来说,如果把自己的经营数据、合同文件等机密文件和数据上传到互联网上的大模型,那想想都可怕。如果企业人员想提一个类似这样的问题:“帮我看看3月份XX部门的销售环比数据与哪些兄弟部门的增长是密切相关的?”,这需要打穿企业内部的很多数据。既要保证安全,又要借助AI能力,那么最好的方式就是把数据全部放在本地,企业数据的业务计算全部在本地完成。而在线的大模型仅仅完成一个归纳的功能,甚至,LLM都可以完全本地化部署。

这三个问题中,“新鲜度问题”已经基本上被解决了,像GPT-4 Turbo这样的最新大模型已经有类似RAG(Retrieval Augmented Generation,检索增强生成)这样的技术,可以借助外挂快速吸收最新知识(世界知识)。剩下的两个问题,“数据安全”最好的解决方案当然是本地化,敏感数据不上公网才是最安全的。次之的解决方案是使用可信度更高的大模型厂商,他们肯定都有基本的职业操守。当然这不是本文主要讨论的问题。好了,剩下最棘手的就是大模型的“幻觉问题”了,所以今天我们主要来讲讲幻觉,以及如何“消灭”幻觉。

幻觉产生的原因

就大语言模型(LLM)本身来说,可能是永远无法消除“幻觉”的,就像Sam Altman说:“幻觉和创造性是等价的”。这个概念我似乎很早就理解了,因为就像生物进化一样,只有不稳定的随机性才能带来的多样性,而多样性才能让物种穿越周期不断进化。

阅读全文

用弹子球机解释LLM原理,包括损失函数和梯度下降

本文重点:

用弹子球机来展示大语言模型的一些内部原理

如何去调整参数,以达到我们想要的模型输出效果

今年5月份的时候我说国内真正使用过ChatGPT的人不超过5%,但是到了11月份,我再和企业、政府等的一些客户交流时,已经很难再碰到整个交谈过程中不说大语言模型(LLM)的了。但是说实话,大部分人对于LLM的了解还是很“新闻”化的,看到了现象但不达本质,往往造成了对LLM的“神化”。所以今天这篇文章,我希望用相对不那么技术化的描述来讲讲LLM的一些原理和概念,让大家对LLM有更近一步了解,也许对大家后面使用LLM及其应用有一定的帮助。

首先做个说明:本文不会讲太多数学公式,我会尽量保证非数学、统计专业的朋友可以看懂。

弹子球机

今年2月份我写过一篇关于GPT的文章《ChatGPT会给文旅行业带来什么改变》,里面提了一下ChatGPT的原理,如下图所示。

colorball

当时说的是假设我们有一个弹子球机器,把各种不同(颜色、重量、尺寸)的球从顶部扔进去,球会和里面的这些柱子(杯子上方的这些圈圈)相碰撞,最终掉下来,落进最下面的杯子里。我们期望机器可以做到”红色的球最终掉进红色的杯子,蓝色球掉进蓝色杯子,依次类推“,我们可以做的事情是调整机器里面的柱子(假设这些柱子表面是不规则的,而且我们可以旋转这些柱子)。

阅读全文

AI创业之路会被OpenAI堵死吗?

上周算是我正式离职创业的第一周,拜访客户、行业交流、选办公场地、置办办公设备等等,很多时间不在电脑面前,所以上周没更新任何文章。嗯,那就这周补上,发两篇!

office

图1:办公室已经付了房租,夜景还是很赞的,目前等待办公家具入场,准备11月底开始办公

今天这篇是上周本来就想写的,就是OpenAI DevDay(开发者大会)之后,基于大模型及相关的创业项目前景如何。

openaidevday

图2:OpenAI DevDay现场,你能想象不到两周时间,Sam Altman被踢出OpenAI-回归谈判-又最终入职微软的狗血剧情吗?

阅读全文

Rerank——RAG中百尺竿头更进一步的神器,从原理到解决方案

本文主要内容:

  • 为什么一般情况下RAG的检索相关性存在问题?
  • Rerank为什么可以解决这个问题?
  • 几种常用Rerank组合评测;
  • 如何在自己的产品中使用Rerank?

检索增强生成(RAG)是解决大语言模型(LLM)实际使用中的一套完整的技术,它可以有效解决LLM的三个主要问题:数据时效性幻觉数据安全问题(在我之前的文章《大模型主流应用RAG的介绍——从架构到技术细节》中有详细介绍)。但是随着RAG越来越火热,使用者越来越多,我们也会发现用的好的人/团队其实还是不多的。这也是RAG常被人吐槽的一点:入门简单,用好却非常难!

对于RAG的效果,我们之前已经做了很多方面的优化了,包括:

  • 优化内容提取的方法:从源头解决内容提取的有效性,包括文本内容、表格内容(保留制表符)和图片内容(OCR识别)等,可以参看我之前的文章《完全指南——使用python提取PDF中的文本信息(包括表格和图片OCR)》
  • 优化chunking:从最开始的512固定长度切分,到后面的句切分,再到后面的NLTK和SpaCy,具体可参见我之前写的《最详细的文本分块(Chunking)方法——可以直接影响基于LLM应用效果》
  • 再之后是优化embedding模型:Embedding模型的选择其实很魔性,我们在优化过程中也会不断否定之前的一些判断。比如我们最开始用m3e,后面用bge,再后面还用了通义千问的embedding模型。总体来说,收费的通义千问还是好一些,但是不明显,有些方面却不如bge。最近一朋友也向我推荐了Jina embedding模型,不过他们的中文模型需要12月份才出来;
  • 我们还优化了其他一些过程:比如prompt模板、关键词摘要、元数据存储等。

这些优化确实给我们带来了非常好的效果,但不够!我们在一些客户的实践过程中,还是发现相关性效果不佳,甚至造成了其中一个客户选择了其他方案(使用RAG+GPT-4的方案)。

我们还是坚持用国产大模型(如Baichuan2-13B、ChatGLM3-6B和QWen-14B等),毕竟主要服务的还是国内客户,加上现在接触的多数客户其实都有私有化部署的需求。所以我们进行了一段时间的探索,发现我们还有一项很有效的优化没有去做——ReRank。

所以,虽然Rerank优化我们还在做,但是今天我们可以先聊聊ReRank这个话题。

为什么需要Rerank

我们发现,在10月中旬之前,国内外的互联网上很难发现Rerank相关的话题。有少量人提到了,但是基本上都没有提到解决方案。我和小明在讨论Rerank的时候其实是先从提问题开始的。

阅读全文