2025-06-04 lc59. Spiral Matrix II
date: 2025-06-04 name: aliases: tags: leetcode python 语法 date_last_edit: 2025-06-04 04:47 — 2025-06-04
https://www.youtube.com/watch?v=EWvNQjAaOHw
当然这个视频, 感觉是一个挺好的材料, 从一个很简单的角度切入, 快速判断什么任务可以实现 两个多小时的视频, 结果花了三天的时间还比较碎片的时间才看完, 之前通宵两天熬夜太狠了, 感觉看的时候一直没有很专注, 然后还没干什么事情, 笑死. 注: 回到这个这个视频, 回顾的想, 这个视频的信息含量没有涉及什么复杂的步骤和内容, 更多的是一个科普向的视频, 或是一个操作演示一样. 当然打开之前我就知道, 干货应该不多, 肯定不如Let‘s build 那个系列, 我只是想比较一下我使用LLM和Andrej Karpathy使用LLM的区别. 接下来的步骤都是我看过之后一次性回忆的, order可能有问题, 然后一些sub subjects会有遗漏. 加上实在感觉我看完了不等于是会了, 我认为会了仍然还有大量可能的错误, 不如直接写下来. 相信即使是最简单的逻辑和常识也需要被整理. 花一点时间, 把要大量使用的工具理解清楚我觉得还是对我重要和有价值的.
一开始,Andrej Karpathy 提到,他几乎订阅了所有主流 LLM 模型的会员服务(2025 年 3 月) 接着,用了一个特别形象的比喻which is zip 文件,来形容大模型预训练后的状态。这个比喻很有意思,因为 zip 文件如果不解压,里面的内容是没法直接用的。换句话说,预训练后的模型并不像字典那样,能瞬间(O(1) 时间)找到你想要的东西, 所以模型不是pageRank那样的搜索? LLM good at writing. 然后,Karpathy 花了一些时间解释 token 的概念,简单了解一下非常有意义。 无论是文字、标点符号,还是输入输出,都会消耗 token。我们看到的是连贯的文章,但对模型来说,它处理的是一串 token。LLM 的输入是 token,输出也是 token,它的任务就是预测下一个可能的 token,一个接一个地生成文本。(这里我打个比方:假设人 A 对美国人 B 说中文,但 B 听不懂中文。于是,A 的中文被转换成了一串数字(比如 Unicode 编码),B 看到的是这串数字。虽然 B 不懂中文,但他已经通过学习知道这些数字之间的关系,通过不断的预测, 最后他也用一串数字来回应。最后,这串数字被解码成中文,A 听到了 B 的回复。)然后视频演示了下面这个开发者做的网站,它能展示输入输出时 token 的具体的展现: https://tiktokenizer.vercel.app/
预训练很贵, 预训练使用大量的历史上的材料, 互联网上已经有的内容, 组成了一个由token之间的关系的size很大的zip文件. 但是这个zip文件是有损失和有概率 zip 文件. 是sequence of token.
后训练 much much cheaper. Using SFT(Supervised Fine-Tuning, 监督微调)、RLHF(Reinforcement Learning from Human Feedback, 人类反馈强化学习) 和 RL(Reinforcement Learning, 强化学习)on Conversations, 这里Andrej认为post train类似于角色扮演, 后训练的重点是调整模型的行为,而不是再教知识, 我感觉对于使用者来说了解到这里就OK了? GPT讲, 换句话说,预训练教会了模型语言,而后训练教会了它如何像人一样“扮演”某种对话风格或人格。
展示了不同模型随便输入一个问题后, 显示了一些输出什么的. 这里我记得没什么好着重提及的, 可能Andrej使用了perplexity来使用deepseek的模型有点难评.
这里有一个细节, 我之前没有注意, 我之前以为perplexity这家公司没什么技术, 但是在演示中发现, perplexity搜索速度蛮快的, 这里有我不知道的点.
还有这里解释为什么会出现不正确输出的原因, 因为预测本身就不会是100%正确的, 很正常很自然. 还讲了GPT模型不透明的情况, 比如虽然选了GPT-4o但是你怎么知道运行的是不是4o, 明确的提及了在用户没有登录的时候, GPT提供的是一个size非常小的模型.
现在的模型, 只要用过, 就会发现模型具有一定的上下文记忆能力,即它能够理解并引用同一对话中的先前输入和输出。此外,如果持续在同一对话中交流,token 消耗会非常快,这也意味着模型实际上是在不断地处理和整合之前的对话内容。每次新的输入都会与之前的输入输出结合.
看视频的时候直接跳过了, 但是这里有个疑问, 就是, 模型是怎么选择之前的记忆的呢? 首先这个window肯定有一个size, 如果已经输入的内容和输出的内容过长, 这个window肯定是装不下的, 但是抛弃之前的内容的策略是? 之前就知道会丢和能保存.
问了GPT, LLM 的上下文窗口(context window)是有限的,有一个固定的大小(如 4096、8192 或更大的 token 数), 当输入和输出的内容超出上下文窗口的容量时,模型必须决定如何舍弃部分旧内容。策略有, 滑动窗口(Sliding Window), 基于重要性截取(Relevance-Based Pruning), 层次化摘要(Hierarchical Summarization), 基于提示(Prompt Engineering)
OK, 策略这么多, 如何这里如何选择也是一个黑盒…
这里就是说一下不同模型的价格和提供的服务不同, 没有涉及到api.
为什么有联网搜索的功能? 本质上因为创建那个zip file的过程是一个由时间限制的东西, 决定使用23年4月为止的内容, 那么之后的内容当然涉及不到. 比如询问大模型一个今天的天气, 有点强模型所难了. 如果使用搜索改变了什么呢, 相当于爬虫爬取了网上搜索得到的内容, 作为输入, 那么这里有新的输入了, 这部分知识, 在输出回答的时候, 就可以回到诸如今天的天气和气温这类的问题.
由GPT-o1开始, 强化学习来解决数学编码等逻辑问题, 这个思路被做出来了一个产品. 原理我不懂, 有空有必要了再学吧. 这里浅显的说法是, 对于数学推理、代码生成等任务,我们希望模型一步步地推理,而不是仅仅根据概率生成看起来正确的文本.
所以之前一个高中生的prompt让claude 3.5变reasoning model的新闻有点扯淡. 两个看似相似的输出, 输出的文本背后的逻辑都不一样.
有点感觉是一个set of reasoning model的组合, 忘了, 回去看的时候再补一下, 这里好像说到了现在grok和gpt都有这种能力, 挺有潜力的一个功能, 但是我目前没感觉特别厉害, 或者我没有使用场景. 我冲了20美元的GPT会员使用下来(可以用10次), 我用了两次, 我使用的情况是没跑出来什么特别有用的东西…
这里在使用claude的时候, 提及了在pdf中的插图应该是不会被使用的. 识别的都是大量的文字, 应该也是类似于多模态调用OCR的能力? 虽然我事后搜索了一下Claude有识别读取pdf中图片的能力, 所以, 不知道是不是 Karpathy 讲错了还是在使用中没有发现对插图有识别和作为输入. 我在之前使用的时候没意识到这个细节, 但是我记得在只输入图片的情况下是可以识别的(which就是一张图中有示意图和文字解释或文字内容), 但是我记得之前输入一个graph, 让GPT判断后输出BFS或者DFS还是挺费劲的, 这里不知道是为什么. 感觉要了解图片是怎么被LLM读取的才可以搞明白.
这样就有一个疑问就是, 我希望LLM在处理图片输入的时候, 希望它在使用正确的信息, 这里在prompt的地方可以说一下, 提及一下就是, 让模型输出OCR后, 它看到了什么, 这样可以在输出OCR结果不对的情况下发现错误.
LLM的代码能力非常好, 我猜测是因为代码有一条类似于flow的处理逻辑, 是不是非常容易被强化学习拟合啊? 就是, 输入的数据啊, 个数啊, 类型啊, 都是设计好的, hh无端猜测了. 这里想到一个经典问题, 好像是9.9大还是9.11 大什么的,这里如果使用python解释器来输出结果应该是没问题的, 但是我记得有新闻是说, 这里GPT会比较的是圣经的章节, 所以 9section的第9 subsection当然小于9section的第11 subsection的, 这里想到这是一个简单的小计算过程, 如果在一个大型项目中, 使用LLM认为过于简单没有自动调用Code interpreter使用python输出来比较的话, 在这一步给出一个正确的答案会怎么办呢? 过程如果过于多, 还挺难定位这个问题的 在这里视频的最后写了一下直接使用GPT做data analysis其实网上有大量的资源, 不展开介绍.然后在演示的时候, GPT还出现了数据的错误. 我记得是一个最大值的数据点搞错了
这里Andrej Karpathy甚至生成了一个anki卡片的网页应用, 然后来检测从wiki上复制的亚当斯密的知识点, 神了, 反正我之前是没有这样使用过和没想过的. 有交互还有反馈. 然后在这个section, Karpathy介绍了一下用Claude生成mermaid流程图, 然后展示出来, 这个事情其实我在GPT3.5的时候就做过, 生成完code再粘贴到mermaid模拟器上, 在视频中看到Claude就是多了一个出完code的时候及时生成展示图片的功能, 好确实好, 但是没感觉多好,hhhhh, 可能就是有没有想到这样去用LLM来得到这个输出的区别. 我想想当时好像是软件工程的作业要画流程图, 我发现一个geek朋友非常喜欢用代码写那个软件的工程图, 我们大部分是用线上的画图软件自己画的, 我画了第一个图之后,感觉非常非常麻烦. 我没学过那个流程图的代码框架, 这时候想到why not 用GPT生成那个结构代码, 刚好typora也支持mermaid, 用代码写这种流程图完全不需要关注框图的间距, 箭头的粗细这种问题, 然后我就一直使用这样方法写这部分的任务. 后来的latex也是. 一次一次的任务然后习惯了使用md的语法, 最开始是发现gpt一直在使用这种格式的文本输出, 觉得挺轻便和美观的就在b站学了半小时之后写到了现在. 这里我想到LLM直接跑D3.js还有Graphviz应该都蛮棒的 这里Andrej Karpathy的用法是, 使用mermaid梳理文本, 梳理人物关系网, 梳理故事发展过程, 这个用法我之前没想到过, 以后可以多加使用.
下次再说吧, 是Claude开发的一个工具.
之前看课代表立正的视频的时候, 里面一个视频讲, 对于自己的粉丝做了一个调查是, 认为过去一年ai没什么发展的和ai发展飞速的好像是一半一半, 但是认为过去一年ai发展快速的人中, 绝大部分的人是使用过cursor的, 这里, 就是感觉, 虽然明面上说是整个文件都是一个上下文窗口中读入的, 但是项目一大, 应该仍然是会丢失的, 那么那些神奇的策略们的选择黑箱, 该如何选择, 这里的策略好像不可以被人为调控. Karpathy飞速的做了两个demo, 挺不错的. 有点神奇的是, 如果本地环境下, asset中没有一些文件, (视频中是一个点击的声音特效, 还是胜利音频特效来着), cursor居然会联网爬一个库下载下来, 我真是一脸正经, 之前一直以为是巧妇难为无米之炊的, 这还可以自己下一个文件过来? 但是转念一想, 好像这和运行一些项目要使用一些lib然后自动下了一些pip好像没什么不同, 然后又不觉得特别神奇了.
这里只是使用speech-to-text模型输入文本给GPT, 然后得到文本的返回, 没有使用下面的语音模型. 很多时候, 其实我们只需要一轮问答, 比如, 现在的Karpathy 在视频里面讲使用快捷键F5快速调用(类似于siri), 询问一个问题, 得到LLM的回复, Karpathy 说现在接近一半他都是在这个使用场景下使用的 我想了想, 确实比较方便, 打算下个礼拜在自己的电脑上整好这个操作.
这里我记得使用grok可以沟通出一些怪怪的声音和对话内容, 是在使用GPT的语音对话无法实现的, 而且GPT语音还是拒绝回答一些类型的问题, “利用怪怪的声音快速说1-20”我记得视频里面好像说了这个例子.
输入一些文件, pdf, 然后gemini出一个talk. 我之前有听说这个功能十分惊艳, 但是没引起重视, 或者觉得这个功能无法帮助到我. 1, 是想不出这个功能的实用价值, 首先我不用播客类节目变现, 再是在油管和xhs加上一个B站这些视频流媒体平台提供给我的内容, 无论是否优质, 已经足够足够多了, 我现在的精力甚至是减弱这些平台给我的影响, 减少注意力分散, 我不应该去关注太多信息来源, 虽然很多优质的信息还是从这方面来的, 没办法无法隔离. 2, OK回到这个NoteBook播客功能上, 还有一个原因就是语言(英语水平)还是存在问题, 虽然CS, 科技, 数码 or 摄影相关的英文内容我可以做到95%的时间follow上和听得懂, 但是非母语还是有问题就是, 感觉脑子在输入英语的时候有一层decoder一样, 还是要慢一些, 我脑子在输入英语的时候对专注要求更加高, 这样听这个英语博客还是挺累的, 中文还是我的舒适区无法改变了, 不然这篇文章我肯定是想用英文打出来的. OK, 所以这个应用就对我来说有点鸡肋, 我不需要使用这个function来获取信息, 加上流畅使用还是有语言门槛, 如果想快速了解某个领域的知识, 为什么不直接上网搜索一个general的介绍呢? 整10篇文章输入, 做一个博客有点奇怪. 或者说, 泛泛的去了解一个domain的知识这样做有点出力太多, 但是如果想认真学习一下, 这样做是远远不够的, 所以我困惑于对我自己的使用场景. 我感觉是不是deep research加上这个NotebookLLM podcast的功能是不是有使用价值一点, 其实我希望连选都不要选topic, 用一个推荐算法什么的, 网易云音乐式得生成高质量podcast如果有一个这样的产品我会愿意去用, 我连花时间喂Notebook的生成podcast的操作都懒.
然后Karpathy说, 整了一些podcast可以在开车路上听, 哈哈好吧, 碎片时间, 可惜我没有车.
之前提到过, 图片输入往往有输入的错误, 这里Karpathy说他 使用方法是分成两步, 而不是直接让LLM输出结果, 比如使用prompt, 分成两步, 第一步输出OCR的输出结果, 第二步使用这些结果输出我想要的答案
转成公式 simpleTex, Math Snipping Tool这种识别论文中的公式使用OCR的小而美的business应该都快寄了, 我真感觉用一个LLM的api再使用一个prompt做一个小应用就行, 用cursor做可能不用半小时.
突然有点好奇LLM的输入, 图片和文字的区别, 是直接图片使用分配给OCR的模型读取么
这里涉及了好多Karpathy的个人信息啊哈哈哈哈, 看到网上的comment是他谈了一个韩国女友, 所以在各种姿势学习韩文. OK离开八卦的话是, LLM在翻译任务上简直是出人意料的好, 逻辑流畅舒适, 甚至可以输出一些引申的含义. 还有我其实有个疑问是, 要不要使用xml类似的指令? 使用自然语言和xml语言有对文本读取来说有多大的差别, 如果有差别的话, 我自己感觉是各模型厂家在post train的时候调整的, 还有如果使用api去调用的话, 在code界面, 大家使用的都是xml的结构. 我自己感觉是有区别但是区别不大, 不然其中的一种方法会被大肆宣传的. 比如下面是我希望解释Leetcode问题时候的prompt
<task>
编写一个解决这个问题的程序
<context>
我希望你像一个人类程序员一样思考这个问题。请展示完整的思考过程,包括:
- 初步理解问题时的想法
- 尝试解决时遇到的困惑
- 思路的演变和修正
- 为什么最终选择这个实现方案
</context>
<format>
请用以下格式输出:
1. 初步分析
- 用简单的语言描述你对问题的第一理解
- 列出可能需要考虑的关键点
2. 解决方案构思
- 写下你能想到的几种方案
- 分析每种方案的优缺点
- 解释为什么选择或放弃某个方案
1. 代码实现
- 每写一个代码块前,先解释你准备做什么
- 用注释记录当时的思考
- 如果发现问题需要修改,说明原因
- 展示完整的思维过程,包括错误的尝试
2. 最终总结
- 回顾整个解决过程
- 指出关键的思考点
- 分享可能的改进方向
<style>
注释风格:
# 初步想法
# 发现问题
# 修正思路
# 实现原因
</style>
另外一个疑问是在customize ChatGPT的时候 What traits should ChatGPT have?
和 Anything else ChatGPT should know about you?
在输入的时候到底有什么区别.
Andrej Karpathy翻了一个twitter的po文, 我本人对这部分功能兴趣不大, 但是看的时候, Google 生成的视频非常真实, 感觉还挺厉害的.
08-March-2025 本来想用20min写一点想法和总结就行, 但是居然写了快2个小时半才写了一半内容, 麻了, 太废了, 实在是太笨了, 效率太低了,打字速度也慢. 今天先不写了, 不然任务完不成了. 看了一眼左下角字数统计, 一边想, 一边整理两个小时写2100多字, 好像也不算是非常非常慢的整理速度, 好吧, 平衡了. 09-March-2025 今天好像也是花了好久在写这个东西…
希望 llya 这位LLM真神可以在5年之内弄出一个更加逆天的模型.
date: 2025-06-04 name: aliases: tags: leetcode python 语法 date_last_edit: 2025-06-04 04:47 — 2025-06-04
date: 2025-06-03 name: aliases: tags: leetcode python 双指针 date_last_edit: 2025-06-03 18:37 — 2025-06-03
date: 2025-06-03 name: aliases: tags: leetcode python BinarySearch date_last_edit: 2025-06-03 16:46 — 2025-06-03
date: 2025-06-04 name: aliases: tags: leetcode python 双指针 date_last_edit: 2025-06-04 00:31 — 2025-06-04
使用GPT辅助对话的思考
使用 GPT refine 了文章
好像写成一个的线代的内容了, 有很多未完待续的内容
Using LLMs to refine context through chaotic thinking, but I think GPT-4.5 (2025-04-22) is quite good.
The article contains mistakes and misunderstandings, as it is a record of my own incorrect notes rather than a proper summary document.
https://www.youtube.com/watch?v=EWvNQjAaOHw
记录签证准备材料的list
文章翻译, 阅读, 解读MTF曲线, 笔记总结 Preface
A record of some simple ideas.
UCLA online learning how to learn powerful mental tools to help you master tough subjects
虎头蛇尾…
A small concept in discrete mathematics
进度条…(2/8)
The article contains three proofs.
mainly talk about FM&PM in ELEC202 at Lec 7&8