Craft
4511
10 分钟
之前看到Eric Fu发布的《狼与香辛料》中的赫萝的LoRA 模型。心里燃起一股冲动,谁不想为自己老婆炼一份模型呢,赶紧搜搜看怎么做。从基本一无所知到训练成功花了一天多,记录过程供大家参考。
完成这个事需要:
- 对 Python 编写和环境搭建有一定了解,ML 项目或者老项目免不了有点依赖冲突。为了避免依赖混淆,我给每个工具都准备了独立的 venv。
- 如果电脑是 Nvidia 支持 cuda 的 GPU,记得每个项目安装依赖前先把 pytorch-cuda 给装了,这个用 GPU,pytorch 是用 CPU 的。安装参考这个讨论。
- 一台不错的电脑,即使最后训练配置不够,是用 colab 之类在云上跑,数据集预处理之类还是本地跑比较方便。最后我是在本地炼的。装的是 pytorch-cuda,最后 torch 还是选择了用 CPU 跑,不是很懂怎么回事,但也有好处:虽然慢但不用担心内存溢出。
用到的工具/项目:
谢谢乔伊的视频让我对无线电产生了兴趣。
补一补专业知识
载波(carrier):作为传输基底的纯净的固定周期(频率)的高频率信号。
调制(modulation):动词或动名词,一种信号处理方式,通过往指定的载波中嵌入真正想传递的信号(信息)
- 为什么要调制:
- 发信号的天线长度要不小于信号波长十分之一,高频波长短,容易用较短的天线辐射出去。
- 通过调制人工将不同信号隔离在不同频率,信号不串台。
- 调制分为数字调制和模拟调制,指的是原始信息的形式
- 数字是01(比如无线网卡)
- 模拟是个连续的波(比如麦克风直连电台发信器)。
- 模拟调制的几种方式中有我们收音机上会看到的 FM、AM,英语字面缩写。
- Frequency modulation 是调频(频率越高图示的线越横向密集,声音越尖)。
- Amplitude modulation 是调幅(幅度越大图示的线谷峰高低差越大,声音越响)。
SSTV 格式
SSTV(slow-scan television,慢扫描电视)是一种将图片信息嵌入音频信号(并发送)的方式。SSTV 选用的方式是 FM,把图片的像素亮度映射为频率,越亮频率越高,彩色图片是发送颜色各自的亮度。
前言
Puntgun是我写的一个命令行工具,Python 语言,帮助推特账号管理自动化。
从2022年二月底开始写,到2022年十一月底碰到一个对我来说很难实现的编程问题,
加上当时马斯克成功收购推特,之后心思就不再它上面了。2023年2月9日,推特不再提供免费 API,算是帮我下手了结了这个项目。
(从十一月的新闻我就判断马斯克不倾向于开放生态,不利好我这项目,你看果然吧,但确实没想到能做这么绝。)
这是我第一个尝试运营社区的项目,然后事情还没开始就结束啦。😂
项目框架已经写好了,可以自定义规则,示范用的规则没写几条就碰到了那个难题,算是基本实现目标吧。
微服务开发下的 build 困扰
前提:Java 开发,Maven 做依赖管理,JetBrains IntelliJ IDEA 做 IDE
在 Java 微服务开发下,项目开发结构(repo)可能有两种:
- 所有模块(maven module),包括服务(Spring Application)和自己开发的依赖模块,都塞在一个项目里。
- 方便管理各模块间的关系,方便写代码
- git log 很乱很多,但也方便集中检查
- 服务和自己开发的依赖模块独立在不同项目里
- 不方便管理模块关系
- git log 少又清晰,只有该组件相关的提交
(以我的工作经历来看,两种结构怎么选好像和开发组的人员结构有关:如果负责不同服务的小组紧密围绕在开发组长周围,选集中式的面儿大;如果小组间相互不太紧密,比如这个项目是不同部门联合开发之类,选分散式的面儿大。)
Life
5956
12 分钟
希望读者从文中获益
前几天一技术群在讨论话题“是否要接受父母决定的道路(就业)”,我把该话题理解为“是否该接受父母的人情”(实际上该话题可分解为“是否接受并顺从父母的决定”+“是否使用父母的人情/是否对父母欠下人情债”),叭叭叭一顿说,激起不少反对声音。我试着解释,但没能解释清楚,留下一地鸡毛就逃走了。我们搞开发的喜欢以文档为共识和契约,于是我打算用这篇文章讲清楚我个人对于人情及相关概念的理解。