ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

LLM Zoomcamp 仓库结构解析:cohorts 目录、module.yaml 元数据与多届课程发布约定

LLM Zoomcamp 仓库结构解析:cohorts 目录、module.yaml 元数据与多届课程发布约定 LLM Zoomcamp 仓库结构解析cohorts 目录、module.yaml 元数据与多届课程发布约定【免费下载链接】llm-zoomcampLLM Zoomcamp - a free online course about real-life applications of LLMs. In 10 weeks you will learn how to build an AI system that answers questions about your knowledge base. Register here 项目地址: https://gitcode.com/GitHub_Trending/ll/llm-zoomcampLLM Zoomcamp 是 DataTalks.Club 推出的免费开源课程教会学员在 10 周内从零构建一套基于 RAG检索增强生成、向量搜索与 Agent 的生产级 LLM 应用。而支撑这套课程持续多届交付的是仓库中一套严谨的内容组织结构——本文聚焦于 cohorts/README.md 所定义的 cohorts 目录约定深入讲解课程一届一目录的组织方式、cohort/module/unit 三级命名规则、YAML 元数据文件cohort.yaml、module.yaml、homework.yaml的实际字段含义以及维护多届课程时的编辑与发布工作流。读完本文你将理解这个课程仓库为何能同时承载 2024、2025、2026 三届课程且新届内容与历史档案互不干扰。Cohorts 目录是什么一届课程 一个目录cohorts/目录是课程多届交付的组织单元。每届课程对应一个cohorts/year/子目录目录名本身就是课程平台发布出去的 cohort 标识符cohort identifier不是装饰性的命名。仓库中实际存在三届课程cohorts/2024/ —— 早期届次冻结档案cohorts/2025/ —— 上一届冻结档案cohorts/2026/ ——当前届次所有内容编辑都发生在这里原文档明确强调2026 is the current cohort. Edit there.。当前时刻2026 年 9 月正处于 2026 届的运行周期内cohort.yaml 中start_date为 2026-06-08、end_date为 2026-10-12因此该届是唯一接受 Pull Request 修改的目标2024 与 2025 届则作为历史记录被冻结。从仓库根目录的 README.md 可以看到课程主页的 Syllabus 章节正是通过链接到cohorts/2026/01-agentic-rag/、cohorts/2026/02-vector-search/等目录来组织模块导航的。也就是说网站层面的课程结构完全由 cohorts 目录驱动目录就是内容系统的入口。目录布局总览原文档给出的目录布局如下这是整个约定的骨架cohorts/ ├── 2026/ # the directory name IS the cohort identifier │ ├── cohort.yaml # cohort identity, dates, module flow │ ├── README.md # the human-readable schedule │ ├── 01-agentic-rag/ # the directory name IS the module slug │ │ ├── module.yaml # module identity and unit list │ │ ├── README.md # GitHub-facing module index, not published │ │ ├── 01-intro.md # units: NN-kebab.md, the stem IS the unit slug │ │ ├── 02-environment.md │ │ ├── homework.md # homework instructions, fixed name │ │ ├── homework.yaml # homework identity, due date, form, questions │ │ └── code/ # notebooks and scripts the units link │ ├── ... │ └── workshops/ # non-module cohort material is allowed ├── 2025/ # earlier cohorts: frozen archives └── 2024/对照仓库实际内容逐层验证cohort 层cohorts/2026/cohort.yaml 存放该届的身份、日期与模块流程cohorts/2026/README.md 是人类可读的课表列出各模块及其 homework 链接、dlt 工作坊、capstone 项目指南入口。module 层01-agentic-rag/、02-vector-search/、03-orchestration/、04-evaluation/、05-monitoring/、06-best-practices/、07-project-example/七个模块目录并列存放目录名前缀的数字决定课程顺序。每个模块目录内包含module.yaml、README.md、若干NN-kebab.md单元文件、固定命名的homework.md与homework.yaml以及code/目录如 cohorts/2026/01-agentic-rag/code/ 中存放ingest.py、rag_helper.py、各 notebook 等。workshop 层workshops/允许放置不属于固定模块的届次材料例如 cohorts/2026/workshops/dlt.md 及配套的dlt/课程目录。从源码结构看课程内容unit 页面与代码code/目录、图片images/目录被刻意收拢在同一模块目录内这与下一节的两条核心规则直接呼应。两条核心规则名字即身份、模块自包含原文档明确指出整个布局约定中两条规则承担了绝大部分重量Two rules carry most of the weight理解它们就理解了整个仓库的设计动机。规则一名字即身份Names are identitycohort 标识符、module slug 和 unit slug 分别是目录名与文件名本身cohort 标识符 2026/目录名module slug 01-agentic-rag/目录名unit slug 01-intro.md这类单元文件的文件名主干stem即NN-kebab.md中的NN-kebab。这条规则有三个直接推论均可在仓库中印证YAML 中不重复声明名字。例如 cohorts/2026/cohort.yaml 中的identifier: 2026与目录名一致module.yaml 中的units列表只通过path: 01-intro.md引用文件unit 的 slug 就是该路径的文件名主干不需要单独字段。重命名即移动已发布的 URL。slug 一旦被课程平台发布改名意味着 URL 失效因此原文档将重命名定义为平台决策而非仓库 Pull Request。固定命名承担固定职责。homework.md与homework.yaml的名字是固定的不随模块变化——解析器无需查找即可定位作业文件cohort.yaml、module.yaml同理。规则二模块目录自包含A module directory is self-contained一个模块目录应当自成一体单元、图片、代码和作业全部放在该模块目录内部单元文件如01-intro.md是module.yaml的兄弟文件位于同一层级相对链接绝不越过 cohort 目录向上攀爬凡是要指向更远位置的内容一律写成绝对 URL。这一点在 cohorts/2026/01-agentic-rag/README.md 中有直观体现模块 README 内的链接要么指向本目录的单元文件如01-intro.md要么指向更早届次时使用../../2024/形式的相对路径从模块目录出发恰好不越过 cohort 目录的上一层或者直接给出 YouTube 等外部绝对链接。同时该 README 明确标注 GitHub-facing module index, not published——它是面向 GitHub 浏览者的索引页不会被网站发布系统收录。三个 YAML 元数据文件课程发布系统的数据契约原文档将 YAML 的作用概括为cohort identity, dates, module flow、module identity and unit list、homework identity, due date, form, questions下面结合仓库中的真实文件逐字段展开。cohort.yaml一届课程的全局定义cohorts/2026/cohort.yaml 完整内容如下schema_version: 1 content_id: 88444444-4444-4444-8444-444444444444 course: llm-zoomcamp identifier: 2026 legacy_slug: llm-zoomcamp-2026 year: 2026 title: LLM Zoomcamp 2026 description: The 2026 live delivery of LLM Zoomcamp. format: modules published: true start_date: 2026-06-08 end_date: 2026-10-12 flow: - module: source: cohorts/2026/01-agentic-rag/module.yaml homework: cohorts/2026/01-agentic-rag/homework.yaml - module: source: cohorts/2026/02-vector-search/module.yaml homework: cohorts/2026/02-vector-search/homework.yaml # ... 依次列出 03-orchestration 至 07-project-example字段语义schema_version: 1—— YAML 元数据的模式版本供解析器做兼容性判断content_id—— 内容平台分配的 UUID标识这一届课程内容本身course: llm-zoomcamp—— 关联到课程级元数据。课程级信息不放在 cohort 文件里而是独立位于仓库根目录的 course.yaml包含slug: llm-zoomcamp、title、outcome: Build, evaluate, and monitor production-style LLM applications.、description_path: SITE.md等。课程course与每一届交付cohort是分离的两层课程定义不变每届通过start_date/end_date与flow定义自己的一次运行identifier/legacy_slug/year—— 该届的标识符、兼容旧平台的 slug 与年份format: modules—— 内容组织格式为模块制published: true—— 该届是否对外发布解析器据此决定是否收录start_date/end_date—— 一届课程的起止时间2026 届为 2026-06-08 至 2026-10-12flow——模块流程顺序即教学顺序。每一项通过sourcemodule.yaml 的相对路径与homeworkhomework.yaml 的相对路径引用具体文件这正是模块目录自包含规则的元数据侧印证路径从仓库根出发指向各模块目录内部。module.yaml模块身份与单元清单cohorts/2026/01-agentic-rag/module.yaml 定义了模块身份与单元列表schema_version: 1 content_id: 2a309b04-3047-4864-a32e-a8c101603b29 title: Module 1: Agentic RAG units: - content_id: 856087c5-2a56-41ad-b43b-36e6ab335414 title: Introduction path: 01-intro.md - content_id: 416b9812-be85-45d3-b4f9-11b8342c3cdd title: Environment path: 02-environment.md # ... 共 16 个单元直到 16-other-frameworks.mdunits数组是模块的骨干每一项给出content_id平台内容标识、title单元显示标题与path单元文件相对路径。单元在数组中的顺序即教学顺序。以模块 1Agentic RAG为例其 16 个单元完整覆盖了从 RAG 基础到 Agent 实战的完整链路01-intro.md简介→02-environment.md环境→03-rag.mdRAG 原理→04-dataset.md数据集→05-search.mdminsearch 搜索→06-building-prompt.md提示词构建→07-llm.mdLLM 调用→08-rag-helper.md可复用 RAG 助手→09-data-ingestion.md数据摄取→10-rag-next-steps.md→11-agents-intro.mdAgent 引入→12-rag-revision.md可选复习→13-function-calling.md函数调用→14-agentic-loop.mdAgent 循环→15-frameworks.mdToyAIKit 教学框架→16-other-frameworks.md生产框架。homework.yaml作业身份、截止时间与题目定义cohorts/2026/01-agentic-rag/homework.yaml 是作业的完整数据契约schema_version: 1 content_id: 85555555-5555-4555-8555-555555555555 slug: homework-01 title: Homework 1: Agentic RAG instructions_path: homework.md due_at: 2026-08-31T21:59:00Z initial_state: open form: homework_url: true time_spent_lectures: true time_spent_homework: true faq_contribution: true learning_in_public_cap: 7 questions: - content_id: 86666666-6666-4666-8666-666666666666 id: lesson-page-count type: multiple_choice prompt: How many lesson pages are in the dataset? options: - id: pages-24 label: 24 - id: pages-72 label: 72 - id: pages-240 label: 240 - id: pages-720 label: 720 points: 1 answer: version: 1 algorithm: A256GCM kdf: HKDF-SHA256 key_id: hw-answer-llm-2026-1 salt: ... nonce: ... ciphertext: ... context_sha256: ... - content_id: 87777777-7777-4777-8777-777777777777 id: reflection type: free_form_long answer_type: any prompt: What did you learn from this module? points: 0关键字段说明slug、title、content_id—— 作业标识与标题instructions_path: homework.md—— 指向同目录下固定命名的作业说明文件 cohorts/2026/01-agentic-rag/homework.md人类可读的题目描述与提交要求due_at: 2026-08-31T21:59:00Z—— 带时区UTC的截止时间initial_state: open—— 作业初始状态form—— 提交表单需要学员填写的字段开关作业链接、听课用时、作业用时、FAQ 贡献以及learning_in_public_cap: 7公开学习加分上限questions—— 题目数组两种题型可见multiple_choice带选项、分值、标准答案与free_form_long开放式长文本如本次模块你学到了什么选择题答案以加密形式存储algorithm: A256GCM、kdf: HKDF-SHA256、key_id、salt、nonce、ciphertext与context_sha256——从实现细节可以推断答案并不以明文散落在仓库中公开仓库无法直接读到标准答案防止学员在提交前轻易获取。单元页面文件NN-kebab.md 与 front-matter单元文件遵循NN-kebab.md命名其中NN是两位数字序号kebab是连字符分隔的短横线命名。文件名主干即单元 slug例如01-intro、02-environment。除了正文单元文件还可以携带 YAML front-matter 元数据——以 cohorts/2026/01-agentic-rag/01-intro.md 为例--- video_url: https://www.youtube.com/watch?vrQYyFxf1FWwlistPL3MmuxUbc_hLZFNgSad56pDBKK8KO0XIv ---video_url将单元页面与其对应课时视频关联起来这是网站渲染课时页面的数据来源之一。正文本身是标准的 Markdown 教学文档例如 01-intro.md 用手机输入法的下一个词预测类比来解释 LLM 的原理属于面向学员的讲解内容。编辑与维护工作流当前届、冻结档案与 slug 冻结原文档将编辑规则浓缩为三条这是维护多届课程仓库的核心纪律修复当前届次。所有内容修正都提交到 2026 届这是 Pull Request 唯一被接受的去处。仓库根目录的 README.md 中的贡献流程fork → 修改 → 发起带清晰描述的 PR配合这一规则保证了新内容不会误入历史目录。旧届次是冻结档案。2024 与 2025 届的漂移drift本身就是当年实际教学内容的记录不应被改动。只有在事实性错误或破坏性错误时才可以回填修复且必须逐届单独明确操作不能跨届批量修改。已发布 slug 冻结。任何已经发布过的 slugcohort 标识符、模块 slug、单元 slug都不可重命名重命名属于平台决策而非仓库 Pull Request 的范畴。这套纪律与名字即身份规则互为表里正因为名字是身份、是 URL才有了冻结的必要正因为旧届是档案才必须把修改限制在当前届。约定的权威来源与一致性检查原文档特别说明了一个重要事实本仓库不重复定义这些约定本身。目录布局与课程契约YAML schema 与单元页面规则的权威定义位于独立的DataTalksClub/zoomcamp-template模板仓库中——其中STRUCTURE.md定义仓库布局其旁的课程契约文档定义 YAML schema 与单元页面规则该模板仓库内的scripts/check-zoomcamp/一致性检查器conformance checker会在变更推送到本仓库之前报告改动会破坏哪些内容。在权威链条上最终裁决者是网站端的 ingestion parser内容摄取解析器它会在 push 时大声失败fails loudly on push而 conformance checker 存在的意义就是让这种情况几乎永远不会发生。也就是说本仓库的 YAML 与命名约定通过两层防护保证与发布系统一致推送前本地检查器预警推送时解析器兜底。这一设计解释了为什么仓库内的元数据文件如此规整——每个字段schema_version、content_id、flow、units、questions等都是解析器的输入契约任何偏离都会在发布链路中被捕获。从结构到内容约定如何支撑 LLM Zoomcamp 的实际课程这套目录约定不是形式主义它直接承载了课程的实质内容。2026 届的七个模块完整覆盖了课程大纲Module 1: Agentic RAG—— 从关键词搜索构建 RAG 管线再用函数调用使其 Agent 化Module 2: Vector Search—— 基于嵌入的语义搜索涉及 minsearch、sqlitesearch 与 PGVectorModule 3: Orchestration—— 使用 Kestra 做 AI 编排Module 4: Evaluation—— 检索质量与回答质量度量、离线与在线评估Module 5: Monitoring—— 用户反馈与系统健康监控、实时仪表盘Module 6: Best Practices—— LangChain、混合搜索向量 关键词、重排序提升精度Module 7: End-to-End Project—— 以健身助手的完整项目为例另附Capstone Project见 project.md要求学员从零交付一个完整的端到端 RAG 应用并经历检索、评估、界面与监控反馈闭环的完整流程。每个模块目录内的code/如 cohorts/2026/04-evaluation/code/ 下的evaluation_utils.py、rag_helper.py等、images/、homework.md都以同样的模块自包含方式组织任何一届、任何一个模块都可以被独立解析、独立发布而不会牵动整仓库其他部分。总结LLM Zoomcamp 仓库的 cohorts 目录约定本质上是把多届课程交付这一复杂问题拆解为三条可机械执行的规则名字即身份——目录名、文件名就是发布系统中的 slugYAML 只描述内容不重复身份模块目录自包含——单元、代码、图片、作业与元数据同处一目录相对链接不越级当前届可编辑、旧届冻结、slug 冻结——通过工作流纪律保证历史档案的完整性与已发布链接的稳定性。再加上cohort.yaml、module.yaml、homework.yaml三个 YAML 文件构成的机器可读数据契约由模板仓库的一致性检查器与网站端解析器双重校验这套约定让课程平台可以稳定地多届重复发布课程、自动生成课表与作业表单同时让社区贡献者清楚地知道改哪里、怎么改、哪里不能改。理解这一结构无论是作为学员浏览课程材料、还是作为贡献者提交 PR都能准确地在仓库中定位内容并遵守发布规则。【免费下载链接】llm-zoomcampLLM Zoomcamp - a free online course about real-life applications of LLMs. In 10 weeks you will learn how to build an AI system that answers questions about your knowledge base. Register here 项目地址: https://gitcode.com/GitHub_Trending/ll/llm-zoomcamp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表