一、李宏毅生成式 ai 2025fall 导论学习
第二节课是关于 RAG 的,RAG 是检索增强生成,在不训练模型,提供外部知识库给模型去提升模型的能力,context engineering 应该避免上下文塞爆,比如系统提示词,用户提示词,记忆,外部知识库,网络搜索或者使用工具得到结果。
作业和第一个的有一点像,不过第一个主要是理解模型生成 token 的流程,比如 encode,decode 这些,这个主要是测试不同程度的 RAG 的结果,第一级别是不加外部知识,第二个是使用统计模型检索,第三个是 embedding 模型和统计模型结合排序检索,第四个是测试不同大小的 chunk 和 stride。
chunk 的大小是指原始文章分块的单位,比如每个 chunk 一页,或者每个 chunk200 字;stride 是不同 chunk 起始点的区别,一般 stride 比 chunk 的 size 要小这样不同的 chunk 会有内容重叠。
然后第三节课看了开头,主要讲的是语言模型内部的内容,就是 self attention 的内容,原始的 token 没有其他位置的信息,使用了模型每个位置的 token 具备了其他 token 的一些信息,有了上下文信息,比如苹果在吃苹果和苹果手机就代表不同的含义。
二、手撕
今天做的主要是哈希表的内容,然后开始做了一点双指针的题目。
第一个就是前 k 个频次词,我最开始使用的是堆,但是写起来很复杂,直接使用 vector 存储反而更容易。
然后手撕了一个矩阵加法的算子,主要是在 vectoradd 的基础上去改动的,比之前的矩阵乘法的简单,矩阵乘法学到了使用 dim3,学到了怎么用一维指针,一维矩阵模拟二维的矩阵,以及读取 As,Bs 这些共享内存要确保不要越界访问。
三、八股
1.(os)进程交换区的注意点
交换区是磁盘的一块区域存储进程内存,进程执行时间通常要比交换时间要长,避免频繁的换入换出,通常交换区是一块连续的区域
2.(os)内存分配五种错误
申请未成功访问
申请成功但是未初始化访问
申请成功但是访问越界
忘记释放发生内存泄漏
释放了但是访问