jupyter !和%

学习别人给到的 Jupyter 代码时,其中有安装依赖的代码 使用 1 !pip install numpy 这里我看到 vscode 插件提示我 但是据我测试,%pip 和 !pip 都是能正常执行的,我不是很明白 py note所以搜索了一下,盲猜和 python 环境是有关的 相关链接 Medium,Installing Python Packages in Jupyter Notebooks Trouble with pip installation - JupyterLab / extensions - Jupyter Community Forum Installing Python Packages from a Jupyter Notebook | Pythonic Perambulations 结论 !pip install :调用外部 Shell 在 Jupyter 中以 ! 开头的命令会被当作 Shell 命令 执行,比如直接调用系统或虚拟环境中的 pip: 1 !pip install numpy 它在新的子进程中执行,依赖于系统的 PATH 环境变量,可能会使用错误的 Python 解释器或 pip。 ...

August 19, 2025 · 1 min · 136 words · Ray

SLM-1-数据准备

流程 数据导入 - 使用 TinyStories 数据集 数据分词 - 使用 tiktoken 进行 GPT-2 风格的分词 批次创建 - 为训练创建输入-输出批次 模型架构 - 实现了完整的 GPT 架构,包括: LayerNorm CausalSelfAttention MLP Block GPT 主模型类 损失函数 - estimate_loss() 函数 训练配置 - 学习率、批次大小等超参数设置 优化器和调度器 - AdamW 优化器配合学习率调度 训练循环 - 完整的训练过程 可视化 - 损失函数曲线绘制 推理测试 - 模型生成文本的示例 数据导入 用的数据集是 tinystory roneneldan/TinyStories · Datasets at Hugging Face 这是由 gpt 生成的 首先安装依赖后加载数据 依赖 1 2 datasets tiktoken 这里我直接拿到的是 txt 文件。如果网络方便的话可以直接 1 2 3 from datasets import load_dataset # 导入数据,这里记得科学上网,否则无法在hf上下载数据集 ds = load_dataset("roneneldan/TinyStories") 所以我这边根据 C 老师的指导加载本地数据 以及 验证数据加载效果。代码如下 ...

August 19, 2025 · 3 min · 555 words · Ray

博客精装修

新logo 叫 gpt 给我画了个 logo,元素就是姓名首字母啦,还是蛮喜欢的 本次博客换了个主题和评论系统,参考文章放在末尾了。算是找到比较靠谱的几篇文章。由于我使用较新的版本,所以并不是能很好的复现文章中的效果,不过也足够满意了 装修点 原先使用hugo-theme-stack 主题是由于接触 hugo 的教程中使用的就是这个,为了避免不必要的麻烦,初次基本都是按部就班复刻教程为主,这次心血来潮还是想换一个,挑了挑就觉得 papermod 不错,简单不复杂,不是很爱花哨的,但是也不想博客太丑了点 评论区 原先为了自部署,用了 waline,结果发现 papermod 没有直接支持。由于我前端功力不够,又不会 go,在 gpt-5 的帮助下也没成功用上,只能放弃用个简单的,挑了挑还是选择Giscus Hugo博客系统添加Giscus评论功能 - Whohhの博客 参考这篇文章倒是一点困难没有就完成了,只是还是想要有自己部署的心里才舒服,不明白这是什么心态,精力有限,现在博客是无人问津的状态,也不需要操心这件事情 便于阅读 Mermaid图 这个还是特别有用的,尤其是在 LLM 的帮助下,不少文章中画一个 markdown 中能渲染的流程图框架图之类的变得异常轻松 以下摘用自台运鹏大佬的文章 Mermaid js 可以可以让我们用代码的方式画流程图(如上图),在文章的概念比较多或者关系复杂时,流程图就可以让读者更容易看懂,故而也引入了 mermaid 的实现 首先创建 layouts/_default/_markup/render-codeblock-mermaid.html,写入以下内容: 1 2 3 4 5 <!-- 因为正常写会有 ```meraid ... ``` --> <pre class="mermaid"> {{- .Inner | htmlEscape | safeHTML }} </pre> {{ .Page.Store.Set "hasMermaid" true }} 这样就可以将 mermaid 这种特殊的 codeblock 加入渲染机制里,同时设置 hasMermaid 为 true,方便后面判断是否加载 mermaid js。接着我们创建 layouts/partials/mermaid.html,来让 mermaid js 对我们写的代码进行渲染 ...

August 13, 2025 · 6 min · 1080 words · Updated: December 10, 2025 · Ray

PG connect 字符串错误

PostgreSQL: Documentation: 17: 32.1. Database Connection Control Functions 使用 pg mcp 连接数据库时遇到的问题 贴出的命令中密码改了 [bash] 显示已折叠代码(16 行) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (MCBot_py311) yangr@172-16-99-32-Dev:/data/yangr/gitRepos/LG_rag_hw$ npx -y @modelcontextprotocol/server-postgres "postgresql://lmi:abc#123@172.16.99.32:5432/lmi" node:internal/url:818 href = bindingUrl.parse(input, base, true); ^ TypeError: Invalid URL at new URL (node:internal/url:818:25) at file:///home/yangr/.npm/_npx/cd1ce99963b5e8b1/node_modules/@modelcontextprotocol/server-postgres/dist/index.js:21:25 at ModuleJob.run (node:internal/modules/esm/module_job:271:25) at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:547:26) at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:116:5) { code: 'ERR_INVALID_URL', input: 'postgresql://lmi:abc#123@172.16.99.32:5432/lmi' } Node.js v22.12.0 问了 G 老师,遇到 TypeError: Invalid URL 错误,通常是因为你的连接 URI 中包含了 未经转义 的 “#” 字符——这在 URL 语法中会被误解析为fragment 分隔符,导致 Node.js 的 URL 构造器无效 。 ...

August 4, 2025 · 1 min · 144 words · Updated: December 10, 2025 · Ray

自动部署前端

写在前面 在公司偶尔会同时维护三四个甚至五六个项目。稀烂的项目管理导致每次快速更新迭代时部署成了重复性超高且烦人的事情 部署流程 由于原先开发规范不够,git 使用不足,所以暂时一直拖着。现在对项目管理严抓想起来这件事情。 Javaer 一定见过下面这个 Jenkins 。这是个Java 编写的开源的持续集成工具 持续集成是啥意思,CI/CD 啥意思 解释:CI/CD或CICD通常指的是持续集成(英语:continuous integration)和持续交付(英语:continuous delivery)或持续部署(英语:continuous deployment)的组合实践 from wiki 这就能懂啦,我对前端不是很明白但是现在我们的开发流程一般是 1 前端同学开发完毕->build->发 dist 给管服务器的同学->(往往是我),我把 dist 放在对应的 nginx 目录下 如果他不发给我的情况。我就需要 1 git 拉取源码-> npm 更新依赖 -> build -> mv to nginx/html 那么这里很明显是可以通过 github/gitlab 的通知机制实现自动化部署的 Webhooks 凑巧找到一篇文章完美作为教程 【CI/CD】写给前端的自动化部署攻略序 ​ 对于前端开发而言,静态页面的部署是容易的。只需要将打包好的页面,放入已经配 - 掘金 简而言之,git 仓库会提供 webhooks 功能。就是如果你对仓库做了某些操作,git 将通过 http 向你提供的地址发送操作信息(json) 这里这位佬用的 gitlab 做的例子。我们自部署的也是 gitlab,太好了 这是新建 webhooks 的页面 我们暂时不用 release ,所以就以 tag push event 作为发布的信号 ...

May 22, 2025 · 1 min · 90 words · Ray