大模型
Key Takeaway
- Ollama是本地运行开源大模型的最佳工具,但官方模型对中文支持有限。
- 用户可以通过Hugging Face下载GGUF格式的开源大模型文件,并利用Modelfile和
ollama create
命令将其添加到Ollama中。 - GGUF格式是一种压缩格式,能让大模型在消费级终端上运行,但会牺牲精确度。
- 文章详细介绍了将GGUF模型添加到Ollama的步骤,包括创建Modelfile和使用
ollama create
命令。 - 强调了Ollama的开放性,使其能够运行任何开源大模型,为用户提供了更多选择。
Full Content
在本地跑开源大模型,目前最好的软件肯定是Ollama。
但是,对于咱们国内的用户来说,Ollama有一个问题:
官方提供的模型,对中文的支持太少了。
目前就一个中文模型,是基于Llama2微调的。如果你在官网搜“Chinese”这个关键词的话,能找到一个它(Llama2-Chinese)。
如果我们想多一些选择,使用那些国产的开源大模型,该怎么搞呢?本期我就介绍一下方法。还是那句话:
超级简单,有手就行。
理论上,除了官方模型列表里的模型,Ollama可以运行任何开源大模型,只要你有模型的GGUF文件。
那么,第一个问题来了:去哪里下载模型文件?
世界上开源大模型最多的地方,肯定是Hugging Face了。我们可以到这个平台直接搜国产大模型,比如:baichuan gguf,或者qwen gguf。通过下拉列表,就可以找到用户上传到GGUF格式文件。
这个GGUF格式,为了方便理解,你可以先简单把它看作是一种压缩格式——虽然这么解释并不严谨,不过无所谓啦。就像JPG压缩的是图片,那GGUF压缩的是大模型。这样一来,才好在咱们这些消费级的终端上跑。
当然,压缩是有代价的,那就是精确度下降。所以列表里才会有一系列不同体积的文件。大家根据自己机器的配置,选一个合适的下载就好。
下载好之后,创建一个txt文档,名字叫Modelfile,里边只需要写上这么一行:
FROM D:\ollama
这个文档的作用就是告诉Ollama该去哪儿找模型文件。比如,在我这边就是,去D盘、ollama文件夹,找到叫这个文件名的模型文件。
最后一步,打开终端,输入这一行命令:
ollama create
我来解释一下这行命令的意思。其实大家不用紧张,觉得这是命令什么的,肯定看不懂——你就把它当成是英语的阅读理解嘛:
ollama create,很好理解,就是让ollama去创建新的模型文件。
那么,创建好的模型该叫什么名字呢?就是后边跟着的名字,随你设定。
Ollama肯定不能凭空创建出一个模型文件,这就需要使用我们之前下载好的GGUF文件。这时候,我们告诉它,去读取刚才创建的txt文档,里边有GGUF文件的地址。
这样一来,Ollama就知道该从哪里找到大模型,然后创建一个叫什么名字的模型文件了。
这行命令运行之后,稍等个两三分钟就搞定了。
我们在终端里输入:ollama list。这个命令会列出目前你已经拥有的模型。这时我们看到,刚才导入的模型已经存在了。
打开Open WebUI,在模型选择的下拉列表里,同样也能看到最新的模型。
OK,以上就是让Ollama添加任意开源大模型的方法。我刚才下载的那个模型版本,中文的效果不一定好,只是为了演示这个方法。大家可以去Hugging Face或者国内的模型社区下载各种GGUF格式的中文大模型,然后找到最适合自己的版本。
本期内容就这些。大家如果有疑问,或者想进一步交流的话,到知识星球来找我。咱们下期见!
Key Takeaway
- RAGFlow是一款开源的“重型知识库引擎”,提供比现有知识库产品更深度、细致的RAG设置,包括Rerank Model、RAPTOR和Self-RAG等高级功能。
- RAGFlow通过Docker部署,支持所有主流大模型提供方(云端和本地),并提供丰富的知识库创建和Assistant定制选项。
- RAPTOR技术通过多层总结形成树状结构,提升复杂问题的推理能力;Self-RAG则通过大模型自我反省,解决过度检索问题。
- RAGFlow的专业度体现在其对文档切块方式的细致选择,以及对检索和生成环节的全面设置。
- 文章强调RAGFlow作为引擎,支持通过API与其它Chatbot或Agent打通,是构建本地知识库的理想选择。
Full Content
给大家推荐一款重磅产品。
如果你对现在的知识库产品不满意,想要提升检索精确度,我推荐你试一试RAGFlow。它提供了更深度、更细致的选项,你可以根据自己文档的情况做针对性的调整。
如果你们团队或者公司想要搭建一套本地知识库,我也建议你们先研究一下RAGFlow。我之前就在社群里说过:大概率,你们自己捣鼓出来的东西不会比它更好——还不如在它的基础上做定制化。
RAGFlow是一套开源的RAG引擎。它重度集成了各种技术,而且更新很快。咱们可以来对比一下:
像AnythingLLM之类的知识库应用,在RAG设置方面,一般就允许你选择用什么嵌入引擎,以及Chunk Size多大,有多少Overlap。
再来看RAGFlow。除了Embedding Model,还可以选择Rerank Model。在知识库设置里,可以针对不同的文档类型,选择不同的切割方式,以及是否要开启RAPTOR。在Chatbot设置里,可以选择是否要开启Self-RAG。
RAPTOR这个技术简单来说就是,先把文档分成小块,然后对每一块做总结,然后再次总结、形成更高一层的概括。这么一层层地总结、叠加,最终形成一种树状的结构。对于需要多步骤推理的复杂问题,把RAPTOR开起来,效果更好。
至于Self-RAG,其实就像名字里说的那样,它会自我反省。因为,RAG虽然解决了外部知识补充的问题,但在实际使用中,有时会出现过度检索等问题。所以就需要用大模型来评判、来自我反省。
所以你看,这些更进阶的东西,我们目前常用的应用都没有,它们都还是一种轻量化的设计。RAGFlow的定位是引擎,所以它自身得足够强大,对技术得扎得足够深。既然是引擎,那就得支持向外输出马力。通过RESTful APIs,RAGFlow可以跟其它Chatbot或者Agent打通——这个以后我会在社群里详细介绍。
本期视频,我先带着大家过一遍部署和使用。
通过Docker,很容易就能完成部署。唯一需要注意的是,留出至少50G的硬盘空间,这个项目很大条的。
首先咱们创建一个RAGFlow文件夹。接着在VS Code里打开它,通过git clone命令把仓库克隆到本地。然后通过cd命令进入docker文件夹。最后运行docker compose up这行命令,就会开始下载镜像了。
因为包含了一些模型文件,所以体量挺大的。大家得耐心等等。我这边等了得有10分钟,终于全部搞定了。在Docker里把项目启动起来。打开一个浏览器页面,输入localhost就可以看到RAGFlow的页面了。
第一次进入需要注册,这个也是为了方便团队使用。我们首先点击右上角的头像,做一些设置。用户名、头像、密码什么的我就不说了,大家都懂。主要是模型设置这边。
RAGFlow支持所有主流模型提供方。国内的有月之暗面、智谱等等,国外的有OpenAI那些,基本是应有尽有了。
对于云端的平台,把API Key填进去,点击确认,它会验证是否可用。然后打开下拉列表就可以看到支持的模型了,包括Chat、Embedding、Image2Text、Speech2Text。
如果是要本地运行,比如Ollama,Base URL记得是填host.docker.internal:11434,不是localhost:11434。在模型名称这边别填错了。如果不确定的话,打开终端,输入Ollama list,就会列出你现有的所有模型。然后把名称复制、粘贴过去。
设置完成之后,就可以创建知识库了。这边主要有三点:
第一,使用什么嵌入模型。你可以用RAGFlow自带的,也可以用你自己的。
第二,切块的方式。不同的文档类型,RAGFlow有不同的切块方法。选中任意一个,在右边就会有具体的解释。从这点你就能看出它的专业度。如果你拿不准,也可以选择General。
第三,选定切块方式之后,有可能会让你设置切块的大小。默认是128,你可以根据文档的情况把它调大一点,比如256、512。
至于最下边的RAPTOR,大家可以把它打开,试一下效果。
这一切设置完成,就可以上传文档了。我这边准备了一篇关于英伟达的文章,从公众号里复制下来的,内容是关于英伟达的网络产品。
大家都知道,英伟达的GPU和CUDA是护城河。现在,趋势有变化——单卡的性能已经无法满足大模型训练和推理的需求了,集群是唯一出路。但是,要把几万块GPU组合成一个超大GPU有很高的难度。所以,英伟达正在构建自己的第三条护城河:Networking。
跑题了,咱们回到RAGFlow这边。文档传上去之后,别忘了要手动点击开始。有时会解析失败,不要紧,再来一次就好。如果还不行,就回去改一改设置,也许是切块的大小设得太高了等等。
完成之后,我们可以看到所有的文本块。
为了测试检索的效果,RAGFlow还提供了Retrieval Testing。咱们可以输入一个问题,看一下它都找到哪些相关的文本块。
对于一些场景,比如AI客服,我们会希望检索尽可能准确。于是就可以在这一步检测,不满意就回头修改。
最后是落地环节。这一步需要创建一个Assistant,也就是聊天机器人。同样地,RAGFlow也提供了丰富的定制化选项。
比如,AI用什么开场白跟用户打招呼;如果没有在知识库检索到相关的内容,AI该怎么回复;是否要开启Self-RAG;要关联哪些知识库,等等。
我敢肯定,这三页的设置就超过市面上绝大多数的Chatbot类产品。因为,RAG其实包含了两个环节:一个是Retrieval,检索;一个是Generation,生成。这一步的设置就是为了提升生成的质量,很容易被大家忽视——RAG不能只看检索。
OK,全都搞定之后,咱们来测试一个问题,看看回答效果:英伟达为什么要造交换机?
虽然回答的时间有点长,但效果还挺不错的。而且这还是在我没有做细致设定的情况下。我相信,如果花时间去调试的话,效果一定会很不错。
OK,RAGFlow的部署和基本应用就这些。从检索到生成,它所提供的设置选项应该能满足各种需求。这也是为什么我在社群里说它是Ultimate RAG Engine的原因。之后有更多进阶内容的话,我会发在社群里。在公域讲太深了挺浪费的。那咱们下期见!
Key Takeaway
- Sora的发布标志着视频生成技术达到“能用”级别,其真实度远超同期产品。
- Sora成功的核心在于OpenAI采用了Transformer架构,并将其应用于视频生成,将视频切分为“Spacetime Patch”作为Token。
- Sora结合了Diffusion Model和Transformer的优势,被称为“Diffusion Transformer”。
- OpenAI在Sora的训练和使用阶段,充分利用了DALL.E 3和GPT等自家模型,形成了强大的综合优势。
- Sora的成功表明AI竞争已进入综合赛道,局部优势难以抵挡全面领先,数据将成为下一阶段竞争的关键。
Full Content
视频生成的GPT-3.5时刻来了。
这技术进步实在太快了。一年前的文生视频是这个样子的:
这是当时非常出圈的“威尔史密斯吃意面”。根本没法看,对吧?
一年之后,OpenAI发布Sora,达到了这样的效果:
整个构图、人物的肤色、光影等等,都相当逼真了。
用同样的提示词让Pika生成,一对比就会发现,这差距太大了。留给同行的时间不多了。
视频生成,在能用和不能用之间,有一道非常明显的槛:真实度。这个真实指的是,是否符合我们的常识,符合真实世界的运行规律,比如物理定律。
你看Sora的效果,这是第一次,视频生成达到了能用的级别。比如这个无人机视角的片段,把它用在vlog里,完全没毛病。
不过,比起赞叹Sora有多牛逼,更值得我们关注的,是OpenAI究竟是怎么做到这一切的。
如果你是国内从业者的话,了解完之后,可能会有点绝望:我们真的有可能追上OpenAI吗?
要理解Sora,咱们得先回到2016年6月16日。这一天,OpenAI发布了一篇关于生成式模型的文章。文章开头的几段话很关键:
OpenAI的核心诉求之一,是通过算法和技术,让计算机能够理解我们的世界。
要实现这个目标,生成式模型是最有希望途径之一。
为什么非要“生成”?费曼有一句非常名言:
我没法创造的,我就不理解。
也就是说,如果我能生成极其逼真的视频,那我肯定是足够理解真实世界的。
你看OpenAI最新文章的标题:
Video generation models as world simulator。
把视频生成模型作为世界模拟器,这个思路早在很多很多年前就已经确定了。
然后我们再细看Sora背后的技术就会发现,一切都是这么多年一点一滴积累起来的,是祖上三代的传承。
OpenAI在开发Sora时,跟同行最大的不同是,他们用了Transformer架构。
这个架构能够在大规模数据集上训练,并且微调阶段用的成本也更低,所以特别适合大规模训练。
能够规模化,这是OpenAI做一切事情的前提。他们要的不是学术创新,要的是实实在在地模拟世界、改变世界。
Transformer架构之前在自然语言处理领域取得了很大成功。OpenAI认为,一个关键因素是,使用了Token的概念。
文本被输入之后,被分割成Token。每个Token都被转化成向量,然后发送给模型。这样一来,Transformer模型就能利用自注意力机制去处理,去捕捉Token之间的复杂关系,从而方便进行统一的大规模训练。
那么,当文本换成了视频,Token就变成了Patch。
OpenAI先对视频进行压缩,否则计算量太大吃不消;然后再对压缩后的视频进行切割,变成Spacetime Patch。
这些Patch,在Transformer模型中充当Token的角色,这样就能像之前那样进行训练了。
Sora仍然属于Diffusion Model,扩散模型。给它输入低精度、充满噪音的Patch,它被训练成能够预测原始的、高清的Patch。
OpenAI管Sora叫Diffusion Transformer,因为他们把两者的优势结合起来了,这是Sora成功的技术基础。
不过,这还没完。Sora就是个“富二代”,投在它身上的资源,比同行多多了。
在训练阶段,需要给视频素材配上文本说明,这样模型才知道那是什么东西。为了提升训练质量,OpenAI用自家的DALL.E 3去给视频素材做高质量的文本描述。
在使用阶段,模型生成的效果,取决于用户提示词的精准程度。但是,你没法要求用户表达得明明白白、方便模型去理解。于是,OpenAI用自家的GPT去对用户的提示词做更详细的扩写,然后再交给Sora处理。
所以,当你把Sora能成功的要素都放在一起看,就会明白,这根本不是人家突然放个大招的问题:
文生文、文生视频不是两条技术路线吗?结果OpenAI成功合二为一了。
这说明,在这场竞争中,不存在局部战场,只有综合赛道。你不要想着能在某个领域形成局部优势,把巨头挡在外边。是不是很绝望?
训练阶段,有DALL.E 3帮忙开小灶;使用阶段,有GPT打下手。
有哪家公司的模型能有这样的待遇?是不是很绝望?
大模型研发,属于登月级别的难度,比拼的不是人才密度,是天才密度。人家这帮天才怀揣着“让计算机理解世界”的宏大目标,提前好多年开始行动。一旦领先,就是全面领先。
这就是我们今天要面对的OpenAI。
Key Takeaway
- LM Studio等工具能让用户像使用GPT一样,通过Python脚本和框架(如LangChain、Llama Index)增强和限制开源大模型。
- 本地运行开源大模型可以实现知识库、搜索引擎等增强功能,并能根据工作流程限制模型发挥。
- LM Studio提供本地服务器功能,模拟OpenAI API接口,使得基于GPT开发的应用可以无缝迁移到开源大模型。
- 这种本地化解决方案不依赖云端算力,无需支付token费用,为用户提供了开发定制化AI应用的自由。
- 文章强调了本地部署开源大模型在成本和灵活性方面的优势。
Full Content
在本地跑开源大模型,如果只是用来简单对话,那就没什么意思了。我们肯定是希望像用GPT一样,通过Python脚本,借助LangChain、Llama Index等框架、工具,对大模型进行增强和限制,比如:
- 增强:通过搭载知识库、搜索引擎,提升大模型信息的及时性,补充某个领域的知识。
- 限制:根据给定的工作流程、思考路径来处理任务,而非随意发挥。
OpenAI提供API接口,让这一切变得简单许多。其实通过LM Studio这类软件,也可以在开源大模型的使用上,达到同样的效果。
在上期视频中,我介绍了LM Studio的基本用法。
你可以把它简单理解为:就像国内的游戏模拟器平台,把模拟器、游戏库全都打包好了。不需要做复杂的调试,下载好了直接可以玩。
在此基础上,LM Studio还提供了进阶用法:
作为本地服务器,提供类似于OpenAI的API接口服务。
方法很简单:
- 加载量化版的大模型。
- 启动本地服务器。
- 获取本地服务器的端点,设置成config_list中的base_url
如果之前有基于GPT开发应用的话,看到这个代码应该会很亲切。
它基本上就是把调用OpenAI API的部分做个替换:
- api_key不需要填真实的,可以用“not-needed”来替代。
- model部分,原本选择gpt-3.5或者gpt-4,现在填“local-model”
脚本其它部分都不需要变动。这意味着,之前的Python脚本都可以平移过来,给到开源大模型使用。
比如,使用微软的AutoGen配置Agent,对config_list做一些改动就行,照样导入llm_config。
不依赖云端算力,不用支付token费用,基于LM Studio和开源大模型,完全可以开发一套适合自己需求的本地解决方案,这是最吸引我的地方。
Key Takeaway
- 写代码的能力是衡量大模型优劣和决定其未来的核心标准。
- 代码能力强的模型智商更高,因为它要求逻辑、精确性和对复杂系统的理解。
- 编程是模型的“复合动作”,能扩展其能力边界,使其泛化到更多领域,是通往AGI的必经之路。
- 代码能力强的模型拥有更发达的“小脑”,能将抽象意图转化为具体行动,实现与数字世界的交互。
- AI编程市场潜力巨大,能优化开发者成本和重构软件生产方式,具有巨大的商业价值。
Full Content
想知道哪个大模型能活到最后?一个标准:写代码的能力。
写不好代码的模型,没有未来。写不好代码的模型,你就不需要再关注了。
这个观点,我前几天在社群内说过。当时是回答一个小伙伴的提问。我知道它看起来很极端、很偏见。但是,这个在圈内已经共识了。不信的话,我给你四个理由。
第一,代码写得越好,模型智商越高。
跟写文章不一样,写代码要求绝对的逻辑、精确的语法和对复杂系统的理解。
自然语言其实有很大的模糊性——一篇文章,怎么写都行,都可以写得很好。而且有很多捷径,比如模仿。咱们小时候都背过很多范文,对吧?
但是代码不同。它是零容错的——一个符号错了,程序就挂了。它还要求逻辑一致,因为每行代码都是系统的一部分。最后,它还是高度抽象的——它是从具体问题抽象出算法,再具体转化成为可执行的代码。
所以,一个能写出优秀代码的模型,它的“智力”肯定不只是是模仿,而是真正理解了抽象概念和规则。
这就是为什么我一直推荐Claude和Gemini的原因。即使你不编程,我也建议你这两款模型二选一,甚至都要。
第二,代码写得越好,模型的能力圈越大。
打个比方,你想通过健身获得一副好身体,那么肯定不能只练局部,而是全都要练,包括深蹲、硬拉、卧推、有氧,以及拉伸。
对模型来说,编程就是这样一个完美的“复合动作”。它不仅仅是单一技能,而是强迫模型同时发展和整合一系列的认知能力。
一旦这些底层能力被锻炼得足够强大,它们就可以被用来处理更多复杂任务。比如,可以被泛化、被应用到法律、金融、科研等领域。
于是,模型的能力边界扩展了。当这个边界扩展到各个方面,AGI就实现了。
第三,代码写得越好,模型的小脑越发达。
今天的模型跟两年前的模型很不一样。
在我看来,两年前的模型更多是一个被动的文本生成器,能够用自然语言对话。但是,它被“锁”在了文本的世界。
而今天的顶级模型,它拥有了代码能力。于是它可以执行一个简单的脚本来分析数据,可以调用复杂的API来控制一个应用程序,等等。
也就是说,它除了具备很强大的大脑之外,还有很发达的小脑,可以把抽象的意图转化成与数字世界交互的具体动作。
而那些代码能力弱的模型,就好比一个只有大脑但小脑发育不全的人。它可能“知道”该做什么,但无法精确控制自己的“肢体”,动作非常笨拙。
这就是为什么所有顶尖的AI公司都在疯狂提升模型的代码能力。他们不仅仅是在教模型“编程”,更是在训练模型的“小脑”,赋予它在数字世界中自由行动的核心能力。
这是通往AGI的必经之路。
第四,代码写得越好,模型越值钱。
这个很简单,咱们来算两笔账。
全球大约有3000万开发者。每人每年的综合成本,包括薪资、福利、设备等等,咱们按10万美元来计算。那么,整个市场的人力成本就是一年3万亿美元。
咱们不说完全替代,就优化个20%,那就是每年6000亿美元。
这还不是最大的市场。全球企业每年在软件和IT服务上的支出已经达到5万亿美元。想象一下,如果软件的生产、维护、迭代方式被AI根本性地重构,那么,这个市场值多少钱?
这就是为什么像Cursor之类的公司估值能飙升那么快的原因。
总结一下,代码写得越好,模型智商越高,能力圈越大,小脑越发达,赚钱能力越强。这些综合起来,不就意味着一个光明的前景吗?
你拿代码能力这个标准去看市面上的模型,去看中国的模型,你心里就有谱了。
OK,以上就是本期内容。想了解AI,想成为超级个体,想找到志同道合的人,就来我们newtype社群。那咱们下期见!
Key Takeaway
- 大模型巨头(OpenAI、Google)的更新正在“吃掉”小厂商和创业者的市场份额。
- OpenAI的GPT-4o通过整合图像生成功能,实现了图文并茂的全新交互体验,拉开了与竞争对手的距离。
- Google的Gemini 2.5 Pro在代码能力和推理能力上显著提升,并具备超大上下文窗口,展现了强大的综合实力。
- 顶级模型正朝着“模型即应用”的方向发展,全面铺开多模态、代码生成、工具调用等能力。
- 文章对AI时代的创业持悲观态度,认为AI的强大和中心化将压缩创业空间,强调人与人之间的关系是AI无法替代的。
Full Content
我现在有一种感觉,大模型已经不是小厂商能玩得了的了。每一次大厂的更新,都会吃掉小厂的份额,也会吃掉一批创业者的机会。你看这两天的OpenAI和Google,我要是干这行的,肯定会觉得很心累、很绝望。
先是OpenAI。他们更新了GPT模型,把最先进的图像生成功能整合进GPT-4o。结果一夜之间,Twitter上全是用ChatGPT生成的吉卜力风格的图片。不止是用户在玩梗,很多大佬也开始加入了。
说实话,这种火爆程度,在AI领域已经有些日子没看到了。奥特曼非常懂传播。因为吉卜力画风本来就有非常广的群众基础。当你把现实的图片转成这种画风之后,那种反转感,特别适合社交媒体传播,想不火都难。
而且,OpenAI这个技术不止是图像生成那么简单,它应该是能理解图片的背景信息。因为有网友发现,这张图的左下角,桌上摆着一份《停火协议》,说明GPT知道原图是什么意思。
这个就是我在之前那期《逆袭のGemini》里说的:
现在AI回答你的问题,可以做到图文并茂。
你有什么图片想生成、想修改的,AI可以做到言出法随。
这种全新的体验,是之前从未有过的。OpenAI这一次更新,干掉了ComfyUI半壁江山,也再次拉开跟其它厂商的距离。
其实郁闷的不止是创业者和小的模型厂商,Google应该也挺不爽的。因为他们在同一时间发布了Gemini 2.5 Pro,结果风头全被抢了。
但是有一说一,这个模型非常非常厉害。
第一,Gemini 2.5 Pro的代码能力有显著提升,已经接近Claude了。你看,我让它写一个100个小球在球体内反弹的脚本,它很容易就搞定了。
第二,Gemini 2.5 Pro的推理能力有显著提升。当推理能力上来之后,加上超大上下文窗口,它给了我一种“全局理解”的惊喜。不管是拿来分析脚本还是翻译PDF,我感觉Gemini 2.5 Pro都比别的模型好使。
你看,这个就是今天全球顶级模型该有的样子。这行业早已经过了单纯拼文本生成的阶段了。
你会强化学习,我也会。你有思维链,我也有。除此之外,我还有更大的上下文窗口,有原生的多模态,能生成和修改图片,能写代码,能调用工具,甚至还能跟用户实时语音和视频。
这么多能力已经全面铺开了。它们只有一个目标,就是把模型变成一个完整的应用。
所以,我其实对AI时代的创业一直持悲观态度。因为AI太强大,又太中心化了。创业者的生存空间会比之前互联网时代少得多。
那么,有什么是AI无法替代的呢?我认为,最终落脚点只能是人。因为只有人,AI无法替代;也只有人与人之间的关系,AI无法生成。
OK,以上就是本期内容。想了解AI,来我们newtype社群。那咱们下期见!
Key Takeaway
- Perplexity是一款现象级的AI原生问答引擎,有望替代传统搜索引擎,其核心价值在于直接提供组织好的答案而非网页链接。
- Perplexity通过“Copilot”模式扩展搜索关键词,并提供“Focus”选项进行特定类型搜索,提升用户体验。
- Perplexity强调答案的严谨性,提供清晰的来源标注,并支持多轮交互和“Collection”功能。
- 尽管被质疑“套壳”,但Perplexity通过微调GPT模型、使用其他大模型以及自研开源模型,展现了其技术实力。
- Perplexity在搜索基础上融入了强大的RAG技术,并具备知识库功能,未来有望推出更多产品。
Full Content
我最近看到一句非常霸气的话:
拥有十万用户的套壳产品,比拥有自有模型却没有用户更有意义。
如果你身边有投大模型或者做大模型的小伙伴,记得把这句话转给他。
这么拉仇恨的人是Perplexity的CEO。他们刚完成了B轮融资,估值5.2亿美元。跟投的公司包括英伟达,以及贝佐斯这样的大佬。
Perplexity的产品是一款现象级的AI原生应用,有可能替代传统搜索引擎的问答引擎。
什么是问答引擎?
截至目前的搜索引擎返回的都是网页。但是,网页是我们想要的结果吗?我们要的是网页里包含的内容。大模型的价值就体现在这里了:
它会帮我们把搜到的所有网页都过一遍,把相关的内容都抓出来,然后组织逻辑,最终把结果一步到位地呈现出来。
这是传统搜索引擎技术做不到的。这也是为什么,搜索是一个确定的赛道,必然会被大模型技术彻底改造。
过去一年,我体验了好多AI应用。但是,是能让我持续使用、不得不用的,就两个:
- GitHub Copilot
- Perplexity AI
我强烈建议大家试一试Perplexity。它是对每一个人都有帮助的AI应用。用过之后,你大概率就不再需要Google了,更别提什么百度。
我用网页版做个演示。这款产品还有手机和iPad版本,非常方便。
“Copilot”打开之后,它会提供更准确、更深入的答案,代价是稍微慢一点点。免费版好像是每四个小时有5个额度,订阅版每天有300额度,基本够用。
“Focus”选项很好理解,可以让大模型聚集搜某个类型,比如:学术论文,Reddit讨论,或者YouTube视频。如果选择Writing的话,那么就不会联网,相当于直接用大模型的效果。
Perplexity订阅价格是每个月20刀。从实用角度来看,我建议大家可以不订阅ChatGPT Plus,但是要订阅这个。毕竟搜索是高频需求。Perplexity的搜索比ChatGPT强。而且,如果你需要GPT-4直接生成的话,选Writing模式就行。
我们来个简单的。比如,搜“GitHub Copilot”。大模型会先理解问题或者关键词,然后基于理解对它们做扩展。
由于我们只输入了“GitHub Copilot”,比较泛,大模型判断,用户此时大概率是想做个初步了解,比如它是什么、有什么用途、有什么优缺点等等。于是,它帮我们做了一系列扩展,再拿去搜索,找到一堆来源,最后给出答案。
有了第一次交互之后,Perplexity会引导用户,要么查询相关问题,要么继续追问。
从一个问题或者关键词出发展开的多轮交互,就形成了一个合集,存档在Library里,相当于历史记录,以后可以再来查询或者继续提问。这也是我非常喜欢这个产品的一个点。
“Collection”是最新功能。你可以针对某一个主题,通过Prompt的形式做更细致的设定,并且可以共享给其他小伙伴。
至于Discover,就是官方推的热点,无聊的时候可以看看。
Perplexity是公认的用户体验最好、结果精确度最高的AI问答引擎。
先说用户体验。
“以用户为中心”对他们来说不是一句口号,人家是真的信这个。我举两个例子。
第一、Perplexity为什么要帮用户先去扩展搜索关键词?
因为,绝大多数用户不懂得提问。
就像前边演示的那样,我只给了一个关键词。如果是传统搜索引擎的话,由于用户输入太少或者太不准确,往往结果不会太好。
那么,是用户的错吗?
用户没有错。是你技术的问题,是你产品设计的问题。这个就是做应用要面对现实情况。
多说一句,我觉得这一轮大模型技术爆发,带来的不是人机之间的自然语言交互,而是意图交互。有很多项目都在朝着这个方向走了,就看谁先跑出来。回到正题。
第二、Perplexity已经提供最终答案了,为什么要把来源列出来?
因为,用户总是会担心。
既担心你的答案的权威性,也担心大模型的幻觉会不会发作。
尤其是答案里要是有些观点跟我的预判不一致的话,我肯定会把来源的网页或者视频看一遍。
Perplexity是做产品的,技术只是实现的手段。但并不代表他们没技术。
他们CEO之所以会说开头那句拉仇恨的话,就是因为在起步阶段,Perplexity像很多别的项目一样,使用OpenAI的大模型,然后就被冠上了“套壳”的帽子。
不过,接了GPT-3.5或者GPT-4就完事儿了吗?
首先,Perplexity用的GPT-3.5,是自己微调后的版本,性能得到显著提升,但是费用比GPT-4低,速度也比GPT-4快。
其次,除了GPT,别的大模型他们也用,比如Claude,因为它支持更长的上下文,特别适合用来满足用户上传文档这个需求。
最后,Perplexity知道不能一直依赖OpenAI。所以,他们使用开源大模型进行微调,打造了两款大模型:pplx-7b-online和pplx-70b-online。前者是基于mistral-7b,后者是基于llama2-70b。这两款大模型专门用来处理网上的实时数据。而且,微调的工作也会持续进行,不断提升性能。训练用的数据也是他们自己准备的,高质量、多样化。
估计等开源大模型的性能跟GPT-4全面持平的时候,Perplexity肯定会把开源大模型作为基础,彻底摆脱对OpenAI的依赖。
有了为搜索定制化的大模型还不够,要做好这摊事儿,还需要很强的RAG技术。
所以,Perplexity绝对不是一个套壳项目,他们的技术实力绝对不差。同时,Perplexity也不是那种纯技术的项目,他们知道怎么用技术满足需求。
而且,搜索肯定不会是他们的唯一产品。随着大模型技术的发展,这个团队之后绝对会再拿出更多的新产品。这也是我会持续关注他们的一个原因。
Key Takeaway
- Brave浏览器通过与本地大模型(如Ollama)打通,实现了浏览器内置AI功能,提升了用户上网冲浪时的效率和便捷性。
- Brave的AI功能支持直接对话、选中文字总结以及将当前网页内容作为大模型参考。
- 文章强调了浏览器与AI打通的必要性,并认为Brave在大方向上是正确的,但未来大厂(如Chrome与Gemini)的跟进将带来竞争。
- 尽管Brave的AI功能仍处于测试阶段,但其本地化部署和与开源大模型的结合,为用户提供了更多选择和自由度。
Full Content
所有软件都应该跟AI打通。比如我们最常用的浏览器。
当你上网冲浪,突然想问些什么或者想生成点什么,这时还要特意打开个网页(比如ChatGPT),或者切换到别的APP(比如Obsidian),这就特别麻烦、有点不爽。
于是,Brave浏览器就来了。这款产品存在应该有好几年了。免广告之类的常规功能就不说了,它最吸引我的点在于,可以跟本地大模型打通,比如在自己的电脑上运行千问之类的,然后去实现我刚才说的那些场景功能。
大家想尝试的话,记得下载Nightly版本。这是测试版本,每晚更新。下载好了一路安装。搞定之后,来到设置页面,点击这个Leo——这是他们给自己的AI Assistant起的名字。然后在添加模型的设置里,跟Ollama关联上。
Ollama是目前特别主流的在本地跑开源大模型的工具。你可以去他们官网下载软件,然后在终端里通过一行命令就可以下载你想要的大模型,比如我用得最多的qwen2。
当软件和模型都准备完成后,打开Ollama,你会看到,它会驻留在状态栏里。每当要调用大模型的时候,它才会启动。好处是可以一直挂着,坏处是第一次启动的时候可能得稍等个差不多10秒,需要把大模型加载一下。一旦启动起来就特别快了,真的比云端的爽多了。
要把Brave跟Ollama关联上很简单。如果你像我一样没有对Ollama做一些设置调整的话,那就按照提示,把地址填进去,把要跑的模型名称填进去。只要名称对得上,那基本不会有问题。
回到前端的交互页面,从侧边栏可以打开Leo AI。官方有提供大模型,不过咱们这边是要用本地的,所以选择刚才设置好的千问。直接对话交流完全没问题。要结合正在浏览的网页的话,有两个方式:
第一,可以在网页当中选中一部分文字,右键就能看到官方预设好的AI功能,比如总结之类的。
第二,把输入框上边这个按钮勾选上之后,就会自动把当前浏览的网页给到大模型作为回答参考。
不过我发现,这不是我们平时用RAG的那种处理方法。因为我试过,如果是一篇长文章的网页,它会提示只阅读了一部分,这说明它的方法很简单粗暴,就是把所有内容都作为上下文给过去。当超出上下文窗口的限制了,才会提示没有读完。
但话又说回来,如果真用RAG那套东西的话,还要搞Embedding什么的,就会变得特别重,不适合浏览网页这个场景。因为用户会不断打开新网页,并且来回切换的。
目前Brave浏览器的AI功能还属于测试阶段。就像前边说的,我觉得浏览器和AI打通特别有必要。Brave这个大方向是OK的。不过,大厂肯定会跟进,比如Chrome,绝对会通过Gemini实现同样的功能。对于Brave这种产品来说,活下来的一个方法是,给到用户更多自由。我特别希望它后续能加上更多自定义功能,至少把模型提示词先放出来,肯定能提升日常使用频率。
OK,以上就是本期内容。大家想找我的话,来newtype社群,我都在。那咱们下期见!
Key Takeaway
- Meta开源Llama 3.1具有里程碑意义,其性能达到GPT-4o水平,可通过知识蒸馏和微调适应特定任务和领域。
- 微调(Fine-tuning)是将通用大模型(如大学毕业生)训练成掌握特定技能(如公司培训)的过程。
- LoRa和QLoRa是微调技术,它们通过在模型上添加“便签纸”而非重写整个模型来高效地进行修改。
- 数据集是微调的“培训教材”,Alpaca数据集有助于训练高质量的指令跟随型AI助手。
- SFTTrainer是简化微调过程的训练工具,相当于培训老师。
- 过度拟合是指模型“死读书”,失去举一反三的能力,需要通过lora dropout等参数设置来避免。
- 大模型微调的关键在于“教材的质量”(数据集)和“教学的质量”(参数设置)。
- Unsloth框架是微调加速神器,能显著减少显存占用和训练时间,方便新手使用。
- 微调后的模型可以导出为adapter(技能模块)或GGUF文件,并上传到Hugging Face等平台。
Full Content
Meta开源Llama 3.1是一件功德无量的事。
因为最好的闭源模型代表着天花板,那是人类可以达到的能力上限。而最好的开源代表着全民福利,那是所有人都可以接触到的基准,是科技平权价值观的展现。
这一次,开源的Llama 3.1在性能上达到GPT-4o水平。我们可以通过知识蒸馏,用最大最强的405B模型去打造小模型;也可以通过微调,让8B的模型去适应特定的任务和领域。
之前国内有些人说,开源模型是智商税,开源模型会越来越落后。这种人,不是蠢就是坏,跳梁小丑罢了。
OK不跑题,咱们今天来聊一下微调。之前一直没碰这个领域是因为,我感觉条件还没到。现在模型够强了,工具也成熟了。我试了一下,比预想中的容易多了——你看,上周我在newtype社群里发了消息,说要用Unsloth微调Llama 3.1,结果下午就成功了。
整个过程我都是在Google Colab上跑的,用的是免费的T4 GPU。数据集不大,训练花了11分半。生成q4、q5和q8三个GGUF文件比较慢,我等了应该有半个多小时。最后,这些GGUF文件都自动上传到我的Hugging Face账号上。
之所以会这么快速和顺利,主要是因为我用的是Unsloth框架。这个框架真的是微调加速神器。用了它之后,显存占用更少,训练时间也显著缩短。我强烈建议大家试试。
为了方便像我这样的新手使用,Unsloth提供了模型和代码。我就是在他们给的基础上做了一点修改。
虽然整个过程需要自己动手的地方不多,但微调相关的知识还是得理解的,因为里边的门道很深。我先用大白话分享一些我认为比较关键的点,然后再带大家过一遍代码,不然看得一头雾水也没用。
第一,什么叫微调?
厂商把大模型训练出来,就好比大学生顺利毕业,具备一定的通用技能。但是要入职、要上岗,还得接受公司的培训。这种公司培训就是微调,让大模型这个新人快速掌握一些特定的技能。
第二,lora和qlora是什么?
如果把大模型比作一本百科全书的话,我们做微调,并不是要把书重新写一遍,而是在一些页面上贴上便签纸,上边写上一些额外的信息就可以了。LoRa就是这样的便签纸。而QLoRa更进一步,它这个便签纸可以在更小的纸片上写更多字。
第三,数据集是什么?
前边说了,大模型要接受“上岗培训”。那么,数据集就是培训教材。你可以用自己的数据做成数据集的格式,也可以用公开的。其中,在公开数据集方面,为了让大模型能更好理解人类指令,并且做出恰当回应,斯坦福大学的研究人员创建了Alpaca数据集。有了它,我们就能用相对较少的资源训练出高质量的指令跟随型AI助手。
第四,SFTTrainer是什么?
对我们使用者来说,SFTTrainer就是训练工具。它简化了微调过程,而且提供很多设置和优化选项,特别好用。对大模型来说,SFTTrainer就好比培训班的老师。它接收大模型这些学生,拿到数据集作为教材,然后开始教大模型如何更好地去执行特定的任务。
第五,过度拟合是什么?
我们都遇到过,那些读书读过头的人,考试很厉害,但是遇到教材里没教的问题就不会了。同样,大模型也存在这种可能性,只会应对见过的情况,而失去了举一反三的能力。这种“死读书”的结果,就叫过度拟合。
所以,根据这五个知识点,我们就能得出,大模型微调有两个关键:
第一,教材的质量。数据集不行,那再怎么训练也不行。
第二,教学的质量。怎么用有限的资源把大模型教得恰到好处,这里边涉及到很多参数的设置,就很有门道了。
接下来,我给大家看看我上周第一次微调用的代码。不要有畏难情绪,这个就是一个熟悉的过程。多经历几次之后,再看这些代码就很亲切了。它其实很简单,待会儿看完你就知道,最核心的设置就是“教学设置”和“教材设置”。
在最开始,肯定是把需要的Package都安装和加载。
接着,加载Unsloth已经预处理好的模型。主流的模型都有,包括Mistral、Gemma等等。我的目标是Llama 3.1,所以在模型名称这边就填Llama 3.1。Unsloth的Hugging Face主页有更多模型,包括qwen之类的,大家可以去看一眼。
这个设置当中,有一个参数叫max seq length。它的意思是,模型一次可以处理的最大token的数量。不同模型有不同的默认值,从512、1024、2048,甚至更多。可以简单理解为,大模型阅读教材的话,一次能看多少个字的内容。
这一步完成之后,紧接着是参数配置。其中,target modules指的是,我们打算具体修改模型的哪个部分。把大模型比做一个机器人的话,这个机器人已经会一些基本运动了。这时候,我们要教它跳舞,那就针对它腿部的动作模块做修改,而不需要改动整个机器人。这个设置好了,就能让整个微调过程更有针对性,也更加高效。
另外,还有两个重要的参数:
lora alpha这个值设得越大,lora的影响越显著。也就是说,咱们可以通过这个设定来对模型原始性能和新技能做平衡。
lora dropout指的是,在训练过程中,会随机关闭一定比例的神经元。这就好比是,你在练习钢琴的过程中,有的时候会闭着眼睛弹。这样就强迫你自由发挥,避免“死读书”或者说过度拟合的结果出现。
模型都配置完了,接下来要配置数据集了。我的目标是强化Llama 3.1的Python能力,所以给它配的教材是python code instructions。这个数据集的内容格式包括三列:
Key Takeaway
- 作者的AI笔记系统分为外部信息处理(Anything LLM)和笔记内容生成(Obsidian)两部分。
- Anything LLM支持多种大模型和向量数据库,能处理PDF和公众号文章,用于资料消化和存储。
- Obsidian是作者的终极笔记选择,因其速度快、数据本地化和丰富的AI插件(如Copilot)。
- 笔记系统通过Anything LLM过滤外部信息,将有价值部分转化为Obsidian笔记,再利用AI辅助内容生成。
- 笔记分类采用PROJECTS、AREAS、FLEETING、PERMANENT四种类别,以实现条理化管理。
- 强调工具是次要的,核心在于明确需求和逻辑,通过流程和工具构建系统。
Full Content
最近,我对我的笔记系统做了一次大升级,加上了大模型驱动的知识库,并且对整体的逻辑做了大调整。
我在这边分享一下思路和具体做法。大家可以先抄作业,然后边用边改。
整套系统分成两个部分:
第一个部分是外部信息的处理。
每天我们会看到大量的内容,有PDF格式的论文和研报,有网页形式的文章,等等。我们做的笔记,都是从这些外部信息的阅读、消化开始的。
那么,这么多的资料,怎么消化、存储、检索?这是这个环节的难点,也是AI发挥最大作用的地方。
第二个部分是笔记内容的生成。
这部分的核心问题有两个:
1、用什么样的逻辑做分类是最合理的。我之前就很烦,要么是分类太泛了,显得没啥意义;要么是突然有条新笔记,却发现哪都放不进去,就很无语。
2、用什么软件最合适。要快,要隐私安全,还要有AI功能作为辅助。
先说第一部分,对外部信息的处理,我用的工具是Anything LLM。
我在视频里、在知识星球里推荐过好多款这类型的工具。综合用下来,Anything LLM是最符合我需求的。两个原因:
第一,它可以接入市面上主流的大模型、嵌入模型和向量数据库。
比如,闭源大模型方面,御三家——OpenAI、Anthropic、Google,你填入API Key就可以使用。
开源大模型方面,Ollama和LM Studio它都支持。你把链接和端口填进去就搞定了。
在最近更新的版本里,Anything LLM把Ollama也集成进来了。它提供了一系列模型,比如我最常用的Mistral 7B,通过软件直接下载就可以用了。
有些模型实在太大了,本地肯定跑不了,那就花点钱、跑在云端,然后接到本地来用。
那么,要这么多种接入手段,有什么用呢?
我平时主要用两台电脑:
在家的时候,用台式机,也就是之前介绍过配置的那台PC,性能还OK,跑本地大模型没问题。
出门的时候,带的是Macbook Pro。这机子已经非常老了,是2017年买的,现在跑个大模型是没戏,所以只能通过API调用OpenAI的模型。
除了可以根据不同配置的电脑选用不同大模型之外,Anything LLM还支持让不同的Workspace用不同的模型。比如,有的Workspace对应的资料全是英文的,那我用Mistral就好;有的如果是中英文都有,那我用qwen-1.5。
第二,它除了支持PDF之类的文档,还能把公众号文章的内容扒下来。
我平时接收到的中文信息,有很大一部分来自公众号文章。
腾讯应该是有反扒的手段。我试过很多同类型的产品,不是谁都能通过链接把公众号文章内容给扒下来的。
这就是我对外部信息的处理方法。把AI知识库用来存储资料,帮我快速消化资料。之后需要找什么的时候,还能快速搜索。这个环节处理得好的话,其实后边的笔记环节就很好搞了。
我算是笔记应用的老用户了。从Evernote开始,得有十年了吧。这么多产品用下来,我目前的终极选择是:Obsidian。
我知道,肯定会有人问,为啥不用现在超火的Notion?两个原因。
第一,太慢了。
在Notion里,很多操作都会有那么一点点的loading时间,这是我接受不了的。我觉得,笔记应用就该像实体的笔记本一样,打开就能看,翻到哪是哪。
Obsidian就没有这种问题,特别丝滑。
第二,数据放在别人家。
在前边的外部信息处理上,我没有选择本地数据库是以为,那些文档、网页全是公开信息,没有任何隐私安全问题,所以放到云端数据库我无所谓。
但是笔记不一样。这是真正的隐私数据,我绝对不会把它放到别人家的数据库去。这是要积累很多年的。万一哪天Notion出点事儿,那就麻烦了。
Obsidian里的每一条笔记,都是一个md格式的文件,存在本地。你愿意的话,可以随时把它们拷到别的地方去。
至于Notion的AI能力,Obsidian也有。这款软件支持社区插件,可以在核心之上添加各种功能,其中就包括调用大模型。
Copilot这个插件特别好用。你可以用OpenAI、Google之类的闭源大模型,也可以连接Ollama、LM Studio去使用开源大模型。
更厉害的一点是,它还自带RAG能力,能把你的所有笔记变成一个知识库。比如我问AI一个问题,AI会参考我所有的笔记给出回答,并且回答末尾还有来源。点击就能跳转到对应的笔记。
这样一来,一个梯队就形成了:
首先,我把所有外部信息都存进Anything LLM,在AI的帮助下去消化和整理。