明城 09-29 什么是大语言模型(LLM)中的提示词注入?我们该如何防范?(翻译) Amit Shekhar 的这篇博客文章很好地介绍了提示词注入的概念及防御方法,所以我将其翻译为中文,方便大家阅读。原文链接: https://outcomeschool.com/blog/prompt-injection-in-llms 什么是大语言模型? 在深入探讨提示词注入之前,我们必须先了解什么是大语言模型。 大语言模型是一个读取文本并预测下一个词的模型。 简单来说,它是一台非常厉害的「猜词机器」。我们给它一些词,它就猜出接下来的那个词;然后把这个词追加到文本中,再猜下一个。它就这样一次一个词地不断重复,直到写出完整的回答。 比如我们输入「The sky is」(天空是),模型猜出「blue」(蓝色的),文本就变成了「The sky is blue」。模型会再次读取全部内容,继续猜下一个词。ChatGPT 所使用的模型就是这样一个词接一个词地写出长篇回答的。 这里有一点非常重要,需要特别注意。 模型只能看到文本。它没有眼睛,没有耳朵,也无从得知某一行文字是谁写的。无论什么文本到达模型,在它面前都会变成一整块文本。 请记住这一点,提示词注入的整个原理都建立在它之上 #Thought
明城 09-27 Wayland 在 4K 显示器下鼠标卡顿 最近给笔记本接上 4K 显示器以后,在 KDE Plasma Wayland 下移动鼠标总觉得一顿一顿的。手上这只无线鼠标标称 8K 回报率,所以我第一反应是回报率没跑起来,于是先从输入设备和 USB HID 链路开始查。结果绕了一圈才发现,鼠标本身没什么问题,真正的原因藏在显示器的 TypeC 的连接里。 这里把排查过程整理一下,也算给自己留个记录。 环境 项目 配置 系统 Kalpa Desktop 内核 Linux 7.2.6 桌面 KDE Plasma Wayland 笔记本 ThinkPad X1 Carbon Gen 8 CPU / GPU Intel Core i7-10510U 显卡驱动 i915 显示器 Philips 27E1N8900,3840x2160 连接方式 TypeC 直连显示器 先怀疑鼠标回报率 通过 AI 相互排查,从 /proc/bus/input/devices 可以找到鼠标的主输入节点: N: Name="Compx Wireless mouse 8k NANO dongle-L" H: Handle #Thought
明城 08-25 解决 macOS 下 iPhone 镜像反复连接失败的问题 最近将 Mac 升级到 macOS Beta 以后,iPhone 镜像突然不能用了。Mac 明明可以找到旁边的 iPhone,但每次打开 iPhone Mirroring,最后都只会得到一个 Unable to Connect to iPhone,点 Try Again 也没什么用。 该检查的其实都检查过了:两边是同一个 Apple 账户,Wi-Fi、蓝牙和接力也都开着,手机就在旁边并且处于锁屏状态,VPN、个人热点、AirPlay 和随航也没有占用。同时,还有个比较奇怪的地方,就是「iPhone 镜像 → 设置」里的「撤销 iPhone 访问权限」是灰色的。看起来系统认为没有已经授权的手机,但它又确实能发现这台手机。 最后折腾下来,问题出在 replicatord 留下的配对状态。这里记录下排查和修复过程,免得下次再碰到又从 Wi-Fi 开始查一遍。下面,简单记录下排查和解决的过程。 先看日志 首先确认几个相关服务是否还活着: pgrep -alf 'iPhone Mirroring|replicatord|sharingd|rapportd' 然后打开 iPhone 镜 #Skills #Thought
明城 07-10 解决 macOS 下 Samba 拷贝大文件断流报错的问题 这次折腾的背景是新搞了台小主机,然后计划拿来当软路由使用,因其还有个闲置的 NVME 插槽以及一块闲置的 NVME 盘,就顺便就想把它当 NAS 用。 但是配置好之后,发现从 Mac 拖拽大文件到 Samba 共享目录时,传输会在几十秒后突然中断,Mac 弹窗报错:“操作无法完成,因为发生意外错误 (错误代码 -8062)” 或 (-36) 错误。 起初怀疑是 NVMe 固态硬盘缓外掉速或 2.5G 网卡断流。但在服务端使用 iostat -x 1 监控发现,写入延迟 (w_await) 仅为两位数(几十毫秒),底层 I/O 非常健康,网络链路也没有掉线。 最终,通过将 Samba 日志级别调至 log level = 3,给大模型分析了下得知是 Mac 的 Finder 在拷贝大文件时,每隔 3 秒就会向 Samba 服务器发送一次 qfsinfo 查询磁盘空间的请求。而 Samba 默认开启了严格锁定 (strict locking = yes),导致 Mac 的多线程同时读写同一个文件时,触发了 Samba 的文件锁,进而导致主进程挂起。 所以,就根据原因编辑 /etc/ #Skills
明城 02-16 在 Claude Code 中配置使用 Ring 1T 模型 最近收到通知,Gmail 因为“安全的原因”要逐步停止支持 POP3 收取第三方邮件。这对我来说是个小麻烦,因为学校的邮箱和 Gmail 之间的同步需要找替代方案。 想想其实用第三方服务还是不太靠谱,加上事情本身也不大复杂。索性利用假期的时间用 Rust 写了个小工具 mail-forwarder 来自动转发。在这个过程中,我开始大量使用 Claude Code,这个体验还真不错。总体来说,用 Claude Code 写代码的流畅度确实很不错,但有几个点不太满意: 只能用 Anthropic 自家的模型,没得选 用官方的有点不划算,有点小贵(当然这也有可能是我自己的问题) 国内无法直接访问只能挂梯子,导致访问速度不理想 后来发现 Claude Code 的接口其实很简洁,通过改几个环境变量就能接入其他模型提供商。经过一番调研,我选了 ZenMux 这个平台,主要是因为它国内访问快,支持一堆不同的模型,接口文档也写得清楚,总体来说可以作为 OpenRouter 的一个不错的替代方案。 先说结论吧,暂时在 ZenMux 上提供众多模型中,最后挑了 Ring 1T 作为替代方案。 #Skills #Thought
明城 2023-12-29 感谢 Drone CI,同时迁移到了 Gitea Actions 自建使用 Git 仓库其实很久了,当时的原因很简单就是因为 Github 的私有仓库不是免费的。虽然期间也续费过 Github 会员好多年,但是毕竟还是自建来得吃香,就这样子兜兜转转用下来这个 Gitea 的实例看了下日期其实比我手头上使用的任何数码硬件设备都要久了。 当时的 Gitea 项目还不是很成熟,甚至连 CI 模块都没有需要搭配第三方 CI 平台来使用。而我自己个人也不喜欢 Gitlab 那么臃肿的架构设计,于是 Gitea 和 Drone CI 的搭配就一直这样子沿用了下来。 近期在整理 Git 仓库和代码的时候,顺手又将 Gitea 升级了下,发现已经是 1.21 版本了,还自带了 Gitea Actions。于是从精简系统的角度上考虑,是不是需要将其替换掉 Drone CI?从我调研以及使用的过程看来,答案是肯定的。 那么 Drone CI 有什么不足的地方呢,主要的问题有以下几点: 首先,原本的 Drone CI 是开源项目但是有完整的商业目标,因此在被 Harness 收购了以后开源的版本更新其实并不及时,这就导致界面非常的简陋,同时也和 Getea 的界面 #Backends #Thought
明城 2022-07-28 迁移到微软的 Azure 20230220: Azure 因为不可抗力还是暂时迁移到了腾讯云的轻量服务器,以后是否还需要继续迁移还是看情况吧。 距离上次的迁移已经有两三年了,一般来说不会这么折腾的,但是国内对外的网络环境是越来越糟糕。 这个博客站点其实也是佛系更新的,加上天生爱自由的关系不想备案(其实早先备过案,但过期了),于是就又得换个地方、 换个国内能够访问稍微顺畅点的。 用过很久的 Linode,然后再是 Vultr 。就现在这个网络环境来看,这些国外老牌但是规模来说二线的云服务商是 国内老大哥重点关照的对象,毕竟个人站长以及「散户」太多,监管起来成本太高还不如一刀切。 所以,这次考虑迁移还是想往相对比较大的平台服务商上面去靠拢,同时为了省事宁可多些花费,加上又不想用国产 的服务商(别问我为什么)。于是剩下的也就是三家:Google 的 GCP、亚马逊的 AWS 以及微软的 Azure 。 不用 Google 是因为不想把鸡蛋放在一个篮子里,而 AWS 那逆天的控制面板简直让人感觉这是不是和我们一个星球的人 设计出来的,那么剩下就只能选用了 Azure 这其实完全不是好不好问题了。 Azure #Life #Thought
明城 2022-03-24 前端的困惑 前些天喷了下所谓的前端「娱乐圈」,虽然带有点情绪但是应该能说明我的目前前端这个圈子的态度。 昨晚收到前同事的来信,虽然带过的团队和人较多,真的尴尬记不起来您是谁来,但真的非常感动那么多年过去还能想起不才。 我觉得还是有必要再继续写篇我自己个人从前端转型的历程和心态。其实这个话题其实已经不止讨论过一次,但其实以前我把这件事情自己也就当做过往来调侃而已,没有非常认真的分析。 我想现在看来,是个非常好的时间点来说这个事情:一来当作自己的个职业方面的总结、二来也可以抛砖引玉当作各位的参考,见笑。 如果时间拨回到十几年前,那时候的前端职位的定位和职责其实非常的模糊,对于前端的理解往往就 JavaScript 代码复制粘贴实现 HTML 页面的轮播等功能就完事,只是后端顺手把页面套了是上不了什么台面的技术活。 说起来我也是半路出家,因为那时候我的主要还是写点 PHP 以及 Java 然后再来折腾 HTML 页面。再往后就是入职了淘宝,才对于前端这个职位有个比较系统的认识以及深入。 如果说当时的大环境是 Web2.0 的时代,那么前端这个职位的技术深度其实几乎停留在 Web1.0:大量的 #Thought
明城 2022-03-12 所谓的「前端娱乐圈」 注意:这是篇带有非常浓厚个人情绪的文章。 最近 React 的 Github 项目主页因为意识形态的原因被冲,已经成为了开年为数不多的技术新闻。祖国的前端圈子又一次以这样子的形态被国际环境所认知和理解,这不得不说是一次误解和灾难。 但其实我不奇怪和意外这个事情,因为本身这个事情从导向性上来说是非常可以理解的。 但同样作为技术人员,以我对于国内前端的圈层的认知来说,其实还是超出了我的预想和预期, 而且我非常相信,这已经不是第一次可能也不是最后一次。 我是非常反感意识形态和技术本身挂钩的,虽然「技术无国界」这句话在目前各个国家间的相互制裁和「卡脖子」看来非常的理想化,但我们自己还是需要部分的信仰去支撑自己的信念的。 Github 目前看起来其实还是是个相对比较纯净的社区,但偏偏国内前端这个圈子,就有很多上述类似无关技术的事情发生,让人再次叹息。 我们举例:今天有 React 被冲、往前看还有 Vue 是否是国产框架之争、再往前甚至还有流行框架作者删库跑路…所以,甚至有人戏言国内前端的环境是「前端娱乐圈」。 从技术角度上说,前端开发其实是相对门槛不高的研发岗位。从项目的侧重点上 #Thought
明城 2021-10-08 基于 CIY68 打造性价比超高的客制化键盘 其实很久就像组块客制化的键盘,但是由于时间和精力(当然还有预算)的关系,直到这段十一期间才折腾了一把。 折腾的原因之一,也是因为在假期期间看到只需要 79 的 CIY68 「试轴器」,与其说是试轴器不如说是个入门的 68 键位的套件,该有的它都有所以性价比非常的高。 总体成本 除了 79 大洋的套件以外,剩下的键盘主要的费用就是轴体和键帽了,我研究了下如果使用国产的轴和键帽的话,那么总体基本上可以把预算和成本控制在两张人民币以内。那么,说干就干,以下是个人的搭配方案: 种类 型号 价格 套件 CIY68 79 轴体 凯华 BOX 茶轴x70 58 键帽 国产牛油果 PBT 75 其他的,例如两节七号电池等就不记录进去了,总计 79 + 58 + 75 差不多 212 的样子。刚好预算 200 稍微出头一点(当然,如果总在乎预算方面的坚持,可以看下咸鱼)。 下面,逐个的说下这个配件的些到手以后的使用体验。 79 元的「试轴器」 CIY68 这个「试轴器」无论从价格还是功能上都满足了我个人对于套件的所有的要求:没有花花绿绿的 RGB 灯效、同时只使用干 #Life #Thought