BLCL的博客小馆

归档 · 2023

首页

关于

归档

loading..
Python后端

一日一技:分布式系统的低成本权限校验机制

经常关注未闻Code的同学都知道,我做了一个叫做GNE的开源项目,它能够自动提取新闻类网页的正文。效果远远好于市面上其他的开源新闻提取工具。大家可能不知道,GNE还有一个高级版,叫做GnePro。它可以让你输入URL就自动提取新闻的正文,提取的字段比GNE多得多。并且已经在8个国家13万个网站上做过测试,识别准确率100%。GnePro是使用K8S搭建的爬虫集群。背后有几十台服务器,通过一个网关做负载均衡。在设计GnePro权限机制的时候,我希望它能够尽量简单,尽量不依赖第三方的组件。常规的权限校验机制一般是这样的,用户登录以后,在Cookies里面会有一个SessionId.当用户要查询数据时,往后端发起请求。后端从请求中拿到这个SessionId,到Redis或者其他数据库中,查询到这个用户的Sess..

更多
算法

lora原理与实现

介绍Lora,是微软出的一种在低资源场景下进行微调大模型的实现方式,在transformers里有peft这个包进行调用,它通过固定预训练模型权重并只训练新增lora层来实现微调,目前其在比如Baichuan2、ChatGLM上都有相关资料,更多介绍可自行搜索了解。 简单理解其简单理解实现方式为,比如qkv的linear为768*768(更大模型可能会更大),那lora通过新增两个linear(lora_A和lora_B),引入一个超参r来降低训练参数量,其伪代码如下: 1234567891011in_feature, out_feature = 768, 768# oldself.q = nn.Linear(in_feature, out_feature)# Loraself.lora_A = nn.L..

更多
stdout

query git notes with Github GraphQL

git notes is an interesting feature, you can use it like git notes add -m "hello test git notes" git push origin 'refs/notes/*' Github supported them back in 2010 then gave up LMAO. If you need to retrive them with Github API, try GraphQL like this { repository(owner: "est", name: "snippets") { refs(refPrefix:"refs/notes/",first:1) { ..

更多
loading..
TechConfigurationServerHomeLabPVENAS

HomeLab | 4 GPU 硬解新境界:LXC 环境下玩转 JellyFin 核显硬解转码

请注意!!! 本系列的文章是断断续续写的,本文大部分内容最早写于2023年1月,可能有些信息已经过时! 别问,问就是写了一半然后放草稿箱里长草了。 0x00 引言 HomeLab 系列回顾: HomeLab | 1 Proxmox Virtual Environment(PVE) 安装及配置 HomeLab | 2 OpenMediaVault 安装 & 硬盘直通 & 相关配置 HomeLab | 3 下载观影一条龙:NASTool/JellyFin/qBittorrent 半自动化家庭影院搭建指北 上一篇博客中,我们介绍了 JellyFin,这是一个免费开源的媒体中心软件,可以用来管理和播放您的个人媒体库,实现方便快捷灵活的观影体验。 其中,JellyFin 串流播放如果编码不适..

更多
loading..
算法

document-QA-layoutLMv2

介绍书接上文,layoutLM微调FUNSD数据集介绍了layoutlm和layoutxlm如何做named entity recognition,以及多模态-CLIP和多模态-字幕生成介绍多模态是如何融合的,本文继续基于layoutLM系列,基于huggingface document_question_answering来进行debug是如何实现的。 更新:针对layoutxlm在docvqa_zh上的训练代码已经放到document-qa啦。 原始数据在这之前,都是在介绍如何处理数据,也即如下代码: 123456789101112131415161718#from datasets import load_datasetdataset = load_dataset("nielsr/docvqa_12..

更多
loading..
Drone

无人机基础知识

Foreword 无人机的一些基础知识,特指四轴相关 结构 翼型 按照结构或者工作原理来区分 固定翼 多旋翼 四轴 六轴 八轴 直升机 伞翼、扑翼、飞艇 非常小众的机型 复合翼 四轴垂起固定翼 飞米的Manta,三轴和固定翼的混合机型,三轴垂起,机翼电机可倾转 构型 X型 控制复杂,但速度更快 +型 控制简单,但是速度慢,基本被淘汰了 H型 类似X,结构上中部吃力比较多 轴距 无人机轴距是指在无人机飞行中,机身前后两个旋翼电机轴之间的距离 不包含桨叶的长度 450 350/330 250 动力系统 螺旋桨 正桨,反桨,主要是为了抵消扭矩,克服自旋。正反是对旋转方向的描述,吹风都..

更多
stdout

VPS推荐:Hosteon

继续上次 Racknerd 之后发现这家还行。写了个爬虫扒了一下各色配置,独立服除外,有需要的自取 pid spec Disk Bandwidth Annual $ 1 1C512M 5GB 100Mbps $27.00 7 6C8G 100GB 100Mbps $270.00 77 1C1G 10GB 1Tbps $21.00 78 2C1.5G 20GB 2Tbps $36.00 79 2C2G 25GB 3Tbps $45.00 80 2C2.5G 30GB 4Tbps $54.00 81 3C3G 40GB 5Tbps $63.00 83 3C5G 50GB 8Tbps $90.00 84 6C10G 120GB 12Tbps $180.00 85..

更多
loading..
stdout

太阳系天体的 unicode 符号

发现Astronomical symbols,Planet symbols 及 Alchemical symbol IAU 七金 符号 名 name 星期 七曜 备注 金 ☉︎ 太阳 Sun 星期天 日曜 银 ☾ 月球 Moon 星期一 月曜 也可以画成 ☽︎ 或者月相 🌑︎🌒︎🌓︎🌔︎🌕︎🌖︎🌗︎🌘︎,🌚︎🌛︎︎🌝︎︎🌜︎︎ H 汞 ☿ 水星 Mercury 星期三 水曜 赫耳墨斯(Hermes),罗马人称 Mercury现代人称「爱马仕」的双盘蛇带翼权杖 Caduceus ☤ V 铜 ♀ 金星 Venus 星期五 金曜 维纳斯 E 🜨 地球 Earch Bible 里说的四条河把地球分成四洲另外的符号是 ♁ 表示十字架钉个球 glo..

更多
Git

一日一技:如何同时在多个分支写代码?

当我们在维护公司项目时,可能会遇到这样的场景:我正在开发一个新功能,突然需要修一个Bug。这个时候,有些同学是这样做的:12345678git add .git commit -m 'WIP'git checkout -b 新的分支名...新的代码修改完成并push以后...git checkout 老分支...继续开发...更有一些经验的同学,可能会这样写:12345git stashgit checkout -b 新的分支...新的代码修改完成并push以后...git checkout 老分支git stash pop但如果在修这个Bug的时候,又来了一个更紧急的Bug需要修怎么办?到后面很容易就把前面的代码搞忘了。其实我们有更好的办法,那就是使用git worktree命令。这个命令甚至可以让你同..

更多
loading..
Python

一日一技:警告但不禁止,遗留代码的优化策略

在之前的多篇文章中,我都反复告诫大家,不要滥用字典来传大量数据。因为当你的函数收到一个字典的时候,你根本不知道这个字典里面有哪些Key,你必须有一层一层往上看,找到所有尝试往字典里面添加新Key的地方,你才能知道它总共有哪些Key。但是,在正常公司项目中,我们可能会需要维护一些历史遗留代码。代码规模大,函数调用层级非常深。并且之前的人已经使用字典来传递了大量的数据。短时间内,我们没有办法直接把字典改成Dataclass。那么我们能做的,就是尽量避免后续的维护者往里面加入新的Key。我以前遇到过一个项目,它有一个字典,刚刚开始初始化的时候,只有5个Key。这个字典作为参数被传入了很多个函数,每个函数都会往它里面加很多个Key。到最后,这个字典里面已经有40多个Key了。对历史遗留代码的修改,必须要谨小慎微,..

更多
12