单智能体 在单智能体中,ReAct 框架 1 作为当前智能体的一个核心设计模式,其通过 Reasoning(推理)和 Acting(行动)两个模块实现了大语言模型推理能力与外部环境交互能力的深度协同。ReAct 框架的整体执行过程如下图所示: 在之前的博客中有介绍 ReAct 框架的主要特点,在上图中可以将流程划分为三个阶段: 初始化 该步骤会创建一个上下文,其中除了包含用户的输入以外还会包含系统提示词、可用的工具列表等其他信息。 循环迭代 循环迭代是 ReAct 框架的核心步骤,该步骤实现了在真实世界中人类解决问题的行为模式。 推理:用于分析任务目标,根据历史反馈和当前状态确定下一步动作。 行动:将模型推理的结果转化为可执行的工具…
阅读全文
02最近观察自己和团队在使用 AI 上遇到了一些情况,比如生成的东西(代码、报告、网页等)“虾”味儿比较重,交付质量上也良莠不齐(准确性和深度等方面)。甚至在一些没有必要的场景(至少我认为没有必要)非要把 AI 用上,我想 FOMO 和组织压力是两个重要的“罪魁祸首”。彼时大家考虑更多的是如何“用上” AI,而不是如何“用好” AI。以任何一个角度去切入去尝试 AI 都是对的,欠妥的是当遇到“为什么一会儿行一会不行”,“为什么他那行我这不行”的时候,又会去质疑 AI 不行而不是自己用得不好。 思辨的意义在于过程中的反复,而不是最后的对与错和好与坏。在评判 AI 是否应该介入一个工作的时候我会关注两个点: ROI:一切抛开成本的使用都是耍…
阅读全文
03模型价格 我在之前的文章「AI 时代的生产力和生产关系」中曾抛出过一个问题:如果由你自己承担龙虾的费用,你是否还会像当前这样使用龙虾?虽然之前的文章「本地部署大模型服务」介绍了如何通过本地部署实现 Token 自由,但想要你的智能体更聪明,往往还是需要一个参数规模远超你本地机器所能承受的模型才更靠谱些。当然也可以祭出你的多卡服务器,但无论以何种方式实现 Token 自由,终究都不免落入 ROI 计算的俗套,因为这背后的背后都是实打实的真金白银。统计了当前流行的部分国内外模型的价格,如下表所示: 模型 发布日期 参数 上下文长度 能力 输入价格 输出价格 缓存命中价格 Claude Opus 4.6 2026-02 未知 1M \$5…
阅读全文
04随着 OpenClaw 的爆火,智能体(Agent)一词已经成了大家每天都挂在嘴边儿上的话。从“智能体”成为 2025 年度科技热词以来,说这个词被滥用或许略显激进,但当一个词进入寻常百姓家时,或许我们应该重新审视一下到底什么是智能体,这个硅基生物之于我们碳基生物又是什么角色,“它”又是如何在改变着我们的生活呢? 智能体 我搜集了互联网上对于智能体的定义: 智能体(Agent) 智能体指一个可以观察周遭环境并作出行动以达到目标并且可以通过机器学习以及获取知识来提升自身性能的自主实体。 —— 维基百科 智能体是一种接收输入、解读输入,然后代表用户(无论是人类还是其他智能体)规划和执行操作的系统。 —— web.dev AI 智能体是使…
阅读全文
05环境信息 本教程将介绍在 macOS 环境下部署 OpenClaw,QwenPaw 和 Hermes Agent。如无特殊说明,macOS 系统下需在终端中执行命令,Windows 系统下需要在 PowerShell 中执行命令。本教程涉及到的软件信息如下: 软件 版本 Podman 5.8.2 OpenClaw 2026.4.16 QwenPaw 1.1.2 Hermes Agent 0.10.0 虚拟环境 为了更好的进行环境隔离,后续我们使用 Podman 安装不同的智能体框架。 提示 在 Windows 系统下,单击开始按钮,搜索 启用或关闭 Windows 功能,在打开的窗口中将 Hyper-V 和 适用于 Linux 的…
阅读全文
06环境信息 Matrix 是一种用于实时通讯的开放、去中心化协议,专注于安全、加密的文字、语音和视频聊天。它允许不同服务器上的用户互通,类似于邮件系统,并支持端到端加密,使用户能完全控制数据,不受单一实体限制。 Matrix 联邦服务器之间连接的客户端 Synapse 是一个使用 Python/Twisted 和 Rust 编写的开源 Matrix 服务器实现。本教程将介绍使用 Docker 容器部署 Matrix 服务器 Synapse。本教程涉及到的软件信息如下: 软件 Docker 镜像 版本 PostgreSQL mixdeve/postgres-zhparser:18 18 Redis redis:8 8 Synapse m…
阅读全文环境信息 frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转 1。 frp 架构图 本教程将介绍在具有公网 IP 的服务器和内网路由器上部署 frp 内网穿透服务。本教程涉及到的环境信息如下: 环境 系统 服务端 外网服务器系统 Ubuntu 24.04 客户端 内网路由器系统 OpenWRT 24.10 注意 将后续命令中的 example.com 替换为实际域名。 证书申请 frp 证书 在本地创建 cert 目录,将 OpenSSL 配置文件复制到…
阅读全文
08环境信息 本教程将介绍在 macOS 和 Windows 环境下部署本地大模型服务。如无特殊说明,macOS 系统下需在终端中执行命令,Windows 系统下需要在 PowerShell 中执行命令。本教程涉及到的软件和模型信息如下: 软件 版本 ollama 0.20.2 LM Studio 0.4.9+1 vllm 0.19.0 vllm-metal v0.1.0-20260404-164341 vllm-mlx 0.2.7 oMLX 0.3.4 名称 架构 量化 内存 / 显存 能力 链接 gemma-4-31B-it 稠密 4bit 32 GB 及以上 :GGUF / GGUF / MLX :GGUF / GGUF / ML…
阅读全文
09那只🦞 AI 的发展想必不用多说,速度之快远超我们的想象。将 AI 大事记和标普 500 1 整合绘制折线图如下: AI 大事记 vs. 标普 500 (function (d) { const chart = new G2.Chart({ container: "antv-g2-container-1", autoFit: true , padding: "auto", margin: 16 , }); chart .line() .data({ type: "fetch", value: "/data/cn/2026-03-29-forces-and-relations-of-production-in-ai-era/sp50…
阅读全文缘起 从军事领域中的通信,到末世题材影视中的通联,再到越野中的车队通话,都让我对「无线电」这项技术感到高级和炫酷。可能在更多人的眼中无线电或是《永不消逝的电波》中发报机,亦或是保安大哥手中的对讲机。当你深入去了解的时候会发现,这东西不会那么遥不可及,当然也没有想象中那么简单,差评君的一期视频可以带你更好的了解什么是无线电。 Bilibili YouTube 那么什么又是业余无线电?莫非我们只配玩儿些不专业的东西?这里所说的“业余”并非技术角度的专业和不专业,而是指业余业务。业余无线电可以简单的理解为提供给我们这些业余爱好者使用的无线电。业余无线电的英文为 Amateur Radio,业余无线电爱好者称为 Radio Amateur,…
阅读全文
11十一之前看了原子能 UP 主的一期视频,最开始只是有感于当前工作中的代码开发,后来又有感于工作和生活,想着记录下来,又担心酸腐味太重就没写。十一回来,玩儿了两天,出了趟差,愈发感觉还是应该记录下,待回头看时至少可供自嘲。 之于代码 视频中讲到了一个“鸿沟理论”,高科技产品在市场营销过程中遭遇的最大障碍就是早期市场和主流市场之间存在的鸿沟,能否顺利的跨越鸿沟进入主流市场成功赢得实用主义者的支持决定了一个产品的成败。还有个“巴斯扩散模型”和这个理论很类似,原来还基于它做过一些预测模型。 鸿沟理论 早期市场中的产品就是我们通常说的 MVP。MVP 最重要的是速度,需要快速在市场中得到验证。所以从风险和收益的角度出发,在 MVP 开发的时候…
阅读全文
12什么是微调 微调(Fine-tuning)是深度学习中迁移学习的一种方法,其将现有模型已经学到的知识作为学习新任务的起点。虽然微调表面上是模型训练中使用的一种技术,但它与传统意义上的“训练”截然不同。为了消除歧义,在这种情况下通常将传统意义上的“训练”称为预训练(Pre-training)。1 与微调类似的另一个概念称之为后训练(Post-training),两者均发生在预训练之后,其目的也都是为了进一步提升模型的效果,通常两者可以理解为相同的概念。从优化的发起人角度出发:当终端用户希望模型可以更好的适配自己的领域知识,则需要进行的操作称之为微调;当模型开发者希望可以更好的将模型与人类的价值、道德和预期保持一致,则需要进行的操作称之…
阅读全文
13本节将介绍如何将一张低分辨率的图片转换成一张高分辨率高质量的图片。 Bilibili YouTube 为了对比提升分辨率后的图片质量,我们先下载一张原始的高清图片 1,通过 ImageMagick 命令将其转换为一个低分辨率低质量的图片,未来基于这张转换后的图片进行分辨率和质量的提升,再与原始图片进行对比验证提升的效果。 magick toucan-raw.jpg -resize 512x -quality 10 toucan-low-res.jpg 原始图片 低分辨率图片 基础操作 单击左侧 按钮进入 Upscaling 界面,将上面生成的低分辨率图片拖入 Assets 中,之后再拖入到 Upscale 面板的图片区域。 基础操作…
阅读全文
14本节将介绍在使用画布进行创建和组合生成新的图片的过程中使用到的核心工具。 Bilibili YouTube 首先,我们使用 Juggernaut XL v9 模型和如下提示词生成一张基础图片留作备用: 基础图片 提示词模板: Environment Art 正向提示词: futuristic terraced structure built into a mountain at dusk, twilight hues, lush greenery illuminated by soft glowing lights, multiple levels, pathways, vast mountain range, distant wi…
阅读全文
15本节将介绍图片生成使用到的 AI 模型和概念适配器,我们将讨论提示词和模型的训练方式是如何最终决定提示词对生成图片的有效性。 Bilibili YouTube 在图片生成过程中你需要认识到提示词并非在任何时候都是有效的。相同的提示词在一个模型上可以获得很好的生成效果,但在另一个模型上可能无法生成所需的图片。这是由于模型训练所使用的图片和图片的标注文本不同所导致的,因此模型的提示词指南会格外重要。这也是为什么训练自己的模型会更好,因为你完全清楚在训练模型时所使用的标注文本。 在本节教程中我们不会讨论如何训练模型,我们将重点介绍不同模型之间的差异,展示它们如何影响图片生成的过程。除此之外我们还会讨论概念适配器(通常也称为 LoRA),来…
阅读全文
16本节将介绍「 图像到图像」和「降噪」两个重要概念,帮助大家更好的理解 Invoke 中的画布是如何工作的,或者说生成式 AI 图片生成是如何工作的。 Bilibili YouTube 在之前的图像生成示例中,单击 Invoke 按钮后,整个图像生成过程会从一张静态噪声图像开始,模型会将噪声逐步转化为最终图片,整个过程如下图所示: 将噪声图像转化成最终图片的过程称之为降噪(Denoising)。 将示例图片拖拽至画布上,选择 New Raster Layer,示例图片如下 1: 示例图片 在图层中,可以找到 Denosing Strength 参数: Denoising Strength Denosing Strength 用于控制初…
阅读全文
17本节将介绍如何使用控制层和指示来精确控制图片的生成。 Bilibili YouTube 控制网络 控制层通常用作控制网络(ControlNet)在图片生成中以线或结构的形式来提供参考。在 SDXL 中,常用的预训练控制网络有 1: Contour Detection (scribble) Scribble 模型可以根据输入的图片生成线条画,处理后的图片作为原始图片的简化版本可以精准的捕捉图片的轮廓。 输入 分析 生成 Depth Map Depth Map 可以生成图片的深度图,在图片生成中模拟深度效果,从而创建更加逼真的 3D 图片。 输入 分析 生成 Hard Edge Detection (canny) Canny 边缘检测的…
阅读全文
18本节将展示如何使用 Invoke 创作你的第一张图片。 Bilibili YouTube 安装 Invoke 从 Invoke 官网下载对应系统的安装包,根据如下步骤完成安装。 运行 Invoke 社区版本,单击 Install 开始安装。 选择安装位置,单击 Next 进行下一步。 选择安装版本,单击 Next 进行下一步。 确认 GPU 情况,单击 Next 进行下一步。 确认安装选项,单击 Install 开始安装。 安装完成,单击 Finish 关闭安装向导。 安装完成后,单击 Launch 启动 Invoke。 用户界面 Invoke 启动后会打开主界面,从启动器的日志不难看出,Invoke 在后台启动了一个 HTTP 服…
阅读全文
19为了在本地局域网环境中摆脱 IP 用上域名(纯属闲来无事瞎鼓捣),购入了 leovan.dev 域名。想着把各种服务都映射到不同的二级域名上,这样就可以不用 IP 和端口了,岂不完美。然,问题这就来了。 acme.sh 域名是在 Cloudflare 上申请的,在 Cloudflare 上使用 Page 服务部署网站就可以白嫖他家的证书,还能自动帮你续期,比如当前的站点就是使用 Page 进行部署的。但你要是想生成证书下载下来使用,就会很麻烦,因为证书的有效期只有三个月,手动续期再加上各种替换操作就不太方便了。 这时候就要请出我们的 acme.sh 了,除了支持各种桌面和服务器操作系统外,还支持 OpenWrt 路由器系统。 Clo…
阅读全文
20最近在没有快进的情况下看完了一部剧《凡人歌》,你说有多好看吗,也不是,只是共鸣多些,剧中的种种都好似在“点”我。这一度让我陷入了第二次职业焦虑,但比第一次职业焦虑(大概 5 年前)会显得没那么严重,没那么慌张。 凡人歌 豆 豆瓣评分 8.7 悲观与乐观 我是一个做事比较喜欢先考虑最坏情况的人,或者说是一个对风险敏感的保守型人,我理解这算是一种悲观。但我也乐观,因为我认为只要努力总还是能够进步的,不是对自己的能力由多自信,只是感觉在合适的地方总会有一席用武之地。说好听了这可能是乐观,说不好听了这可能是自我感觉良好,甚至有种逆风而上的狂妄自大。不过实话实说狂妄应该不至于,年纪大了,各种情绪都会收敛很多,会觉得容忍比自由更重要。为什么聊到…
阅读全文
21在 Linux 中调用一个脚本有多种方式,例如 fork,exec 和 source。其中 fork 为 Linux 系统调用,exec 和 source 均为 bash 内部命令。下面以 parent.sh 和 child.sh 两个脚本演示不同调用方式的区别。 parent.sh 内容如下: #!/bin/bash echo "--------------------------------------------------" echo "Before calling child.sh" echo "--------------------------------------------------" echo "PID fo…
阅读全文输入输出文件描述符 在 Linux 启动后,init 进程会创建 3 个特殊的文件描述符分配给输入输出。 文件描述符 英文描述 中文描述 0 stdin 标准输入 1 stdout 标准输出 2 stderr 标准错误 默认情况下,程序经由标准输入(stdin)从键盘读取数据,并将标准输出(stdout)和标准错误(stderr)显示在屏幕上。 在 Linux 中,init 是所有进程的父进程,所有子进程均会继承父进程的文件描述符。因此在 Linux 中执行的所有程序都可以从 stdin 获取输入,并将结果打印到 stdout 中,同时将错误信息打印到 stderr 中。 重定向 当我们不希望从键盘获取标准输入或将标准输出和标准错误…
阅读全文随着深度神经网络模型的复杂度越来越高,除了训练阶段需要大量算力外,模型推理阶段也较多的资源。在深度学习落地应用中,受部署环境的影响,尤其是在边缘计算场景中,有限的计算资源成为了复杂模型的应用壁垒。 复杂模型的部署问题突出表现在三个方面,如下图所示: 速度:实时响应效率的要求,过长的响应耗时会严重影响用户体验。 存储:有限的内存空间要求,无法加载超大模型的权重从而无法使用模型。 能耗:移动场景的续航要求,大量的浮点计算导致移动设备耗电过快。 针对上述三类问题,可以从模型压缩和推理加速两个角度出发,在保持一定模型精度的情况下,让模型速度更快、体积更小、能耗更低。 模型压缩 常用的模型压缩方法有如下几种类型: 剪裁 剪裁(Pruning)…
阅读全文编程语言「只是」达成目标的工具,这是我一直推崇的说法,因为我认为达成目标更重要的在于个人思考,编程语言不过是个「工具」,选哪个并没有那么重要。现在我越来越认为这个「工具」的选择还是很重要的,因为编程语言之于目标实现的可能性和效率都制约了目标的最终达成。 以个人数据科学的工作背景,结合我的编程语言学习路径,尝试回答一下我们需要多少种编程语言这个问题。我的编程语言学习路径大致如下: 小学时代:Logo 初高中时代:Basic,HTML,CSS 本科时代:C,C++ 研究生时代:Matlab,R,Python,SQL 工作时代:Markdown,Java,JavaScript,TypeScript,Rust 语言分类 在我的编程语言学习路…
阅读全文文本主要面向不同格式文档(HTML、PDF、Word)的动态生成,秉承规范、统一和实用的理念总结数据可视化过程中的相关问题,不过度涉及数据可视化本身细节。 一画胜千言(A picture is worth a thousand words)是我个人很推崇的一个指引,不过前提是这得是一张「好图」,否则容易过犹不及。 数据可视化是一门复杂的学问,在动态文档生成中,秉承规范、统一和实用的理念,我认为是快速提高数据可视化质量的不错之选。 设计规范 在之前的文章「设计语言初探」中探讨过产品的设计语言,在此针对各大企业的数据可视化规范并结合中文文档生成和个人偏好做简要分析。各大企业的数据可视化规范如下: 企业 数据可视化规范 Apple Hum…
阅读全文
26故事要从昨晚的事故说起,在软路由中删除了一个 Docker 容器,想着相关配置和数据目录也都用不到了就删掉吧。进入目录后「聪明」的我就执行了 rm -rf *,等回头去看命令执行情况已然为时已晚。为什么说我「聪明」呢,因为自从知道一个空格引起的 /usr 被删除的血案后,在做删除动作时我都会谨慎再谨慎,然而这次的悲剧在于目录下通过 NFS 挂载了 NAS 上的远程目录,删除前忘记取消挂载了,结果就是 NAS 上 4 块盘里面的影视资料被我一键清空了。 想着十多个 TB 的影视资料就这么没了,到也没有太伤感,毕竟技术男认为总还是可以恢复的,无非就是费些时间的问题。所以做的第一件事就是把 NAS 关机了,因为一旦再写入新的数据,被删除的…
阅读全文色域 在当我谈修图时,我谈些什么 - 色彩篇 Part 1 中已经介绍过什么是色彩空间,在显示领域通常会使用 RGB 色彩模型,在印刷领域通常会使用 CMYK 色彩模型。而在颜色感知领域,CIE 1931 色彩空间 则是在设计之初便要求包含普通人眼可见的所有颜色的标准色彩空间。 人类眼睛有对于短、中和长波的感光细胞,色彩空间在描述颜色时则可以通过定义三种刺激值,再利用值的叠加表示各种颜色。在 CIE 1931 色彩空间中,这三种刺激值并不是指对短、中和长波的反应,而是一组约略对应红色、绿色和蓝色的 X、Y 和 Z 的值。X、Y 和 Z 的值并不是真的看起来是红色、绿色和蓝色,而是使用 CIE XYZ 颜色匹配函数计算而来。 在颜色匹…
阅读全文
28CSS 中的布局 display 和定位 position 可以说是两个最基本的属性,其控制着元素在网页中的显示方式。之前对布局和定位可谓是一知半解,最终奏不奏效全凭一顿乱试 😂,想了想还是应该细致地了解下,后面虽不妄想写起代码来事半功倍,但至少不会再暴力遍历破解了。 盒模型 在介绍布局和定位之前,首先回顾一下 CSS 的盒模型。CSS 盒模型从外到内由外边距 margin、边框 border、内边距 padding 和内容 content 共 4 部分组成,如下图所示: CSS 盒模型 元素的宽度 width 为内容的宽度 + 左边框 + 有边框 + 左内边距 + 右内边距,上例中为 $360+10+10+10+10=400$;…
阅读全文
29文本是「当我谈」系列的第一篇博客,后续「当我谈」系列会从程序员的视角一起科普认知未曾触及的其他领域。 色彩空间 色彩空间是对色彩的组织方式,借助色彩空间和针对物理设备的测试,可以得到色彩的固定模拟和数字表示。色彩模型是一种抽象数学模型,通过一组数字来描述颜色。由于“色彩空间”有着固定的色彩模型和映射函数组合,非正式场合下,这一词汇也被用来指代色彩模型。 RGB 红绿蓝(RGB)色彩模型,是一种加法混色模型,将红(Red)、绿(Green)、蓝(Blue)三原色的色光以不同的比例相加,以合成产生各种色彩光。三原色的原理不是出于物理原因,而是由于生理原因造成的。 RGB 色彩模型可以映射到一个立方体上,如下图所示: 红绿蓝的三原色光显示…
阅读全文
30本文主要面向希望在游戏空闲时段将显卡用于科学事业的朋友们 😎。 更新于 2024-05-19 终端 工欲善其事必先利其器,开发离不开那个黑框框,所以我们需要把这个黑框框变得更好看更好用些。Windows 终端是一个新的支持 PowerShell 和 WSL bash 的应用,通过应用商店 直接进行安装。 建议安装最新版的 PowerShell 作为命令行环境,相关下载和配置详见官网。 为了更好的在终端中显示中英文和图标,推荐使用 Sarasa Term SC Nerd 作为终端显示字体。 网络 为了方便使用,网络设置采用桥接模式。桥接模式需要在 Windows 中启用 Hyper-V(仅 Windows 专业版支持)。通过启用或关…
阅读全文
31文学编程 文学式编程(Literate Programming)是由高德纳提出的编程方法,希望能用来取代结构化编程范型。正如高德纳所构想的那样,文学编程范型不同于传统的由计算机强加的编写程序的方式和顺序,而代之以让程序员用他们自己思维内在的逻辑和流程所要求的顺序开发程序。文学编程自由地表达逻辑,而且它用人类日常使用的语言写出来,就好像一篇文章一样,文章里包括用来隐藏抽象的巨集和传统的源代码。文学编程工具用来从文学源文件中获得两种表达方式,一种用于计算机进一步的编译和执行,称作“绕出”(tangled)的代码,一种用于格式化文档,称作从文学源代码中“织出”(woven)。虽然第一代文学编程工具特定于计算机语言,但后来的工具可以不依赖具…
阅读全文
32历史尝试 入手 NAS 已经近 5 年的时间了,最初只是用来挂 PT 下载,然后在各种设备上通过 SMB 共享播放上面的视频。后面也尝试在利用 Plex 搭建家庭影音中心,但由于 Plex 的高级功能需要付费也就作罢。今年搬家后整体对各种硬件做了升级,换了软路由,做了基于 AC+AP 的全屋 WiFi,NAS 换了更大的硬盘,客厅和卧室各安装了一个投影机,入了 Apple TV 4K 和 Chromecast with Google TV 4K 两个盒子。购买 Apple TV 时买了有 Infuse 的套餐,果然没有花钱的不是,Infuse 无论是从 UI 还是体验上都算优秀,但由于仅限于苹果生态,且可玩性较差,最终也只是沦为了…
阅读全文
33适当的自私,但不应贪婪。 学了这么多年管理,除了印象最深且还能在工作中不时提起的马斯洛需求层次理论之外,还有就是亚当斯密的经济人假设了。经济人假设每个人都以自身利益最大化为目标,我称这即为自私。社会人假设人的最大动机是社会需要,我认为这也没有逃离自私的范畴,只是需求的类型有些差异而已。苟且和远方,不分贵贱,亦可兼得,但想要的太多,抑或不劳而获,甚至痴心妄想,那这就是贪婪。 自私 不像会纠结到底是人性本善还是人性本恶,我认为人天生就是自私的。社会是由一个个人组成,脱离个体谈集体是无效的,当个体都无法被满足时,集体的功能不可能正常。我无法做到囚徒困境在神学院学生所做出的选择 1,那是一种超脱的信仰的力量,我肃穆敬仰,但恕我如实做不到。…
阅读全文在之前的博客「投票公平合理吗?」中已经得到了一个令人沮丧的结论:只有道德上的相对民主,没有制度上的绝对公平。投票是对不同选项或个体的排序,在投票中我们关注更多是相对位置这样定性的结论,例如:积分前三名的同学才能进入下一环节。但有的时候我们不光想知道不同选项之间的先后顺序,还想了解不同选项之间的差异大小,这时我们就需要设计更精细的方法进行定量分析。 基础评分和排名 直接评分 从小到大被评分最多的应该就是考试了,100,120 或是 150,这三个数字应该从小学一年级一直“陪”我们走过十几载青春。考试的评分算法简单且容易区分,整个系统设置了一个总分,根据不同的表现进行加分或扣分,统计最终得分作为最后的评分。一般情况下成绩是一个近似正态分…
阅读全文
35一眨眼已经四月了,第一季度穿插着反反复复的疫情、说干就干的战争和悲痛万分的空难就这么过去了。还在用生活不易、活着真好的话宽慰自己的时候,互联网迎来了一大波裁员浪潮。说实话其实每年都在陆陆续续的传出各大厂的裁员消息,可今年这一波着实动静大了些。翻看已经有两三篇待完成的博客躺在草稿箱中有个把月了,工作和生活的各种乱七八糟的事情扰得自己完全没有动笔的欲望。算是为了不让博客列表页有太长断档吧,小记一下最近的心情,也让自己冷静下来思考二三。 人都去哪儿了? 在这波裁员浪潮之前,工作上除了项目本身以外,最重要的就是招聘。从最初组建团队一直到现在招聘就像一个看似永远完不成的项目。摆在我面前的招聘三大问题:我看上的人家不一定看得上我,看得上我的我不…
阅读全文本文主要参考自 SIFT meets CNN: A decade survey of instance retrieval 1 和 Deep Learning for Instance Retrieval: A Survey 2。 基于内容的图像检索(Content-based image retrieval,CBIR),属于图像分析的一个研究领域。基于内容的图像检索目的是在给定查询图像的前提下,依据内容信息或指定查询标准,在图像数据库中搜索并查找出符合查询条件的相应图片 3。 根据不同的视觉表示方法,可以将基于内容的图像检索方法分为两类:基于 SIFT 特征的和基于深度学习的。基于 SIFT 特征的方法分为如下 3 类: 使用小型…
阅读全文
37什么是 A/B 测试 A/B 测试是一种随机测试,将两个不同的东西(即 A 和 B)进行假设比较。A/B 测试可以用来测试某一个变量两个不同版本的差异,一般是让 A 和 B 只有该变量不同,再测试目标对于 A 和 B 的反应差异,再判断 A 和 B 的方式何者较佳 1。A/B 测试的前身为双盲测试 2,在双盲测试中人员会被随机分为两组,受试验的对象及研究人员并不知道哪些对象属于对照组,哪些属于实验组,通过一段时间的实验后对比两组人员的结果是否有明显差异。在各种科学研究领域中,从医学、食品、心理到社会科学及法证都有使用双盲方法进行实验。 一个简单的 A/B 测试流程如下: 对目标人群进行随机划分,以进行有效的独立随机实验。 对不同分组…
阅读全文
38之前 三十岁了,不小了,一些事情再不做就不知道会拖到什么时候了。自从之前看到朋友发的一段摩旅的视频,就一直念念不忘,有机会一定要来一次,虽然不一定如视频中那般潇洒。最后证明确实不一样,尽管谈不上是一场修行,但遇到的人事物都是独特且难以忘记的。 有了出发的勇气,但拖延症还是很严重,各种准备和规划直到出发前一晚才简单搞定,当然这也给后面的遇到的问题埋下了伏笔。本来规划了 5 天的行程,最后一天赶到大同见朋友一面再返回北京,但一场冷雨让我在第 4 天直接折返北京。 第一天 折腾了好久,费劲扒拉才把后座包绑好。出门还没上高速,碰见一个骑复古车的哥们,问了我去哪里,我说自己去内蒙古,一句注意安全,一句感谢。出发前才掉了一格油,就没有去加,距离…
阅读全文
39设计语言(Design Language)或设计语言系统(Design Language System, DLS)是一套用于指导产品设计的整体风格方案 1。设计语言把设计作为一种“沟通的方式”,用于在特定的场景内,做适当的表达,进行特定的信息传递。设计语言在建筑、工业设计和数字产品等领域都有广泛的应用,本文仅围绕数字产品进行初探。 为什么构建设计语言? 统一 通过设计语言可以在整个平台中统一颜色、字体、组件、动效等各种规范,避免由于设计师的个人特点导致产品风格不一致。 体验 优秀的设计语言符合大众审美,可以提高产品的可用性和易用性。设计语言可以使用户能够与具备一致性的应用进行交互,让用户在使用过程中获得愉悦,提升用户体验。 效率 优…
阅读全文文本使用的软件版本分别为: JDK:1.8.0_291,下载地址。 Scala:2.12.14,下载地址。 Hadoop:3.2.2,下载地址。 Spark:3.1.2,下载地址。 Python:3.9,Miniconda3,下载地址。 按照虚拟环境准备 (Virtual Environment Preparation) 准备虚拟机。 按照 Hadoop 集群搭建 (Hadoop Cluster Setup) 搭建 Hadoop 集群。 本文以 Spark on YARN 模式介绍 Spark 集群的搭建。 Scala 配置 将 Scala 安装包解压缩到 /opt 目录并创建软链接: cd /opt tar -zxvf scala…
阅读全文
41文本使用的软件版本分别为: JDK:1.8.0_291,下载地址。 Hadoop:3.2.2,下载地址。 Hive:3.2.1,下载地址。 MySQL:8.0.25,使用 apt install mysql-server 安装。 MySQL JDBC Connector:8.0.25,下载地址。 按照虚拟环境准备 (Virtual Environment Preparation) 准备虚拟机列表如下: 主机名 IP 角色 vm-01 192.168.56.101 Hadoop MySQL Hive vm-02 192.168.56.102 Hadoop vm-03 192.168.56.103 Hadoop 按照 Hadoop 集群…
阅读全文文本使用的软件版本分别为: JDK:1.8.0_291,下载地址。 Zookeeper:3.7.0,下载地址。 Hadoop:3.2.2,下载地址。 按照虚拟环境准备 (Virtual Environment Preparation) 准备虚拟机列表如下: 主机名 IP 角色 vm-01 192.168.56.101 HDFS Namenode HDFS Datanode YARN Resource Manager YARN Node Manager Journal Node Zookeeper vm-02 192.168.56.102 HDFS Namenode HDFS Datanode YARN Resource Manage…
阅读全文
43本文以 VirtualBox 和 Ubuntu Server 为例,介绍在 macOS 下搭建 3 台虚拟机集群过程。 安装 VirtualBox 从官网下载最新版本的 VirtualBox 和 VirtualBox Extension Pack,本文以 6.1.22 版本为例。根据安装向导安装 VirtualBox。 双击下载好的 .vbox-extpack 安装文件安装 VirtualBox Extension Pack。 通过 File -> Host Network Manager... 为 VirtualBox 添加一块网卡。 安装 Ubuntu Server 虚拟机配置 从官网下载最新版本的 Ubuntu Serv…
阅读全文
44在日常工作中,数据处理和分析在研发、产品和运营等多个领域起着重要的作用。在海量数据处理和分析中,SQL 是一项基础且重要的能力。一个优秀的 SQL Boy 和茶树姑的 SQL 代码除了保持简单、可读和易于维护的样式风格外,还需要具备良好的执行性能,准确且高效的计算出结果才能让你在工作中决胜于千里之外。 影响 SQL 执行性能的主要因素可以总结为如下几项: 计算资源量(CPU,内存,网络等) 计算数据量(输入和输出的记录数) 计算复杂度(业务逻辑复杂程度和对应的 SQL 实现和执行) 计算资源量是一个前置制约因素,理论上更多的资源能够带来更快的计算效果。计算数据量也可以认为是一个前置制约因素,理论上更大的数据量会导致计算速度降低,但对…
阅读全文
45代码样式指南主要用于规范项目中代码的一致性,使得代码简单、可读和易于维护,从一定程度上也影响代码的质量。一句话概括如何评价代码的质量: 衡量代码质量的唯一有效标准:WTF/min – Robert C. Martin Google 针对大多数编程语言(例如:C/C++,Java,JavaScript,Python,R 等)都整理了相关的代码风格,但对于 SQL 这种用于数据库查询特殊目的的编程语言并没有整理对应的风格。同其他编程语言代码风格一样,没有哪种风格是最好的,只要在项目中采用统一合理的风格即可。 本文参考的 SQL 样式指南有如下几种: https://www.sqlstyle.guide/zh/ https://about…
阅读全文
46理论篇请参见:进程,线程和协程 (Process, Thread and Coroutine) - 理论篇 本文将介绍进程,线程和协程在 Python 中的实现,代码详见这里,部分参考自「Python 并发编程」 1:。 进程和线程 在 Python 中可以使用 multiprocessing.Process 和 threading.Thread 来实现进程和线程。我们采用CPU 密集型、磁盘 IO 密集型、网络 IO 密集型和模拟 IO 密集型任务类型来测试单线程,多线程和多进程之间的性能差异。 import requests # CPU 密集型 def cpu_bound_task(x=1, y=1): c = 0 while…
阅读全文
47Python 实现篇请参见:进程,线程和协程 (Process, Thread and Coroutine) - 实现篇 进程,线程和协程 进程(Process)是计算机中已运行的程序 1。线程(Thread)是操作系统能够进行运算调度的最小单位。大部分情况下,线程被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 2。 进程和线程之间的主要区别在于: 线程共享创建其进程的地址空间,进程使用自己的地址。 线程可以直接访问进程的数据,进程使用其父进程数据的副本。 线程可以同其进程中其他线程直接通信,进程必须使用进程间通讯(inter-process…
阅读全文
48CNN 的缺陷 卷积神经网络(CNN)在图像领域取得了很大的成功,但同时也存在一定的缺陷。卷积层中的卷积核对输入图像利用卷积运算提取其中的特征。卷积核以一个较小的尺寸并以一定的步长在图像上移动得到特征图。步长越大,特征图的尺寸就越小,过大的步长会丢失部分图像中的特征。池化层作用于产生的特征图上,使得 CNN 可以在不同形式的图像中识别出相同的物体,为 CNN 引入了空间不变性。 CNN 最大的缺陷就是忽略了不同特征之间的相对位置,从而无法从图像中识别出姿势、纹理和变化。CNN 中的池化操作使得模型具有空间不变性,因此模型就不具备等变性。以下图为例,CNN 会把第一幅和第二幅识别为人脸,而将第三幅方向翻转的图识别为不是人脸。池化操作造…
阅读全文
49只有道德上的相对民主,没有制度上的绝对公平,求同存异才能长治久安。 无处不在的投票 在古代雅典城邦有一项政治制度称之为陶片放逐制,是由雅典政治家克里斯提尼于公元前 510 年创立。雅典人民可以通过投票强制将某个人放逐,目的在于驱逐可能威胁雅典的民主制度的政治人物。投票者在选票——陶罐碎片较为平坦处,刻上他认为应该被放逐者的名字,投入本部落的投票箱。如果选票总数未达到 6000,此次投票即宣告无效;如果超过 6000,再按票上的名字将票分类,得票最多的人士即为当年放逐的人选。 美国总统选举的方式称为选举人团,是一种间接选举,旨在选出美国总统和副总统。根据《美国宪法》及其修正案,美国各州公民先选出该州的选举人,再由选举人代表该州投票。不…
阅读全文
50本文为《复杂网络系列》文章 图存储 语义网络与 RDF 存储 1968 年 Ross Quillian 在其博士论文中最先提出语义网络(Semantic Web),把它作为人类联想记忆的一个显式心理学模型,并在他设计的可教式语言理解器 TLC(Teachable Language Comprehenden)中用作知识表示方法。 语义网络的基本思想是在网络中,用“节点”代替概念,用节点间的“连接弧”(称为联想弧)代替概念之间的关系,因此,语义网络又称联想网络。它在形式上是一个带标识的有向图。由于所有的概念节点均通过联想弧彼此相连知识推导。 一个语义网络的基本构成如下: 语义网络中的节点:表示各种事物、概念、情况、属性、动作、状态等,每…
阅读全文