Ajax Zhan's Blog

Welcome!This is Ajaxzhan.
坚信:品味优先于执行,价值驱动下创造、系统工程保安全
持续跟进AI前沿研究,持续思考技术、产品与思维。

这是AI时代,也是一个酒神时代——新技术、新产品、新SOTA层出不穷,从传统大厂到创业公司到OPC到每个个体——每个人都在拼了命想赶上这波浪潮。

神奇的是,在感性和理性的拉扯中,我的理性在这一个月里面变得淡了许多,几乎没有占据过主导地位,感性倒是久不散去,给我带来了许多欢乐和痛苦。

只需要将VPN改成虚拟网卡模式,再打开Cursor的HTTP2.0模式就不会有模型被拦截的问题了,很神奇。解决了HTTP1.1网络环境太差的问题。

最近开始意识到一种很重要的能力——幽默,当然这种幽默不仅仅是对别人,更多是对自己的一种幽默。如果一个人都无法进行自嘲和对生活中的事情进行解构,那么这个人绝对会获得特别痛苦和憋屈,更不用说会产生什么有价值的思考了。所以保持一种对自己冷幽默的态度还是很重要。

兼具深度与启发性的分析,能有效帮助培养更敏锐的Research Taste:关于大海捞针是一个很好的评估长上下文的指标——https://www.zhihu.com/question/654570878/answer/1965228622118888157

AI的发展、LLM的发展太快了,落地的推进也很迅速,中国有无数能人志士正在各自岗位推动这件事情。今年看到的太多新闻都给我一种感觉:AI的浪潮不像是泡沫,未来3-5年AI的需求只会增加,不会减少。浪潮之下,要学习的东西还太多太多。

最近把MLLM当作OCR来用,大概就是识别图中的习题然后转成平台兼容的格式。这个过程中发现大模型的幻觉还挺可怕,他要是直接给你很离谱的错误也就罢了,他居然会给你修改选项中的一些细节,并且修改得很合理,让你完全看不出来。这种幻觉在很多领域我认为还是不可接受的,而且关键是怎么检测出来这种幻觉?如果还要靠人为来检测,那这种基于大模型的自动化工作流其实意义就大打折扣了。

今晚回顾了之前支教的照片,感慨颇深。想做一个好的老师,但确实做的不够好。

今天研究了Coze的Multi-Agent、豆包的语音合成大模型、开源的OpenWebUI和NewAPI,感觉都挺牛的,效果很令人振奋,可以试试组合起来做个项目。

同时我现在越来越觉得,不是为了追求技术而技术,而是要用技术做出真正的好产品,注重用户体验和实际价值。真正的好产品实在令人振奋,字节跳动公司推出的豆包语音系列效果震撼,飞书在办公方面做的绝绝子,今天实用了火山引擎的工单系统都觉得很nice。感觉字节的产品都很有灵气。

今晚看了看过去一年的日记,很有感触,记日记真的很有意思,只有通过当时的文字才能观照今日的自己是否已经成长了。我们需要隔一段时间询问一下自己:自己是否激情依旧,是否能留存有过去许下愿望那时的热情?

Go语言修炼(十二):高并发下的通信方式Channel

前言 想象一下,在一个繁忙的交通枢纽(业务系统),车辆(Go协程)川流不息,它们需要高效、有序地交换信息以完成各自的使命。 而Channel就像是这些车辆之间的专用通道,既保证了信息的准确传递,又避免了交通拥堵和混乱。通过Channel,Go协程之间可以安全地进行数据交换,无需担心数据竞争和同步问题

Go语言修炼(十一):Go语言的读写锁是怎么工作的?

前言 在Go语言的并发编程世界中,锁机制是确保数据一致性和线程安全的重要工具。随着应用程序对并发性能要求的不断提升,传统的互斥锁(Mutex)虽然简单有效,但在某些场景下可能会成为性能瓶颈。 为了优化这种情况,Go语言引入了读写锁(sync.RWMutex),它允许多个goroutine同时读取数据

Go语言修炼(十):Go语言的互斥锁是怎么工作的?

前言 互斥锁,顾名思义,是提供互斥(Mutual Exclusion)能力的锁机制,确保同一时间只有一个goroutine能够访问某个特定的资源或代码段。在Go的标准库中,sync包为我们提供了强大的同步原语,其中sync.Mutex是实现互斥锁功能的关键。掌握sync.Mutex的工作原理和使用方

Go语言修炼(九):Atomic操作与sema锁

前言 在并发编程中,确保数据的一致性和程序的正确性始终是开发者面临的重大挑战。Go语言以其独特的并发模型——协程(Goroutine)和通道(Channel),为开发者提供了强大的并发编程工具。 然而,仅仅依靠协程和通道还不足以解决所有并发问题,特别是在需要精细控制资源访问和数据一致性的场景下。这时

Go语言修炼(八):面试必问的GMP调度模型

前言 上一篇文章我们提到:多线程并发的时候会抢夺全局协程队列中的全局锁,造成高并发情况下效率低的问题。G-M-P模型的出现就是为了解决这个问题。 GMP模型是Go语言运行时用于管理并发执行单元(Goroutine)的一套精妙设计。在这个模型中,Goroutine作为轻量级的线程,实现了高效的并发执行

Go语言修炼(七):协程的本质与线程循环模型

前言 协程是Go语言中一个非常重要的概念,Go语言能够天然支持高并发应用的开发所依赖的就是协程。本文将深入探讨协程的本质以及早期Go语言的线程循环模型,揭开协程的神秘面纱。 协程的概念 首先我们回顾一下《操作系统》这门课的知识。操作系统的处理机管理中,一个非常重要的模块就是进程和线程的管理。 进程:

Go语言修炼(六):什么是Go语言的内存对齐

前言 在编程的世界里,理解并有效利用内存是每位开发者不可或缺的技能之一。特别是在追求高性能和高效率的现代应用程序开发中,合理的内存管理显得尤为重要。 内存对齐(Memory Alignment)是一个既基础又关键的概念,它直接关系到程序的运行效率和性能。内存对齐是指数据在内存中的存储位置按照某个特定

Go语言修炼(五):搞清楚Go语言中的那些“空”们

本文深入剖析Go语言中的“空”概念及接口底层实现。接口值底层由`iface`(非空接口,含`tab`和`data`)和`eface`(空接口,含`_type`和`data`)构成,类型断言依赖`itab`记录的类型与方法信息。空结构体非`nil`,常用于节约内存(如Hashset的Value、channel信号);`nil`是六种类型(指针、channel等)的零值,且具有类型。空接口仅当`_type`和`data`均为空时才为`nil`。核心要点:`nil`有类型,空结构体非`nil`,接口`nil`需类型与数据同时为空。

Go语言修炼(四):面试官问我sync.Map的底层实现

前言 上一篇博文我们讲解了Go语言中map的底层实现,然而就像Java中的HashMap是并发不安全的,Go语言的map也是不支持并发场景的。 如果要在并发场景下使用map,就需要用到我们即将介绍的sync.Map。 map的并发问题 首先,我们先来理解一下为什么Go语言的map会存在并发问题。 让

Go语言修炼(三):Go语言中的Map到底是怎么实现的

前言 在编程的世界里,数据结构是构建高效、可维护软件大厦的基石。而在众多数据结构中,Map(哈希表)因其能够快速存取键值对的能力而备受青睐。对于使用Go语言进行开发的程序员来说,Map更是日常编码中不可或缺的一部分。它允许我们以近乎常数的时间复杂度(O(1))来查找、插入或删除元素,极大地提升了程序