记一次小模型微调/蒸馏学习(Qwen3-0.6B 从收货地址中提取结构化信息)

无意间,看见阿里云提供了针对 Qwen3-0.6B 的蒸馏教程,本文章本质上是跟着阿里云提供的教程学习微调过程,官方教程地址。 借用下阿里云教程的介绍: 大参数模型效果好,但成本高、响应慢。为了在保障效果的同时提升推理速度、降低成本,可首先借助大参数模型完成目标任务的数据生成,并使用这些数据微调小参数模型,使其在特定任务中达到接近大参数模型的表现,这一过程也被称为模型蒸馏。 本方案将以从一句话中提取结构化信息(如收件人、地址、电话)为例,演示如何通过模型蒸馏,让 Qwen3-0.6B 模型在此任务上达到大参数模型的表现。 ...

2026年3月1日 · 10 分钟 · 浅忆

本地网络出口DNS检测[开源]

在上一篇文章从 DNS 异常排查到使用 mosdns v5 对国外网站进行分流解析 中已经在局域网中搭建好了一个dns分流。那么,如何验证是否是否成功呢? 可以直接访问 https://nstool.zxcvx.com/ https://nstool.netease.com/进行测试,本文章主要讲实现原理。 ...

2026年4月3日 · 2 分钟 · 浅忆

使用llama.cpp量化Qwen0.6B模型CPU运行

在上一篇文章记一次小模型微调/蒸馏学习(Qwen3-0.6B 从收货地址中提取结构化信息) 中已经蒸馏出数据,由于服务器没有显卡,我将模型转为GGUF,然后量化为Q5_K_M,使用llama.cpp 进行推理。 ...

2026年3月5日 · 7 分钟 · 浅忆

使用Docker搭建Mox Mail 邮局

介绍 Mox Mail 是一个开源的邮件服务器解决方案,用于收发电子邮件。支持 IMAP4、SMTP、SPF、DKIM、DMARC、MTA-STS、DANE 和 DNSSEC,基于信誉和基于内容的垃圾邮件过滤,国际化(EIA/IDNA),使用 ACME 和 Let’s Encrypt 自动 TLS,帐户自动配置,网页邮件。 ...

2026年1月29日 · 4 分钟 · 浅忆

将自建Vaultwarden (Bitwarden) 数据库增量备份到github 私有仓库

背景 在自建Vaultwarden (Bitwarden) 时,数据库一般在服务器的某个目录下,肯定要每天备份防止密码数据丢失,我目前是采用rclone备份到腾讯云的对象储存(老用户有免费50G的容量)。今天无意间看见新方法,备份到github仓库,故进行实践。原文 ...

2026年1月15日 · 3 分钟 · 浅忆

从 DNS 异常排查到使用 mosdns v5 对国外网站进行分流解析

背景: 最近3个月左右,只要打开任意国外网站,那么间接性会出现 DNS 解析异常的问题,表现为网页无法打开,无法解析出域名。这时使用ping 则表现为 请求找不到主机 xxx。请检查该名称,然后重试。,但只要使用nslookup 后则可以正常解析域名,且浏览器也可以正常打开。 但因为这种情况时有时无,所以也就一直没有去深究这个问题,直到最近实在是受不了了,决定彻底解决这个问题。 ...

2026年1月12日 · 5 分钟 · 浅忆

关于续订程序出现授权出错问题

由于微软将续订程序的回调地址拉黑(会认为使用此回调地址的应用为钓鱼应用),从而将创建的 应用程序 禁用,导致应用无法进行授权。 之前已经授权过的应用暂时不影响(在应用 access_token有效期内),今天会临时加急更新一版,明天下午上线,临时解决这个问题。 同时新版本预计年后上线。 查看应用是否被禁用

2023年1月14日 · 1 分钟 · 浅忆

为知笔记 Docker版本 私有部署

目前已经使用docker私有部署的为知快2年了,之前用过 onenote、印象笔记、有道笔记、notion、蚂蚁笔记等等,全部用过一段时间后还是选择了为知笔记,一是服务的在自己手里,数据配合脚本实时同步到OneDrive,二是目前重构版的客户端确实好用很多,不像之前要卡半天~ 看网上一直在吹这个notion,不得不说操作上确实很爽,但每次打开不嫌慢吗? 下面是为知的docker搭建方式,其实官方写得很清楚了~ 1 2 3 4 5 6 7 8 docker run --name wiz \ --restart=always \ -it -d \ -v ~/wizdata:/wiz/storage\ -v /etc/localtime:/etc/localtime \ -p 8080:80 \ -p 9269:9269/udp \ wiznote/wizserver nginx 反代 1 2 3 4 5 6 7 8 location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header x-wiz-real-ip $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://ip:8081; }

2021年12月4日 · 1 分钟 · 浅忆

2021黑五 杜甫收获

SYS独服 24.99欧元 标准配置 SYS-2-SAT-32 Server - Intel Xeon D1540 - 32GB DDR3 ECC 2133MHz - 4x 2To HDD Soft RAID 250Mbps 开机结果 cpu升级为 Intel Xeon D1541 硬盘升级为 4x4T 开了3台结果如下: 1 2 3 12-01 21:23 GRA2 d1541 4x4T 250m 硬盘均 120小时 12-02 13:02 GRA1 d1541 4x4T G口 3个硬盘6k小时,1个110小时 12-02 13:30 GRA1 d1541 4x4T 250m 3个新盘,1个1k小时 准高配:D-1540+16T硬盘+250Mbps网络 高配:D-1541CPU+16T硬盘+250Mbps网络 顶配:D-1541CPU+16T硬盘+1Gbps网络 KS独服 14.99欧元 标准配置 1 KS-LE Server - Intel Xeon E5-1620v2 - 32GB DDR3 ECC 1133MHz - 2x 2To HDD Soft RAID 100Mbps 开机结果 机器1 ...

2021年12月2日 · 1 分钟 · 浅忆

gson java.lang.NumberFormatException: empty String

问题: 反序列化时实体类型为 int/Integer/Long 等等,而json字段为string,如下 1 2 3 4 5 6 #json {"a":""} #伪代码 class test { private Integer a; } 解决方法: 为gson注册一个适配器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 import com.google.gson.JsonSyntaxException; import com.google.gson.TypeAdapter; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; import java.io.IOException; public class IntTypeAdapter extends TypeAdapter<Integer> { @Override public void write(JsonWriter out, Integer value) throws IOException { out.value(value); } @Override public Integer read(JsonReader in) throws IOException { JsonToken peek = in.peek(); if (peek == JsonToken.NULL) { in.nextNull(); return null; } try { String result = in.nextString(); if ("".equals(result)) { return null; } return Integer.parseInt(result); } catch (NumberFormatException e) { throw new JsonSyntaxException(e); } } } 1 2 3 4 private Gson gson = new GsonBuilder() .registerTypeHierarchyAdapter(Integer.class, new IntTypeAdapter()) //.registerTypeHierarchyAdapter(Long.class, new LongTypeAdapter()) .create(); 需要注意的是, registerTypeHierarchyAdapter 里的类型一定要准确,一开始百度出来的是用 Number,会无法进入适配器,比如 https://www.jianshu.com/p/081ab69cf9a8 ,注册的是 int和integer,但TypeAdapter 是number。 ...

2021年9月2日 · 1 分钟 · 浅忆