4
Bert 的结构
BERT(Bidirectional Encoder Representations from Transformers)是一种基于Encoder-only架构的预训练语言模型。BERT模型的结构与Transformer中的编码器几乎一致,都是由多个编码模块堆叠而成,每个编码模块包含一个多头自注意力模块和一个全连接前馈模块。
StructBert 和 Bert 的区别
StructBERT 是阿里巴巴在BERT基础上提出的改进模型,核心思想是通过显式建模句子和词级别的结构信息来增强BERT的语义理解能力。以下是它与原始BERT的主要区别:
1. 预训练任务的改进
(1) 词级别结构建模(Word Structural Objective)
• 原始BERT:仅通过Masked Language Model (MLM) 预测被遮盖的词。
• StructBERT:新增词序预测任务(Word Order Prediction):
• 随机打乱输入句子中部分词的顺序(如15%的词),要求模型预测原始顺序。
• 目的:显式学习词与词之间的语法和局部依赖关系。
(2) 句 ...
其他
你认为目前AI技术发展过程中还未被解决的,且你未来希望去作为科研目标解决的最重要问题是什么?
我认为当前最亟待解决且值得投入毕生精力的核心问题是:如何让AI系统在保持强大生成能力的同时,既能够精准理解并执行人类的复杂意图,又能在资源受限的环境中高效运行。这个问题的本质在于破解智能生成与可控性、计算效率之间的根本矛盾。我亲历过Stable Diffusion生成图像时难以精确控制的挫败,也深刻体会过将巨大参数模型部署到本地时的无力感。这些痛点让我意识到,未来的突破方向应该是构建新一代"精准而节俭"的AI系统。
上述问题现在全球科研界完成到了什么阶段以及有什么局限性?你觉得是否有新方法可以解决?
当前进展与局限性
可控性(Controllability)
现状:大型语言模型(LLMs)在生成内容时,往往难以严格遵循用户的复杂指令或约束。
PromptLayer
进展:研究者提出了如RuleR等方法,通过对已有数据进行规则化再利用,提升模型对结构性和关键词等规则的遵循能力。
PromptLayer
局限:当前方法多聚焦于格式和关键词等浅层规则,尚未能有效处理语义 ...
Algorithm
未读
能用动态规划解决的问题,需要满足三个条件:最优子结构,无后效性和子问题重叠。
Dynamic Programming
DP的有几种求解方式?
动态规划的编程求解方式主要有以下 4 种经典实现形式,每种各有特点和适用场景:
1. 自顶向下递归 + 备忘录(Top-Down with Memoization)
实现方式:递归调用 + 存储中间结果
核心技巧:@cache / @lru_cache 装饰器或手动建字典
示例(斐波那契数列):from functools import cache@cachedef fib(n): return n if n < 2 else fib(n-1) + fib(n-2)
优点:代码直观,接近数学定义
缺点:递归深度限制,函数调用开销
2. 自底向上迭代(Bottom-Up Tabulation)
实现方式:从基础case逐步填充DP表
典型结构:数组/矩阵 + 循环嵌套
示例(0-1背包问题):def knapsack(values, weights, capacity): n = len(values) dp ...
图论
BFS
腐烂的橘子
所谓广度优先搜索,就是从起点出发,每次都尝试访问同一层的节点,如果同一层都访问完了,再访问下一层,最后广度优先搜索找到的路径就是从起点开始的最短合法路径。
Q:为什么这题不用DFS用BFS?
A:这道题要求返回直到网格中没有新鲜橘子为止所必须经过的最小分钟数。实际上就是求腐烂橘子到所有新鲜橘子的最短路径。因为BFS可以用来求最短路径问题。BFS先搜索到的结点,一定是距离最近的结点;而DFS会先往深度更深的方向搜索,某些离起点更近的点可能因为上一次深搜回退被搜索,另外,DFS为了保证一个点不被重复搜索,离起点更近的新鲜橘子被绕弯路搜到后,就不会再被从起点出发更近的路径搜索,导致得到的最短路径比真实的最短路径长。
Q:多个起点的BFS如何处理?
A:起始时以每个腐烂橘子作为起点都做一次广度优先搜索的方法过于耗时,一种比较好的方法是多源广度优先搜索。假设起始的腐烂橘子是从一个超级源点扩散而来的,即从超级源点开始做广度优先搜索,刚开始的时间为-1,在时间为0的时候把起始的腐烂橘子变成腐烂句子,然后继续向下一层搜索。
为了确认是否所有新鲜橘子都被腐烂,可以用 ...
思考题
攻略:https://www.cnblogs.com/nosae/p/17045249.html#测试
计算机可以没有寄存器吗?
如果没有寄存器, 计算机还可以工作吗? 如果可以, 这会对硬件提供的编程模型有什么影响呢?
理论上可以。有这些没有寄存器的架构:
Memory-Only Architecture: The computer would rely entirely on main memory or a cache-like structure to perform all operations.
Instructions would fetch operands directly from memory and write results back to memory.
Examples include early computers like the EDVAC or von Neumann architecture models before registers became commonplace.
Stack-Based Architectu ...
gcc
使用指定的gcc
Q:直接在命令行中设置环境变量并运行脚本 or 在脚本内部设置环境变量时?
A:一般直接在命令行中设置环境变量并运行脚本。如果这样,CC 和 CXX 环境变量在执行脚本前已经被设置,并且这些变量会在脚本执行期间生效。相比之下,在脚本内部设置环境变量时,这些变量只在脚本的执行上下文中有效,并不会影响调用该脚本的父 shell 会话。如果脚本中有子进程或其他命令需要使用这些环境变量,它们可能不能正确继承这些变量。
export CC=...export CXX=...
编译自己的glibc gcc clang
gcc特定版本Linux源码编译安装 (以gcc-8.5.0为例)
How to compile my own glibc C standard library from source and use it?
如何使用新的glibc来编译自己的程序
编译glibc报错
https://stackoverflow.com/questions/76079071/when-i-compile-glibc-2-28-with-the-make-command ...
Compiler
未读Lexical Analysis
Thompson’s Construction
It is easy to design data structure of a NFA with Thompson’s Construction.
Does Thompson’s algorithm produce optimal NFAs?
Evergreen Skills
技术栈
go-stock: 这是一个Go + Vue/NaiveUI + Wails技术栈的桌面应用,结合了本地AI模型和金融数据API,专注于股票分析的隐私与功能性平衡。适合对量化分析、AI辅助投资感兴趣的开发者参考。
桌面应用开发
Wails框架
Why:
传统桌面开发(如 C++/C#/Java)需要学习复杂的 GUI 库(如 Qt、WinForms),而 Wails 允许开发者用熟悉的 Web 技术(前端) + Go(后端) 快速构建应用。
- 避免 Electron 的臃肿:Electron 应用通常体积大、内存占用高(每个应用打包一个 Chromium)。Wails 使用系统原生 WebView(如 Windows 的 WebView2、macOS 的 WKWebView),显著减少资源占用。
What:
Consider it a lightweight and fast Electron alternative for Go. You can easily build applicati ...