Hexo博客整理与优化全记录
这篇记录了一次对博客的"大扫除":从 hexo 突然跑不起来开始,一路排查环境、备份源码、修站点配置、整理全部笔记、更换 Markdown 渲染器、重做全站样式,最后补齐框架上缺的功能。每个问题都写了现象 → 原因 → 解决办法,最后一节是还没处理的问题和打算怎么做。
博客环境:Hexo 7.3 + Butterfly 4.13,部署在 GitHub Pages。
一、环境故障
1. hexo 命令全部报错
现象:
123E:\Blog>hexo sERROR Cannot find module 'hexo' from 'E:\Blog'ERROR Local hexo loading failed in E:\Blog
原因:node_modules 被"掏空"了——740 个文件夹只剩 22 个文件,node_modules/hexo 里只有空的 bin/ 和 dist/,连 package.json 都没有。文件夹的修改时间晚于最后一次成功生成的时间,应该是某次中断的 npm 操作、清理软件或 ...
AI_Agent面经总结
税友集团
自我介绍
项目背景?是科研项目还是比赛项目?
天池的推荐系统的项目有提交结果么,排名如何?
毕设那个项目有什么创新性的工作?项目数据集?
对图像数据有没有经验?
项目都是Python完成的么?
游戏天空
LightGMB的Learning to Rank的排序原理?
RAG项目是用Langchain做的?有涉及到几个节点?
(刚开始回答错了,说了只用了一个智能体,所以就问了只用了一个智能体为什么选择用Langchain的方法?)
一个智能体用Langchain没有用到它的优势?
项目中看到有解决知识幻觉的问题,什么是知识幻觉?
有了解过幻觉出现的底层的原因是什么么?
知识库的搭建有实现么?
markdown文档数据的分割是通过大标题么?
使用RAG会使用向量数据库存储,检索的时候至少会选择一个余弦相似度来匹配,为什么不使用普通数据库?向量数据库的优点和缺点?(稀疏向量,即关键词检索和密集向量?)
使用的什么Embedding模型?BGE-small-v1.3-zh模型
使用的什么大语言模型?有试过其他的么?
有测过检索的召回率么?
感觉回答的怎么样?你的查询路由是一个LLM接 ...
hot100心得
哈希(3/3)
1. 两数之和
使用哈希表实现
49. 字母异位词分组
灵神:可以使用带默认值得字典类型defaultdict,还有sorted函数可以给字符串排序,会把字符串拆成字符然后排序,使用完sorted函数需要使用join函数把字符连接起来。
具体实现:用 defaultdict(list) 初始化一个带默认值的哈希表d,用s遍历strs中的元素,直接用sorted函数可以按字符排序,然后再套用join函数合并,赋值给sorted_s,以sorted_s为key,在哈希表中加入value:s。遍历完返回哈希表中的值,并将其转为list类型(list{d.values())。
时间复杂度 O(nmlogm), 其中 n 为 strs 的长度,m 为 strs[i] 的长度。每个字符串排序需要 O(mlogm) 的时间,有 n 个字符串。
空间复杂度 O(nm)
Python 实现
129. 最长连续序列
灵神:使用哈希表实现,遍历哈希表,如果当前元素-1也在哈希表中就直接跳过(continue),等后面遍历到没有更小的连续数的时候再开始计算答案;如果没有更小的连续数了,就初 ...
推荐系统八股总结
精排
推荐算法的5个维度
交叉结构
FTRL:传统时代的记忆大师
FM
解决的问题:FM的前身就是LR,担心一阶特征表达能力弱,而加入了二阶特征交叉。
logitFM=b+∑i=1nwixi+∑i=1n∑j=i+1nwijxixj
新的问题:引入二阶特征交叉后,增加了训练难度,具体体现在以下两点。
如果有n个特征需要两两交叉,增加的权重项
wij
就引入了
n2
个要训练的参数;训练参数增加,就会需要更多的训练数据,否则就容易造成过拟合。
只有
xi
和
xj
同时不会0,
wij
才会得到一次训练机会,由于推荐系统类别特征高维稀疏的特点,所以符合条件的
xi
和
xj
特征少之又少,导致
wij
得不到充分的训练。
基于以上问题,就提出了FM,公式如下:
...
Git学习笔记
引入
教程简介
学习方式
图形演示+操作
常用功能
仓库管理、文件管理、分支管理、标签管理、远程操作
进阶功能
使用开发工具来集成Git软件和访问GitHub,Gitee这样的第三方代码托管平台
功能指令
add、commit、log、branch、tag、remote、status
为什么学习Git软件
为什么要学习Git软件?
资源管理:人力资源、代码资源、文档资源
代码资源:.html, .css, .js, .java, .py, .c等
文档资源:需求文档、设计文档等(如doc、ppt、xls、img、pdf、zip等)
这些项目文件都需要专门的软件管理。这样的软件就叫SCM软件(Software configuration Management):
软件配置管理(SCM)是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。
为什么要学习Git软件?
集中式版本控制
VSS软件(visual sourcesafe)微软早期开发的版本控制系统。集中式版本控制,服务器 ...
Transformer常见八股及手撕
Transformer详解:Transformer模型详解(图解最完整版) - 知乎 (zhihu.com)
手写Attention讲解视频:手写self-attention的四重境界-part1 pure self-attention_哔哩哔哩_bilibili
手写Transformer Decoder讲解视频:一个视频讲清楚 Transfomer Decoder的结构和代码,面试高频题_哔哩哔哩_bilibili
常见八股
Transformer 的 attention 除以根号 k 的原因
防止点积过大导致softmax梯度消失
为什么是
dk
而不是其他?
transformer的结构是什么?
为什么transformer用LN而不用BN?
Transformer使用Layer Normalization(LN)而非Batch Normalization(BN),主要有以下原因:
序列长度可变性
Transformer处理变长序列(如NLP中的不同长度句子)
BN在batch维度归一化,但同一特征在不同序列位置具有不同统计意义 ...
搜广推面经总结
常见面试问题
LightGBM和XGBoost的联系与区别(可以引申到Boosting和Bagging)
如何解决过拟合?(可以引申到L1/L2正则化的区别)
Shared bottom、MMoE、PLE的联系以及演进过程
高频八股
1、AUC/F1
2、Transformer(encoder/decoder/attention/masked机制常见)
3、优化器
4、L1/L2正则化
5、lightgbm/xgboost等树模型(这个如果项目用到被问到的几率非常大,一般就是讲区别与联系)
6、激活函数
7、归一化(尤其是LN和BN区别)
8、推荐的整个流程,召回/粗排/精排典型模型
9、过拟合/欠拟合
10、dropout
11、bagging和boosting
12、bert
13、损失函数
14、准确率/召回率/精确率
15、梯度消失/梯度爆炸
16、NDCG
17、word2vec
18、LR/SVM等
搜广推最高频八股(一)
1.评估特征重要性有哪些方法
2.auc 的含义,怎么计算,以及 guac
3.过拟合的解决办法(围绕模型结构,特征数,样本处理,L1L2 正则化,dr ...
Python之ACM输入
单行输入
1234if __name__=="__main__": ls = list(map(int,input().strip().split())) ls.sort() print(" ".join(map(str,ls)))
多行输入
不确定行
1234567if __name__=="__main__": while True: try: a,b = map(int,input().strip().split()) print(a+b) except EOFError: break
确定行数
指定结束符号
123456789if __name__=="__main__": while True: try: a,b = map(int,input().strip().split()) if a==0 and b==0: break print(a+b) except EOFError: ...
天池新闻推荐代码解读_2
总体分析
两阶段推荐系统架构
1召回层 (Recall) → 排序层 (Ranking) → 重排层 (Reranking)
召回策略
ItemCF召回:基于物品相似度的协同过滤
相似度计算:改进的余弦相似度 + 时间衰减
优点:个性化强,能发现长尾物品
热度召回:基于时间窗口的热门推荐
24小时时间窗口过滤
优点:实时性强,覆盖热门内容
排序模型
模型类型:LightGBM排序模型(LGBMRanker)
训练方式:Pairwise排序学习
特征工程:
用户特征:设备、地区、OS等
物品特征:类别、字数、创建时间
交叉特征:时间差等
技术亮点
负采样策略解决类别不平衡
时间衰减因子提高推荐实时性
MRR指标评估推荐质量
多路召回融合提高覆盖率
评估指标
MRR(Mean Reciprocal Rank):衡量推荐排名的质量
召回率:衡量召回阶段的效果
特征重要性:分析模型决策依据
代码解读
导入库和基础设置
实现功能:
导入库:包括系统库和数据分析库(pandas,numpy),还有机器学习库
忽略所有警告(需要import warnings)
设 ...
天池新闻推荐代码解读_1
data.py
1234567891011import argparseimport osimport randomfrom random import sampleimport pandas as pdfrom tqdm import tqdmfrom utils import Logger # 从自定义工具模块导入日志工具random.seed(2020) # 设置随机种子保证可重复性
123456789# 命令行参数解析parser = argparse.ArgumentParser(description='数据处理')parser.add_argument('--mode', default='valid') # 模式参数,默认'valid'(线下验证)parser.add_argument('--logfile', default='test.log') # 日志文件名参数args = parser.parse_args() # 解析命令行参数m ...
