AI学习 Newsletter 的手工感设计:从断点驱动到可追溯实践

news2026/5/23 3:19:30
1. 项目概述这不是一份 newsletter而是一份 AI 社区共建的实践手记“Learn AI Together — Towards AI Community Newsletter #14”——看到这个标题你第一反应可能是又一份 AI 领域的资讯汇总点开看看最新论文、工具更新和招聘消息但如果你真这么想就错过了它最核心的价值。这根本不是传统意义上的“订阅邮件”而是一份由真实从业者持续迭代、反复打磨、带着明显“手工感”的社区共建产物。我从第1期开始跟踪到第14期已完整拆解过全部内容结构、作者协作模式、读者反馈闭环和内容生产节奏。它背后没有大公司编辑部没有算法推荐池甚至没有专职运营主创是三位分散在不同城市的独立开发者与教育者他们用 Notion 搭建协作看板用 GitHub Pages 托管归档用纯手动方式筛选、重写、加注每一条信息。关键词里的Learn AI Together不是口号是操作指令每期都包含至少一个可运行的 Colab Notebook 链接、一段带逐行注释的代码片段、一个真实项目中踩坑后提炼出的调试技巧而Towards AI Community则直指本质——它不追求流量而是刻意控制订阅人数目前稳定在 2840 人只开放邀请制加入并在每期文末附上当期贡献者的真实 GitHub ID 与修改 commit 记录。它解决的不是“如何获取 AI 最新动态”这个表层问题而是“如何在一个信息过载、术语轰炸、教程泛滥的领域里建立可持续的个人学习锚点”这个深层困境。适合谁不是刚学 Python 的小白也不是已经带队做 LLM 应用落地的架构师而是卡在中间那群人能写基础脚本、读得懂 PyTorch 文档、但面对 Hugging Face 上 5000 模型不知从哪下手看到 LangChain 文档目录就头皮发麻自己搭了个 RAG 流程却总在 chunking 和 embedding 之间反复横跳的实战派学习者。它不教你“什么是 Transformer”但会告诉你“当你用 sentence-transformers 的 all-MiniLM-L6-v2 在中文短文本上召回率偏低时试试把 normalize_embeddingsTrue 改成 False实测在电商评论场景下 MRR 提升 12.7%——原因不是模型问题而是该模型训练时未对输出向量做 L2 归一化而你的检索后端默认做了余弦相似度计算导致数值溢出。” 这种颗粒度才是它活到第14期还没被淹没的真实原因。2. 内容整体设计与思路拆解为什么放弃“资讯聚合”选择“学习切片”2.1 核心范式转换从“信息搬运工”到“学习路径切片器”绝大多数技术 newsletter 的底层逻辑是“信息搬运”抓取 arXiv 新论文、GitHub 热门项目、Twitter 大V 观点再加点简评发出去。这种模式在 AI 领域已严重失效——不是信息不够多而是噪音密度太高。以第13期为例当天 arXiv 上提交了 87 篇与 LLM 相关的论文其中 62 篇标题含 “Efficient”、“Lightweight”、“Zero-shot” 等高频词但真正提出可复现方法论的不足 5 篇。如果按传统模式搬运读者收到的将是一份“高效轻量零样本综述大全”结果就是打开即关闭。而 #14 的处理方式完全不同它只选中其中一篇《FlashAttention-3: Faster and More Memory-Efficient Attention for LLMs》但不介绍论文本身而是把它切成三块“学习切片”切片 A原理层用一张手绘风格的流程图非 Mermaid是作者用 Excalidraw 手绘后嵌入对比 FlashAttention-2 与 -3 的 kernel 调度差异重点标出新增的 “shared memory bank conflict avoidance” 模块并配文字说明“这不是优化计算而是绕过 GPU SM 的物理限制——就像你家厨房只有一个水槽-2 是让两个人轮流洗菜切菜-3 是给每人配个折叠水盆冲突消失。”切片 B实操层提供一个仅 37 行的 PyTorch 脚本不调用任何封装库纯用 torch.cuda.amp.autocast torch.compile 自定义 CUDA kernel stub演示如何在单卡 24G 上跑通 128K 上下文的 LLaMA-3-8B 推理关键参数全部加注释包括为什么max_autotuneTrue在此场景下反而降低吞吐因 kernel search 时间 实际推理时间。切片 C反思层引用一位在某云厂商做推理引擎优化的读者来信“我们上线 -3 后发现 P99 延迟下降 18%但 P50 上升 3%原因是新 kernel 在小 batch 场景下启动开销变大。建议你在做 A/B 测试时务必分位数监控别只看平均值。” 这段直接作为正文一部分署名“cloud-infra-dev”。这种“一篇论文三层切片”的设计彻底放弃了“广度覆盖”转而追求“深度驻留”。它假设读者不是来“扫新闻”的而是来“找锚点”的——每个切片都提供一个可立即验证、可嵌入自己工作流、可引发进一步提问的具体支点。这不是资讯是学习接口。2.2 结构稳定性为什么坚持“四模块铁律”且绝不增删翻遍前14期你会发现结构惊人地一致【本周动手】→【概念深挖】→【工具快照】→【社区回声】。没有“行业动态”、“招聘速递”、“大佬访谈”等常见栏目。这种“反灵活”的坚持本身就是一种产品哲学。【本周动手】占比约 35%必须包含一个可 10 分钟内跑通的最小可行代码块。第14期是用 Ollama LM Studio 本地部署 Qwen2.5-7B 并接入 Obsidian 的双向笔记插件。重点不在“部署成功”而在“失败预演”——文档明确列出 5 种常见报错如CUDA out of memory、model not found in library、plugin permission denied每种都给出终端原生报错截图、对应日志位置、以及三步定位法先查 GPU 显存分配再查 Ollama models 目录权限最后查 Obsidian 插件 sandbox 设置。这不是教你怎么装是教你怎么不被装的过程卡住。【概念深挖】占比约 25%拒绝定义式解释。第14期深挖 “KV Cache Compression” —— 不讲数学公式而是用 Excel 模拟一个 4 层 Transformer 的 KV cache 生长过程输入 100 个 token每层 cache 占用多少 MB压缩前后内存占用对比曲线再叠加一个真实案例某客服对话系统在开启压缩后单次会话支持的轮次从 12 跳到 37但首次响应延迟增加 210ms。结论不是“该开或不该开”而是“如果你的 SLA 要求首响 800ms且会话轮次常超 20则压缩收益为负应优先优化 prompt truncation 策略”。【工具快照】占比约 20%不罗列工具只推“工具组合”。第14期推荐的是 “Docker Podman DevContainer 三角工作流”用 Docker 做本地快速验证Podman 做无 root 安全隔离特别适合在共享服务器上跑实验DevContainer 做环境持久化与团队同步。文中给出一个真实配置 diff同一份.devcontainer.json在 VS Code 中打开是 Podman 模式在 GitHub Codespaces 中打开自动切 Docker 模式关键在于hostRequirements字段的动态判断逻辑。这种“组合推”而非“单品推”直击 AI 工程师日常环境碎片化痛点。【社区回声】占比约 20%这是真正的“社区”体现。不是精选留言而是展示原始讨论流。第14期收录了来自 Discord 频道 #help-model-deployment 的一段 47 条消息的 thread主题是 “为什么 quantize_model.py 在 A100 上报错 unsupported dtype”作者不做总结只做三件事1标出第 12 条消息是关键突破用户发现是 PyTorch 2.3.0 的一个已知 bug2附上官方 issue 链接与临时 patch3在文末加一句“本期所有代码均已在 PyTorch 2.2.2 下验证通过升级前请确认你的量化链路。” 这种“呈现过程而非结论”的做法让读者看到知识是如何在真实协作中生成的而非被权威打包喂食。坚持四模块是因为它对应了学习者的四个刚需节点动手验证 → 概念澄清 → 工具适配 → 社会确认。增删任何一环都会破坏这个闭环。2.3 分发与反馈机制为什么用邮件列表却拒绝“邮件营销”套路在 Feedly、RSS、Telegram 频道、Substack 等渠道泛滥的今天它坚持用纯文本邮件plain text email分发且不设点击追踪、不埋 UTM 参数、不分析打开率。这不是复古情怀而是精准设计。纯文本强制信息密度没有图片、没有按钮、没有侧边栏所有信息必须靠文字承载。第14期全文 2187 字无一行冗余。比如介绍一个新工具不会说“它功能强大、界面友好”而是直接写“输入pip install toolx --no-deps然后执行toolx --input data.json --output ./out/ --format parquet --compress zstd12 秒完成 1.2GB JSONL 到 Parquet 的转换比 pandas.read_json 快 4.7 倍内存峰值低 63%。” 数据即价值无需修饰。无追踪保障反馈真实性因为不记录谁点了哪个链接所有反馈都来自主动行为——要么回复邮件#14 期收到 38 封有效回复要么提 GitHub Issue当期新增 12 个要么在 Discord 发起新 thread#14 关联 7 个新话题。这些反馈天然过滤掉了“随手点赞”的噪音留下的是真问题、真需求、真场景。例如有读者回复邮件指出“【本周动手】里用的 Ollama 模型哈希值过期了新版本模型文件名变了”作者当天就更新了文档并致谢同时在下期开头加了一段“感谢 reader-hash-fix 提醒现在所有模型哈希值均采用 sha256sum 动态校验脚本已内置重试逻辑。”邀请制构建信任基线订阅需老用户邀请码且每个邀请码限用 3 次。这不是制造稀缺而是建立初始信任。第14期读者中72% 是通过同事/导师/开源项目 co-contributor 获得邀请这意味着他们大概率处于相似的技术栈、面临相似的工程约束、拥有相近的问题语境。当一期内容讨论 “如何在 Kubernetes 上调度 LLM 推理 pod” 时评论区不会出现 “什么是 Kubernetes”而是直接深入 “如何设置 resource.request.memory 与 nvidia.com/gpu 的亲和性策略避免 GPU 碎片化”。这种同频交流是算法永远无法匹配的。放弃“增长指标”拥抱“反馈质量”是它能在信息洪流中保持辨识度的根本。3. 核心细节解析与实操要点从一期 newsletter 的诞生看“手工感”如何炼成3.1 内容筛选不是“找热点”而是“找断点”“Learn AI Together” 的内容筛选流程本质上是一个“断点探测”过程。主创团队每周一上午举行 90 分钟线上会议不讨论“要写什么”而是共同审查过去七天各自遇到的三个最卡住的时刻。第14期的诞生就源于主创之一 Alex 在微调 Qwen2.5 时遭遇的断点“我在 2*A100 机器上用 DeepSpeed Zero-3 微调batch_size8gradient_accumulation_steps4理论上显存够用。但训练到 step 127 就 OOM。nvidia-smi显示显存占用 98%torch.cuda.memory_summary()却显示 allocated 仅 18GB。查了三天最后发现是 Hugging Face Trainer 的save_strategysteps在保存 checkpoint 时会额外加载一个完整模型副本到 GPU而我的save_steps100刚好卡在 127 步——save 时占满load 时没释放。”这个断点被标记为P0 级别最高优先级因为它满足三个条件1现象普遍多人在 Discord 反馈类似问题2原因隐蔽不涉及代码错误而是框架内部资源管理逻辑3解决方案可封装只需在 save 前手动torch.cuda.empty_cache()并调整save_steps为质数。于是“【本周动手】”模块就围绕这个断点展开提供一个带防御性检查的 save hook 脚本并附上nvidia-smi与torch.cuda.memory_summary()输出对比截图。筛选标准非常朴素是否发生在真实工作流中排除“玩具数据集上的理论加速”是否导致超过 30 分钟的无效调试时间是硬门槛解决方案是否能用少于 20 行代码固化确保可复制这种“断点驱动”的选题保证了每期内容都带着真实的挫败感与解脱感而不是二手资讯的平滑感。3.2 代码编写为什么所有示例都“不优雅”却更可靠翻看 #14 的所有代码片段你会惊讶于它的“不优雅”变量名冗长model_checkpoint_path_for_qwen2_5_7b_int4而非ckpt注释密密麻麻平均每行代码配 1.2 行注释异常处理极其啰嗦连FileNotFoundError都单独捕获并打印 cwd。这不是水平问题而是刻意为之的可靠性设计。以其中一段用于验证模型量化效果的代码为例# 【本周动手】Qwen2.5-7B 量化效果验证脚本节选 import torch from transformers import AutoModelForCausalLM, AutoTokenizer # Step 1: 显式指定模型路径避免隐式下载污染缓存 MODEL_PATH /home/user/models/Qwen2.5-7B-Int4 # ← 强制要求用户修改此路径 if not os.path.exists(MODEL_PATH): raise FileNotFoundError(f模型路径不存在: {MODEL_PATH}. 请先使用 ollama create 或手动下载.) # Step 2: 加载 tokenizer显式禁用 trust_remote_code安全第一 try: tokenizer AutoTokenizer.from_pretrained( MODEL_PATH, trust_remote_codeFalse, # ← 明确关闭防止恶意代码执行 use_fastTrue ) except Exception as e: print(f[ERROR] Tokenizer 加载失败: {str(e)}) print(提示请检查模型目录下是否有 tokenizer.json 或 tokenizer.model 文件) raise # Step 3: 加载模型强制指定 device_map 和 load_in_4bit model AutoModelForCausalLM.from_pretrained( MODEL_PATH, device_mapauto, # ← 让 accelerate 自动分配不硬编码 cuda:0 load_in_4bitTrue, # ← 量化开关必须显式声明 bnb_4bit_compute_dtypetorch.float16, # 注意此处不设置 bnb_4bit_quant_type默认 nf4因 fp4 在 A100 上不稳定 )这段代码的“啰嗦”体现在路径硬编码强迫用户思考“我的模型在哪”而不是依赖模糊的from_pretrained(Qwen/Qwen2.5-7B)异常细分FileNotFoundError单独捕获给出具体修复指引检查文件是否存在而非笼统的except Exception安全开关显式化trust_remote_codeFalse写死不依赖文档提醒注释解释“为什么不”bnb_4bit_quant_type不设值是因为fp4在 A100 上有已知精度崩溃问题这个决策依据直接写进注释。这种写法牺牲了“简洁性”但极大提升了“首次运行成功率”。实测数据显示#14 期的代码块首次运行失败率仅为 4.3%主要集中在路径错误远低于同类技术文章平均 32% 的失败率。因为“优雅”属于作者“可靠”属于读者。3.3 文档协作Notion 看板如何成为“非正式规范”的孵化器“Learn AI Together” 的所有内容都在一个公开的 Notion workspace 中协作撰写。这个 workspace 不是文档库而是一个活的“规范孵化器”。第14期的协作看板包含四个核心数据库【断点银行】所有成员提交的卡点字段包括发生场景如 Deepspeed ZeRO-3 微调、复现步骤精确到命令行、预期结果、实际结果、已尝试方案、当前状态Open / Investigating / Solved。第14期的 P0 断点就来自这里状态已标为Solved并关联到具体 PR。【代码片段库】每个片段有适用框架PyTorch / JAX / vLLM、GPU 要求A100 / RTX4090 / M2 Ultra、验证环境Docker image tag、已知限制如 仅支持 LinuxmacOS 因 Metal API 限制不支持。#14 期所有代码都从此库引用确保版本一致。【读者反馈墙】邮件/Issue/Discord 的原始反馈打上类型Bug / Feature Request / Concept Clarification、紧急度P0-P3、影响范围Single User / Team / All。第14期开头的哈希值更新就源于一条 P0 级反馈。【发布检查表】一个 12 项的 checklist必须全部打钩才能发布。包括[x] 所有代码在至少 2 种 GPUA100 RTX4090上验证通过[x] 所有路径变量在文档中用USER_PATH标出且提供替换说明[x] 所有命令行示例包含完整前缀$ cd /path python script.py ...[x] 所有性能数据标注测试环境CPU/GPU/OS 版本[x] 所有第三方工具注明确切版本Ollama v0.3.10非Ollama latest...[x] 所有外部链接GitHub / arXiv / Hugging Face经人工点击确认有效这个看板的魔力在于它不产出“规范文档”而是让规范在每一次协作中自然沉淀。当新人加入他不需要读一份《写作指南》而是直接看【断点银行】里最近三条记录的填写格式看【发布检查表】第 7 项“是否提供内存占用对比图”是如何被严格执行的规范就内化了。这种“做中学”的协作比任何培训都有效。3.4 归档与可追溯性为什么 GitHub Pages Git Commit 是唯一选择所有历史 newsletter 都托管在 GitHub Pages源码仓库完全公开。这不是为了“开源姿态”而是为了实现绝对的可追溯性。第14期的最终 HTML 页面其 Git commit hash 是a1b2c3d...而这个 hash 对应的源文件newsletter-14.md其修改历史清晰可见2024-05-20 14:22Alex 提交初稿添加【本周动手】代码2024-05-21 09:15Maya 修改【概念深挖】部分将 “KV Cache Compression” 解释从数学推导改为 Excel 模拟2024-05-22 16:40Leo 添加【社区回声】中的 Discord thread 截图并修正一处命令行参数错误2024-05-23 10:05全体 review 后合并触发 GitHub Actions 自动构建并部署到 Pages更重要的是每期页面底部都有一个固定区块本文档版本v14.3最后更新2024-05-23变更日志 查看 GitHub commit diff勘误提交 新建 Issue这意味着读者发现任何问题比如某行代码在新版本 PyTorch 下失效可以直接点进 commit diff看到这个改动是谁、何时、为何做的也可以直接提 Issue问题会被自动关联到对应版本。这种透明度让 newsletter 从“一次性阅读物”变成了“持续演化的活文档”。一位读者曾基于 #12 期的 vLLM 部署指南在自己的生产环境跑了三个月期间 vLLM 发布了 5 个新版本他每次升级都先看newsletter-12.md的 commit history找到当初作者使用的版本号再对比 changelog 决定是否升级——这就是可追溯性带来的真实生产力。4. 实操过程与核心环节实现手把手复现第14期的“Ollama Obsidian 双向笔记”工作流4.1 环境准备为什么必须从裸机开始拒绝“一键脚本”第14期的【本周动手】模块目标是实现 Ollama 本地大模型与 Obsidian 笔记的双向联动在 Obsidian 中选中一段文字右键“Send to LLM”自动调用本地 Qwen2.5-7B 生成摘要/改写/翻译同时LLM 的输出结果可一键插入当前笔记。这个看似简单的功能实操中陷阱密布。因此文档强制要求从“裸机”开始不提供任何install-all.sh一键脚本。原因有三GPU 驱动版本是隐形地雷Ollama 的qwen2.5:7b模型需要 CUDA 12.1而 Ubuntu 22.04 默认仓库的nvidia-driver-525仅支持 CUDA 11.8。如果一键脚本自动安装驱动很可能降级 CUDA导致模型加载失败。所以文档第一步就是检查你的 CUDA 版本$ nvcc --version如果输出Cuda compilation tools, release 11.8请勿继续必须先升级驱动$ sudo apt install nvidia-driver-535支持 CUDA 12.2$ sudo reboot再次检查nvcc --version确认为release 12.2。Ollama 模型存储路径需手动规划Ollama 默认将模型存在~/.ollama/models但该路径可能位于 SSD 小分区。Qwen2.5-7B-Int4 占用 4.2GB若 SSD 剩余空间不足 10GB后续无法加载其他模型。因此文档要求创建专用模型目录$ mkdir -p /data/ollama-models$ echo export OLLAMA_MODELS/data/ollama-models ~/.bashrc$ source ~/.bashrc验证$ ollama list应显示空列表证明路径已生效。Obsidian 插件沙箱需显式授权Obsidian 为安全默认禁止插件执行外部命令。Ollama 调用需spawn进程必须手动开启。文档给出精确路径开启 Obsidian 外部命令权限打开 Obsidian 设置 →Core plugins→Advanced→ 勾选Enable community plugins然后进入Settings→About→ 点击Open developer console输入app.plugins.enablePlugin(obsidian-shell-command)重启 Obsidian。这三步“反便捷”的设计确保用户在动手前已对底层依赖有清醒认知。实测表明跳过这三步直接运行一键脚本的用户100% 在 2 小时内遭遇不可解故障而严格按此流程的用户首次成功率达 91%。4.2 模型拉取与验证为什么ollama pull后必须做三重校验拉取模型是第二步但ollama pull qwen/qwen2.5:7b远非终点。#14 文档要求进行三重校验缺一不可校验 1哈希值比对文档提供该模型的官方 SHA256 哈希值a1b2c3d...e4f5g6h。用户需执行$ cd /data/ollama-models/blobs $ find . -name *qwen2.5* -exec sha256sum {} \; # 输出应包含a1b2c3d...e4f5g6h ./sha256:a1b2c3d...e4f5g6h为什么因为 Ollama 的 pull 机制在弱网下可能中断并缓存损坏 blob哈希校验是唯一保险。校验 2GPU 加载测试不直接运行ollama run而是用 Python 脚本测试加载# test_gpu_load.py import ollama try: response ollama.generate( modelqwen/qwen2.5:7b, promptHello, options{num_ctx: 2048, num_gpu: 1} # 强制指定 1 块 GPU ) print(GPU 加载成功响应:, response[response][:20]) except Exception as e: print(GPU 加载失败:, str(e)) # 常见错误CUDA out of memory → 检查 nvidia-smi 是否有其他进程占满显存 # model not found → 检查 OLLAMA_MODELS 路径是否正确这步绕过 Ollama CLI 的抽象层直击 GPU 分配核心。校验 3推理速度基线运行一个标准测试$ time echo Explain quantum computing in simple terms | ollama run qwen/qwen2.5:7b # 记录 real time应 8.5sA100 24G 环境下 # 若 12s检查是否启用了 swapfree -hswap 会严重拖慢 CUDA kernel 加载这三重校验将“模型拉取成功”这个模糊状态转化为三个可测量、可归因、可调试的确定性事件。它教会用户的不是“怎么用”而是“怎么确认它真的在按预期工作”。4.3 Obsidian 插件配置为什么必须手写shell-command.json而非用 UI 配置Obsidian 的Shell Command插件UI 配置界面看似方便但无法满足本工作流的精确控制需求。#14 文档要求用户手动创建配置文件vault/.obsidian/plugins/shell-command/data/shell-command.json内容如下{ commands: [ { id: qwen-summarize, name: Summarize with Qwen2.5, description: Send selected text to Qwen2.5 for summary, command: ollama run qwen/qwen2.5:7b, args: [--format, json], stdin: true, stdout: true, env: { OLLAMA_HOST: 127.0.0.1:11434, PATH: /usr/local/bin:/usr/bin:/bin }, timeout: 30000, insertAtCursor: true, preprocessOutput: jq -r .response // .error // \Error\ } ] }关键点解析stdin: true允许将 Obsidian 中选中的文本作为标准输入传入ollama runenv显式设置OLLAMA_HOST避免插件使用默认localhost导致连接失败某些网络配置下localhost≠127.0.0.1preprocessOutput用jq提取 JSON 响应中的response字段若出错则返回error字段确保插入笔记的内容总是纯净文本而非原始 JSONtimeout: 3000030 秒超时防止模型卡死锁住 Obsidian。如果用 UI 配置这些关键参数要么缺失要么无法精确控制。手动写 JSON是获得确定性的唯一途径。文档还附上调试技巧在终端执行ollama serve后用curl模拟请求$ curl http://127.0.0.1:11434/api/generate -d { model: qwen/qwen2.5:7b, prompt: Summarize this: [selected text], stream: false } | jq -r .response这步验证了 Ollama API 层正常再排查插件层问题形成清晰的故障树。4.4 双向工作流闭环如何让 LLM 输出“可编辑”而非“只读粘贴”最大的实操难点不是调用模型而是让输出结果无缝融入笔记工作流。#14 提出一个创新方案输出即 Markdown Block Quote。常规做法是“复制粘贴”但这样输出是纯文本无法后续编辑。#14 的脚本在preprocessOutput中做了处理preprocessOutput: jq -r .response // .error // \Error\ | sed s/^/ /即在每行输出前加将其转为 Markdown 引用块。效果是 Quantum computing uses quantum bits (qubits) that can be 0, 1, or both at once (superposition), allowing it to solve certain problems much faster than classical computers.这带来三大好处视觉区分引用块在 Obsidian 中有灰色背景一眼识别为 AI 生成内容可编辑性双击引用块内任意位置即可直接修改文字无需删除重来可扩展性在引用块下方用户可手动添加%% AI-generated on 2024-05-23 %%元数据或插入[[Source Note]]链接形成知识溯源。文档还提供一个进阶技巧用 Obsidian 的Templater插件创建一个模板自动生成带时间戳和来源的引用块 % tp.user.qwen_summary(tp.user.selected_text) % %% Generated by Qwen2.5-7B on % tp.date.now(YYYY-MM-DD HH:mm) % %%其中tp.user.qwen_summary()是一个自定义函数内部调用上述 shell command。这步将“调用”升级为“集成”让 AI 成为笔记的有机组成部分而非外来访客。5. 常见问题与排查技巧实录来自 38 封读者邮件与 12 个 Issue 的真实战场5.1 “Ollama run 报错 ‘CUDA error: no kernel image is available’” —— GPU 架构不匹配的终极解法这是 #14 期收到最多的问题共 17 封邮件提及表面是 Ollama 错误根因是 NVIDIA GPU 架构代际错配。典型场景用户用 RTX 4090Ada Lovelace 架构compute capability 8.9运行官方qwen/qwen2.5:7b模型编译时 target 为 Ampere 架构cc 8.0/8.6导致 kernel 无法加载。错误现场还原$ ollama run qwen/qwen2.5:7b Hello Error: failed to load model: CUDA error: no kernel image is available for execution on the device标准排查流程文档已内置确认 GPU 架构$ nvidia-smi --query-gpuname,compute_cap --formatcsv输出NVIDIA GeForce RTX 4090, 8.9确认模型支持的架构$ ollama show qwen/qwen2.5:7b --modelfile | grep -A5 FROM查看 base model 的 CUDA 编译参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2636554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…