duangsuse::Echo
712 subscribers
4.24K photos
127 videos
583 files
6.45K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from &'a ::rynco::UntitledChannel (Rynco Maekawa)
Forwarded from Solidot
中国 AI 模型建立在美国模型基础上

2024-02-22 18:13 by 机器岛

李开复的 AI 初创公司 01.AI 去年 11 月跃居开源人工智能系统能力排行榜的榜首。它的部分技术是基于 Meta 公司开源的大模型 LLaMA。李开复对此在邮件中表示,他的初创公司的人工智能模型是建立在 LLaMA 上的,就像“其他大多数 AI 公司一样”,并补充说,使用开源技术是一种标准做法。他说,他的公司使用自己的数据和算法,从零开始训练人工智能模型。这些都是 01.AI“表现出色”的“主要决定因素”。Meta 发言人表示,公开分享该公司的 AI 模型有助于传播其价值观和标准,进而有助于确保美国的领导地位。一位投资公司的合伙人称,中国公司从零开始建立的 AI 模型“不是很好”,所以许多中国公司经常使用“西方模型的微调版”。

https://cn.nytimes.com/technology/20240222/china-united-states-artificial-intelligence/


#人工智能
#algorithm #history 方脸:为计划经济诞生的「线性规划」 https://youtu.be/1cLWzo78Q5g?t=900
#code
import numpy as np
import scipy.optimize as lp

# 优化目标函数:maximize 2X + 3Y
c = [-2, -3]
# highs限制条件:5X + 8Y <= 50, 10X + 12Y <= 120
A = np.array([[5, 8], [10, 12]])
b = np.array([50, 120])

# 设置变量的取值范围
x_bounds = (0, None)
y_bounds = (0, None)

# 解决线性规划问题
r = lp.linprog(c, A_ub=A, b_ub=b, bounds=(x_bounds, y_bounds), method='highs')
val,x,y=-r.fun,*r.x
print(f"最大利润为 ${val},此时生产 {x} 个产品 A 和 {y} 个产品 B。")


在列宁格勒呢,有一家胶合板生产厂。它有80台两种型号的机床,生产5种不同型号的胶合板。而不同型号的机床生产胶合板的能力不同。

那么,如何合理的分配每台机床的作业时间和物料投入,使得胶合板的产量最大,就是胶合板问题。这个呢,看起来是一个简单的数学问题,和我们日常做的一些高考数学题呢是类似的。当然了这对一个高中生来说,只要好好学数学,这个问题呢,并不难解。但是问题是这里面我们能解出来是因为我们只考虑了单一工厂的前提之下的。可是苏联的实际情况却不同,

就比如这个胶合板的生产。除了要考虑自己的工厂怎么样生产效率最高,它还要考虑胶合板的原材料,比如木材的供应量。而考虑到木材的供应量,除了要考虑伐木工人的数量,还要考虑到伐木机的生产数量。而伐木机的制造数量又要考虑到钢厂的产量。此外,胶合板的生产还要考虑到使用的问题。胶合板有的时候用于房屋建设,有的时候呢也用于飞机制造。因此,还要考虑整个国家的房屋建设数量以及飞机制造数量。而飞机制造数量房屋制造数量又牵扯到非常多的问题。所以一个胶合板的生产规划是远比我们想象的要复杂得多的。

而根据苏联自己的记载呢,在1960年代,苏联国家计划委员会要对苏联及其加盟国的10,500个商品实施生产计划,而统一规划生产的工厂更是达到百万之多。想要分配这些产能在没有计算机的时代是一个非常困难的事情啊,甚至在当下有计算机这也是一个非常困难的事情。而为了优化这个计算,苏联时期还诞生了不少的知名经济学家,比如列昂尼德坎托罗维奇,他就在优化上面提到了胶合板生产问题时提出了线性规划,从而获得了1975年的诺贝尔经济学奖。所以这个计划经济虽然是个笑话,但是实施起来并不像我们想象的那么简单,只要国家一声令下就可以搞起来。

我们看历史总说中苏交恶之后苏联撤走了原子弹的专家撤走了这个那个专家导致中国的科技发展停滞。但其实对于当时中国最为致命的不是撤走专家之后原子弹发明不出来,而是撤走专家之后中国的计划经济搞不起来了。苏联因为有一系列的数学大师和经济专家,虽然他的计划经济呢可能会因为生产规划的问题导致大饥荒,但是,起码在有数学家和经济学家的前提下,这个计划经济他是能跑起来的。 🤓
Forwarded from Solidot
Reddit 申请上市

2024-02-23 14:34 by 终极失控

社交媒体公司 Reddit 正式向 SEC 递交了上市申请,它计划用股票代号 RDDT 在纽约证交所上市。预计在三月进行的 IPO 将是 2019 年 Pinterest 上市以来美国社媒公司的首次 IPO。文件显示,Reddit 2023 年的收入为 8.04 亿美元,比 2022 年的 6.667 亿增长 20%。该公司由 Alexis Ohanian 和 Steve Huffman 于 2005 年创办,成立至今一直亏损,2023 年亏损 9080 万美元,2022 年亏损 1.586 亿美元。它的主要收入来自广告,计划 AI 改进 广告业务,通过内容授权开辟新的收入来源。Google 周四宣布与 Reddit 扩大合作,使用 Reddit 上用户生成的内容训练其 AI 模型。Reddit 称其内容许可授权每年至少能带来 6640 万美元的收入。

https://www.sec.gov/Archives/edgar/data/1713445/000162828024006294/reddits-1q423.htm

#商业
#java #code serde codegen
用jshell API 实现了一个ini序列化,大概比直接靠javac 简单
>以下代码实现了 dumps(Pair::class) (Pair(0,0), mutableMapOf("first" to 3))

fun dumps(T:KClass<*>, ld:T=JS("(void)(${T} o, java.util.Map<String,Object> m){"+
T.memberProperties.joinToString(""){" m.put(\"${it.name}\",o.get${it.name.capitalize()}());"}+"}")!!
)=fun(o:Any, m:Map<*,*>)=ld.main(o,m).let{m}



所以说py真的太解压了.. setattr() 就算动静态隔离,typehint还能做格式验证
js稍微乱点
java 连个规范的元编程方法都没有,一群魔法师

我是觉得一个老古董语言就不要和jspy 比面向event和类型反射
Compiler 和 JShell API 就是tools.jar里的,做不到比 CLI更强的功能,就是调用快点
JS("") 和runtime其实是完全隔离的,它的classpath 相当于是编译期的,你可以把生成的代码按行号缓存下来,不需要defineClass
vs

// 定义一个 data class
data class UPair(val A: Int, val B: Int)
@Mapper
interface UPairMapper {
// 定义一个映射方法,用于将 Map 转换为 UPair
fun mapToUPair(map: Map<String, Int>): UPair
}
val mapper = Mappers.getMapper(UPairMapper::class.java)

mapper.mapToUPair(mapOf("A" to 1, "B" to 1))

https://github.com/mapstruct/mapstruct/issues/1672#issuecomment-969265894
https://gist.github.com/duangsuse/d022c7ad037bb7fed446f72ec9b38ef7
Forwarded from Programmer Humor
[instanceof Trend] weBetrayedHim
https://redd.it/1axdpp5

by @programmer_humor
duangsuse::Echo
https://t.me/seedless_channel/1655 #statement #PLT #dev #reaction “我有一个每天都要运行的Python程序,每次运行需要1.5秒。我花了六个小时用rust重写了这个程序,现在这个程序运行一次只需要0.06秒了。41年零24天以后,效率提升节约下来的时间补偿了我重写程序的六个小时。:) 这条没错啊,这个作者,根本没搞清楚「大型软件」和demo里,开销都花在哪里 所有软件都巨巨巨巨大无比,这也是和性能无关的 “整个网页/SQL 数据库的架构…
对「日用软件工程」的讽刺文章 内容更新了
真知灼见,字字珠玑啊 #design 😨❤️

> 你会买百公里耗油100升,甚至1000升的汽车吗?在软件行业,我们一直这么做。
> “你需要拼命地奔跑,才能保持呆在原地”。从iOS 11开始,系统将不再支持32位的应用,Chrome的一次更新,就能够让某个JS插件失灵
> 小白用户换上新设备,只是为了运行变得越来越慢的Apps吗?

现代汽车工作效率可以达到当前引擎设计的98%的水准
现代建筑使用刚好的材料来搭建并且在确定条件下保持安全
现代软件行业,大厂普遍接受程序存储和运行在1%甚至0.1%的算法效率上。
当大多数开源还不可靠的时候,机器学习和“人工智能(AI)”又将软件推向了靠猜测的阶段。

> Jonathan Blow 自己开发给自己游戏开发用的编程语言,在笔记本上每秒可以编译50万行代码。而且是全新编译,没有中间缓存,没有增量编译。
> 编写高效的程序不需要你是天才。这并不需要什么魔法。只是不要在现在的臃肿不堪的工具链上去构建就行。

最新的顶级Macbook Pro上,谷歌邮箱,在谷歌自己开发的Chrome浏览器上,需要花费13秒的时间打开邮件
Windows 10大小是4GB,是Windows 95的133倍大。但是Windows 10比Windows 95高级133倍吗?难道整个安卓比这4GB还复杂1.5倍
Windows 10需要花费30分钟来更新系统,什么流程需要这么长的时间呢?30分钟都够我彻底格式化我的SSD硬盘
你有没有想过为什么你的智能手机需要30到60秒的时间来启动。为什么它不能在1秒内启动?这里并没有硬件限制^

10年前一张光盘就能存储操作系统,系统应用和你所有的数据内容。
3年前,16GB手机能良好运行使用,但是到了今天,16GB和膨胀两倍的安卓8.1的手机,已经没有选择游戏和"微"信的余地
然而安卓8.1,并没有带来性能的变化和功能提升,它就这么膨胀了?

一个没有安装任何其他APP的Android8占用6GB的存储空间。请比10年前的软件想一下,程序员们该有多么巨大的进步。
这里面有高清电影吗?我猜大部分应该是代码:系统内核,驱动,翻译字符串,这些资源都不应该很大!
谷歌App,基本上就是谷歌网页搜索,需要350MB空间!谷歌Play服务,我基本不用,需要300MB空间

——
现代editor的输入延迟远输于42年前开发的Emacs。还有比编辑器更简单的功能吗?每敲击一次键盘,你所需要做的仅仅是更新一个小小的方形区域
一个3D游戏可以在这个时间内刷新整个屏幕,渲染成千上万的多边形。同时还处理用户输入,重新计算环境世界

Web应用都会报出大量的“随机”JS错误。
如果网页出现什么问题,只会提示你F5。谁有时间去研究到底什么地方改变了?
整个网页/SQL数据库的架构都建立在当用户浏览渲染出来的网页时,不会去操作任何数据的假设 🔥
原始讽刺:https://motherfuckingwebsite.com/
进阶讽刺:https://thebestmotherfucking.website/
反向讽刺:
https://thebestmotherfuckingwebsite.co/

你桌面的todo应用可能是基于Electron写的,所以它包含了一个Xbox 360控制器的用户态驱动在里面(QQ虚幻引擎警告 😅),这个驱动能渲染3D图像,播放音频,用你的网络摄像头拍照。
你应该将Slack划分为极其耗电型应用。聊天室和简单的文本编辑工具,这些应该都不是资源消耗型的应用才对。欢迎来到2018。
开发Node.js/Javscript项目,rm -rf node_modules 一直是码农工作过程不可或缺的部分。
在虚拟机上构建Docker容器,ONNX,就因为没人可以理清楚程序,编程语言和运行环境的混乱状况。

^注 #bash
systemd-analyze blame|tac|sed '/lightdm/q'

1.986s lightdm.service
2.1GHz 8G 的x86_64 Linux上启动只需2s 🥰 安卓慢不是Linux的锅
另外,pacman 的安装速度比apt;rpm几乎是快一倍的

不同的CPU指令集有体积差异,arm64几乎是32的二倍,这就显得Android的字节性价比奇低了-堪比JavaEE。 不知是不是系统apk的冗余res/文件太多
每次你 ./configure ,gcc都会重新计算一个完全能被缓存的CPU info,即使不换语言用cmake也能避免这点。 C指针语法的繁琐和预处理也会极大拖慢parse的时间
(for A in armv7 aarch64 x86 x86_64; do wget --spider 2>&1 https://mirrors.ustc.edu.cn/alpine/v3.19/releases/$A/alpine-standard-3.19.0-$A.iso; done)|grep 长度

长度:107423744 (102M) [application/octet-stream]
长度:220485632 (210M) [application/octet-stream]
长度:167772160 (160M) [application/octet-stream]
长度:217055232 (207M) [application/octet-stream]
💭
一些人可能觉得W95时没有 .NET 这样的框架,各种UI也很简陋,但这也是扯淡
要知道 7zip.org 可以用1M实现文件管理器的功能
qemu.org,ffmpeg.org,msys2.org 加起来也只250M, 难道内核驱动会包含更多算法吗?
而自带驱动的 pacman -Qi linux 6.7 x64是130M,原文作者 #rust 吹并非空穴来风

功能类似的PS和 gimp.org 居然差0.7G https://helpx.adobe.com/creative-cloud/kb/file-size-creative-cloud-installers.html#:~:text=Photoshop%20CS6
功能和代码量似乎根本没有对应性

难道框架接口不是为服务于apps存在的吗? 随着技术进步,过分冗余的功能组件太多了

我觉得编程界的市场也是挺有趣的,明明速度在下降, 工资却依然涨
这又可以说成资本对劳动和技术的异化 又可以说成资本故意淘汰老设备

但其实编程界好像就是这样…… 无法多快好省地换代,有得有失
我觉得可以搞个绝对化,一切有局部类型标注,或者为val/var数据类型做区分的语法都是噪音(

一个编译期黑盒assert 当成金科律玉,说明根本没有做自顶向下复用 就开始敲键盘,根本是过度工程
文档写成测试,测试写成汇编,类型写成代码……
弱类型还简单些,module导入,interface多态和扩展,data和临时对象 创建个闭包,查个dict就行了
type能和函数字典很好地对应,序列化和集合类型都字面, 完全不需要keywords

这点许多新创建的静态语言都做不到,kt现在的listOf() 也没法好好实现

more: https://news.ycombinator.com/item?id=34936729
https://pointersgonewild.com/2018/02/18/minimalism-in-programming/ #dalao
Forwarded from tsuFeed
Mistral 终于放出了吊了很久的 Mistral Large。

Gemini Pro 再次被薄纱。

以及这次 Large 不是开源模型了,只能调用 API 给他们付费了。

chat.mistral.ai

#LLM
Forwarded from 蓝点网订阅频道
#软件资讯 CloudFlare 宣布开源内部使用的 Pingora 框架,基于 Rust 开发,替代 Nginx。

查看全文:https://ourl.co/102628

CloudFlare 从 2022 年起就在内部放弃了 Nginx 转而采用 Pingora,现在这个新框架开源了。

Pingora 支持免重启升级、支持 HTTP1/2 (注:HTTP/3 后续支持)、支持 gRPC 和 Websocket、支持各种分析和观测工具的集成等。
Forwarded from duangsuse Throws
#china #life #history https://www.youtube.com/watch?v=sv9Rbrh_rX8
财政转移支付+特供关系户
3:00 大城市成功人士,被婆罗门穷亲戚和奢侈品店震惊
11:00 破防,那就是小镇做题家发现「超越阶级」是短暂的、表面的呗
18:00 县城基建,转移支付回北京房价
20:00 县vs城 过年和投资观念差距,加大了心理落差

最後一句真是犀利的諷刺,到底是誰在境外呢?在國內一層又一層的阻隔牆、信息封鎖,對自己國家的認識反而不如外國人。如果連自己國家都不認識,又要談何愛國呢?
韭菜人礦以為從共產體制分到了一百塊,
殊不知整塊蛋糕是十個億元,
但權力階層最小的一份卻是十萬元。

而资本民主正是要盡量打破這種體制,
共產卻是多數人想維持體制,並夢想自己成為享有特權的一員
Forwarded from Ruters乳透社🐻
西朝鲜又在自慰
#learn #js #kt #java 🧵 📥
借机聊下线程、协程间的对应性,以及UI/UX应用与单次脚本间因何不同。(全栈)

调用返回要靠 -Xss 指定大小的线程栈,数组
调用异步要靠 ret() 参数指定的回调栈,链表, 也可以封装为 new Promise((ok,err)=>ok(0)) 。内部执行前都要传入then步骤,但不需要看调用栈
你可以把异步栈保存到[]{}里按需执行,称为调度。协程(async stack)和linux调度器的区别,仅仅是后者能跑死循环(分时复用CPU)
总之 线程栈=调用栈,异步栈=回调栈。

ps|head -n1 这样的管道write() 其实就是yield。这时read()不会等待/dev/disk/的CPU.IO信号,而视ps下一块缓冲的bytes (C对象的Channel)
信号,不是死循环轮询poll,它看注册推送push。不过Looper,HTTP-epoll请求响应 这种ddloop(detect-dispatch) 模式会混合两者
本来,为了不卡死主线每次IO或延时也要 launchThread{b=f.read(); rest(b)} 。封装为 f.read(回调) 就异步了:线程无关
生成器, yield(x, Ret) 会保留首次调用偷偷建的状态机Ret,第二次next(v),调Ret(v如异步结果)后即可返回x。 asyncFn=(args, op=0, Ret=(v)=>switch(op++){} )=>相当于协程对象

主线程sleep()往往要卡死UX,但 yield ret=>setTiemout(ret,1s) 却会立刻返回,同时允许ret()上文切换到其他线程池(ddloop,scheduler)继续执行
造成以上区别,是因为push比poll有普适性,它跨CPU地执行同一个函数,且有event/flow based 范式帮助模块复用。libuv和DOM就是对os.read,sleep.. 跨平台的线程池优化

既然如此,好像有UI+IO两个线程就够了,你干嘛~要多开线程
上文切换,只因,为能更好地压榨多核线程池
DOM代替大家做了划分,为多线提供了内存安全的Worker,但kt,go,py里暴露的技术细节有点多!

线程和 asyncio/suspend 相比有何劣势? linux上进程内是创建慢的进程组(fork)。在不调用OS资源时,永远使用协程"套娃"能减少到内核态的上文切换和内存消耗。像线程池存在的意义,就是免线程创建http连接等单任务
需要mutex锁的独占性资源,用协程读写更节省轮换
单协程轻量到1个回调就能保存,并发控制如 join(coroutineScope),go select,channel 可以用Promise.all,race,postMsg来"阻塞",因为它提供了进程模型所缺少的返回值。
线程即共享内存的进程,无需手动封送(marshall RPC)就能互调用,而json本意是保存会话(对象树)。 如果内存会话和机器都要隔离,就需要 Proxy(by=cookie酷卡/fd句柄) 验证对象API权限了
通过句柄而非密码访问API,是因为句柄能定期吊销,也便于审计。代理有时叫注入,Mapper,绑定

那么jdk19 虚拟线程 又如何? 有100w级的并发1s内完成的低开销,类似py的GIL
但绕过JDK的IO走 JNI Unsafe 读写文件或网络是无法实现异步调度,未实现 suspendCoroutine{it.resumeWith(Ok(0))} 这样的yield的扩展性
var vs = Executors.newVirtualThreadPerTaskExecutor(); //Executors.newFixedThreadPool(200)
for(var Y= new int[]{0}; Y[0]<3;Y[0]++)
vs.submit(() -> { int y=Y[0]; try{Thread.sleep(java.time.Duration.ofSeconds(y*1));} catch(InterruptedException e){}
System.out.print(y + " "); }).get();

最后,再了解经典的「并发模型」 就能读懂90%的企业级服务了

- ForkJoin,MapReduce 如把文件预分块(shader) 读http区间多线程下载
- Actor 直接按函数参数,自顶向下来分块(RPC)
- CSP 是上面说的多进程,靠 Channel<in T>, chan<- T 递交任务,流式的 make -j8
- 线程&锁 互斥资源不能被linux多核调度改乱套了,所以得加锁(synchronized)