暗能量光谱仪(Dark Energy Spectroscopic Instrument, DESI)为期五年的暗物质巡天绘制出迄今最大的高分辨率 3D 宇宙地图。DESI 安装于美国亚利桑那州 Kitt Peak 国家天文台的 Nicholas U Mayall 4 米望远镜上,搭载可同时观测 5000 个天体光谱的系统,透过量测星系与类星体的红移重建 3D 宇宙分布。DESI 早期资料显示暗能量可能随时间演变,而非固定不变的宇宙学常数。该结果若被完整五年资料证实,将意味着现有宇宙学模型需要修正,甚至可能牵动对基本物理定律的重新理解。目前 DESI 已测量的星系与类星体数量达到过去所有观测总和的六倍,最终累积超过 4700 万个星系与类星体,以及约 2000 万颗恒星,提供前所未有的统计精度,使宇宙在不同时期的膨胀速率与星系分布差异得以被量测,进而检验暗能量是否随时间改变。
如题,之前的最大优点就是语言模型、视频模型、图像模型、声音模型并行,好像是国内唯一几家能够All in one的模型公司。 结果现在编码模型还是M2.7、性能严重落后,原来量大管饱、便宜的优点现在不值一提,直接就是拉完了,而且没有看到公司在编码模型上面还有什么宏大的计划。 视频模型本来也不错,结果字节的模型一出来,openai的sora 都关了。Minimax后续打算咋弄,是学openai,把 视频模型也关了,All in全部算力堆在编码模型上,还是有其他方向? 总之感觉现在Minimax的股价很危险呀,现有的模型实力好像没有体现出什么先进性,原本起步早的优点,小米的新模型都把它冲破了,国内其他传统的额互联网大公司也在冲刺,护城河可以说没有了 附:grok统计的各家模型参数量大小 17 个帖子 - 13 位参与者 阅读完整话题
IT之家 4 月 17 日消息,据央视新闻报道,由中船集团七二五所研制的 全球最大船用风力旋筒助推系统 今日将正式发布,标志着我国在高端船舶环保装备领域实现了从跟跑到局部领跑的重大跨越。 据介绍, 该系统直径 5 米、高 35 米,重量达到 150 吨 ,可在航行中高效捕获风能,为船舶提供额外推力,平均可为大型远洋船舶节省 5%~25% 的燃油消耗,并相应降低碳排放。 IT之家注:旋筒风帆技术最早出现于 20 世纪初,由德国工程师弗莱特纳发明。该系统利用电机驱动圆柱形转筒旋转,使其逆风旋转一侧表面的空气流速加快、气压降低,顺风旋转一侧流速减慢、气压增高, 从而在转筒两侧产生压力差,形成一个垂直于气流方向的推力 ,即马格努斯力。该推力可为船舶前进提供辅助动力。
IT之家 4 月 16 日消息,美国暗能量光谱仪(DESI)项目团队 4 月 15 日宣布,该项目已完成为期 5 年的观测任务, 绘制出迄今最大规模的高分辨率三维宇宙地图 ,以帮助研究暗能量及宇宙膨胀历史。 该项目由美国能源部资助、劳伦斯伯克利国家实验室负责运行。光谱仪安装在位于亚利桑那州基特峰国家天文台的尼古拉斯 · 梅奥尔望远镜上,于 2021 年 5 月开启巡天任务。 ▲ 由 DESI 五年调查产生的地图,其中一小部分显示了银河系平面上下方的星系和类星体 项目团队称,暗能量光谱仪不仅提前完成既定观测目标,而且观测到的星系和恒星数量也远超预期。该光谱仪原计划 5 年内获取覆盖北半球天空约三分之二区域的 3400 万个星系和类星体光谱数据,实际已获得该区域超过 4700 万个星系和类星体以及银河系 2000 万颗恒星的光谱数据。 ▲ 地球位于中心,每个点都是一个星系 IT之家注:暗能量是充斥于宇宙空间的一种能量,一般认为它构成了宇宙的 68.3% 至 70%,并且驱动宇宙加速膨胀。 项目团队称, 对该光谱仪前 3 年的数据分析显示,此前被认为是“宇宙学常数”的暗能量,可能随时间发生演化 ,这一结果引发宇宙学界广泛关注。完整巡天数据集有望对相关结论进行更高精度验证。 下一阶段,研究人员将对光谱仪全部观测数据进行分析处理, 预计于 2027 年公布首批暗能量研究成果 。 ▲ 星系分布中那些精致如气泡的结构,记录了宇宙膨胀历史的宝贵线索 据介绍,该光谱仪将继续开展巡天观测至 2028 年,观测范围将从约 1.4 万平方度扩大至 1.7 万平方度,扩展观测将覆盖更接近银河系盘面及更偏南的天区,这些区域观测难度更高。此外,项目还将对已观测区域进行重复观测,以捕捉更遥远、更暗淡的“亮红星系”,从而构建更精细的宇宙结构图,帮助科学家进一步了解宇宙演化历史。
著名开源中转项目newapi惊现充值漏洞(具体漏洞因为商业原因就不放了)目前newapi新版本已修复。吃瓜吃瓜 3 个帖子 - 3 位参与者 阅读完整话题
IT之家 4 月 16 日消息,蜂巢能源今日官宣,全球电量最大的 80kWh(1/3C)插混电池“堡垒 2.0” 在蜂巢能源常州工厂量产下线,标志着“全球电量最大”已从参数发布走向规模化量产。 “堡垒 2.0”专为大五 / 六座家庭用车与越野场景打造, 容量较上代 59kWh 提升 35.6% 。 该电池采用系统高度集成设计,体积利用率和能量密度较上一代提升 6%,支持峰值 6C 快充, 让 D 级插混车型实现 400 公里以上纯电续航 。 “堡垒 2.0”采用薄型化电极设计、超高过流结构和第二代超充电解液,配合全域高效热管理和智能 BMS 动态调节,在保证安全和寿命的前提下, 实现 10 分钟补能 400 公里以上的峰值 6C 快充能力 。 “堡垒 2.0”的安全围绕结构、热、电气三个维度做了全链路冗余设计。 结构方面: 振动强度为国标 3 倍;侧碰能力为国标 2 倍;浸水 200 小时无泄漏,超行业标准 4 倍;整包扭转刚度 30000Nm / Deg,较行业标准提升 3 倍;底部可承受 1000 焦耳冲击。 热安全方面: 上盖超高温绝缘喷涂,1000℃ 不起火;热失控传感器秒级报警;首次应用纳米热瓷绝缘材料,1000℃ 高温持续 30 分钟保持绝缘。侧碰挤压国标 2 倍以上,并通过由中汽中心颁发的《2025 安全性能类挑战证书》-电池单体三轴向连续挤压挤压不起火、不爆炸。 电气方面: 智能保险毫秒级切断高压回路;液冷 BDU 支持峰值 4-6C 超充,温升降低 30%;软硬件冗余设计,车云结合智能监控。 IT之家从蜂巢能源公告获悉, “堡垒 2.0” 即将首搭神秘插混车型上市 , 这款车将在 2026 北京车展正式亮相。
我自己搭好了cpa,newapi,本地用ccs,计划2-3人共享,不知道官网买gpt plus跟用newapi分享,在使用体验上有什么区别,会有降☞问题吗 15 个帖子 - 11 位参与者 阅读完整话题
全球最大的在线预测平台,怎么做到这么卡的?为何不优化前端体验?我听说很多人在polymarket api上玩快速交易,他们后端api性能这么强?为何前端这么烂? 3 个帖子 - 2 位参与者 阅读完整话题
IT之家 4 月 15 日消息,据科技日报今日报道,中国首艘、世界最大 740TEU 纯电动智能集装箱海船“宁远电鲲”号圆满完成各项试验, 正式交付启航 。 “宁远电鲲”号总长 127.8 米、型宽 21.6 米,设计吃水 6.2 米,载箱量 742TEU, 是当前全球最大纯电动集装箱海船 ,将投入宁波 — 乍浦(IT之家注:隶属于浙江省嘉兴市平湖市)沿海航线。 船上搭载总容量 19600 千瓦时的 10 个箱式电源,配置 2 台 875 千瓦永磁同步推进电机,年减排二氧化碳 1462 吨,全程零排放、零噪音、零污染,彻底告别传统燃油船舶排放痛点。 在关键技术方面,该船成功突破高能量密度电池管理、多能量均衡调度、高可靠冗余控制、轴系附件高度集成等技术,集成智能能量管理、智能推进控制、云船岸互联智能监控等系统, 实现全链条技术自主可控 。 船舶创新采用高压岸电充电 + 吊箱快速换电双模式,补给高效、周转灵活;严苛电池安全设计与动力冗余配置,筑牢纯电船舶安全防线。全船无舱盖设计大幅提升装卸效率,船艏减风阻造型可降低空气阻力 15%—20%,营运效益更优。
上一条笔记超出最大字数限制了,这里继续附上后续学习的笔记的内容 上一条笔记链接: 分享一下最近学习langchain的笔记 1 什么是短期记忆? Memory is a system that remembers information about previous interactions. Memory 是一个记录先前交互信息的系统。对于 AI Agent 而言,记忆至关重要,因为它能让 Agent: 记住之前的交互 从反馈中学习 适应用户偏好 随着 Agent 处理的任务越来越复杂、用户交互越来越多,记忆能力对效率和用户满意度都变得不可或缺。 Short-term memory 让应用能够记住单一线程/对话中的先前交互。 Thread 将会话中的多次交互组织在一起,类似于电子邮件将消息归组到同一对话中的方式。 Conversation history 是短期记忆最常见的形式。 1.1 为什么需要短期记忆? 长对话对当前 LLM 构成了挑战: 上下文窗口不足 — 完整的对话历史可能无法放入 LLM 的上下文窗口,导致上下文丢失或报错。 长上下文性能下降 — 即使模型支持完整上下文长度,大多数 LLM 在长上下文下表现仍然不佳: 被 过时或离题的内容 分散注意力 响应变慢 , 成本更高 1.2 消息结构 Chat 模型通过 messages 接收上下文,包括: 消息类型 作用 System message 指令/系统提示 Human message 用户输入 在聊天应用中,消息在用户输入和模型回复之间交替出现,形成一条不断增长的消息列表。由于上下文窗口有限,许多应用可以使用技术来 移除或"遗忘"过时信息 。 2 创建短期记忆 在创建 Agent 的时候显示指定一个 checkpointer 2.1 内存中的短期记忆(适用于测试) 使用 langgraph.checkpoint.memory 中的 InMemorySaver ,注意需要显式指定 configurable 可以通过实例化 RunnableConfig 对象。 # %% from langchain.messages import HumanMessage from langchain_core.runnables import RunnableConfig config = RunnableConfig(configurable={"thread_id": "1"}) agent = create_agent(base_model, checkpointer=InMemorySaver()) res = agent.invoke({"messages": HumanMessage(content="我叫张三")}, config=config) print("第一次运行:", res["messages"][-1].content) res1 = agent.invoke({"messages": HumanMessage(content="我叫什么名字?")}, config=config) print("第二次运行:", res1["messages"][-1].content) 2.2 生产环境中的短期记忆 在生产环境中一般使用专门的数据库用于管理短期记忆,比如 PostgreSQL 、 SQLite # %% 生产环境 from langgraph.checkpoint.postgres import PostgresSaver config2 = RunnableConfig(configurable={"thread_id": "2"}) with PostgresSaver.from_conn_string(DATABASE_URL) as checkpointer: checkpointer.setup() agent = create_agent(base_model, checkpointer=checkpointer) res = agent.invoke({"messages": [HumanMessage(content="我叫张三")]}, config=config2) print("第一次运行:", res["messages"][-1].content) with PostgresSaver.from_conn_string(DATABASE_URL) as checkpointer: agent = create_agent(base_model, checkpointer=checkpointer) res1 = agent.invoke({"messages":[ HumanMessage(content="我叫什么名字?")]}, config=config2) print("第二次运行:", res1["messages"][-1].content) with PostgresSaver.from_conn_string(DATABASE_URL) as checkpointer: checkpoints = list(checkpointer.list(config)) print("checkpoint 数量:", len(checkpoints)) latest = checkpointer.get_tuple(config) print("latest tuple:", latest) 3 Customizing agent memory 我们可以继承 langchain.agents 中的 AgentState 给我们的 state 添加额外的字段,例如: # %% AgentState from langchain.agents import AgentState,create_agent class MyAgentState(AgentState): user_id:str preferences:dict agent = create_agent( base_model, system_prompt="你是一个个人助手,帮助用户管理他们的个人信息和偏好设置。", state_schema=MyAgentState, checkpointer=InMemorySaver() ) config3 = RunnableConfig(configurable={"thread_id":3}) res = agent.invoke( MyAgentState( messages=[HumanMessage(content="我喜欢吃辣的")], user_id="user123", preferences={"food":"spicy"} ), config=config3 ) print("模型回复:", res['messages'][-1].content) res = agent.invoke( MyAgentState( messages=[HumanMessage(content="我的名字是user123你能告诉我我的偏好吗?")], ), config=config3 ) print("="*12) print("模型回复:", res['messages'][-1].content) 代码执行结果: 模型回复: 已记住:你喜欢吃辣的。 以后给你推荐菜谱、点外卖或一起逛超市时,我会优先选辣口、重口味或 Tex-Mex、川菜、湘菜等风格。 如果你有特别喜欢的辣菜或想避开某种辣(比如不太能吃 super-hot),随时告诉我! ============ 模型回复: 好的,user123!你目前只有一条明确记录下来的偏好: - 喜欢吃辣的 如果你有更多想补充的(比如特别喜欢的辣菜、对辣度的上限、不吃的东西等),随时告诉我,我会把它们一起记下来。 3.1 MyAgentState 源码分析 invoke 的 input 参数在文档中的类型标注为 _InputAgentState 。这个 _InputAgentState 在源码中的定义如下: class _InputAgentState(TypedDict): messages: Required[Annotated[list[AnyMessage | dict[str, Any]], add_messages]] 可以看到, _InputAgentState 本质上只是一个最小输入约束:它只要求传入的数据至少包含 messages 字段。 而 MyAgentState 继承自 AgentState ,只是在默认状态的基础上扩展了额外字段。 AgentState 的定义如下: class AgentState(TypedDict, Generic[ResponseT]): messages: Required[Annotated[list[AnyMessage], add_messages]] jump_to: NotRequired[...] structured_response: NotRequired[...] 因此, MyAgentState 至少也会包含 messages 字段。从结构上看,它已经满足了 _InputAgentState 对输入的最低要求,所以这里的静态类型检查通常不会报错。 3.1.1 MyAgentState 为什么会真正参与到 agent 的状态管理中? 在 \langchain\agents\factory.py 中, create_agent() 对 state_schema 的说明是: state_schema: An optional `TypedDict` schema that extends `AgentState`. 也就是说,state_schema 不是一个无关紧要的类型提示,而是会实际参与 agent 状态构建的 schema。 源码内部会执行下面这段逻辑: state_schemas: set[type] = {m.state_schema for m in middleware} base_state = state_schema if state_schema is not None else AgentState state_schemas.add(base_state) resolved_state_schema, input_schema, output_schema = _resolve_schemas(state_schemas) graph = StateGraph( state_schema=resolved_state_schema, input_schema=input_schema, output_schema=output_schema, ... ) 这段代码说明了三件事: 如果调用 create_agent() 时显式传入了 state_schema ,那么 base_state 就不再是默认的 AgentState ,而是我们传入的 MyAgentState 。 create_agent() 不会直接把单个 schema 原样交给 StateGraph ,而是会先调用 _resolve_schemas() 对多个 schema 做一次统一处理。 最终交给 StateGraph 的并不是固定的 AgentState ,而是解析后的 resolved_state_schema 、 input_schema 和 output_schema 。 这意味着, MyAgentState 会真正进入 agent 的状态中。 4 短期记忆的管理策略 Langchain提供了四种策略管理我们的短期记忆,分别是: Trim messages Delete messages Summarize messages Custom strategies 4.1 Trim messages-修剪消息 每个大模型的上下文的窗口是有限的,所以为了防止上下文爆炸我们需要定时定时对短期记忆中的消息进行清理,我们可以使用 before_model 在调用模型之前对短期记忆中的消息进行处理,示例: # %% trim from langchain.messages import RemoveMessage,HumanMessage from langgraph.graph.message import REMOVE_ALL_MESSAGES from langgraph.checkpoint.memory import InMemorySaver from langchain.agents import create_agent,AgentState from langchain.agents.middleware import before_agent, before_model from langgraph.runtime import Runtime from langchain_core.runnables import RunnableConfig from typing import Any,Dict @before_model def trim_messages(state:AgentState,runtime:Runtime) -> Dict[str,Any]: """仅保留最近几条消息""" messages = state["messages"] if len(messages) <= 3: return None first_msg = messages[0] recent_msg = messages[-3:] if len(messages) % 2 == 0 else messages[-4:] new_msg = [first_msg] + recent_msg return { "messages": [ RemoveMessage(id=REMOVE_ALL_MESSAGES), *new_msg, ] } agent = create_agent( model=base_model, middleware=[trim_messages], checkpointer=InMemorySaver() ) config:RunnableConfig = RunnableConfig(configurable={"thread_id": "4"}) agent.invoke({"messages": [HumanMessage("hi, my name is bob")]}, config) agent.invoke({"messages": [HumanMessage("write a short poem about cats")]}, config) agent.invoke({"messages": [HumanMessage("now do the same but for dogs")]}, config) final_response = agent.invoke({"messages": "what's my name?"}, config) final_response["messages"][-1].pretty_print() 4.2 Delete messages-删除消息 我们可以使用 RemoveMessage 删除特定的消息,示例: # %% delete messages from langchain.messages import RemoveMessage from langchain.agents.middleware import after_model @after_model def delete_messages_after_model(state: AgentState,runtime: Runtime) -> Dict[str,Any]: """返回前两条待删除的消息""" messages = state["messages"] if len(messages) < 2: return None return { "messages": [ RemoveMessage(id=m.id) for m in messages[:2] ] } agent = create_agent( model=base_model, middleware=[delete_messages_after_model], checkpointer=InMemorySaver() ) config = RunnableConfig(configurable={"thread_id": "delete-test"}) agent.invoke({"messages": "hi"}, config) agent.invoke({"messages": "write a poem"}, config) state = agent.get_state(config) print(state.values["messages"]) 代码返回一个 空列表 。 4.2.1 代码执行机制 这一段代码的目标不是直接操作 Python 列表,而是通过 middleware 返回状态更新指令 ,让 LangGraph 在状态合并阶段删除指定消息。 delete_messages_after_model 是一个 after_model 中间件,它会在 模型调用结束之后 执行。这个函数会先读取当前状态中的 messages ,然后取出前两条消息,并返回: { "messages": [ RemoveMessage(id=...), RemoveMessage(id=...) ] } 这里返回的并不是新的消息列表,而是一组 删除指令 。也就是说,这个函数本身不直接修改消息历史,而是把“应该删除哪些消息”这件事交给运行时处理。 4.2.1.1 为什么返回 RemoveMessage 就能删除? 之所以返回 RemoveMessage 之后消息会被删除,是因为 AgentState 里的 messages 字段不是普通字段,而是带有 reducer 的状态字段: messages: Annotated[list[AnyMessage], add_messages] 这表示对 messages 的任何更新都不会直接覆盖旧值,而是统一交给 add_messages(old, new) 来合并。于是当中间件返回: {"messages": [RemoveMessage(id=...), RemoveMessage(id=...)]} LangGraph 在内部会把这次返回值当作一次状态补丁,并调用类似下面的逻辑: new_messages = add_messages(old_messages, returned_messages) add_messages 在合并时会识别 RemoveMessage 。如果发现某个返回项是 RemoveMessage(id=...) ,它就不会把它当成普通消息追加进去,而是根据这个 id 去旧消息列表中找到对应消息并删除。因此,真正执行删除动作的并不是 RemoveMessage 本身,而是 messages 字段背后的 reducer add_messages 。 4.2.1.2 执行流程 当第一次执行: agent.invoke({"messages": "hi"}, config) 时,输入的 "hi" 会先被转换成一条 HumanMessage ,随后 model 节点会基于当前消息状态生成一条新的 AIMessage 。此时状态中的 messages 通常会变成一组包含用户消息和模型回复的列表。接下来, after_model 中间件会在模型调用结束后立刻执行,它读取这时的 messages ,取前两条消息,为它们分别生成 RemoveMessage(id=...) ,再把这些删除指令作为状态更新结果返回。随后运行时调用 add_messages 合并旧状态和这次更新,在合并过程中按 id 删除掉前两条消息,最后把删除后的状态写入 InMemorySaver 。因此第一次调用完成之后,消息通常已经被清空。 当第二次执行: agent.invoke({"messages": "write a poem"}, config) 时,LangGraph 会先根据同一个 thread_id 恢复上一次保存下来的线程状态,然后把新的用户输入追加进当前状态,再调用模型生成新的回复。模型返回之后, after_model 中间件会再次执行,重复同样的逻辑:读取当前消息列表、取前两条消息、返回对应的 RemoveMessage ,然后由 add_messages 在状态合并阶段完成删除,并把新的最终状态再次保存下来。所以第二次调用结束之后,消息通常也会再次被清空。 流程如下: flowchart TD A[agent.invoke 输入消息] --> B[恢复 thread_id 对应状态] B --> C[写入新的 HumanMessage] C --> D[model 节点调用模型] D --> E[生成 AIMessage] E --> F[after_model 中间件执行] F --> G[返回 RemoveMessage 列表] G --> H[add_messages 合并状态] H --> I[按 id 删除对应消息] I --> J[checkpoint 保存最新状态] 第一次调用的状态变化如下: sequenceDiagram participant U as 用户输入 participant G as LangGraph participant M as Model participant MW as after_model participant CP as Checkpointer U->>G: {"messages": "hi"} G->>M: [HumanMessage("hi")] M-->>G: AIMessage("...") G->>MW: 当前 state["messages"] MW-->>G: {"messages": [RemoveMessage(id=1), RemoveMessage(id=2)]} G->>G: add_messages(old, updates) G->>CP: 保存删除后的状态 这里需要注意, RemoveMessage 本身只是删除指令,真正执行删除的是 messages 字段上的 reducer add_messages 。 after_model 也不是普通意义上的回调函数,而是会被编进执行图里的一个节点。 thread_id 决定了状态属于哪个会话线程,因此连续两次调用会访问同一份会话状态。最后通过 get_state() 读取到的是 checkpoint 中保存下来的最终状态,而不是执行过程中的某个中间结果。 [!important] 删除消息的注意事项 需要注意,删除消息后的消息列表是合法的,有的LLM提供商会要求第一条消息必须是 UserMessage ,或者是要求调用工具之后必须接一条 AIMessage 4.3 Summarize messages-消息摘要 如果直接修剪消息或者删除消息,可能会导致大量上下文的丢失,更健壮的做法是对消息进行上下文的压缩。 ![[Pasted image 20260415151558.png]] 可以使用 SummarizationMiddleware 中间件进行上下文压缩。 示例: # %% 消息摘要 from langchain.agents.middleware import SummarizationMiddleware from langgraph.checkpoint.memory import InMemorySaver checkpointer = InMemorySaver() agent = create_agent( model=base_model, middleware=[ SummarizationMiddleware( model=base_model, trigger=("tokens",4000), keep=("messages",20) ) ], checkpointer=checkpointer ) config: RunnableConfig = {"configurable": {"thread_id": "test_summary"}} agent.invoke({"messages": "hi, my name is bob"}, config) agent.invoke({"messages": "write a short poem about cats"}, config) agent.invoke({"messages": "now do the same but for dogs"}, config) final_response = agent.invoke({"messages": "what's my name?"}, config) final_response["messages"][-1].pretty_print() 4.4 Access memory 4.4.1 tools方式访问 我们可以使用 tools 访问或者修改短期记忆,见[[Day 07-Tools#3.1 State]] 4.4.2 prompt方式访问 示例: # %% from langchain.agents import create_agent from typing import TypedDict from langchain.agents.middleware import dynamic_prompt, ModelRequest class CustomContext(TypedDict): user_name: str def get_weather(city: str) -> str: """Get the weather in a city.""" return f"The weather in {city} is always sunny!" @dynamic_prompt def dynamic_system_prompt(request:ModelRequest) -> str: user_name = request.runtime.context["user_name"] return f"You are a helpful assistant. Your user's name is {user_name}." agent = create_agent( model=base_model, tools=[get_weather], middleware=[dynamic_system_prompt], context_schema=CustomContext ) result = agent.invoke( {"messages": [{"role": "user", "content": "What's the weather like in New York?"},{"role": "user", "content": "And what's my name?"}]}, context=CustomContext(user_name="Alice") ) for msg in result["messages"]: msg.pretty_print() 4.4.3 通过中间件访问 代码示例详见[[Day 08 Short-term memory#4.2 Delete messages-删除消息]] 1 个帖子 - 1 位参与者 阅读完整话题
IT之家 4 月 15 日消息,据路透社报道,美国最大民权组织当地时间周二起诉 xAI 及其子公司,指控其在密西西比州非法运行二十多台燃气轮机,为其 Colossus 2 数据中心供电,对当地居民健康构成威胁。 由地球正义组织与南方环境法律中心代理的美国全国有色人种协进会(NAACP),起诉 xAI 及其子公司 MZX Tech, 指控其在未取得必要空气许可的情况下,为给 xAI 的 Grok 聊天机器人提供支持的大型数据中心运行 27 台燃气轮机 ,违反了联邦《清洁空气法》。 埃隆 · 马斯克旗下人工智能初创公司 xAI 已在密西西比州绍瑟文市投资超 200 亿美元(IT之家注:现汇率约合 1365.81 亿元人民币)建设该数据中心,并得到州长泰特 · 里夫斯全力支持。但该设施,以及仅一河之隔、位于田纳西州孟菲斯市的 Colossus 1 数据中心, 均因对当地空气与环境质量的影响遭到当地社区强烈反对。 美国全国有色人种协进会环境与气候正义中心主任阿布雷 · 康纳表示:“这些公司试图规避清洁空气法,运行排放污染物与已知致癌物的高污染轮机,延续了一种可耻且常见的模式:让黑人和前沿社区承受‘创新’带来的有毒代价。” 美国全国有色人种协进会已于今年 2 月宣布起诉 xAI 与 MZX 的意向,因《清洁空气法》要求提起诉讼前需提前 60 天通知。 密西西比州监管机构当月在仅提前数日发布听证公告后,就这些轮机许可举行了一场公众听证会,随后批准了相关许可。 地球正义组织称,xAI 位于绍瑟文市的发电厂每年可能排放超过 1700 吨形成烟雾的氮氧化物(NOx),这是大孟菲斯地区烟雾的主要来源之一。据估算,该电厂还将排放 180 吨细颗粒物、500 吨一氧化碳,以及 19 吨致癌甲醛。
skill进化是hermis的最大卖点,这么多自媒体都在吹,也没看到什么案例。 codex分析源码:自我进化的关键在 run_agent.py 的后台复盘。每轮工具调用会累加 _iters_since_skill,达到 skills.creation_nudge_interval 后,在回复结束后 fork 一个后台 review agent,用 _SKILL_REVIEW_PROMPT 判断“更新已有 skill 还是创建新 skill”,然后直接写回共享 skill store。 _SKILL_REVIEW_PROMPT核心意思是: 回顾上面的对话,判断这次是否值得保存或更新一个 skill。 重点看:这次是否用了一个非平凡的方法、是否经历了试错/改道、 或者用户期望了不同的方法或结果。 如果已有相关 skill,就更新它;否则如果这个方法可复用,就创建新 skill。 如果没什么值得保存,就回复 “Nothing to save.” 从以上分析看,这玩意还很初期, 2 个帖子 - 1 位参与者 阅读完整话题
IT之家 4 月 14 日消息,由中科曙光提供的 6 万卡科学智能(AI for Science)计算集群系统,在位于郑州的国家超算互联网核心节点投入使用。作为国内最大的 AI4S 计算集群,其拥有超智融合全栈技术能力,可满足用户从集群性能、软件模型优化、科研应用效率到科学智能体开发的多维需求,为“人工智能 + 科学技术”在国内的规模化落地提供保障。 伴随人工智能技术发展,AI4S 正成为科技强国与未来产业竞争核心,也是全球竞争焦点。根据介绍,为满足用户对大规模并行计算、万亿参数大模型训练、高通量推理等需求,中科曙光 AI4S 计算集群具备六大特征: 强大算力: 实现 6 万卡集群部署,提供全球顶级的超智融合算力。 全面精度: 依托自主可控核心芯片,可支持 8/16/32/64 位宽的全精度计算,高效处理高维函数和复杂科学问题。 高速互连: 通过国内首款类 InfiniBand 无损高速网络 scaleFabric 系列产品,可充分满足 AI4S 计算集群对高带宽、低时延网络的极致需求。 存算协同: 通过“超级隧道”、AI 数据加速等设计,实现从芯片、系统到应用的三层传输协同,避免存储 IO 瓶颈。 灵活调度: 智能调度机制,使系统可根据任务需求灵活匹配、调度集群的计算存储网络等资源,并发作业调度效率超每秒万次。 稳定可靠: 依托智能化运维、数字孪生系统以及浸没相变液冷技术,让系统可用性达到 99.99%,保障集群长周期稳定运行。 在发布会现场,中科曙光表示,曙光 AI4S 计算集群不仅硬件性能出众,同时通过软硬件协同设计,具备兼容主流计算生态及广泛科研应用迭代支持能力,全面打破传统超算与智算壁垒。 在应用方面,通过与高校、科研机构与企业的广泛深度合作,截至目前,集群已在生物、材料等多领域完成大规模并行计算测试并取得多项突出成果:3 万卡规模蛋白质折叠模拟较传统算法加速 1000 倍;4.5 万卡规模实现万亿原子液态水分子动力学模拟,在打破世界模拟规模纪录的同时更让效率提升 3 个数量级以上;助力湍流直接模拟规模扩展至百万亿网格,大幅提升科研效率。 此外,随着该集群的落地运行,国家超算互联网平台( scnet.cn )也已构建起国内规模最大的 AI4S 计算基础设施,总计链接超 300 万 CPU 核和超 20 万 GPU 卡,并接入全国一体化算网调度体系,为全国高校、科研院所和企业提供普惠化 AI4S 算力服务。 此外,为推进 AI4S 工程化,结合国家超算互联网“数算模用”一体化理念并搭载国内首个科学大模型一站式开发平台 OneScience,曙光 AI4S 计算集群汇聚起海量数据集、行业知识库、大模型、科学与工程计算软件工具等,成为 AI4S 生态共建、共享的创新底座。 OneScience 集成数十个 AI4S 热点模型及数据集,可在地球科学、生物信息、流体仿真、材料化学等多学科领域,让用户数小时完成科学大模型开发,解决开发环境复杂、数据获取难等痛点。 而在超算互联网平台上,曙光 AI4S 计算集群用户无需面对繁琐的软件配置与 IT 流程,只需通过自然语言提出需求,通过“超级科学计算智能体”便可自动拆解任务、调用模型、调度算力,完成端到端交付,科研任务完成时间可从天级压缩至小时级。
IT之家 4 月 14 日消息,据“深圳特区报”,南方电网深圳供电局在深圳光明虹桥公园打造了粤港澳大湾区目前规模最大的车网互动超充示范站“虹桥公园超充站”, 现阶段配备了 23 台 V2G(车网互动)充电桩,覆盖 37 个车位 。 ▲ 具体位置 南方电网深圳光明供电局有关负责人介绍,虹桥公园超充站整站资源已接入深圳虚拟电厂管理中心,站点单次最大放电功率达到 2770 千瓦。目前投运的 23 台充电桩中,1 台是具备最大功率 1000 千瓦充放电能力的兆瓦级超充, 最快 5 分钟可补 400 公里续航 ;6 台 600 千瓦超充桩,充电速度最快“一秒一公里”;11 台 250 千瓦 —300 千瓦快充桩,一辆电动汽车能在 30 分钟或更短时间将电量充到 80%;其余为 30 千瓦 —120 千瓦的快充桩。 ▲ 虹桥公园超充站具备最大功率 1000 千瓦充放电能力的兆瓦级超充停车位 有关负责人表示,虹桥公园超充站拥有 3 项“全国首创”成果。全国首座 20 千伏预装式“电力魔方”配电房在该站投用,可实现“零碳”运行; 站内配备全国首台全液冷乘用车单枪兆瓦级 V2G 桩 ;站内搭载全国首个面向超充场景钠离子电池储能装置,以更稳定性能支持高功率充放电。 同时,虹桥公园超充站车棚还铺设了约 600 平方米的光伏板,年发电量约 14 万度。光伏、储能与充电桩通过直流直连,构建起“光储直柔”微电网。依托综合能源管理平台,场站可实现全时段智能运维与安全告警,带动区域新能源产业的集聚和发展。 ▲ 虹桥公园超充站车棚铺设了约 600 平方米的光伏板
IT之家 4 月 14 日消息,据外媒 The Guardian 报道,全球最大的在线旅游公司 Booking.com 昨日确认公司发生一起数据泄露事件,部分用户个人信息遭泄露,不过目前没有证据显示用户的金融支付信息被获取。 IT之家综合 Reddit 用户反馈, Booking.com 在发送给受害者的通知邮件中透露 相应用户的姓名、电子邮箱、住址、电话号码,以及用户曾提供给住宿方的其他信息均遭外泄 ,为降低风险,平台已对相关订单的 PIN 码进行了更新。 同时,Reddit 平台还有部分受影响用户称, 事发后接到诈骗来电及社交平台钓鱼信息 ,这表明黑客很有可能已经将相应数据转卖给黑灰产团体实施进一步诈骗。 值得注意的是,这并非该 Booking.com 平台首次曝出安全事件。早在 2023 年底,就就黑客利用社会工程学手段入侵合作酒店员工设备,进而在设备中注入窃密木马,从而获取酒店方管理员账号,并导出旅客信息转卖给黑灰产团体。
用的版本是1.5.9,感觉版本有点古早,最大的问题是无法在状态栏显示歌词 也没找到可用的设置选项 6 个帖子 - 4 位参与者 阅读完整话题
今天看到有人说word skill。一般都是直接先编写markdown文件再转成word 最大的问题是排版和格式问题。 我的需求是基于模板文档,编写新文档。要求格式不能乱改。 Claude For Word, 完美解决这个问题。A/ 真的在引领解决落地问题呀! 目前直接下载Claude For Word 很费劲,可以github上下载Claude For Word Desktop 本来是只支持Team和企业用户。 但是支持API。所以用 CliProxyAPI + Claude Pro 。 注意只支持 claude-sonnet-4-6 和 claude-opus-4-6 . 用了最能做ppt的 kimi 2.5,确实赶不上 claude-sonnet-4-6。 kimi 2.5 老是用自己的工具,格式改的乱七八糟 6 个帖子 - 4 位参与者 阅读完整话题
IT之家 4 月 13 日消息,据中国电建今日分享,其参建的国内最大海上光伏项目 —— 田湾 200 万千瓦滩涂光伏示范项目第七标段首次并网成功 。 据介绍,中核田湾 200 万千瓦滩涂光伏示范项目位于江苏省连云港市田湾核电站温排水海域,是目前国内规模最大的海上光伏项目。 该项目创新采用“光伏 + 核电”多能互补模式 ,与田湾核电站深度耦合,将共同构建总装机容量超 10 吉瓦的“核能 + 新能源”清洁能源示范基地。 IT之家注意到,项目全面建成后, 每年可生产绿电约 22 亿千瓦时 ,等效节约标准煤约 68 万吨,减少二氧化碳排放 177 万吨。
Business Insider The most 'ethical' AI company might also be the web's biggest freeloader Cloudflare data shows AI bots scrape heavily and send little traffic back, raising questions about ethics and the web's future. 7 个帖子 - 7 位参与者 阅读完整话题
4月12号, 南大西洋的洋面上,曾经的全球最大冰山A23a面积已缩减至35.2平方公里,不再满足冰山编号条件,被正式“销号”。 A23a的面积曾达到4170平方公里,接近上海市面积的2/3,厚度近400米,重量超过1万亿吨。 从冰架脱离之后,曾经搁浅34年,直到2020年受洋流和潮汐的作用,加上温度变化,才开始加速消融。 2020年,A23a从海床中挣脱,开始向北移动。 2023年初,它的面积仍有4035平方公里,被吉尼斯世界纪录认证为当时全球最大冰山,到了年底它的面积衰减了3%。 2024年,A23a的面积进一步减少8%,达3544平方公里。 2025年,A23a的消融速度进一步加快,这一年当中它的面积减少了60%。2025年6月至9月,A23a发生多次大规模断裂,面积迅速缩减至约1400平方公里。 2026年1月,A23a再次发生崩解,其主体面积仅余503平方公里。 2026年4月初,A23a的面积已缩减至35.2平方公里,不再满足冰山编号条件,被正式“销号”。 数据可见,A23a的面积从4035平方公里骤减至35.2平方公里,仅用了三年时间。 2025年1月到2026年3月,A23a消融末期示意图(央视新闻图) 冰山从冰架断裂脱落是一个自然过程,不过研究人员介绍,南极地区的气候变化正在加速南极冰架流失冰的速度。 世界气象组织发布的《2025年全球气候状况》报告指出,地球能量失衡程度已达到自1960年有观测记录以来的最高水平。 南极冰盖融化速度正在加快,这也为人类敲响警钟,必须加速应对全球气候变化危机。 1 个帖子 - 1 位参与者 阅读完整话题