<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>vhiccup</title><link>https://vhiccup.cn/</link><description>生活记录 · 技术笔记 · 智能对话</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 24 Oct 2026 09:57:02 +0800</lastBuildDate><atom:link href="https://vhiccup.cn/index.xml" rel="self" type="application/rss+xml"/><item><title>2 核 2G 的服务器能跑什么</title><link>https://vhiccup.cn/tech/low-spec-server/</link><pubDate>Tue, 20 Oct 2026 00:00:00 +0800</pubDate><guid>https://vhiccup.cn/tech/low-spec-server/</guid><description>一次内存预算练习：静态站点 + 反代 + AI 网关，为什么不装数据库。</description></item><item><title>stable diffusion 的 lora模型训练--饭饭</title><link>https://vhiccup.cn/tech/stable-diffusion-de-loramo-xing-xun-lian-fan-fan/</link><pubDate>Thu, 13 Apr 2023 21:38:40 +0800</pubDate><guid>https://vhiccup.cn/tech/stable-diffusion-de-loramo-xing-xun-lian-fan-fan/</guid><description><p>lora 是一种微调大模型的方法</p><p>饭饭是2岁的英短猫，毛色为黑白，拿它的照片正stable diffusion v1.5的模型基础上进行lora模型训练。训练图片17张，lora的特征维度设置为32，训练10个epoch的效果如下：</p><p>从结果看，基本还原饭饭的样貌和神态，但是细节处毛发不自然，脸上的泪痕在AI绘画中被放大了不少。主要是stable diffusion v1.5的base模型主要是基于动漫人物训练，利用deepdanbroou模型打的标签基本与图片不太符合(训练时的标签在deepdanbroou 上进行了大量修改)，并且训练的图片的背景比较复杂，有沙发，墙壁，床，衣服等影响较大，导致细节处不够理想，并且经常出鬼图。</p><p><img src="/media/uploads/2023/04/13/00003-448941978_9EETNhD.png" alt=""/><p><img src="/media/uploads/2023/04/13/00007-3378575064.png" alt=""/><p>上面是测试了20来张图中生成效果还不错的，lora模型的大小只有36M，就能带饭饭周游世界0.0.(手动狗头)</p></description></item><item><title>只有峨眉山</title><link>https://vhiccup.cn/tech/zhi-you-e-mei-shan/</link><pubDate>Sat, 11 Mar 2023 00:10:48 +0800</pubDate><guid>https://vhiccup.cn/tech/zhi-you-e-mei-shan/</guid><description><p>最近这段时间去了趟西藏，打卡了巴松措、鲁朗、雅鲁藏布江、南迦巴瓦山峰、羊湖等自然景点，惊叹于大自然的美丽，但是在大昭寺和布达拉宫时，看到了许多磕长头的信徒们，他们的虔诚和执着让我感到局促不安，我像一只狐狸夹着尾巴逃离拉萨，在返程途中游荡到了峨眉，在这里看到了演出《只有峨眉山》，颇为震撼。</p><p>演出第一场是在一个卍 字符号的舞台上进行的，讲的是峨眉山的云海看到的世间众生的轮回，让我想起了余华的《现实一种》中的那种冰冷的轮回和《百年孤独》中的那种孤独的轮回，但是后面的剧场让我明白了，这是关于人性的轮回，自我的找回。</p><p>第二次场是一个关于救赎的故事，在城市打拼的姑娘，面临着生活的被迫，工作的压迫，被现实压迫得无以喘息、焦虑不安时，带着一纸遗书，走向峨眉的舍身崖，然后被有着类似遭遇的阿姨劝说，打消了轻生的念头。表演中通过两代人之间的故事叙述交织对比，拉出了想要表达的主题：&ldquo;为自己活只能活一个角落，而为别人活才能活整个世界&rdquo;, 虽略有牵强，但是这种救赎也能温暖人心。就像《追风筝的人》中的阿米尔一样，救赎自己的往往只能是自己，我们大多人都和剧场中的女孩一样，承受着生活和工作的压力，但是只有自己调整心态，才能找回自我。</p><p>第三场主要是乡愁，留守乡村的老人黯然离场，为了理想和美好生活年轻人高空飞天起舞，这种撕裂感让乡愁更具象了。快结束时的诗歌：</p><p align="center">请问你先生姓甚名谁</p><p align="center">再问你先生祖籍哪里</p><p align="center">是不是有一个地方</p><p align="center">只在梦里常回去</p><p align="center">请问你先生今年贵庚</p><p align="center">再问你先生高就哪里</p><p align="center">是不是只有一个地方</p><p align="center">想回也回不去</p><p align="center">有一个地方</p><p align="center">名叫故乡</p><p align="center">有一个地方</p><p align="center">名叫父母高堂</p><p align="center">有一个地方</p><p align="center">岁月苦短</p><p align="center">有一个地方</p><p align="center">游子泪长</p><p>听到这个诗歌时，游子泪长。</p><p>第四场是关于背夫的故事，穿插了峨眉山上的名人，更多的是背夫父亲和在大城市工作的儿子，背夫精神在两代人之间的传承，引出了“每个人都是背夫，只不过是背负的东西不一样”的主题。小剧场中背夫父亲背起成年后的儿子的那幕，让我想起了我那不善表达，但是伟爱如山的父亲，眼睛再一次湿润。</p><p>最后一场表演是在一个旧村的废墟中进行的，旧村中的残垣断壁和富有年代感的工具让我身临其境，想起了养我育我的那个小村庄也正在慢慢离我远去，演员面对面的那句字条“我是你的梦境”以及字条的故事讲述了慈母对游子的牵挂，不知不觉中，自己就成了戏中人，现实与戏剧的交叠让我久久不能平静。</p><p>遗憾的地方是很多小故事是同时表演的，没有办法了解到所有的故事，另外场内观众的拍照也影响观看。</p><p>最后一场表演时，在互动中收到了“梦境中的我”递过来的一张纸条：“这短短的一生，我们最终都会失去。你不妨大胆一点，攀一座山，追一个梦”，就带着这张纸条，整理一下心情，离开峨眉山，结束这段失业之旅吧。</p></description></item><item><title>目标检测-半监督学习</title><link>https://vhiccup.cn/tech/mu-biao-jian-ce-ban-jian-du-xue-xi/</link><pubDate>Sun, 05 Feb 2023 11:43:55 +0800</pubDate><guid>https://vhiccup.cn/tech/mu-biao-jian-ce-ban-jian-du-xue-xi/</guid><description><p>利用目标检测数据和图像分类数据的半监督模型Detic</p></description></item><item><title>目标检测-单阶段模型</title><link>https://vhiccup.cn/tech/mu-biao-jian-ce-dan-jie-duan-mo-xing/</link><pubDate>Sun, 05 Feb 2023 11:42:56 +0800</pubDate><guid>https://vhiccup.cn/tech/mu-biao-jian-ce-dan-jie-duan-mo-xing/</guid><description><p>检测模型yolo系列以及anchor-free 的centerNet. 目标检测模型根据是否预先设置锚框分为 anchor-base和anchor-free两种。其中faster rcnn是anchor-base 的，yolo系列大部分也是基于anchor-base的。</p><p>yolo系列是典型的单阶段模型，不需要进行锚框的生成，yolo系统从v1到目前的v7发展迅速。简单总结一下yolo的几个版本。</p><p>yolov1: yolov1 实际上是anchor-free的方法，没有预定锚框，讲图片经过特征编码后(比如尺度为7<em>7)，然后端到端预测输出结果。(比如7</em>7<em>90)。比如特征尺度为7 ，每个网格进行两个锚框的预测(x,w,y,h,p), 以及类别的预测比如 2</em>5+80的预测。</p><p>yolov2:</p><p>yolov3:</p><p>yolo后续：</p><p>center net :</p></description></item><item><title>目标检测-两阶段模型</title><link>https://vhiccup.cn/tech/mu-biao-jian-ce-liang-jie-duan-mo-xing/</link><pubDate>Sun, 05 Feb 2023 11:41:45 +0800</pubDate><guid>https://vhiccup.cn/tech/mu-biao-jian-ce-liang-jie-duan-mo-xing/</guid><description><p>目标检测两阶段模型-FasterRCNN.</p><p>目标检测是计算机视觉中的一个典型的任务，对于一张输入的图片，输出为（1，num_boxs, 4+1+numclass）大小的结果，分别代表不同的方框，方框的坐标(维度为4)，是否是前景，以及对应的类别体系的概率值。目标检测模型一般分为两大类，两阶段模型和单阶段模型，其中区分主要是按照是否需要有锚框的生成。fasterrcnn 是典型的两阶段模型，其生成锚框，因此特征具有区域性特征，也常用来生成图片的特征表示，用来进行后续的任务，比如VQA 和图像描述。</p><p>Faster rcnn 中的计算主要流程如下：输入图片，经卷积特征层得到feature map; 再经过RPN(region propoals net) 得到候选锚框，然后基于锚框获取feature map 上对应的特征，在经过ROI(region of interest) 池化方式将特征图池化到相同的大小后，再输入到分类层进行目标框和类别的输出。</p><p>骨干网络：采用一般的卷积网络 AlexNet, ZFNet, googleNet, BGGNet, ResNet等等，一般会采用其预训练模型来初始化参数。</p><p>RPN网络：对于得到的feature map 先采用滑窗的方式生成指定长度k的特征，然后再连接两个分类器，进行背景判断(cls)和锚框坐标回归预测(reg). 其中cls 分类器输出的特征为 2<em>9</em>K，reg的分类器输出的特征为 4<em>9</em>k。 其中的9 主要是3中尺度(128,256,512) 以及三种长宽比例(1:1,1:2,2:1)组成的锚框。经过分类器输出后，会采用极大值抑制(NMS)进行锚框的清洗，遍历去掉重合度较高的锚框(IOU).</p><p>ROI池化：类似于SSPnet 的功能，该部分主要是将锚框对于的feature map 矩阵池化到相同的大小，从而进行后续的线性层box坐标回归以及类别预测。由于ROI池化的时候进行了多次的量化计算(比如量化到7*7)导致有一定的量化误差，因此也有提出基于线性插值的方式来进行制定特征图的计算。</p><p>分类层：进行box坐标的回归和目标类别的预测。</p><p>其它内容：IOU 和MAP</p><p>训练样本：在训练时注意正负样本的选择</p><p>误差计算：分类损失和边框回归损失，平移变换和缩放变换</p></description></item><item><title>开集识别和对抗样本拒识</title><link>https://vhiccup.cn/tech/kai-ji-shi-bie-he-dui-kang-yang-ben-ju-shi/</link><pubDate>Thu, 02 Feb 2023 17:51:08 +0800</pubDate><guid>https://vhiccup.cn/tech/kai-ji-shi-bie-he-dui-kang-yang-ben-ju-shi/</guid><description><p>深度学习模型的训练中，往往因为收集的数据有限(闭集)，在应用推理预测阶段面对真实数据(开集)时会存在表现不好、误识别的问题。比如在CV中的分类模型来说，由于卷积的特性往往会将标签体系外的图片高概率预测成为标签体系内的；nlp中也会存在将领域外的文本语句预测成为领域内的意图；语音唤醒模型中也会经常误唤醒。记录一下一些解决这类问题的方式：</p><p>**开集识别：**Open Set Recognition, 其主要目标就是判别领域内的样本，同时识别出领域外的样本。对比于普通分类、小样本学习、零样本学习在训练数据、和目标均有区别。该OSR 领域内的进展可以参考综述" [论文] Recent Advances in Open Set Recognition A Survey" . 其中OpenMax 是一个比较常见的方法，其主要思想是判断待预测样本的输出特征与训练样本中各个类别的平均特征做计算，根据该距离，利用极值分布的方式调整对于类别的概率，其中调整微调掉的概率为未知类别的概率。OpenMax 不改变模型的训练过程，仅更改特征向量到类别的预测方式，实际上是softmax的一个替换(扩展到N+1类)。</p><p>**对抗样本：**对抗攻击和对抗防御是深度学习中一个研究方向。其中对抗攻击中主要使用的是模型的梯度，通过对正常样本添加微笑的扰动，一般为模型的梯度方向(预测结果改变最大的方向)，使得在样本基本没有变化的情况下，模型给出了错误的结果。其中对抗防御一般的做法是将这些对抗样本添加到模型中训练，从而避免预测错误。Why ReLU networks yield high-confidence predictions far away from the training data and how to mitigate the problem 。 下面图示的二分类样本在整个样本空间中的预测概率分布图，添加对抗样本训练后预测概率黄色部分(接近1)的地方显著减少，预测区域更趋向于真实样本分布。</p><img src="/media/uploads/2023/02/03/plain_two_moons_QICDqeH.png" alt="" style="width:681px;height:270px; max-width:100%;"/><p>**Out-of-domain问题：**在做nlp的时候也面临着OOD的问题，调研中主要有两个方向去进行OOD 问题解决。1 模型增加OOD 的识别能力；2模型提高在IND的能力。</p><p>增加OOD的识别能力的一个代表方法为DRM， 主要有两个点，在最后的线性分类器时添加domain的分类器fd，计算loss误差时用fd来修正；除了新增分类器外，还会用上述类似OpenMax的方式去计算预测特征与模型类别中心特征之间的距离来微调，只不过由于NLP模型大多采用transformer结构，也会参考中间层的特征的距离来微调。</p><p>好的OOD方法离不开一个好的IND模型，因此也有部分工作利用对比学习和对抗样本的方式，提升IND 模型在类别之间的界限，使得同类标注的数据在特征空间中尽量紧凑，预测边界清晰。</p><p>总结：上述的方式都是无监督的方式，若是业务数据相对不是开集，可以采用有监督的方法，收集对应的闭集外数据，讲模型在训练阶段由N分类扩展到N+1类。</p></description></item><item><title>失业之旅</title><link>https://vhiccup.cn/tech/shi-ye-zhi-lu/</link><pubDate>Sat, 13 Aug 2022 22:06:21 +0800</pubDate><guid>https://vhiccup.cn/tech/shi-ye-zhi-lu/</guid><description><img src="/media/uploads/2022/08/13/rrumnx.jpg" alt="" style="float:right; margin:0 0 12px 16px; width:300px; max-width:100%; height:auto;"/><p><strong>书籍名称：《失业之旅》</strong></p><p><strong>简介：</strong></p><p>我和黑猫警长学成归国，公司倒闭，光荣失业。我们决定去一个廉价的地方旅行，把假期和遣散费花掉。</p><p>在东南亚最炎热的一个多月里，我们从新加坡转机抵达越南，从陆路去柬埔寨和泰国，最后从老挝入境中国云南。去了湄公河，吴哥窟，皇宫，寺庙，热带雨林，海岛，山区；坐了大巴，三轮，摩托，飞机，长尾船，溜索，大象；吃了河粉，螃蟹，大虾，冬阴功，春卷，咖喱，烧烤，火锅，蜗牛，青蛤，喝了一肚子各种鲜榨果汁、各国啤酒。当然，也为各国的热带蚊子奉上了丰盛的人血大餐。</p><p><strong>摘要</strong></p><p>旅行不能解决任何实际的问题。修复破损的心，平衡失败的生活，或者重新获得一份工作——这些至少需要每天八个小时的努力。旅行能够让我们分享一些东西。我们之前的人生是不可分享的，此次旅途中的所思也是不可分享的，能够分享的是一些瞬间。我们一起经历了一些瞬间，这些瞬间打通了我们生命经验中的某些关节，思维变得活跃，情绪也逐渐悠远。这值得用文字的形式记录下来。然后呢，继续各自的路。如此而已。</p><p align="right">&mdash;&mdash;靳锦</p><p align="right">&nbsp;</p></description></item></channel></rss>