✨ **规则一:总结写入新文件**
每次总结都要写入新文件,路径是 `project_summary/{file_name}_summ.md`。这样方便随时回顾,工作更有条理!📂📝
✨ **规则二:明确项目目标**
为每个项目设定明确的目标,比如“开发一个SaaS网站”,让每一步操作都有方向感!🎯
✨ **规则三:输入指令**
- 输入 1:表示解决这个问题。(每次粘贴终端,浏览器等报错信息之后,cursor还需要你输入内容才会回复,直接写个1快捷方便。下面2也是同理。)
- 输入 2:表示总结刚刚解决的问题,并写入新文件,路径在 `project_summary/{question_name}.md`。快速记录,绝不错过每一个灵感!💡
✨ **规则四:更新 README**
每次解决完一个问题,记得更新`readme.md`,保持项目文件的同步和整洁!📘
有了这些小技巧,使用cursor的效率立马翻倍!快去试试吧,让编程生活更轻松!🤓💻
🔗 #Cursor技巧 #编程效率 #工作流优化 #程序员日常 #效率提升秘籍
```
每次总结都写入新文件,路径在 project_summary/{file_name}\_summ.md
本项目的目标是:{自定义,如:开发一个saas网站}
输入 1 表示解决这个问题
输入 2 表示总结刚刚的解决的问题,并写入新文件,路径在 project_summary/{question_name}.md
每次解决完一个问题,需要更新 readme.md
```
《揭秘 VPN 背后的黑灰产组织》,https://paper.seebug.org/3062/,这篇文章介绍了如何通过网络空间“行为测绘”和”交叉测绘”锁定攻击者身份和网络分布,进而分析攻击对象和攻击手法,找到了活跃在中国大陆的两个黑客组织。文章中提到几个有趣的点:
1)攻击者比较喜欢控制家用路由器和摄像头,存在攻击行为的 16582 个 IP 节点中,一小半都属于这类
2)控制了家用设备后,会进行“网络资产”拓展,通过端口扫描、漏洞识别、后门注入等一系列方式拓展更多受控终端
3)攻击行为集中在网络信息收集(爬虫、SQL 注入等)和恶意扫描,恶意扫描的目的是拓展资产;而信息收集,大概率是为了出售数据,以此牟利
4)整个空间测绘的关键围绕 IP 危险性定级、证书收敛(识别核心攻击源)、攻击手法识别(攻击意图分析)等操作,经验可复用性还是比较强的
传统的网络攻击行为分析,依赖恶意样本和攻击现场,因此会部署超大量的网络蜜罐抓取特征,这篇文章算是提出了一个更开阔的思路,使用空间测绘从网络分布上定位源头,不过这比较依赖丰富的样本库,例如需要对海量的网络 IP 做标记、对各类攻击手法有深入了解,并且要求掌握攻击流量。
我特别好奇攻击流量是如何掌握的,难道是在 BGP 节点上部署了流量侦测模块?
#程序员
看到一个超炫酷的量子纠缠实现效果,其原理是通过 window.getScreenDetails() 获取窗口详细位置,然后通过 LocalStorage 共享窗口信息来实现的,这个创意太赞了。作者是 x.com/_nonfigurativ_
看到一个超炫酷的量子纠缠实现效果,其原理是通过 window.getScreenDetails() 获取窗口详细位置,然后通过 LocalStorage 共享窗口信息来实现的,这个创意太赞了。作者是 x.com/_nonfigurativ_
《向量数据库》,https://guangzhengli.com/blog/zh/vector-database/,这是一篇值得阅读的长文,它介绍了向量数据库的方方面面,包括 Vector Embeddings、Similarity Search、Similarity Measurement、Filtering 等等,单纯从实现角度来看,技术复杂度并不高。
短短几个月,各大数据库厂商也增加了对向量的支持,https://github.com/openai/openai-cookbook/tree/main/examples/vector_databases,可以在这篇 OpenAI 写的文档里找到各自对应的代码参考。
但随着 LLM 底层能力的提升,如今的 ChatGPT 已经支持了 128k 的上下文,而且在 GPTs 中也默认提供了检索能力,这波操作,针对大部分需求场景来说,可以直接免除对向量数据库的调用了。随之而来的,也是向量数据库风投的“降温”。
《向量数据库凉了吗?》,https://mp.weixin.qq.com/s/0eBZ4zyX6XjBQO0GqlANnw,这篇文章给出了一个观点:“专用向量数据库陷入了一个死局之中:小需求 OpenAI 亲自下场解决了,标准需求被加装向量扩展的现有成熟数据库抢占,超大需求也几乎没什么实现的门槛。留给专用向量数据库的生态位也许能足以支持一家专用向量数据库内核厂商活下来,但想做成一个产业是不可能了。”,感兴趣的也可以读一读。
《如何阅读一篇论文》,https://web.stanford.edu/class/ee384m/Handouts/HowtoReadPaper.pdf,看到 Srinivasan Keshav 教授在很多年前就写了一篇文献,给研究人员和论文审稿人提出了一些建议,也是“三遍法”,更为系统和详细:
1)5~10min,鸟瞰纸张,回答五个问题:类别/上下文/正确性/贡献点/明晰性
2)最多 1h,看图表和参考文献,确认准确性,事实依据是否充分;善用划词评论,跟论文作者对话
3)初学者 5h,老手 1h,假设自己是创作者,以同样的命题重新实现论文,对比本篇论文的创新性,审视细节、挑战内容
也有人说还有第 0 步,那就是上社交媒体看看,有多少人赞同/不赞同这篇论文🐶
@Airyland 真的格局很大,把 https://GPTsHunter.com 的 GPTs 数据共享出来,于是出现了 https://GPTsToday.com https://GPTs.works 等优秀的网站。
#程序员
Distil-Whisper:让语音识别的速度提高 5.8 倍,参数减少 51%,准确度保持在 99%。
Whisper 在语音识别方面表现卓著,但是它有一个明显的缺点:训练出来的小模型支持的语言比较少,而大模型推理速度又很慢。如果你有海量的数据需要处理,或者对实时性要求略高,那使用 Whisper 可能会让你比较头疼。
你可以使用工程手段来加速推理,例如将语音分片后并发处理然后合并结果,但这里涉及到本地计算资源瓶颈的问题,以及合并分片时容错处理的问题,工程复杂度比较高。
《Distil-Whisper: Robust Knowledge Distillation via Large-Scale Pseudo Labelling
》,https://arxiv.org/abs/2311.00430,这篇文论提到了一个优化方案,它使用 Whisper 的 Large-v2 model 生成了一系列的 soft targets(也就是概率分布),然后复制 Whisper 网络的第一层和最后一层解码器,最后生成了一个更小、更快效果更好的蒸馏模型 Distil-Whisper。论文数据写的是:速度提高了 5.8 倍,参数减少了 51%,准确度保持在 99%。
这个模型的效果之所以不错,主要还是得益于训练数据的完备,它结合了九个公开可用的语音识别数据集,合并后包含 21170 小时的语音数据,涵盖超过 18260 名说话者和 10 个不同的领域;自从 Whisper 大力出奇迹(它从互联网爬取了 68w 小时的数据,未公开)以后,相信后续语音领域的论文都会配置更庞大的数据集。
Distil-Whisper 目前开源在 Hugging Face 上,模型地址:https://huggingface.co/distil-whisper/distil-large-v2,同时还提供了一个可在线测试的 Demo:https://huggingface.co/spaces/Xenova/distil-whisper-web,这个 Demo 会把模型下载到本地,然后通过 WebGPU 直接在网页上跑起来,测试了下效果,还是挺不错的。
目前仅支持英文,如果想让它支持中文,需要使用同样海量的中文语料数据,重新做一次知识蒸馏,但我觉得即便是这样做,效果也不一定好,因为 Whisper 本身对中文、韩语等支持就不太优秀,这个信息可以从 Whisper 的论文中找到数据支撑。
下面这个视频是 Whisper 和 Distil-Whisper 的对比效果:
Invalid media: video
Distil-Whisper:让语音识别的速度提高 5.8 倍,参数减少 51%,准确度保持在 99%。
Whisper 在语音识别方面表现卓著,但是它有一个明显的缺点:训练出来的小模型支持的语言比较少,而大模型推理速度又很慢。如果你有海量的数据需要处理,或者对实时性要求略高,那使用 Whisper 可能会让你比较头疼。
你可以使用工程手段来加速推理,例如将语音分片后并发处理然后合并结果,但这里涉及到本地计算资源瓶颈的问题,以及合并分片时容错处理的问题,工程复杂度比较高。
《Distil-Whisper: Robust Knowledge Distillation via Large-Scale Pseudo Labelling
》,https://arxiv.org/abs/2311.00430,这篇文论提到了一个优化方案,它使用 Whisper 的 Large-v2 model 生成了一系列的 soft targets(也就是概率分布),然后复制 Whisper 网络的第一层和最后一层解码器,最后生成了一个更小、更快效果更好的蒸馏模型 Distil-Whisper。论文数据写的是:速度提高了 5.8 倍,参数减少了 51%,准确度保持在 99%。
这个模型的效果之所以不错,主要还是得益于训练数据的完备,它结合了九个公开可用的语音识别数据集,合并后包含 21170 小时的语音数据,涵盖超过 18260 名说话者和 10 个不同的领域;自从 Whisper 大力出奇迹(它从互联网爬取了 68w 小时的数据,未公开)以后,相信后续语音领域的论文都会配置更庞大的数据集。
Distil-Whisper 目前开源在 Hugging Face 上,模型地址:https://huggingface.co/distil-whisper/distil-large-v2,同时还提供了一个可在线测试的 Demo:https://huggingface.co/spaces/Xenova/distil-whisper-web,这个 Demo 会把模型下载到本地,然后通过 WebGPU 直接在网页上跑起来,测试了下效果,还是挺不错的。
目前仅支持英文,如果想让它支持中文,需要使用同样海量的中文语料数据,重新做一次知识蒸馏,但我觉得即便是这样做,效果也不一定好,因为 Whisper 本身对中文、韩语等支持就不太优秀,这个信息可以从 Whisper 的论文中找到数据支撑。
下面这个视频是 Whisper 和 Distil-Whisper 的对比效果:
Invalid media: video
OpenAI 开源的 Whisper 大模型,https://github.com/openai/whisper,基本上解决了 ASR (Automatic Speech Recognition)的问题,包括语音识别、翻译、VAD 检测等,其效果与各大厂收费的产品相比,不相上下,也算是作为一个搅局者加入到了整个市场。
云厂商识别 1 小时的语音,标价大概在 1~3 元(参考国内云厂商计费),而 Whisper,最大的模型也就是 1.5B 参数(tiny 仅 39M,大小 ~1Gb),本地部署也就消耗下电费。
关于 Whisper 模型,《Robust Speech Recognition via Large-Scale Weak Supervision》,https://arxiv.org/pdf/2212.04356.pdf,这篇论文给出了详细的分析,从架构设计来看,它是一个标准的 Transformer encoder-decoder 架构,没有增加大的创新,之所以效果如此好,主打一个“大力出奇迹”。
它从互联网抓取了 68w 小时的数据进行训练,甚至都没有经历微调阶段和增强学习阶段,预训练模型默认好用。之前之所以没人这么干,是因为音视频数据一般都存在版权问题,要抓取 68w 小时如此庞大规模的数据量,很可能会涉及到了版权纠纷,另外,作者在论文也没有透露数据来源。当然,它公开了代码、训练过程和数据等情况,其有效性和价值是不可否认的。
这篇论文中提到,当前任务处理效果最好的是英语,基本上已经接近人类的水平(词错率 5.8%),但是在韩语、中文上,效果还是要差一些,仍有优化空间。更多详情可以听一听李沐在 B 站的《OpenAI Whisper 精读》,聊得比较有意思,https://www.bilibili.com/video/BV1VG4y1t74x
推荐 B 站上的一个合集《AI 论文精读系列》,https://www.bilibili.com/video/BV1H44y1t75x,主讲人是亚马逊资深首席科学家李沐,讲的比较清晰,目前内容还在持续更新中。
当前这个视频聊的是“如何读论文”,我总结下来是这么个「三遍阅读法」:
1)扫一眼:看标题、摘要、结论,确认研究方向是否与自己的研究方向匹配
2)圈重点:理出重要的图、表,圈出相关文献,读不懂,先去读引用的文献
3)问问题:论文提出了什么问题?用什么方法来解决这个问题?实验是怎么做的?
我的思路跟他还有一些差异,除了上面三个步骤,还会将我消化的内容整理好,然后输出给 ChatGPT,让 AI 结合论文来评价我理解的对不对。如果觉得有价值,还会分享到社交媒体,跟大家交流,确实也能收到不少优质的反馈。
#程序员
如果你想对站点内容进行爬虫,还有一条最简洁的系统原生命令可以搞定:
wget --random-wait -r -p -e robots=off -U mozilla Website_URL
加上 -nv 或 --no-verbose 参数后,输出的内容会变得更加简洁;加上 --accept-regex 参数后,你可以根据正则来过滤你需要的 uri。
下面是爬取 babel 站点文档的一个演示:
如果你想对站点内容进行爬虫,还有一条最简洁的系统原生命令可以搞定:
wget --random-wait -r -p -e robots=off -U mozilla Website_URL
加上 -nv 或 --no-verbose 参数后,输出的内容会变得更加简洁;加上 --accept-regex 参数后,你可以根据正则来过滤你需要的 uri。
下面是爬取 babel 站点文档的一个演示:
#程序员
gpt-crawler,https://github.com/BuilderIO/gpt-crawler,一款可以将网站内容全部爬取下来,并转换成可以作为 GPTs 学习的结构化知识的工具。
例如你想制作一个数字人分身,不妨把自己在社交媒体或者个人博客的内容先抓取下来,提交给 ChatGPT 作为储备知识。
顺便推荐下它背后使用的技术框架,crawlee,https://crawlee.dev,它是一个网络爬虫工具,也是一款浏览器自动化工具,在实现上,它提供了 DOM 解析能力、无头浏览器模式、异常状态码处理、队列和存储,以及大量的配置项来增强爬虫。它也是一款开源产品:https://github.com/apify/crawlee
gpt-crawler,https://github.com/BuilderIO/gpt-crawler,一款可以将网站内容全部爬取下来,并转换成可以作为 GPTs 学习的结构化知识的工具。
例如你想制作一个数字人分身,不妨把自己在社交媒体或者个人博客的内容先抓取下来,提交给 ChatGPT 作为储备知识。
顺便推荐下它背后使用的技术框架,crawlee,https://crawlee.dev,它是一个网络爬虫工具,也是一款浏览器自动化工具,在实现上,它提供了 DOM 解析能力、无头浏览器模式、异常状态码处理、队列和存储,以及大量的配置项来增强爬虫。它也是一款开源产品:https://github.com/apify/crawlee