快速成长的必备软技能04:情报获取

快速成长的必备软技能04————兼听

兼听和我们之前说到的“偷师”有些类似,但兼听重在获取信息:
1、政策信息
2、行业信息
3、公司信息
4、部门信息
等等等等

另一方面,兼听要求大家具备整合这些能力的信息
把信息按要求汇总=》对信息分类整理=》得到对自己有用的答案

其实大家可以考虑这样一个场景:
场景一:大学报志愿
大多数的高中生报志愿的时候,是不知道一个专业要做什么的
但有少部分的高中生,对自己感兴趣的专业却很清楚,甚至提前学习了部分专业课

场景二:留学
有些同学一直到大四,都不知道留学意味着什么,不知道什么流程,不知道该去哪里,不知道如何申请学校
而有些同学,对这些事情十分清楚,可以知道留学能给自己带来什么,很清楚自己要选哪个学校

场景三:工作
有些同学,研究生毕业,都不知道自己专业,有哪些顶级公司,一脸茫然
有些同学,大一大二,就已经通过师哥师姐,到业内顶级公司实习,毕业时去向明确

嗯,长此以往,谁更能把握机会,两类人之间,会有差距吗?

快速成长的必备软技能03:情景预演

快速成长的必备软技能03————预演

说完复盘,就要说到另外一个技能,预演

复盘是在一个事情完成后,总结提升

预演则想法,是预计某个事情在未来发生,要在心理上、知识上、逻辑上做好应对

很多成功人士,都有预演的习惯

对于普通人,也是如此。尤其是重大事项,会思前想后,考虑各种可能。

但职业人士会有不同,他们会把预演训练成一种习惯。

对任何事情,都会不由的把几种可能都思考一下,然后想想如何应对

于是,我们在职场上,总会遇到这样的人:
任何问题,都能快速应对,就像他都提前考虑过一样

并不是这些人智商比别人高多少,而是他们把很多情况,都提前考虑过了,遇到时自然会有应对

这个技能,在一开始的时候,会很艰难,就像准备一场激烈的辩论赛

但养成习惯后,就会成为一种被动技能,不会有什么明显消耗

快速成长的必备软技能02:好好复盘

快速成长的必备软技能02————复盘

在我们的职业生涯中,有一个特别重要,但又特别不被重视的技能:复盘

其实大家上中小学的时候,很多人都会又一个错题本,时不时拿出来看看,这就是最简单的复盘

但工作之后,很多人反而不喜欢总结和复盘,让同样的错误发生了一次又一次,付出了各种各样的代价

其实复盘只是一种习惯,养成这个习惯后,并不需要付出太多额外精力

我有一位朋友,他就习惯于每天晚上洗澡时,把一天经历的事情快速过一遍,总结经验教训,最后个人提升很快

对个人来说复盘很重要,对组织来说更是如此

一个项目,无论好坏,最好都能定期复盘一下,好的经验可以推广,坏的教训需要防止再次发生。

这样把一个项目的经验,变成整个组织的经验,组织也就成长起来了。

快速成长的必备软技能01:职场偷师

快速成长的必备软技能01————偷师
【最近偶然翻到了多年前做的一些笔记,稍微整理一下,做个小专题,希望对大家有所帮助】

在职场中,我们经常能观察到一个奇怪的现象。
两位岗位相同、职级相同、绩效差不多、在公司年资相同的同事,入职一段时间后,会走向两个极端:
一个极端是,除了自己做的事情,什么都不清楚,我们叫他“常专注”
一个极端是,除了自己做的事情,同组人做什么都很清楚,部门工作重点也很明白,甚至其他部门在推进什么也有了解,我们叫他“包打听”
其他人,多在这两个极端中间,而技术背景出身的人,多数都更像“常专注”

这两类人,都很努力的话,在自己岗位职责内,绩效会差不多。
但如果让他们去负责新的项目、调整去新的领域、去做一件没做个的事情,两个人对新环境的适应能力会千差万别。

每当遇到“常专注”这类人,安排一些新工作,他往往两眼一黑,这个我找谁,流程是啥,咋开始,我没做过不会啊。
总会记起一个故事:
钱师傅是远近闻名的大厨,小张和小王去拜师学艺。
由于是新学徒,在后厨,两人做的都是洗菜、切菜、打扫卫生等体力活。
一年后的某天,特别忙。钱师傅让年纪稍长的小张做几个菜,给酒楼的伙计们做晚饭。

小张一脸懵逼,我只是洗菜切菜,如何做菜师傅您没教过啊。
钱师傅说,这一年,你没注意看各位大厨是如何做菜的吗?你这学艺,成了做苦工,白白荒废了一年时间

小王不同,做完了日常的工作,就去观察别人怎么做菜,甚至还偷偷练过。
钱师傅于是让小王给大家做晚饭。
小王上手,就做了一桌菜,师傅让大家来点评,各位大厨也给出了中肯的建议。
最终结局,比较俗套啦,小王得到了大家的认可,传承了钱师傅的衣钵。继承了酒楼。

大模型公司的技术能力分级

1、研发大模型算法,要有强大的科研团队
比如Transformer、StableDiffusion

2、在上述理论上,改进并模型结构,并提供预训练模型,要有海量算力和海量优质数据
比如ChatGPT、Llamma、千问、Kimi,也包括一些采用“知识蒸馏”技术的公司

3、自有大模型,简单问题自有模型解决,复杂问题集成外部模型功能
比如苹果

4、在预训练大模型上进行调优,并辅助RAG技术,要有算力和大量行业优质数据
比如保险行业大模型、健康行业大模型,华为盘古大模型做的就是这个生意

5、直接使用多个外部大模型,进行能力整合
比如Perplexity

6、直接使用预训练大模型,并进行RAG调优,需要有行业数据积累
各类行业垂直“大模型”

7、直接使用外部大模型,优化提示词,声称自己有大模型能力
比如各类套壳公司

8、直接使用国外大模型,进行转发
比如各类转发网站

9、根本没用大模型技术,直接包装原有功能,四处忽悠
比如各类噱头公司

PS:
其实还有几类公司,类似于美国淘金时代,卖铲子、卖水、卖牛仔裤的公司:
1、提供硬件的公司,尤其是GPU制造厂商
2、提供GPU算力的公司
3、主要从事大模型培训,不管上面几类公司是否赚钱了,这些培训公司可真赚钱了

分布式一致性算法10:区块链共识算法

一、概述
将区块链的共识算法放到这里,其实只是做个简单的补充。
想了解更多内容,可以参考:
区块链资料汇总
区块链白皮书

二、常见区块链共识机制说明
1、PoW: Proof of Work,工作量证明
工作量证明中,所有参与的节点一起计算区块的Hash值,通过调整区块的一个随机数nonce,得到不同的Hash值。
最终第一个计算出前N位为0的Hash值,获得记账资格,并获取区块的奖励。
其余节点可以快速验证Hash结果,从而快速达成一致(算出这个Hash工作量很大,验证工作量很小)。
此类区块链,采用长链高于短链的原则,也就是如果产生了分区,短链必须遵从于长链的结果,达到最终一致性。

如果要攻破PoW,需要在该网络中,破坏者算力超过全网络算力一半,才有可能破坏最终一致性。

但PoW计算量太大,能耗太高,而且达成一致性的速度太慢,吞吐量就很难提高。

2、PoS: Proof of Stack,权益证明
权益证明网络中,所有参与节点都知道彼此节点的权益(比如,每个Token*该Token持有时间,然后求和)
在达成一致性的时候,权益越大(Token越多,持有时间越久)的节点,越容易被选择为记账节点

如果要攻破PoS,就需要较长时间持有大量的Token,增加了攻击者的攻击成本。

但PoS会导致,强者恒强,造成垄断。与区块链区中心化的目标,背道而驰。

3、DPoS: Delegated Proof of Stake,委托式权益证明
在委托式权益证明网络中,每个节点都知道彼此节点的权益(比如,持有的Token数)
想参与记账的节点,被叫做受托节点,受托节点会进行竞选,要求普通节点投票给他
普通节点不参与记账,而是根据自己的利益,投票给自己选中的受托节点,节点权益越高,投票权重越高
最终,获得最多投票的受托节点进行记账

三、部分区块链项目的共识机制

项目名称 链类型 匿名性 共识机制 合约语言
Bitcoin 公链 匿名 PoW 只是使用合约实现了业务逻辑
Ethereum 公链/联盟链 匿名或私有 22年后为PoS Solidity/Serpent/LLL
EOS 公链 匿名 BFT-DPOS CPP/Web Assembly
Fabric 联盟链 共有或认证 PBFT(classic, batch, sieve) Chaincode

分布式一致性算法09:2PC3PC

一、两阶段提交2PC(Two-Phase Commit)
1、概述
顾名思义,两阶段提交,就是分布式数据库系统,把事务的提交过程,分为两个阶段进行操作,从而保持数据的一致性。

2、流程
a、准备阶段(Prepare Phase)
协调者(Coordinator)收到事务请求。
协调者向所有参与者(Participants)发送准备事务提交的请求。
参与者收到准备请求后,会检查本地事务的状态,判断能否完成此事务请求,并将检查结果反馈给协调者。
如果可以完成请求,参与者需要确保所有操作都已完成,事务处于可以提交、可以回滚的状态。

b、提交阶段(Commit Phase):
协调者根据所有参与者的反馈结果,决定是否提交事务。
如果任何一个参与者不同意提交,则协调者向所有参与者发送回滚请求,全部参与者进行事务回滚,事务失败。
如果所有参与者都同意提交,则协调者向所有参与者发送提交请求,全部参与者进行事务提交,事务成功。

3、示例
假设我们有一个分布式数据库系统,包含两个数据库实例A和B,以及一个协调者C。

a、准备阶段:
客户端向协调者C发送事务请求。
协调者C向数据库A和B发送准备提交的请求。
数据库A和B检查本地事务状态,判断事务可以提交,确认所有操作已完成,并将结果反馈给协调者C。

b、提交阶段:
数据库A和B都反馈可以提交,协调者C向数据库A和B发送提交请求。
数据库A和B执行提交操作,更新数据并持久化。

二、三阶段提交3PC(Three-Phase Commit)
1、概述
顾名思义,三阶段提交就是分布式数据库系统,把事务的提交过程,分为三个阶段进行操作,可以解决两阶段提交协议2PC的阻塞问题。

2、流程
a、CanCommit阶段
协调者(Coordinator)收到事务请求。
协调者向所有参与者发送一个“CanCommit”请求。
参与者收到请求后,会根据本地状态,判断是否可以完成此事务,并将判断结果反馈给协调者。
如果参与者判断可以支持事务,则返回“就绪”(Ready);否则,则返回“中止”(Abort)。

b、PreCommit阶段
协调者收到所有参与者的确认消息后。
如果所有参与者都返回“就绪”(Ready),则协调者会向所有参与者发送“PreCommit”请求。
参与者收到请求后,会锁定其资源以防止其他事务干扰,需要确保所有操作都已完成,事务处于可以提交、可以回滚的状态,并返回确认消息给协调者。

如果任何一个参与者不同意提交,则协调者向所有参与者发送取消请求,事务失败。

c、DoCommit阶段
协调者收到所有参与者的确认消息后,如果所有参与者都表示准备好提交事务,则协调者会向所有参与者发送“DoCommit”请求。
参与者收到请求后,会真正提交事务,并返回确认消息给协调者。
协调者收到所有参与者的确认消息后,事务成功。

如果任何一个参与者不同意提交,则协调者向所有参与者发送回滚请求,全部参与者进行事务回滚,事务失败。

3、示例
假设我们有一个分布式数据库系统,包含两个数据库实例A和B,以及一个协调者C。

a、CanCommit阶段
协调者C收到事务请求。
协调者C向所有参与者发送一个“CanCommit”请求。
A判断可以支持事务,返回“就绪”(Ready)。
B判断可以支持事务,返回“就绪”(Ready)。

b、PreCommit阶段
参与者A和B都向协调者C反馈“就绪”,协调者C判断可以进行下一阶段。
C向A和B发送“PreCommit”请求。
A和B收到消息后,锁定资源,让事务处于可以提交、可以回滚的状态,并返回确认消息给协调者。

c、DoCommit阶段
协调者C收到所有参与者的确认消息。
C向参与者A和B发送“DoCommit”请求。
参与者A,提交事务,向C返回提交成功。
参与者B,提交事务,向C返回提交成功。
C收到所有参与者的提交成功消息后,事务完成。

三、事务补偿TCC(Try Confirm Cancel)
1、概述
在高并发场景下,2PC和3PC的效率根本无法满足要求,于是大家就考虑如何在应用层进行优化,而不要把压力都给到数据库呢,于是TCC应运而生。
TCC可以跨数据库类型、跨系统类型操作,而且灵活性强,效率高。
但TCC需要大量业务代码的改造,各服务需要实现Try、Confirm和Cancel接口,而且要求接口必须支持幂等操作,是一种入侵性比较强的一致性实现方式。

2、流程
TCC通常会将一个大的事务,拆分为多个子事务,并将事务的提交拆分为三个阶段:Try、Confirm 和 Cancel。
这里要注意,对于非严格一致的场景,可以通过MQ等方法异步解决问题,不要加入TCC。TCC应该只涉及到强一致性的各个服务。

a、Try阶段
在Try阶段,系统会进行业务检查,并预留资源。
比如:检查用户余额、检查库存,并暂时冻结资源。

b、Confirm阶段
确认所有业务服务的操作。
比如:扣余额,扣库存。

c、Cancel阶段
如果在Try或Confirm阶段有任何问题导致事务需要回滚,系统会执行Cancel阶段,释放之前预留的所有资源。
比如:释放余额、释放库存等。

3、示例
有一个电商平台,用户想要购买一个商品,这笔交易涉及到以下几个子业务:
用户账户扣款:需要确保账户余额足够,并能正确扣款。
库存服务扣减库存:确保商品库存足够,并能正确扣库存。
订单服务创建订单:记录交易的详细信息,并能设置为正确的状态。

a、Try阶段
客户下单,事务协调器(Transaction Coordinator)指示每个服务进行Try操作:
账户服务尝试扣款,但只是冻结资金,不会实际扣除。
库存服务标记商品库存为预留状态,不会实际减少库存。
订单服务准备创建订单,但不会实际创建。

b、Confirm阶段
如果事务协调器(Transaction Coordinator)收到所有Try操作都成功的消息,确认它们的操作:
账户服务将冻结的资金实际扣减。
库存服务将预留的库存实际扣减。
订单服务实际创建订单,并标记为已完成支付。
事务协调器(Transaction Coordinator)收到全部操作成功消息,此时可判断事务成功。

c、Cancel阶段
如果Try或Confirm的任意操作失败,事务协调器将指示每个服务撤销它们的操作:
账户服务将冻结的资金解冻。
库存服务将预留的库存重新释放。
订单服务放弃创建订单。
事务协调器(Transaction Coordinator)同时会判断,事务失败,并监督完成全部业务补偿操作。

分布式一致性算法08:PBFT

一、概述
上一节说了OM算法,但OM算法效率太低了,在实际工程上几乎无法使用。
1999年,Miguel Castro和Barbara Liskov提出了PBFT(Practical Byzantine Fault Tolerance)算法,大幅提高拜占庭容错算法的效率和实用性。
PBFT算法更好的平衡了效率和容错能力,在n个节点的网络中,同样可以允许的故障的节点数可以达到f =(n-1)/3个。

二、PBFT算法的工作原理
PBFT算法主要包括三个阶段:预准备(Pre-Prepare)、准备(Prepare)和提交(Commit)。
PBFT算法的复杂度为O(n^2),虽然消息数量还是很多,所以不适合大规模的网络,但比OM算法已经有大幅提升。

1、发起请求
客户端向主节点发起请求。

2、预准备阶段(Pre-Prepare)
主节点(Primary Node)收到消息后,为其分配一个视图消息编号vid,并广播预准备消息给所有副本节点。
广播消息格式为(Pre-Prepare,视图编号v,视图消息编号vid,请求内容msg,请求内容摘要msg-hash,时间有效区间T,主节点签名sign)

3、准备阶段(Prepare)
副本节点接收到Pre-Prepare预准备消息后,进行验证:
a、消息签名不正确,不通过
b、通过v和vid判断是否有相同编号消息,但不同内容的消息,不通过
c、超出时间有效期间T,不通过
d、msg与msg-hash不一致,不通过
e、通过
消息验证通过后,副本节点进入准备阶段,并进行消息广播
广播消息格式为(Prepare,视图编号v,视图消息编号vid,请求内容msg,请求内容摘要msg-hash,时间有效区间T,副本消息签名sign)

4、提交阶段(Commit)
每个节点在收到Prepare准备消息后,进行验证:
a、消息签名不正确,不通过
b、通过v和vid判断是否有相同编号消息,但不同内容的消息,不通过
c、超出时间有效期间T,不通过
d、msg与msg-hash与之前Pre-Prepare不一致,不通过
e、通过
每个节点在接收到足够数量的提交消息(通常是2f+1个)后,进入Commit阶段,并进行消息广播
广播消息格式为(Commit,视图编号v,视图消息编号vid,请求内容msg,请求内容摘要msg-hash,时间有效区间T,节点消息签名sign)

5、回复阶段
每个节点在收到Commit提交消息后,进行验证:
a、消息签名不正确,不通过
b、通过v和vid判断是否有相同编号消息,但不同内容的消息,不通过
c、超出时间有效期间T,不通过
d、msg与msg-hash与之前Prepare不一致,不通过
e、通过
节点收到(2f+1)条相同结果的Commit消息后,确认请求已成功执行,返回给客户端。

客户端收到(f+1)条相同结果的消息后,得到最终结果。
这里设置为f+1,因为节点最多收到f条一样的错误消息,不可能收到f+1条错误的消息。

三、主节点选举
如果主节点出现了异常,或则主节点故意作恶,PBFT是无法达成一致的。
此时,就要通过视图变更(View Change,类似于主节点任期的概念),选择新的主节点。

1、故障检测
当遇到以下情况时,备份节点会触发视图变更:
主节点,在约定时间内不响应客户端及备份节点请求
备份节点发送了准备消息后,在约定的时间内未接收到来自其他节点的2f个相同的准备消息。
备份节点发送了提交消息后,在约定的时间内未接收到来自其他节点的2f个相同的提交消息。
备份节点接收到异常消息,比如视图值、序号和已接受的消息相同,但内容摘要不同。

2、发起变更消息
触发视图变更的节点会向其他节点广播视图变更消息(View-Change消息)
这个消息包含了当前视图号v+1、序列号n(最后一个稳定的检查点的序列号)、以及已经准备好的消息集合P。

3、收集变更消息
其他节点在收到视图变更消息后,会检查消息的有效性。
如果消息有效,节点会记录该消息到本地日志中,并启动一个定时器,等待接收2f+1个视图变更消息来确认视图变更的成功。

4、选举主节点
当一个节点接收到2f+1个视图变更消息后,它会确认视图变更成功,并通过预定规则开始选举新的主节点:
(v + 1) mod |R|,其中v为当前视图的值,|R|为节点数选出下一个视图的主节点
节点启用新的视图号v+1,并将选举结果,广播通知其他节点。

5、广播NEW-VIEW消息
新的主节点接收到2f个其他节点的视图变更消息后,会广播一个NEW-VIEW消息,这个消息包含了上一个视图中所有未确认的请求信息。

6、处理未确认的请求
在新的视图中,副本节点需要处理在旧视图中未能达成一致的那些请求。
一旦新主节点广播了新视图消息,副本节点将执行这些请求,并进入提交阶段。

7、变更完毕,恢复正常

分布式一致性算法07:OM

一、概述
前面讲的几种一致性算法,比较适合封闭式网络,各节点都是可信的,也就是没有节点故意作恶。
但对于开放式网络,可以允许任意节点加入的时候,我们无法判定这些节点是否有恶意,也就是无法判定这些节点是否可信。
此时,我们就需要一种新的思路了:
当存在少数节点作恶( 消息可能被伪造) 场景下,其余节点如何达成一致性呢?
对于此种场景,最出名的就是拜占庭算法,而为了更快的理解拜占庭算法,我们要先解释一下拜占庭问题。

二、拜占庭将军问题(The Byzantine Generals Problem)
拜占庭问题又叫拜占庭将军问题,是Leslie Lamport在1982年提出用来解释一致性问题的一个虚构模型。
拜占庭是古代东罗马帝国的首都,由于地域宽广,守卫边境的多个将军(系统节点) 需要通过信使来传递消息,达成某些一致的决定。
但由于将军中可能存在叛徒(恶意节点),这些叛徒将努力向不同的将军发送不同的消息,试图会干扰一致性的达成。
拜占庭问题即为在此情况下,如何让忠诚的将军们能达成行动的一致。
(其实,还有一个隐含的限定,就是节点无法伪装为其他节点,实际中可以通过签名算法来达到这个目的)。

这样说可能有些抽象,我们举个例子:
比如一共有3个将军G1~G3,3个将军约定,少数服从多数。
G1、G2为忠诚的将军,G3是个叛徒
此时,G3有多种破坏方案,让G1和G2无法取得共识:

1、破坏方案A、否认提案内容,消息重放
比如:G1发起提案,G1要求明天进攻A城市,要把消息发给G2~G3

但G3先收到了消息,然后通过小道(比如更快的路由)向G2发送了“撤退”的提案
G2先收到了撤退的消息,后收到进攻的消息
G3向G1反馈进攻

结果:(G1被欺骗,G2被劫持)
由于只有G1发起了进攻,兵力不足,吃了败仗。
G3一口咬定,收到了G1要撤退的消息。

2、破坏方案B、故意发起错误提案
比如:G3发起提案,要把消息发给G1~G2。
但G3给G1的提案是进攻,给G2的提案时撤退

结果:(G1和G2不一致,但G1和G2认为彼此一致)
由于只有G1发起了进攻,兵力不足,吃了败仗。
G3一口咬定,发送了撤退的消息。

3、破坏方案C、故意传播相反的消息,操纵投票结果
比如:G1发起提案,G1要求明天进攻A城市,要把消息发给G2~G3。

此时:
G1希望进攻
G2希望撤退(比如节点有问题,无法接收事务提交)
G3是个叛徒,他给G1答复“进攻”,给G2答复“撤退”

结果:(G1和G2不一致,但G1和G2认为彼此一致)
G1收到了2票进攻,1票撤退,于是进攻
G2收到了1票进攻,2票撤退,于是撤退
G3是个叛徒,撤退
由于只有G1发起了进攻,兵力不足,吃了败仗。

三、Byzantine Fault Tolerant (BFT) 算法
对于上述问题,作者提出了一种BFT算法(OM算法),并证明了:
当叛变者为m,将军总人数不小于3m+1时,存在有效的算法,不论叛变者如何折腾,忠诚的将军们总能达成一致的结果。
或者,当将军总人数为n,当叛变者不大于(n-1)/3时(向下取整),存在有效的算法,不论叛变者如何折腾,忠诚的将军们总能达成一致的结果。

当恶意节点为m,节点总数必须不小于3m+1,可以这样证明:
在极端情况下:
a、m个正常节点下线。
b、m个恶意节点给出同一的恶意结论F。
c、此时必须至少有m+1个正常节点,给出正确结论T,才能保证系统得到结论T
因此节点总数,必须不小于3m+1

可见,能确保达成一致的拜占庭系统节点数至少为 4,允许出现1个坏的节点。如果叛变者过多,则无法保证能达到一致性。

四、OM算法过程
OM算法(Oral Message Algorithm)的核心思想是通过递归的方式,将命令从指挥官传递给下属,确保所有忠诚的下属最终都能接收到相同的命令。
OM算法复杂度为O(n^(m+1)),就是当有m个叛变者时,进行m+1轮递归通讯。
算法复杂度太大,在实际工程中无法应用。

1、初始化:
指挥官(通常是忠诚的将军)发送其命令给所有其他将军。
如果某个将军没有收到命令,则默认执行撤退命令。

2、递归传递:
每个将军在接收到命令后,会将该命令传递给其他未收到命令的将军。
如果某个将军接收到多个不同的命令,它会选择一个多数命令作为最终命令。

3、递归终止:
当所有将军都接收到相同的命令时,递归终止。
最终,所有忠诚的将军都会执行相同的命令。

具体步骤如下:
1、OM(0):(递归终止条件)
指挥官发送其命令给所有其他将军。
每个将军使用接收到的命令来做出决策。如果没有接收到命令,则使用默认命令(撤退)。

2、OM(x):(递归步骤:x=m、m-1、…、2、1):
指挥官发送其命令给所有其他n位将军。
对于每个将军i,如果它接收到命令,则将军i作为新的指挥官,执行OM(x-1),并将其收到的多数命令,传递给其他n-2位将军。

3、重复上述过程,所有忠诚的将军都会执行相同的命令。

Apple Intelligence三层模型结构

苹果在AI上很久没有实质性进展了:
Siri多年没有进步,停止了造车项目,解散了部分AI团队。
虽然陆续低调的进行了一些AI公司收购,但没有什么可称道的成果,实在算不上有什么进展。

今年WWDC上,终于发布了AI相关的内容,一如既往的“重新定义”了AI的概念:发明了一个新词Apple Intelligence,缩写还是AI。

咱们仔细看一下这个Apple Intelligence,还是动了一些脑筋的,整体架构分了三层:
1、首先是在移动设备端,运行了一个30亿参数的小模型,处理一些简单的任务(苹果自研芯片,让小模型可以在功耗可控的情况下,及时响应这些请求)
2、如果本地模型无法处理,就将请求发送到是云端,通过苹果自己的大模型,响应用户请求
3、如果任务太复杂,苹果自家模型处理不好,则将请求发送到合作伙伴提供的大模型,比如GPT-4o等,合作伙伴会不断增加
当然,对于用户的授权,和数据隐私保护,还是做了不少工作的

这样乍一看,好像没有什么吗,就是集成了多个模型。但咱们加上一个事实后,这个事情就不这么简单了:
苹果对自己的操作系统完全可控,就让本地模型可以获取比竞争对手高的多的权限。
苹果自家模型,可以读邮件、可以看日程、可以访问通讯记录、可以查看网页浏览记录,可以搜集全部图像。。。
也就是说,苹果的自家模型,可以高效收集客户设备上所有信息。
同样的,苹果自家模型,可以调用用户设备全部的功能,包括第三方APP的功能。
通过整合这些信息,就可以让苹果自家模型,吊打全部竞争对手。

细思极恐,在移动小模型上,在IOS设备上,几乎已经没有了任何生存空间。
如果Google也在安卓上,部署自己的小模型,那安卓设备上的机会,也就不存在了。
无论Google如何选择,国内厂商必然快速跟进,那手机小模型这个赛道很快就不存在了。
而第三方的移动小模型和应用,无论如何努力,由于无法控制操作系统底层,几乎不可能形成任何竞争优势,几乎必然出局。

可以看下,现在国内大模型赛道整体太卷了,小厂商几乎没有机会:
1、大模型的研发、训练,需要大量的资金、人员、算力、数据的投入,小厂玩不起,大厂不赚钱
2、开源大模型的性能,比闭源大模型并不差太多,而且也在疯狂迭代,没有商业模式,更没有资本愿意长期投入,小厂更玩不起
3、小厂在垂直赛道可能会有些机会,但如果市场足够大,被大厂嗅到,没有赚钱途径的大厂一定会下场卷死你
4、移动端小模型,上面也说了,没有操作系统权限,小厂几乎没有机会了
5、在APP创新上,国内互联网流量过于集中,应用开发出来只能依附于几个大流量平台。这些平台不会允许某几个应用过热,而且在有了热度后,大厂还会无良的抄小厂的作业,让某类APP瞬间消失

所以很可惜,虽然大家都知道大模型是个好东西。但国内环境太卷了:
没有给小厂的生态位,没有好的生态
就不会有大量的创新,后面难以出现百花齐放的场景
到头来,还是要等别人创新后,大厂去抄?
大家都懂,但停不下来。
卷来卷去,难有赢家。

好像扯远了。。。
其实,对于苹果,其实还有两个事情做的挺到位的
1、将prompt屏蔽了,让普通人可以更便捷的使用AI
2、再次发挥,强大的整合能力,提前抢占了移动AI的入口

当然,对于个人来说,用好大模型,提高自己获取知识的速度,提升自己的认知圈,扩展自己的能力边界,还是很重要的。