2023年2月

这是拾月周刊第11期,共8篇文章,2集播客、2个工具和1条言论。

8篇文章均是ChatGPT和人工智能主题,其中5篇是Tim Urban的《人类唯一的出路》系列。

文章

1、ChatGPT 在做什么… 以及它为何发挥作用?
source: mp.weixin.qq.com

非常硬核的技术文章,断断续续读完的。除了技术部分,文中有些非常深刻的观点思考。

  • 神经网络的结构非常简单,但却不可思议的涌现出人类思维,为什么?
  • 语言的根本法则是什么,会不会很简单?
  • 这个领域,工程走在了理论的前面。
  • ……

对于这篇,我专门写了一篇笔记:读《ChatGPT在做什么……以及它为何发挥作用》

2、关于大语言模型的理解的问题在哪里

展开讲讲一些关于大语言模型的理解的问题在哪里
接着前面一条微博,对 AI 的思维链条 CoT 能力和进展多说两句
source: weibo.com

LLM模型从结构设计讲,只是概率输出。但为什么输出的结果却给人以懂逻辑的感觉。这个问题现在仍在研究中,没有结论。木遥这两篇微博介绍了相关概念、背景和研究进展。

3、人类唯一的出路:变成人工智能

人类唯一的出路:变成人工智能 | 初篇
人类唯一的出路:变成人工智能 | 第二篇
人类唯一的出路:变成人工智能 | 第三篇
人类唯一的出路:变成人工智能 | 第四篇
人类唯一的出路:变成人工智能 | 大融合
source: mp.weixin.qq.com

这是Tim Urban写的系列文章,缘起于马斯克创办Neuralink脑机接口公司。

第五篇提到马斯克的基本观点:超人工智能的出现是必然的事情,其中存在两个风险,一是超人工智能直接统治地球,二是超人工智能被少数人控制。

对第一个风险,马斯克认为人类如果不想沦为「其它物种」的一员,唯一的出路是与超人工智能融合,而脑机接口是实现融合的唯一路径。人脑有负责直觉的系统1和负责理性的系统2,超人工智能将成为系统3融合进大脑。

对第二个风险,要让AI民主化,所以他创建OpenAI(开发ChatGPT的公司),开源AI技术。不过,OpenAI已经背离了初衷

我非常喜欢第一篇给出的宏观视角,介绍了人类大脑和文明的进化,并提出「人类巨灵」和「计算机巨灵」两个关键概念。人类巨灵是把人类作为整体人格化,计算机巨灵则是把计算机作为整体人格化,它们都有着巨大的能量。尽管人和计算机作为个体,十分渺小。

第四篇是非常有想象力的一篇,脑机接口实现之后,人和人的大脑将基于神经元的电信号直接交流,不需要任何媒介,连说话都不需要。地球70亿人的大脑直接连接在一起,是什么样的景象?

第二、三篇则非常的技术细节。

播客

1、50 刘嘉:AI全面超越人类大概率是确定的事|清华大课间004 - 人文清华播客:对话清华学者
source: www.xiaoyuzhoufm.com

  • 当前人类所处阶段和工业革命时期类似。
  • AI有三个无限:算力无限、存储无限、生命无限。所以,它必将超越人类。
  • 无论你从事什么工作,赶紧把ChatGPT用起来。

2、Solo | 迟到的年终盘点,短视频吞噬一切 - 老talk消息
source: www.xiaoyuzhoufm.com

从马斯克收购Twitter(后的各种动作)、马化腾内部信、刘强东回归切入。讲大佬们的战略焦虑。背后最大的原因:短视频在入侵各种业务,即包括社交、电商这些的大平台业务,也包括非常垂直的卖车、招聘等。

在短视频社交方面,前不久从朋友那里了解到一个现象,也在这期播客中得到印证:一些四五线小县城,大家把短视频当朋友圈发,说些家长里短的内容,熟人圈子的八卦也来自短视频。——从来不用短视频的我,听到是有些惊讶的。

播客中提到,这些地方用户的双向关注密度非常高。

工具

1、Bing Unchained

一个Chrome插件,可以将Chrome伪装成Edge使用new Bing,不想切换浏览器的可以试试,挺好用。

2、批量删除新浪微博博文

一个批量删除微博的油猴脚本,完全模拟一次次点击实现的,所以速度不是很快,但胜在方便。我用它清空了1000多条微博。

言论

1、关于Mastodon的观察

小小统计了一下,我在Mastodon关注了34个人,其中16人是去年年底(11-12月)马斯克收购Twitter一系列骚操作后加入的,目前仍然活跃的有12个,即两三个月过去了,留存75%,完全超出我的意料呀。——样本太小,但多少能反映出 Mastodon生命力不弱。

留存的用户中, Twitter粉丝最多的是huoju,其次是Andy Matuschak
流失的用户中, Twitter粉丝最多的是Paul Graham,其次是Michael Nielsen(他是2017年注册的,但2022年底尝试使用)。

当然,留存用户中,有些是Twitter和 Mastodon两边活跃,Mastodon也未完全替代 Twitter。

〇、

断断续续把Stephen Wolfram的《ChatGPT 在做什么… 以及它为何发挥作用?》读完了,非常系统地介绍了ChatGPT的技术原理,不是泛泛而谈,结合了很多模型输入和输出案例进行介绍,配有大量图表。读的有些吃力,只能说直觉层面理解了七七八八。

文章也不只是讲原理,背后涉及很多人工智能理论和工程思想,对人工智能感兴趣的,非常值得一读。

翻译的质量不是特别好,可以结合英文原文看。

以下大致总结文章要点(理解和表述未必精准)以及一些联想到的内容。

一、

ChatGPT的训练目标就是续写文本:输入一段文本,它输出接下来可能输出的词列表(语言的基本单位词/字是有限的)及对应的概率。从输入到输出看,其工作方式与其它算法模型没什么区别。

有两个细节值得留意:

  1. 第一个输出如何决定的?——由人的问题引导输出的;
  2. 它是如何判断结束的?——结束也可以作为一个输出符号,给定概率。

二、

ChatGPT续写时,并不每次选择概率最高的输出,而是按一定概率输出概率低的续写词(技术上对应一个称为「温度」的参数)。如果始终以最高概率输出,最后的续写文本可能没有意义,这是实践发现,符合直觉,但并没有理论依据(后面会发现,LLM模型中大量设计都是基于实践经验的,暂无理论解释)。

三、

选择低概率的设计,很容易联想到生物进化,一个局部的随机「错误」让整个系统表现的更好。

四、

概率的来源是通过大量文本的学习,这部分很关键,作者从浅到深举了几个例子,非常友好。

  1. 先考虑一个字母后,下一个字母(共26个)的概率,可以容易的遍历所有单词统计到,比如q后面只会跟着u,其它字母的概率全是0;
  2. 同理,可以遍历所有文章,看一个单词后下一个单词(共5W候选)的概率。
  3. 进一步,当然也可以看一段文本后,仅接着其它单词的概率。

第二节提到,始终以最高概率单词输出,会得到无意义的内容。在这部分可以得到直觉上的理解:以单个字母预测为便,它的输出很可能变成「ininininininin」,单词输出也一样,可能变成「cat is animail is ……」。

五、

通俗的来看神经网络模型,其工作原理与人脑神经元非常类似:

  • 神经网络由大量神经元构成
  • 每个神经元都是一个函数(带有可变的参数),输入端和输出端分别连接着大量其它神经元
  • 一个神经元拿到其它神经元的输入数据,经过计算转化为输出,给其它神经元
  • ChatGPT从最初的输入(一段文本),到最后的输出(5W个词对应的概率),要经过1750亿个这样的神经元(网状联结)计算

下图非常有代表性,每个数字表示这个神经元的输出,而输出是由上游神经元输入+自身运算得出的。

一个补充知识:人脑有1000亿神经元,以及可能100亿个神经元连接。

一个真实的神经网络模型示意
一个真实的神经网络模型示意

六、

模型输入是文本,输出是文本及对应概率。但神经元函数处理的只是数值计算,所以此处涉及文本到数值(向量)的转换,即embending。能理解这个过程的作用,但文中也有不少技术实现细节介绍,没太看懂。

七、

关于模型的训练。

ChatGPT模型的预训练样本非常容易获取,即网络上大量的内容,遮住部分内容让模型预测,再与实际内容对比即可。

模型训练过程,就是不断调整每个神经元的参数,使得模型的输出与遮住的部分一致。这里又涉及一个技术逻辑,即「损失函数」,它用来评估模型输出与遮住内容的相似性。所以,对模型来讲,即调整参数使得损失函数足够小。只是,多达1750亿个参数,按什么方式向哪个方向调整,有些复杂。

大模型之所以需要大量计算资源,就是因为神经元太多,每次输入输出、每个神经元都需要计算一次。对ChatGPT,可以简单认为,一个500字的答案,背后有500*1750亿次计算。

八、

人工智能最近一次理论范式的突破是2017年Google发表的《Attention is All You Need》论文中提出的Transformer结构,ChatGPT也使用了这个结构。非常学术,通俗理解可以参考代码家这篇分享,下图便来自他的分享。

Transformer架构让模型学会找到图片和文字中的重点,比如人像照片中,人是重点,背景不重要,一句话中,主谓宾可能是重要的部分,其它修饰成份不重要。

来源:代码家的分享
来源:代码家的分享

九、

模型预训练后,所有参数在预训练数据上达到最优。但预训练数据往往有噪声或是分布上的不均匀,需要对模型进行fine tune(微调),根据fine tune的目标,需要特定领域、质量更高,但规模不用像预训练样本那么大的数据集。

比如

  • 用孔子作品,fine tune一个孔子机器人。
  • 用大量文学作品,fine tune一个写作机器人。具体点,用金庸作品,fine tune一个写金庸武侠的机器人。
  • 使用Github上的代码,训练一个编程机器人。

这种利用特定人物、特定领域的数据fine fune一个专门机器人,是现在ChatGPT主流应用方向之一。

十、

神经网络模型结构非常简单:

  • 基础组件只是神经元函数,它仅仅根据上游(多个)输入计算出结果并传递给下游的神经元(多个),并无特别复杂的逻辑。
  • 大量神经元之间,也没有控制逻辑,只是数据的单向流动,每流经一个神经元,被计算一次。

如此简单的结构,经常样本训练后却表现出如此惊人的能力,神经网络内部(黑盒子)到底发生了什么,那1750亿个参数及神经元之间的连接关系,到底意味着什么?就是人的智能吗?

对这个黑盒子的理论解释,是AI领域重点且热门研究方向。

现在的人工智能领域,实践走在了理论前面。ChatGPT中很多设计,是试验出来的,无法解释。比如:

  • 为什么温度参数0.8表现最佳
  • 为什么1750亿参数的GPT-3.5表现出了惊人的对话能力,而15亿的GPT-2不行,多大参数是合理的,如何估计?

十一、

简单的结构,获得了类似人的语言能力以及语言背后反映出来的类似人的思维能力,是否意味着:

  • 在像 ChatGPT 这样的神经网络中,有可能捕捉到人类大脑在生成语言方面的本质。
  • 通过解密黑盒子,是否可以期待发现人类语言和思维的根本法则。并且,这种法则像神经网络结构一样,没有想象中的复杂。

关于ChatGPT对语言根本法则的获得有个佐证,如下图,ChatGPT的训练语料中,中文占比不到0.1%,但ChatGPT对中文理解同样强大,是否可以认为,不同语种之间某种共性的东西,被ChatGPT获得了。比如:

  • 名词、动词等基本的词性
  • 主语、谓语等基本的语法单位
  • 猫=cat,不同语言之间的翻译
  • 「猫是一种动物」这种纯知识性的内容
  • ……

ChatGPT训练语料分布(来源网络)
ChatGPT训练语料分布(来源网络)

十二、

使用ChatGPT的过程中会发现,在处理纯逻辑计算问题时,它的回答更容易出错,比如数学问题。

从它的工作原理看,对这些问题的回答同样只是语言生成,至少在模型结构上并没有为它设计逻辑推理的能力,至于1750亿个神经元的网络是否「涌现」出了一定的逻辑推理能力,也无法确切的得知。从使用上会发现,多数时候它的回答是有逻辑性的,看起来具有推理能力,但在一些高精度的问题上,也容易出错。

其实,这非常类似于人的「直觉思维」,它多数时候是有效的,但特定场景下也会犯错。

关于大语言模型是否有推理能力,非常推荐木遥的两篇微博:

涉及两个重要概念:

  • CoT:chain of thought,思维链接
  • Emergence:自发性结构涌现

总体而言,这些研究在工程实践上有一些进展,比如:许多人都观察到似乎让模型多读一些代码语料有助于培养 CoT。

但为什么会这样,并不清楚。Google Brain 的 Peter Liu 猜测说这是因为读代码能逼着语言模型把相隔很远的词联系起来思考(这是代码的特点)。

十三、

最后,想提一下《What Is ChatGPT Doing … and Why Does It Work?》的作者Stephen Wolfram,他是数学软件Mathematica的创始人,今年已经64岁,看起来仍然在一线搞研究创作,关于这篇文章的内容,它在Youtube上讲解了3个小时,佩服。

这是Weekly Pocket第10期,本期开始改名「拾月通讯」并用substack推送。

之前用mailbrew推送,由RSS自动生成,非常省心。但有时想在邮件前写上几句——就像你看到的这段——非常不方便。故,有此调整。

本期推荐6篇文章,1期播客和1条书单资源。如下:

文章

How Note Taking Can Help You Become an Expert - Commoncog
Source: commoncog.com

一个对我来讲非常新的理论框架去理解双链笔记的价值。本文重点讲了下面两个概念,笔记的部分反而很少。

1、ill-structured domain(结构不良领域):指概念的实例高度可变,人们在处理该领域具体案例时,无法套用一个简单的模式,往往需要具体问题具体对待。比如医学领域的「心脏病」,它是一个概念,也有基础的逻辑但又无法统一为一种模式,具体到某一个病例时,要具体对待。

2、Cognitive Flexibility Theory(CFT,认知弹性理论):专注结构不良领域的理论,它强调在结构不良领域案例研究的重要性。以及结构不良领域专家分析问题时,不是套用某一个模式识别,而是从一组基本模式中组织出一个临时的模式分析问题,这种灵活的方式称为adaptive worldview(适应性世界观)。

在最后的笔记层面,也有一个相当具有操作性的技巧:围绕领域内一组概念寻找10~20个crossroad cases(十字路口案例),基于案例使用双链笔记把一组概念串联起来。并通过设置一些问题不优深化案例学习,比如两个案例间有什么相同点,又有什么不同点。

最后的最后,值得思考一点:CFT和第一性原则的关系。前者强调案例,后者则强调本质,看起来有些冲突。

Moore's Law for Everything
Source: moores.samaltman.com

OpenAI CEO Sam Altman关于AI普及替代大部分人类劳动力后,关于社会制度的畅想。作者用一个独立域名放这篇文章,而没有发在博客(blog.samaltman.com)内,可见它在作者眼中的特殊性。

当AI成为主要生产力,AI又能自己再生产AI,商品成本将无限低,唯一的约束只是地球资源。世界会怎么样?作者给出了一个有点大同社会的观点,但真的如此吗?还是人口会增长至地球承受的极限,最终还是瓦解,又或者有其它可能?

附翻译版:万物摩尔定律

控评的博弈
Source: mp.weixin.qq.com

讲真,看维舟的文章总让人有些不舒服,大概就是把那层我隐约知道的窗户纸给捅破了,点出我们文化中不那么好的一面。比如:

1、结合中国人对神灵的一贯态度来理解:当神灵能实现我们期望时,我们对之毕恭毕敬;但当它没能做到这一点时,那可就别怪我不客气了。

2、“做得太好”竟然是客人给差评的原因,这再讽刺不过地表明在中国社会,连评分也都是“高语境”的,隐含着各种说不清楚、甚至你打破脑袋都想不到的因素。

3、常听人感叹说,中国真是一个复杂的市场。在这里,“复杂”的意思并不仅仅是说“丰富多样”,还指充满着意料不到的陷阱,差不多就是你涉世未深刚踏上社会时,师长告诫说“社会很复杂”的那层意思。

一家公司是如何变坏的
Source: blog.farmostwood.net

发现木遥把博客的文章清理了,只留下少数文章,还好这篇还在。

没记错的话,这是木遥在百度魏则西事件后写的,百度的口碑彻底崩溃了。如果你在大厂工作过,一定会对这篇文章产生共鸣:就一个个的员工来讲,并没有人主动的选择作恶,但作为整体的公司却惯性的走向了恶,底线和原则会在一次次的试探中被打破。

最大的感受是:怎么能把个人在组织中的无力感,写得如此传神。——那段会议模拟,栩栩如生。

从强生的例子来看,除了一把手的力挽狂澜,几乎没有解决之道。

The maze is in the mouse. What ails Google. And how it can turn things around.
Source: medium.com

最近Google遇到危机,这是前员工(创业被Google收购)对Google当下管理环境的评论,该员工也曾在微软工作十来年。

有一句热门高亮:

Everyone at every level will spend hundreds of hours preparing a single executive presentation, but it will be the most junior employee and often not even a full-time employee who is tasked with helping a customer for ten minutes.

结合木遥《一家公司是如何变坏的》 一起看。大厂(大型组织)的改变,还得靠最高层的改变,最好就是换人。并且,改变的过程还伴随着非常大的运气,说起来和个人的命运也没什么两样。

Notion 作为一种 Web 3 的可能
Source: 1q43.blog

非常同意文章最后的观点。

我一直觉得区块链不是web3或说数据所有权最佳解决方案。

把数据永久的固化在区块链上是一件反人性的事情,对数据的所有权应该包括对数据可见范围的控制和对数据的删除权。而区块链上的数据原则上是无法删除的。

自托管才是最佳的解决之道,应该考虑如何降低自托管的成本,或者方便的在不同的第三方托管服务之间迁移数据。

播客

元宇宙批评
Source: www.xiaoyuzhoufm.com

当初听到最好的关于元宇宙的讨论。

但最近,元宇宙的风头完全被AIGC给盖过了。

资源

徐老猫:这些是世界公认最佳金融/经济专业书,严谨有趣味。
Source: twitter.com

一份金融、经济、投资书单,不多,都很专业。

据我所知,其中一些是美国高校教材。

朋友,你好:

很高兴见面,过去一周我收藏了下列内容,希望对你有帮助。也欢迎将本Newsletter分享给更多朋友,感谢你的关注与支持。

文章 

拿到ChatGPT版Bing搜索的内测后,我觉得所有大厂都该慌了。
Source: mp.weixin.qq.com

应该是国内的首测,两点值得注意:

1、仍然是对话式问答,但Bing版ChatGPT回答时,给了数据来源引用。这意味着,它很大程度上能够替代搜索引擎了,直接提供答案,但又能让你基于来源去确定答案的可靠性。
2、关于纠错,非常强:
2.1、提示ChatGPT答案可能错误时,它会尝试寻找更好的答案,如果有更新、更准的数据,它会承认错误并返回最新结果。
2.2、但如果没有更新、更准的答案,它会坚持自己的结果是正确的,甚至置疑用户。但,这里有可能是ChatGPT对用户输入问题的意图理解错误,如果用户能够进一步解释问题中一些概念的定义,ChatGPT能够承认自己对问题理解有误,并基于新的理解寻找答案。--- 这点太恐怖了。

文章已被删,提供一个临时链接:https://cubox.pro/share/HXXG2M

ChatGPT Is a Blurry JPEG of the Web | The New Yorker(英文)
Source: www.newyorker.com

作者把ChatGPT类比为压缩解压程序:

  • 大量语料训练模型:压缩互联网上的知识
  • 对话框回答问题:解压互联网上的知识

并且这个压缩是有损的。本文基调大致是对当下ChatGPT热浇浇冷水。

这个类比非常有意思,但仔细想想,这不会成为ChatGPT的问题。

事实上,人类大脑理解世界也一样,输入记录是压缩,表达是解压。人类关注并记忆的也是重点信息,在表达时也是对信息进行扩展陈述,没有谁日常表达是一字不漏的背诵。

在学校时,很多知识都学过,但考试仍然会做错,像不像有损压缩后解压失败?

PS:了解了下本文作者姜峯楠(Ted Chiang),挺厉害的,华裔科幻作家,2016年的科幻电影「降临」改编自他的作品。

木遥:解释一些关于大语言模型的常见误解。
Source: m.weibo.cn

其中提到的第二个误解:「ChatGPT 是统计模型,所以它的一切认知都是来自于它的语料。」

我也有,并且当大家讨论ChatGPT的时候,经常会从这个基础数学原理的角度得出「当前的AI并没有质变」的结论。

我不知道有没有质变,但给我的感受,是产生了质变。

但让我更意外的是,原来学术界也不知道在这样基础的原理下,为什么产生如此意外的结果/能力。(就是目前处于它做到了但我们并不确切知道它为什么能做到的状态)-- 关于这一点,木遥附上了两个论文链接,一个来自Google,一个来自微软:

How to Be Successful
Source: twitter.com

Twitter Thread:OpenAI的创始人Sam 19岁的他05年成立了位置服务提供商Loopt,12年4300万美元估值被收购,14年上任YCombinator总裁,19年正式上任他和马斯克共同创立的OpenAI,也正是这年他写下了一篇博客 - how to Be Successful,整理了一下他的13点分享和我的思考。

博客原文:How to Be Successful(英文)。

13点:指数增长、自信、独立思考、销售自己、习惯风险、保持专注、努力工作、大胆决定、执拗一点、差异化竞争、人际网络、资产决定财富、内驱力。

时代计划 - DemoChen's Clip
Source: clip.demochen.com

本文是翻译,英文原文:The TIME Project

作者用5年的时间把1923年至2000年每一期《时代》杂志读完,写的一些感想。摘两段:

1、在短期内,政策是重要的。 从长远来看,科学很重要。1999年,《时代》杂志提名阿尔伯特·爱因斯坦为世纪风云人物。 这是个完美的选择。 最后入围的三位是罗斯福、甘地和爱因斯坦,但该杂志最终选择了爱因斯坦,因为最终"政治是暂时的。"方程式是永恒的。

2、任何一个长寿的人都可能对什么重要、什么不重要得出类似的结论,我觉得在相对年轻的时候就被赋予了这样的观点是一种天赋。——我将用我的余生珍惜我在这里与我所爱的人在一起的每一刻。 我将利用我的工作时间建立和支持促进人类理解的强大机构。

王川: 出钱最多者的视角,才是上帝视角
Source: chuan.us

在经济世界里,凡事从利益角度出发。

比如,互联网大部分产品免费,付费的是广告主。很多普通投资者,没有以广告主的视角看互联网产品。

木遥:苏格拉底的猴子
Source: weibo.com

近期看到的非常好的关于ChatGPT的评论。

最后的比喻非常形象:「当你抱怨 ChatGPT 鬼话连篇满嘴跑火车的时候,这可能有点像你看到一只猴子在沙滩上用石头写下1+1=3。它确实算错了,但这不是重点。它有一天会算对的。」

毫无疑问,ChatGPT是AI领域一个质的飞跃,ChatGPT表现出非常强的围绕文本的归纳、总结、推理能力,能替代很多咨询类工作,没想到最先被AI替代的是传统上被认为高知的工作。

并且,它已经达到可商业化的程度,将会有大量资本涌入,推动这个行业以更快的速度发展,拭目以待。

微信链接备份:https://mp.weixin.qq.com/s/8gWpFG0k_vbgy_yUOg6R0g

视频 

Introducing your copilot for the web: AI-powered Bing and Microsoft Edge - YouTube
Source: www.youtube.com

微软new Bing发布会,结合ChatGPT的Bing搜索和Edge浏览器。

了解功能演示,直接从13分钟开始,Yusuf Introduction部分。网上很多文字介绍,还是不如视频来的惊艳。

Yusuf把搜索需求分三类:导航(找到amazon网站)、信息(查天气、股价)、其它(这些都比较复杂),前两类传统搜索满足的很好,但第三类满足的一般,第三类是new Bing要够颠覆的领域。(前两类ChatGPT也能和传统搜索做的一样好,只是谈不上颠覆)

注意到new Bing的Chat模式下,左边是创建话题(New Topic)的按钮,未来的搜索是围绕某一主题的持续对话。发布会上旅游行程规划的例子非常完美。

这场发布会规模不大,但其在科技史上的意义,将不亚于2007年苹果初代iPhone的发布会。

附:中文字幕版

工具 

memos - An open-source, self-hosted memo hub with knowledge management and socialization
Source: usememos.com

开源版Flomo,像素级模仿。除了Flomo的功能,一些不错的特性:

  • 支持公开笔记,可作为没有评论功能的微博使用。
  • 支持多用户,比如小情侣共用一个记录日常。

我搭建了一个demo:https://memos.skyue.com

Kagi - Universal Summarizer
Source: labs.kagi.com

Kagi出的智能摘要工具:给一个内容链接,它能输出内容摘要。Youtube视频也能输出摘要,非常强大。

测试下来,貌似不支持中文。

Kagi本身是一个搜索引擎,它有付费版本,付费搜索的商业模式能不能行的通,这是个很好的标本。

一、

还是照例介绍下缘起,搭建和更新方式在后面。

和博客一样,也想有个self-host的微博,始终没有找到好的开源程序。前些天发现kam.space开发的wordpress朋友圈主题,瞬间爱上了,付费购买并搭建了moments,如下图。

wordpress朋友圈主题
wordpress朋友圈主题

但还是把它下线了,因为发现一个更轻量、更好用的memos

效果如下图所示,访问memos.skyue.com 在线查看。

memos效果
memos效果

去年找微博开源替代品的时候有发现这个项目,memos早期从UI到功能都是像素级模仿flomo(现在仍然有很强的影子),只是当时项目完成度不高,比如不支持图片。同时和flomo一样,不支持公开笔记,做不了微博。为此,我还在github上提了公开memo的feature request

现在完成很高了,甚至有移动客户端Chrome插件,用起来很方便。也支持公开笔记,完全可当独立微博使用。

至此,我的self-host三件套集齐了,如下。它们是各自方向上,非常不错的选择。喜欢self-host又有需求的,推荐试试。

需求开源项目自建地址
博客长文typechohttps://www.skyue.com
微博短文memoshttps://memos.skyue.com
书签收藏Shaarlihttps://pocket.skyue.com

留言区常有人问我Shaarli主题,统一分享在这里:

百度网盘: https://pan.baidu.com/s/162hp_vp9p_ua61mzL8XRWg 提取码: rp4h
注意:只在Sharrli 0.12.1上测试过,其它版本不确定是否有效。

二、

记录下搭建流程,备查。

1、按官网介绍,直接使用docker安装,命令如下:

docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:latest

上述命令安装后,memos就在本地127.0.0.1:5030运行。

2、配置Nginx

将域名(此处为memos.skyue.com)解析到服务器,利用Nginx代理请求127.0.0.1:5230

server {
    server_name memos.skyue.com;
    
    location / {
        proxy_pass http://127.0.0.1:5230;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 0;
        }
}

3、配置域名https

如果服务器已经有certbot,只需要:

sudo certbot --nginx -d memos.skyue.com

如果没有certbot,需要一些前置安装,参考这篇文章

4、升级memos

我觉得memos程序的每次更新总有些意外的bug,所以新版出来后,强烈建议大家观察一段时间其它用户的反馈再决定是否更新。可以在github的issuetelegram群中关注。

更新步骤也很简单:

Step 1:暂停memos程序

docker stop memos

Step 2:备份数据

暂停memos程序前,~/.memos目录下有如下三个文件:memos_prod.dbmemos_prod.db-shmmemos_prod.db-wal,后两个是临时文件,暂停后则只剩正式文件memos_prod.db,备份memos_prod.db即可。

cp ~/.memos/memos_prod.db ~/.memos_backup/

Step 3:移动旧的memos

docker rm memos 

Step4:拉取最新镜像(如果安装特定版本,stable改版本号)

docker pull neosmemo/memos:stable

Step5:安装最新镜像(如果安装特定版本,stable改版本号)

docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:stable