The Rust Programming Language 中译本

配套材料:Rust By Example 中译本

第零~二章 Rust 入门

  • 个人收集的几个国内比较流行的中文社区:
    • rust-lang-cn:Rust 中文官网提到的“非官方翻译”由此组织提供,维护了目前最全的 中文 Wiki
    • rustcc:维护了中文社区的 https://github.com/rustcc/awesome-rust,翻译了 Rust Atomics and Locks、Rust Primer、Write an OS in Rust 等书籍,保存了一些国内大会讲义;
    • rustlang-cn:维护了非常完善的 锈书 https://github.com/rustlang-cn/rusty-book,以及 Rustt、rust-weekly、rust-algos、Asynchronous Programming in Rust 翻译 等项目;
    • sunface:有 Rust 语言圣经rust-by-practice
阅读全文 »

文中标明【11】的为C++11新增标准。

第零部分

第一章 开始

  • C++是静态(编译时检查变量类型)、弱类型(会自动做隐式类型转换);
  • cin >>cout << 运算顺序均为从左至右,运算结果为一个istream/ostream对象;
  • while (cin >> a) 在读到EOF 时跳出循环;
  • 由于/* */ 注释的判定为遇到第一个*/ 结束,因此该注释不能嵌套。一般只用它来写注释,需要注释掉代码时使用多行//
  • cerr不可重定向,不通过缓冲区;endl会刷新缓冲区;
  • Windows下文件结束符为Ctrl+ZEnter,Linux下为Ctrl+D
  • 用户自定义的标识符不能连续出现两个下划线,也不能以下划线紧连大写字母开头,定义在函数体外的标识符不能以下划线开头;
阅读全文 »

强化学习的数学原理

RL 基本原理

一、基本概念

  • Agent:操作主体;
  • State:agent 所处状态(位置、速度等);State Space:状态集合;
  • Action:可采取的行动,依赖于 state: \(\mathcal{A}(s_i)\);State Transition:采取 action 后 state 的转变;
  • Policy:agent 在特定 state 采取的 action:概率表达为 \(\pi(a_i | s_1)\)
  • Reward:采取某个 action 后得到的奖励(可负); \(p(r=1 | s1, a1)\)
  • Trajectory:一条 state-action-reward 链;Return:一个 Trajectory 沿途所有 Reward 之和;Discount Rate:计算 Discounted Return 时,reward 随步数的衰减因子 \(\gamma\)
  • Episode:走到终止态 Terminal State 的一个 Trajectory;没有 terminal state 的任务称为 Continuing Tasks;通过将 target state 设为 absorbing state(吸收态,采取行动仍回到自身且 reward 为 0),或仍直接视为普通状态,我们可以统一 episodic 和 continuing tasks;
  • Markov Decision Process(MDP):
    • 具有 State(\(\mathcal{S}\))、Action(\(\mathcal{A}(s)\))和 Reward(\(\mathcal{R}(s, a)\));
    • 具有 state transition probability \(p(s’|s, a)\)、reward probability \(p(r|s, a)\)
    • 具有 Policy \(\pi(a|s)\)
    • 无记忆性:memoryless property:\(p(s_{t+1} | a_{t+1}, s_t, \cdots, a_1, s_0) = p(s_{t+1} | a_{t+1}, s_t)\)\(p(r_{t+1} | a_{t+1}, s_t, \cdots, a_1, s_0) = p(r_{t+1} | a_{t+1}, s_t)\)
阅读全文 »

本文知识截止至 2025.2.20

以下每节标题的标注表示该技术在这个时期趋于成熟。

Transformer 介绍(GPT-3 及之前)

Transformer 是这波 AI 热潮的起点,除了它的发明以外,大模型没有魔法。

Transformer 结构的 LLM,本质是一个可并行加速的有损压缩包:它将海量的知识、语法、运算模式、应答模式等等压缩到自己的权重中。

其本体是一个由线性、非线性变换组成的复杂函数,这个函数是一个文章续写器:输入是一段(编码后的)文本,输出是对这段文本的续写下一个词。与之前模型不同的是,每个预测词的生成都会考虑之前所有词(包括输入和已经生成的词),综合计算得到下一个预测词,且这个过程可以并行。

每次运行这个函数,会输出一个模型预测的概率最大的续写在输入之后的词(实际上是 token),然后将这个词接在输入之后形成新的输入再次运行函数,一直循环直到模型生成表示停止的 token;(以上为最基础的过程,现在已有 MTP 等优化技术)。

这个函数中的参数(如线性变换的系数)是可训练的,训练过程是将文字资料的一部分输入给函数,然后将函数生成的续写与文字资料原本的后续做比对,根据差异调整函数参数。

阅读全文 »

导论

  • 哲学不是科学;
    • 黑格尔终结了西方两千年对于”使哲学成为一门科学“的努力;
    • 二十世纪之后的哲学不再致力于成立一门科学,因此几乎都在批判黑格尔;
    • 哲学是一切科学之母,在古希腊,能被明确地求解的体系会被剥离哲学,自成一门学科;
  • philosophia = philos(爱)+ sophia(智慧);
  • 哲学是关注最终关怀问题的学科。哲学研究生死,而意识到自己的死(有限性)是人的基本特质之一。终死之人求永生,求永生者终归死;
  • 哲学 = 哲学史 = 问题史;
  • 语言非常重要,决定了思考方式;
阅读全文 »

课程官网

Morris 2020 授课录播

中文翻译

Paper 1: MapReduce

原文笔记

提出背景:本世纪初,根据存储技术发展趋势,存储能力的增速已经快于全互联网内容的增速,谷歌预判出将来一家巨型公司的数据库将有能力存储下整个互联网。基于此,谷歌提出对于海量数据的分布式处理框架。

本文发表于 2004 年,提出了严格的网络设备间吞吐量限制,并据此将架构设计为在存储设备上直接做计算(Map 等操作)。事实上谷歌已抛弃这种老式 MapReduce 方法(MapReduce 之死),且现在吞吐量已往往不再是瓶颈,存算分离架构已逐渐成为主流。

阅读全文 »

括号中排名对应:U.S. News世界排名,QS世界排名,THE世界排名,U.S. News美国排名,CSRankings全选(均为2023年)

阅读全文 »

护照

  • 护照最好在户籍地公安局办理,在其它地区公安局会寄送到户籍地审核,所需资料也按户籍地标准要求;
  • 护照办理流程:带身份证,自助机器生成表格,拍照,填表格,在人工柜台办理,拿回执,数日后凭回执取护照;仅凭身份证也可取护照,可以选择寄送;
  • 在美国,护照充当最权威的身份证的作用,但可以使用驾照等证明文件作为大多数时间的身份证明;
阅读全文 »

Spring Framework

  • IoC(Inversion of Control):程序中不主动 new 对象,而是由外部(Spring 的容器)提供对象,实现充分解耦;这一创建权的转移称为控制反转,这些被管理的对象称为 Bean;
  • DI(Dependency Injection):在容器中建立各个 Bean 之间的依赖关系的过程,称为依赖注入;
  • Maven Dependency 中导入 spring-context 坐标后:
阅读全文 »