From bb5f43adf18dbb2fdc5d824e4710299b606ee692 Mon Sep 17 00:00:00 2001 From: vansin Date: Wed, 8 Apr 2026 09:07:23 +0800 Subject: [PATCH 1/6] =?UTF-8?q?docs:=20=E6=96=87=E6=A1=A3=E7=A7=BB?= =?UTF-8?q?=E5=85=A5=20docs/=20=E7=9B=AE=E5=BD=95=EF=BC=8C=E5=8E=BB?= =?UTF-8?q?=E6=8E=89=20frontmatter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ai-intro/ai-ethics.md | 145 ++++ docs/ai-intro/ai-productivity.md | 173 +++++ docs/ai-intro/ai-tools-landscape.md | 88 +++ docs/ai-intro/capabilities-and-limits.md | 128 ++++ docs/ai-intro/how-ai-learns.md | 165 +++++ docs/ai-intro/how-llm-works.md | 136 ++++ docs/ai-intro/index.md | 66 ++ docs/ai-intro/prompting-for-everyone.md | 155 ++++ docs/ai-intro/what-is-ai.md | 110 +++ docs/api/authentication.md | 124 ++++ docs/api/claude-code.md | 124 ++++ docs/api/coding-tools.md | 54 ++ docs/api/index.md | 66 ++ docs/api/models/internlm3.md | 61 ++ docs/api/models/internvl3.md | 90 +++ docs/api/openclaw.md | 154 ++++ docs/api/quickstart.md | 234 ++++++ docs/contribute/index.md | 133 ++++ docs/high-school/biology.md | 604 ++++++++++++++++ docs/high-school/chemistry.md | 488 +++++++++++++ docs/high-school/index.md | 34 + docs/high-school/math.md | 417 +++++++++++ docs/high-school/physics.md | 456 ++++++++++++ docs/learn/concepts/attention-mechanism.md | 131 ++++ docs/learn/concepts/embedding.md | 122 ++++ docs/learn/concepts/index.md | 4 + docs/learn/concepts/tokenization.md | 106 +++ docs/learn/concepts/transformer.md | 115 +++ docs/learn/concepts/what-is-llm.md | 89 +++ docs/learn/core/agent2agent.md | 227 ++++++ docs/learn/core/ai-agent.md | 168 +++++ docs/learn/core/evaluation-benchmarks.md | 146 ++++ docs/learn/core/function-calling.md | 175 +++++ docs/learn/core/index.md | 4 + docs/learn/core/mcp-protocol.md | 216 ++++++ docs/learn/core/model-safety.md | 161 +++++ docs/learn/core/prompt-engineering.md | 133 ++++ docs/learn/core/rag-basics.md | 124 ++++ docs/learn/index.md | 201 ++++++ docs/learn/multimodal/image-editing.md | 164 +++++ docs/learn/multimodal/index.md | 4 + docs/learn/multimodal/internsvg.md | 167 +++++ docs/learn/multimodal/text-to-image.md | 175 +++++ docs/learn/multimodal/text-to-video.md | 191 +++++ docs/learn/multimodal/vlm.md | 121 ++++ docs/learn/training/index.md | 4 + docs/learn/training/lora.md | 176 +++++ docs/learn/training/model-quantization.md | 144 ++++ docs/learn/training/pretraining.md | 128 ++++ docs/learn/training/rlhf.md | 151 ++++ docs/learn/training/sft.md | 150 ++++ docs/learn/tutorials/a100-internvl-u.md | 371 ++++++++++ docs/learn/tutorials/ascend-internvl-u.md | 528 ++++++++++++++ docs/learn/tutorials/index.md | 4 + docs/learn/tutorials/metax-internvl-u.md | 803 +++++++++++++++++++++ docs/models/index.md | 35 + docs/models/internlm/index.md | 69 ++ docs/models/internlm/quickstart.md | 99 +++ docs/models/internvl/index.md | 40 + docs/models/lmdeploy/index.md | 70 ++ docs/models/opencompass/index.md | 42 ++ docs/models/timeline.md | 60 ++ docs/models/xtuner/index.md | 56 ++ 63 files changed, 10079 insertions(+) create mode 100644 docs/ai-intro/ai-ethics.md create mode 100644 docs/ai-intro/ai-productivity.md create mode 100644 docs/ai-intro/ai-tools-landscape.md create mode 100644 docs/ai-intro/capabilities-and-limits.md create mode 100644 docs/ai-intro/how-ai-learns.md create mode 100644 docs/ai-intro/how-llm-works.md create mode 100644 docs/ai-intro/index.md create mode 100644 docs/ai-intro/prompting-for-everyone.md create mode 100644 docs/ai-intro/what-is-ai.md create mode 100644 docs/api/authentication.md create mode 100644 docs/api/claude-code.md create mode 100644 docs/api/coding-tools.md create mode 100644 docs/api/index.md create mode 100644 docs/api/models/internlm3.md create mode 100644 docs/api/models/internvl3.md create mode 100644 docs/api/openclaw.md create mode 100644 docs/api/quickstart.md create mode 100644 docs/contribute/index.md create mode 100644 docs/high-school/biology.md create mode 100644 docs/high-school/chemistry.md create mode 100644 docs/high-school/index.md create mode 100644 docs/high-school/math.md create mode 100644 docs/high-school/physics.md create mode 100644 docs/learn/concepts/attention-mechanism.md create mode 100644 docs/learn/concepts/embedding.md create mode 100644 docs/learn/concepts/index.md create mode 100644 docs/learn/concepts/tokenization.md create mode 100644 docs/learn/concepts/transformer.md create mode 100644 docs/learn/concepts/what-is-llm.md create mode 100644 docs/learn/core/agent2agent.md create mode 100644 docs/learn/core/ai-agent.md create mode 100644 docs/learn/core/evaluation-benchmarks.md create mode 100644 docs/learn/core/function-calling.md create mode 100644 docs/learn/core/index.md create mode 100644 docs/learn/core/mcp-protocol.md create mode 100644 docs/learn/core/model-safety.md create mode 100644 docs/learn/core/prompt-engineering.md create mode 100644 docs/learn/core/rag-basics.md create mode 100644 docs/learn/index.md create mode 100644 docs/learn/multimodal/image-editing.md create mode 100644 docs/learn/multimodal/index.md create mode 100644 docs/learn/multimodal/internsvg.md create mode 100644 docs/learn/multimodal/text-to-image.md create mode 100644 docs/learn/multimodal/text-to-video.md create mode 100644 docs/learn/multimodal/vlm.md create mode 100644 docs/learn/training/index.md create mode 100644 docs/learn/training/lora.md create mode 100644 docs/learn/training/model-quantization.md create mode 100644 docs/learn/training/pretraining.md create mode 100644 docs/learn/training/rlhf.md create mode 100644 docs/learn/training/sft.md create mode 100644 docs/learn/tutorials/a100-internvl-u.md create mode 100644 docs/learn/tutorials/ascend-internvl-u.md create mode 100644 docs/learn/tutorials/index.md create mode 100644 docs/learn/tutorials/metax-internvl-u.md create mode 100644 docs/models/index.md create mode 100644 docs/models/internlm/index.md create mode 100644 docs/models/internlm/quickstart.md create mode 100644 docs/models/internvl/index.md create mode 100644 docs/models/lmdeploy/index.md create mode 100644 docs/models/opencompass/index.md create mode 100644 docs/models/timeline.md create mode 100644 docs/models/xtuner/index.md diff --git a/docs/ai-intro/ai-ethics.md b/docs/ai-intro/ai-ethics.md new file mode 100644 index 000000000..24b1be63e --- /dev/null +++ b/docs/ai-intro/ai-ethics.md @@ -0,0 +1,145 @@ + +# AI 伦理与社会影响 + +AI 不仅是技术问题,更是社会问题。了解这些议题,能帮你更理性地看待 AI。 + +## 一、AI 偏见 + +### 什么是 AI 偏见? + +AI 从数据中学习,如果数据本身有偏见,AI 就会"学会"这些偏见。 + +``` +例子: +如果训练数据中"CEO"的图片大多是男性 +→ AI 生成"CEO 的照片"时,大概率生成男性形象 +→ 这不是 AI "故意"歧视,而是数据反映了社会现状的偏见 +``` + +### 现实影响 + +| 场景 | 偏见风险 | +|------|---------| +| AI 简历筛选 | 可能不公平地偏向某些群体 | +| AI 信贷审批 | 可能对某些地区或群体不利 | +| AI 新闻推荐 | 可能制造信息茧房 | +| AI 人脸识别 | 对不同肤色的准确率可能不同 | + +### 怎么应对? + +- **不盲目信任 AI 的判断**——尤其是涉及人的决策 +- **了解 AI 决策的依据**——要求 AI 解释它的推理过程 +- **保持多元信息来源**——不要只依赖 AI 推荐的内容 + +## 二、隐私问题 + +### 你发给 AI 的内容去哪了? + +当你在 ChatGPT、Claude 等平台上输入内容时: + +``` +你输入的内容 → 发送到服务商的服务器 → AI 处理后返回结果 +``` + +**关键问题**: +- 你的输入可能被用于模型训练(取决于平台政策) +- 你的对话记录存储在服务商那里 +- 包含个人信息的内容可能存在泄露风险 + +### 保护建议 + +| 做法 | 说明 | +|------|------| +| 不发敏感信息 | 身份证号、密码、公司机密不要发给 AI | +| 阅读隐私政策 | 了解平台如何使用你的数据 | +| 使用本地模型 | 开源模型可以在自己电脑上运行,数据不出门 | +| 关闭训练选项 | 很多平台允许你选择不参与模型训练 | + +## 三、就业影响 + +### AI 会取代我的工作吗? + +这是最常被问到的问题。比较客观的回答是: + +**AI 不会直接取代大多数工作,但会改变几乎所有工作的方式。** + +``` +以前:会计手动核对账目 +现在:Excel 帮你算,你负责分析和决策 + +以前:翻译逐字逐句翻译 +现在:AI 翻译初稿,翻译师负责校对和润色 + +以前:设计师从零画稿 +现在:AI 生成初稿,设计师负责调整和创意 +``` + +### 哪些工作受影响最大? + +| 影响程度 | 工作类型 | 原因 | +|---------|---------|------| +| 高 | 数据录入、简单翻译、基础客服 | 重复性强、规则明确 | +| 中 | 写作、编程、数据分析、设计 | AI 能辅助但需要人类判断 | +| 低 | 医生、律师、教师、管理者 | 需要深度判断、人际交流、责任承担 | +| 极低 | 护理、心理咨询、手工艺 | 需要人类的情感和触感 | + +### 怎么应对? + +1. **学会和 AI 协作**:把 AI 当工具,提升自己的效率 +2. **发展 AI 不擅长的能力**:创造力、共情力、批判性思维、人际沟通 +3. **保持学习**:AI 在进步,你也要持续学习新技能 + +## 四、版权与原创性 + +### AI 生成的内容有版权吗? + +目前各国法律还在制定中,但大致趋势: + +| 问题 | 现状 | +|------|------| +| AI 生成的文章/图片有版权吗? | 多数国家认为纯 AI 生成的内容不受版权保护 | +| 用 AI 辅助创作的作品呢? | 如果人类有足够的创意贡献,可以享有版权 | +| AI 的训练数据涉及版权吗? | 争议最大的问题,多起诉讼正在进行 | + +### 使用建议 + +- **AI 辅助写作**:可以用 AI 帮忙起草,但最终需要你的修改和判断 +- **AI 生成图片**:商业使用需谨慎,注意平台的使用条款 +- **学术场景**:多数学校要求标注使用了 AI 辅助 + +## 五、信息真伪 + +### AI 让假信息更容易传播 + +``` +以前:制造假新闻需要专业技能(PS 图片、编造文章) +现在:AI 可以一键生成以假乱真的文章、图片甚至视频 +``` + +### Deepfake(深度伪造) + +AI 可以生成非常逼真的假视频——让某个人"说出"他从未说过的话。 + +### 如何辨别? + +- **检查来源**:信息来自官方媒体还是不知名渠道? +- **交叉验证**:同一条消息,多个可靠来源是否都报道了? +- **注意细节**:AI 生成的图片常有细节破绽(手指数量、文字扭曲等) +- **保持怀疑**:越是耸动的消息,越需要核实 + +## 写在最后 + +AI 是一面镜子——它反映的是我们社会的数据和价值观。 + +- 如果训练数据有偏见,AI 就有偏见 +- 如果我们用 AI 做善事,AI 就是善的工具 +- 如果我们滥用 AI,AI 就成为害人的帮凶 + +**技术本身没有善恶,关键在于使用它的人。** + +作为 AI 的使用者,我们有责任: +- 理性看待 AI 的能力和局限 +- 在使用中保持道德底线 +- 为建设负责任的 AI 生态贡献一份力量 + +> 恭喜你完成了 AI 通识系列!如果想继续深入学习技术细节,推荐前往 [AI 基础知识](/zh/docs/learn)。 diff --git a/docs/ai-intro/ai-productivity.md b/docs/ai-intro/ai-productivity.md new file mode 100644 index 000000000..213125f5d --- /dev/null +++ b/docs/ai-intro/ai-productivity.md @@ -0,0 +1,173 @@ + +# 用 AI 提升工作效率 + +理论够了,来看看 AI 到底怎么在日常工作中帮到你。 + +## 场景一:写作 + +### 从零起草 + +``` +提示词: +"请帮我写一份项目总结报告的初稿。 + 项目名称:2025 年公司数字化转型 + 关键成果:上线了 CRM 系统、完成了数据中台建设、 + 培训了 200 名员工 + 篇幅:约 1000 字 + 语气:正式但不枯燥" +``` + +AI 会给你一份结构清晰的初稿。你再在这个基础上修改——比从白纸开始快 5 倍。 + +### 润色优化 + +``` +提示词: +"请润色以下段落,让它更加流畅、专业。 + 保持原意不变,不要添加新内容。 + + [粘贴你的原文]" +``` + +### 换风格 + +``` +"请把以下学术论文摘要改写成科普文章的风格, + 让没有专业背景的读者也能看懂。 + + [粘贴摘要]" +``` + +## 场景二:翻译 + +### 不只是翻译,还能"本地化" + +``` +提示词: +"请将以下中文翻译成英文。 + 这是一封发给美国客户的商务邮件。 + 请使用地道的商务英文,注意礼貌用语。 + 如果有中国特有的表达方式,请调整为西方读者易理解的说法。 + + [粘贴邮件内容]" +``` + +### 对照翻译 + +``` +"请逐段翻译以下内容,每段中文后面紧跟英文翻译。 + 保持原文的段落结构。" +``` + +## 场景三:数据分析 + +### 解读数据 + +``` +提示词: +"以下是我们公司上季度的销售数据: + 1 月:120 万 2 月:95 万 3 月:180 万 + 4 月:150 万 5 月:130 万 6 月:200 万 + + 请帮我分析: + 1. 整体趋势是什么? + 2. 哪个月增长最快? + 3. 可能的原因是什么? + 4. 下季度预测?" +``` + +### 生成图表代码 + +``` +"请用 Python 帮我画一张折线图, + 展示上述 6 个月的销售趋势。 + 图表要求:中文标题、标注每个数据点的值、 + 整体风格简洁专业。" +``` + +## 场景四:PPT 和汇报 + +### 生成大纲 + +``` +提示词: +"我要做一个关于'AI 在教育中的应用'的 PPT。 + 时间 15 分钟,面向学校管理层。 + 请帮我设计 PPT 大纲,包括每页的标题和要点。 + 控制在 12 页以内。" +``` + +### 写演讲稿 + +``` +"基于上面的 PPT 大纲,请帮我写一份演讲稿。 + 每页对应 1-2 分钟的讲解。 + 语气自信但不傲慢,可以适当加入 1-2 个案例。" +``` + +## 场景五:学习 + +### 解释复杂概念 + +``` +"请用一个 10 岁小朋友能理解的方式, + 解释什么是'通货膨胀'。可以用生活中的例子。" +``` + +### 制定学习计划 + +``` +"我想在 3 个月内考过 PMP 证书。 + 每天能学 1-2 小时。 + 请帮我制定一个详细的学习计划, + 包括每周的学习主题、推荐资料和练习安排。" +``` + +### 模拟面试 + +``` +"请扮演一位面试官,面试我产品经理的岗位。 + 每次问一个问题,等我回答后再问下一个。 + 面试结束后给我整体反馈和改进建议。" +``` + +## 场景六:日常效率 + +### 邮件回复 + +``` +"以下是客户的邮件。请帮我起草一份礼貌的回复, + 表达:感谢反馈 + 问题已知晓 + 预计 3 个工作日内解决。 + + [粘贴客户邮件]" +``` + +### 会议纪要 + +``` +"以下是会议的语音转文字记录(比较乱)。 + 请帮我整理成结构化的会议纪要, + 包括:主要议题、讨论要点、结论和待办事项。 + + [粘贴转录文字]" +``` + +## 使用原则 + +1. **AI 出初稿,你做终稿**:AI 解决从 0 到 60 分的问题,你负责从 60 分到 90 分 +2. **重要内容一定要检查**:AI 可能编造数据或引用,务必核实 +3. **迭代优化**:第一次回答不满意?追问、修改、给反馈——几轮对话后通常能得到满意结果 +4. **保护隐私**:不要把公司机密、个人敏感信息直接发给公共 AI 服务 + +## 小结 + +| 工作场景 | AI 能帮你 | 节省时间 | +|---------|----------|---------| +| 写作 | 起草 → 润色 → 改风格 | 50-70% | +| 翻译 | 翻译 + 本地化 + 对照 | 60-80% | +| 数据分析 | 解读趋势 + 生成图表 | 30-50% | +| PPT | 大纲 + 内容 + 演讲稿 | 40-60% | +| 学习 | 解释 + 计划 + 模拟 | 不可量化但显著 | +| 日常 | 邮件 + 会议纪要 + 整理 | 30-50% | + +> **下一篇**:[AI 是怎么训练出来的](/zh/docs/ai-intro/how-ai-learns) —— 用"教小孩"的比喻,讲清楚 AI 训练的全过程。 diff --git a/docs/ai-intro/ai-tools-landscape.md b/docs/ai-intro/ai-tools-landscape.md new file mode 100644 index 000000000..6df2dbc24 --- /dev/null +++ b/docs/ai-intro/ai-tools-landscape.md @@ -0,0 +1,88 @@ + +# AI 工具全景图 + +AI 工具越来越多,让人眼花缭乱。这篇帮你理清主流工具的定位和差异,找到最适合你的。 + +## 对话类 AI(大语言模型) + +这是目前最火的 AI 应用类型——你输入文字,AI 回复文字。 + +| 工具 | 开发者 | 特点 | 适合场景 | +|------|--------|------|---------| +| ChatGPT | OpenAI(美国) | 综合能力强,生态最丰富 | 日常对话、写作、编程 | +| Claude | Anthropic(美国) | 长文本理解强,风格自然 | 长文分析、学术写作 | +| 文心一言 | 百度(中国) | 中文理解好,支持联网 | 中文写作、百度生态 | +| 通义千问 | 阿里(中国) | 多模态能力,集成阿里云 | 企业应用、电商场景 | +| 书生 InternLM | 上海AI实验室(中国) | 开源、科研导向、工具链完整 | 学习研究、开源开发 | +| Gemini | Google(美国) | 多模态原生,集成 Google 服务 | 搜索增强、数据分析 | +| DeepSeek | 深度求索(中国) | 开源、推理能力强 | 数学推理、代码生成 | + +### 怎么选? + +- **日常使用**:ChatGPT 或 Claude 体验最好 +- **中文优先**:文心一言、通义千问中文理解更好 +- **学习和研究**:书生 InternLM(开源可深入了解原理) +- **编程**:ChatGPT、Claude、DeepSeek 都很强 + +## AI 绘画工具 + +| 工具 | 特点 | 适合场景 | +|------|------|---------| +| Midjourney | 艺术质感最好 | 插画、概念设计 | +| DALL·E 3 | 集成在 ChatGPT 中,方便 | 快速生成配图 | +| Stable Diffusion | 开源、可本地部署 | 批量生成、定制化 | +| 即梦 | 字节跳动,中文友好 | 国内用户、视频生成 | + +## AI 音视频工具 + +| 工具 | 功能 | 适合场景 | +|------|------|---------| +| Suno | AI 作曲 + 歌唱 | 音乐创作 | +| ElevenLabs | 语音克隆、文字转语音 | 有声读物、配音 | +| Runway | AI 视频生成和编辑 | 短视频创作 | +| 剪映 | AI 字幕、AI 剪辑 | 视频后期 | + +## AI 办公工具 + +| 工具 | 功能 | 适合场景 | +|------|------|---------| +| Notion AI | 写作、总结、表格 | 知识管理 | +| Microsoft Copilot | 集成 Office 全家桶 | 办公场景 | +| 飞书智能伙伴 | 集成飞书生态 | 团队协作 | +| WPS AI | WPS 内置 AI 助手 | 文档处理 | + +## 开源 vs 闭源:你需要知道的 + +| 维度 | 开源模型 | 闭源模型 | +|------|---------|---------| +| 代表 | InternLM、LLaMA、Qwen、DeepSeek | ChatGPT、Claude、Gemini | +| 费用 | 免费使用(需自己部署) | 按量付费或订阅 | +| 隐私 | 可本地运行,数据不出门 | 数据发送到服务商 | +| 定制 | 可以微调和修改 | 只能通过 API 调用 | +| 上手难度 | 需要一定技术能力 | 即开即用 | + +**对普通用户**:直接用闭源产品即可。 +**对有技术追求的用户**:开源模型让你了解 AI 的底层原理,还能定制适合自己的模型。 + +## 书生(InternLM)生态一览 + +作为本站主打的开源大模型生态,书生系列包括: + +| 项目 | 功能 | +|------|------| +| InternLM | 大语言模型(对话、写作、推理) | +| InternVL | 视觉语言模型(图文理解) | +| Intern-S1 | 科学多模态模型(六大科学领域) | +| XTuner | 模型微调工具 | +| LMDeploy | 模型部署和推理加速 | +| OpenCompass | 模型评测平台 | + +> 想深入了解?查看 [模型文档](/zh/docs/models) 和 [API 文档](/zh/docs/api)。 + +## 小结 + +- **不需要每个工具都会用**——找到 1-2 个适合自己的,用熟就好 +- **工具在快速迭代**——今天的排名明天可能就变了,保持开放心态 +- **重要的不是工具,是你的需求**——先想清楚要解决什么问题,再选工具 + +> **下一篇**:[用 AI 提升工作效率](/zh/docs/ai-intro/ai-productivity) —— 具体的实战场景:写作、翻译、数据分析、PPT。 diff --git a/docs/ai-intro/capabilities-and-limits.md b/docs/ai-intro/capabilities-and-limits.md new file mode 100644 index 000000000..319aba801 --- /dev/null +++ b/docs/ai-intro/capabilities-and-limits.md @@ -0,0 +1,128 @@ + +# AI 能做什么,不能做什么 + +AI 很强大,但它不是万能的。理解它的能力边界,是用好 AI 的前提。 + +## AI 擅长做的事 + +### 语言处理 + +| 任务 | AI 表现 | 例子 | +|------|--------|------| +| 翻译 | 接近专业译员 | 中英互译、小语种翻译 | +| 总结 | 非常出色 | 把一篇万字报告压缩成 500 字摘要 | +| 写作辅助 | 很好 | 起草邮件、润色文章、扩写大纲 | +| 问答 | 大多数问题回答准确 | 百科知识、概念解释 | +| 代码生成 | 实用级别 | 写函数、Debug、代码解释 | + +### 数据处理 + +| 任务 | AI 表现 | 例子 | +|------|--------|------| +| 信息提取 | 优秀 | 从合同中提取关键条款 | +| 分类整理 | 优秀 | 把客户反馈分为正面/负面/建议 | +| 格式转换 | 可靠 | 把自然语言描述转成表格/JSON | + +### 创意辅助 + +| 任务 | AI 表现 | 例子 | +|------|--------|------| +| 头脑风暴 | 优秀 | 给你 20 个营销方案的创意 | +| 图像生成 | 惊人 | 根据文字描述生成图片 | +| 文案创作 | 很好 | 广告语、社交媒体帖子 | + +## AI 不擅长的事 + +### 精确的数学计算 + +``` +问:1847 × 293 = ? +AI 可能算错(它是在"猜"答案,不是在"算") +计算器一定算对 +``` + +**原因**:大模型是"预测下一个词",不是真的在做算术。复杂计算应该交给计算器或代码。 + +### 实时信息 + +``` +问:今天的股票收盘价是多少? +AI:我的知识截止到 2025 年 X 月,无法获取实时数据。 +``` + +**原因**:大模型的知识来自训练数据,有"截止日期"。除非接入了搜索引擎。 + +### 需要"真正理解"的推理 + +大模型在很多推理任务上表现不错,但在某些需要深层因果推理的场景下仍会出错: + +``` +问:一个猎人朝南走了 1 公里,又朝东走了 1 公里, + 又朝北走了 1 公里,回到了原点。他看到了一只熊, + 熊是什么颜色的? + +好的 AI:白色(因为只有在北极点才能满足这个条件, + 北极有北极熊,是白色的) +差的 AI:可能给出错误答案或"无法判断" +``` + +### 个人化记忆 + +``` +你上周跟 AI 说了你的生日 +→ 这周再问,它可能不记得了 +(除非平台有记忆功能) +``` + +## 最需要警惕的:AI 幻觉 + +**"幻觉"是指 AI 非常自信地说出完全错误的信息。** + +``` +你:鲁迅的代表作《活着》讲了什么? +AI:鲁迅的《活着》讲述了一个名叫福贵的人…… + +(错误!《活着》是余华的作品,不是鲁迅的。 + 但 AI 可能会"一本正经"地分析这本"鲁迅的书"。) +``` + +### 为什么会产生幻觉? + +1. **训练数据中有错误信息**:互联网上的错误内容也被模型学习了 +2. **模式匹配出错**:模型倾向于"编出看起来合理的答案" +3. **没有"我不知道"的本能**:模型总是会生成回答,即使它"不确定" + +### 怎么应对? + +- **重要信息一定要验证**:AI 说的话,去搜索引擎或权威来源核实 +- **注意措辞**:如果 AI 说"可能"、"我认为",更要谨慎 +- **多问细节**:追问来源、要求给出参考文献,看它是否前后一致 + +## 一张图判断:该不该用 AI? + +``` +这件事需要…… → 用 AI 吗? + +100% 精确的数字? → 不用,用计算器/Excel +最新的实时数据? → 不用(或用联网版) +法律/医疗的正式决策? → 不能单独依赖 AI +创意灵感和初稿? → 非常适合 +信息整理和总结? → 非常适合 +翻译和语言润色? → 很适合 +学习新概念? → 很适合(但要交叉验证) +``` + +## 小结 + +| 维度 | AI 的表现 | +|------|----------| +| 语言能力 | 接近甚至超过大多数人 | +| 知识广度 | 非常广,但有截止日期 | +| 精确计算 | 不可靠,需要工具辅助 | +| 因果推理 | 在进步,但仍有盲区 | +| 创造力 | 擅长组合和变体,弱于真正原创 | +| 可信度 | 需要人类核查,存在"幻觉" | + +**记住这个原则:AI 是你的高效助手,但不是你的替代品。最终的判断和决策,永远由你来做。** + +> **下一篇**:[和 AI 对话的艺术](/zh/docs/ai-intro/prompting-for-everyone) —— 学会写好提示词,让 AI 给出更好的回答。 diff --git a/docs/ai-intro/how-ai-learns.md b/docs/ai-intro/how-ai-learns.md new file mode 100644 index 000000000..5d8dc3874 --- /dev/null +++ b/docs/ai-intro/how-ai-learns.md @@ -0,0 +1,165 @@ + +# AI 是怎么训练出来的 + +一个能回答各种问题的 AI,不是写几行代码就能造出来的。它需要经历漫长的"培训"过程——就像培养一个人从婴儿到职场精英。 + +## 三个阶段总览 + +``` +阶段一:预训练 → 相当于"上学读书" +阶段二:微调 → 相当于"岗前培训" +阶段三:人类对齐 → 相当于"带教和纠错" +``` + +## 阶段一:预训练——"读遍天下书" + +### 做了什么? + +让模型阅读互联网上几乎所有的文本:网页、书籍、论文、代码、新闻…… + +### 怎么学? + +通过一个简单但强大的练习:**给一段话,猜下一个词。** + +``` +训练数据:"今天的天气___" +正确答案:"真好" + +模型第一次猜:"苹果"(错了,调整参数) +模型第二次猜:"可以"(接近了,继续调整) +模型第 N 次猜:"真好"(对了!记住这个规律) +``` + +这个过程重复**几万亿次**。慢慢地,模型就学会了: + +- "今天天气"后面大概率跟"真好"而不是"苹果" +- "根据最新研究"后面大概率跟学术性的表述 +- Python 代码的 `for` 后面大概率跟 `i in range` + +### 类比 + +就像让一个小孩从幼儿园到大学,读了 12 年的书。他不是为了某个具体任务读书,而是在积累**通用知识**。 + +### 需要多少资源? + +| 资源 | 规模 | +|------|------| +| 训练数据 | 几万亿个词(约等于上亿本书) | +| GPU(显卡) | 数千到数万张 | +| 训练时间 | 几周到几个月 | +| 电费 | 几百万到上千万美元 | + +## 阶段二:微调——"岗前培训" + +### 为什么需要微调? + +预训练完的模型很"博学",但它不知道怎么"好好说话"。 + +``` +你问:"什么是光合作用?" + +预训练模型可能回复: +"光合作用是植物利用光能将——光合作用的研究始于—— + 在 2003 年 Nature 上发表——" +(东拉西扯,像背书一样) + +微调后的模型回复: +"光合作用是植物利用阳光、水和二氧化碳, + 制造葡萄糖和氧气的过程。简单来说, + 就是植物'吃阳光、喝水、呼出氧气'的过程。" +(条理清晰,像老师在回答学生) +``` + +### 怎么微调? + +准备大量「问题 → 高质量回答」的例子,让模型模仿学习。 + +``` +示例 1: + 问:"帮我写一封请假邮件" + 答:"尊敬的 XX 经理,因个人原因……" + +示例 2: + 问:"把这段英文翻译成中文" + 答:"[准确的翻译内容]" + +……几万到几十万个这样的例子 +``` + +### 类比 + +大学毕业后入职一家公司。公司不需要从头教你知识,而是教你"在这个岗位上怎么做事"——怎么回答客户、怎么写报告、什么话该说什么话不该说。 + +## 阶段三:人类对齐——"带教和纠错" + +### 为什么需要对齐? + +微调后的模型已经"会说话"了,但它可能: + +- 回答有害内容(教人做坏事) +- 回答带有偏见(歧视某个群体) +- 明明不知道还硬答(编造信息) +- 过于啰嗦或重复 + +### 怎么对齐? + +最常用的方法叫 **RLHF**(基于人类反馈的强化学习): + +``` +步骤 1:让模型对同一个问题生成两个回答 +步骤 2:人类标注员选出"哪个回答更好" +步骤 3:模型根据人类偏好调整自己 + +问题:"如何减肥?" + +回答 A:"你太胖了,去绝食吧。" +回答 B:"建议通过均衡饮食和适量运动来管理体重。 + 具体来说……" + +人类选择 B → 模型学到"应该给出安全、有帮助的建议" +``` + +### 类比 + +就像新员工有一位带教师傅。师傅不会替你做事,而是看你做完后给反馈:"这个处理得好"、"那个地方需要改"。慢慢地,你就知道什么是"好的"工作方式了。 + +## 整个过程一览 + +``` +阶段 时间 类比 学到了什么 +───────────────────────────────────────────────────── +预训练 数月 上学读书 世界知识和语言规律 + ↓ +微调 数天 岗前培训 如何好好回答问题 + ↓ +人类对齐 数天 带教纠错 什么该说什么不该说 + ↓ +上线部署 持续 正式上岗 为用户服务 +``` + +## 为什么训练 AI 这么贵? + +| 成本项 | 原因 | +|--------|------| +| GPU 硬件 | 一张高端 GPU 几十万元,需要数千张 | +| 电费 | 数千台服务器 24 小时运转 | +| 数据 | 收集、清洗、标注高质量数据需要大量人工 | +| 人才 | AI 研究员是最稀缺的人才之一 | + +> 训练一个顶级大模型的成本在**几千万到上亿美元**——这就是为什么只有大公司和研究机构才能做。 + +## 开源的意义 + +训练大模型虽然昂贵,但一旦训练好,就可以**开源共享**——这就是书生(InternLM)等开源模型的价值。 + +就像教育的本质是**让知识普及**,开源 AI 的本质是**让 AI 能力普及**。 + +## 小结 + +| 阶段 | 一句话总结 | +|------|-----------| +| 预训练 | 读了海量文本,学会了语言规律 | +| 微调 | 学会了如何好好回答问题 | +| 人类对齐 | 学会了什么该说、什么不该说 | + +> **下一篇**:[AI 伦理与社会影响](/zh/docs/ai-intro/ai-ethics) —— 偏见、隐私、就业、版权——每个人都该思考的问题。 diff --git a/docs/ai-intro/how-llm-works.md b/docs/ai-intro/how-llm-works.md new file mode 100644 index 000000000..c0f863c0a --- /dev/null +++ b/docs/ai-intro/how-llm-works.md @@ -0,0 +1,136 @@ + +# 大模型如何"理解"文字 + +ChatGPT、Claude、书生——这些大模型看起来好像真的"理解"了你说的话。它到底是怎么做到的? + +## 核心原理:超级自动补全 + +**大模型的本质就是一个超级强大的"下一个字预测器"。** + +当你在手机输入法打"今天天气"的时候: + +``` +输入法预测:→ 真好 / 不错 +大模型预测:→ 真好,非常适合户外活动。下午可能会有阵雨, + 建议带上雨伞。气温在 22-28°C 之间…… +``` + +两者原理相同,但大模型的"词汇量"和"联想力"远超输入法。 + +## 第一步:把文字切成"Token" + +大模型不认识汉字或英文字母。它要先把文字切成小块——叫做 **Token**(令牌)。 + +``` +"我喜欢学习人工智能" +→ ["我", "喜欢", "学习", "人工", "智能"] + +"I love artificial intelligence" +→ ["I", " love", " artificial", " intelligence"] +``` + +每个 Token 都有一个编号。对大模型来说,处理文字就是处理一串数字。 + +> **类比**:就像把一本书拆成一个个词条,每个词条有自己的索引号。 + +## 第二步:理解词语之间的关系 + +光知道每个词是什么还不够。"苹果"这个词,可以是水果,也可以是手机品牌。大模型怎么区分? + +**靠上下文。** + +``` +"我吃了一个苹果" → 苹果 = 水果 +"我买了一台苹果" → 苹果 = 电子设备 +``` + +大模型通过一种叫"**注意力机制**"的方法,让每个词"看到"句子里的其他词,从而理解自己在当前语境中的含义。 + +> **类比**:就像你阅读的时候,看到一个词会自动联系前后文来理解它的意思。大模型做的事情类似,只是它是用数学方法实现的。 + +## 第三步:一个字一个字地生成回答 + +当你问大模型一个问题时,它是这样工作的: + +``` +你的问题:"北京的首都是哪里?"(是,这个问题有bug) + +模型思考过程: +1. 看到"北京的首都",觉得问题有点怪 +2. 最可能的下一个词是:"北京" +3. 然后是:"本身" +4. 然后是:"就是" +5. 然后是:"中国" +6. …… + +最终输出:"北京本身就是中国的首都,而不是某个地方的首都。 + 您可能想问的是'中国的首都是哪里?'答案是北京。" +``` + +**关键**:它不是"想好了整句话再输出",而是一个词一个词地预测。每次预测时,都会参考前面已经产生的所有文字。 + +## 为什么大模型"好像什么都知道"? + +因为它**读过**的内容实在太多了: + +| 训练数据 | 大概规模 | +|---------|---------| +| 网页文章 | 几十亿网页 | +| 书籍 | 几百万本 | +| 论文 | 几千万篇 | +| 代码 | GitHub 上的大部分开源代码 | +| 对话 | 各种论坛、问答社区 | + +想象一个人读完了图书馆里所有的书、所有的网页、所有的论文——它的知识面当然广。 + +但要注意:**它"读过"不等于"理解了"**。它学到的是"文字之间的统计规律",而不是真正的因果推理。 + +## 大模型的"记忆"是怎样的? + +大模型有两种"记忆": + +### 训练记忆(长期) + +训练时读过的所有内容,被"压缩"存在了模型的参数里。 + +``` +就像你学过的知识记在了脑子里 +(但不是逐字记住,而是记住了"规律"和"模式") +``` + +### 上下文记忆(短期) + +每次对话中,你前面说过的话。大模型可以"看到"整个对话记录。 + +``` +你:"我叫小明" +AI:"你好小明!" +你:"我的名字是什么?" +AI:"你叫小明。" ← 它看到了前面的对话 +``` + +但有个限制——**上下文窗口**。大模型能"看到"的对话长度有上限(目前通常是几千到几十万字)。超出这个长度,早期的对话就"看不到"了。 + +## 常见误解 + +| 误解 | 事实 | +|------|------| +| "AI 有自己的想法" | 它只是在预测最可能的下一个词 | +| "AI 真的理解了问题" | 它识别了文字模式,但不一定真正"理解" | +| "AI 的回答一定是对的" | 它可能一本正经地说错话("幻觉") | +| "AI 会记住所有对话" | 每次新对话重新开始,除非有特殊设计 | +| "AI 在联网搜索" | 大多数情况下,它只用训练时学到的知识 | + +## 小结 + +``` +大模型工作流程: + +输入文字 → 切成 Token → 理解上下文关系 → 预测下一个词 → 重复 + ↑ + "注意力机制"在这里发挥作用 +``` + +**核心本质**:大模型不是"思考",而是"超级模式匹配"——它读了海量文本,学会了"什么词大概率跟在什么词后面",做到极致后,就涌现出了令人惊叹的语言能力。 + +> **下一篇**:[AI 能做什么,不能做什么](/zh/docs/ai-intro/capabilities-and-limits) —— 了解 AI 的真实能力边界,不高估也不低估。 diff --git a/docs/ai-intro/index.md b/docs/ai-intro/index.md new file mode 100644 index 000000000..ee0255c80 --- /dev/null +++ b/docs/ai-intro/index.md @@ -0,0 +1,66 @@ + +# AI 通识 + +**零基础也能学懂的人工智能入门课。** + +这个系列专为**非计算机专业**、**文科背景**或**对 AI 好奇但不知从哪开始**的同学设计。我们不会一上来就甩公式和代码,而是用你熟悉的生活场景来解释 AI 的核心概念。 + +## 为什么要学 AI 通识? + +不管你是学文学、历史、法律、经济还是艺术——AI 正在改变每一个行业: + +- **新闻传播**:AI 写稿、智能审核、个性化推荐 +- **法律**:合同审查、案例检索、法律问答 +- **教育**:智能辅导、自适应学习、自动批改 +- **金融**:风控模型、智能投顾、欺诈检测 +- **医疗**:辅助诊断、药物发现、病历分析 +- **艺术设计**:AI 绘画、音乐生成、视频创作 + +**学懂 AI 不是为了转行做程序员,而是为了在你自己的领域用好 AI。** + +## 学习路线 + +按顺序阅读,每篇 10-20 分钟,总计约 2 小时即可建立完整的 AI 认知框架。 + +### 第一步:理解 AI 是什么 + +| 顺序 | 教程 | 说明 | 预计时间 | +|------|------|------|---------| +| 1 | [AI 是什么:从计算器到 ChatGPT](/zh/docs/ai-intro/what-is-ai) | AI 的前世今生,三次浪潮,为什么现在爆发 | 15 分钟 | +| 2 | [大模型如何"理解"文字](/zh/docs/ai-intro/how-llm-works) | 不用公式讲清楚 Token、概率预测、上下文 | 15 分钟 | +| 3 | [AI 能做什么,不能做什么](/zh/docs/ai-intro/capabilities-and-limits) | AI 的能力边界、幻觉问题、常见误解 | 15 分钟 | + +### 第二步:学会使用 AI + +| 顺序 | 教程 | 说明 | 预计时间 | +|------|------|------|---------| +| 4 | [和 AI 对话的艺术](/zh/docs/ai-intro/prompting-for-everyone) | 提示词技巧、角色设定、让 AI 输出更好 | 15 分钟 | +| 5 | [AI 工具全景图](/zh/docs/ai-intro/ai-tools-landscape) | ChatGPT / Claude / 文心一言 / 书生,如何选择 | 15 分钟 | +| 6 | [用 AI 提升工作效率](/zh/docs/ai-intro/ai-productivity) | 写作、翻译、数据分析、PPT——实战场景 | 20 分钟 | + +### 第三步:理解 AI 背后的逻辑 + +| 顺序 | 教程 | 说明 | 预计时间 | +|------|------|------|---------| +| 7 | [AI 是怎么训练出来的](/zh/docs/ai-intro/how-ai-learns) | 用"教小孩"的比喻讲清预训练、微调、对齐 | 15 分钟 | +| 8 | [AI 伦理与社会影响](/zh/docs/ai-intro/ai-ethics) | 偏见、隐私、就业、版权——每个人都该思考的问题 | 15 分钟 | + +## 适合谁? + +- **文科生**:想理解 AI 但害怕数学和代码 +- **职场人士**:想用 AI 提效但不知道从哪下手 +- **管理者**:需要理解 AI 能力边界来做决策 +- **学生**:任何专业,想给自己加一项 AI 素养 +- **好奇的人**:单纯想搞懂 AI 到底是什么 + +## 学完之后 + +完成 AI 通识系列后,你将能够: + +- 向朋友清楚解释 AI 和大模型是什么 +- 独立判断一个 AI 产品/新闻是否靠谱 +- 在工作中熟练使用 AI 工具提升效率 +- 理解 AI 的能力边界,不会被"AI 焦虑"裹挟 +- 如果有兴趣深入,可以继续学习 [AI 基础知识](/zh/docs/learn)(技术向) + +> 本系列持续完善中,欢迎在 [GitHub](https://github.com/vansin/intern-ai) 提出建议。 diff --git a/docs/ai-intro/prompting-for-everyone.md b/docs/ai-intro/prompting-for-everyone.md new file mode 100644 index 000000000..e08c33859 --- /dev/null +++ b/docs/ai-intro/prompting-for-everyone.md @@ -0,0 +1,155 @@ + +# 和 AI 对话的艺术 + +同一个 AI,不同的问法,回答质量天差地别。学会"提示词"(Prompt),是用好 AI 最重要的技能。 + +## 核心原则:像给实习生布置任务 + +把 AI 想象成一个**知识丰富但不了解你具体需求的实习生**。你给的信息越明确,它干得越好。 + +### 差的提问 vs 好的提问 + +``` +❌ 差:"帮我写个方案" +✅ 好:"我是一名高中语文老师,需要为家长会准备一份发言稿。 + 主题是'如何培养孩子的阅读习惯'。时长 10 分钟。 + 语气亲切、不要太正式。请列出大纲后再写全文。" +``` + +**区别在哪?**好的提问说清了:你是谁、要做什么、具体要求、输出格式。 + +## 五个让回答变好的技巧 + +### 1. 给 AI 一个角色 + +``` +"你是一位有 10 年经验的小学数学老师, + 请用小学生能听懂的语言解释什么是分数。" +``` + +**为什么有效**:角色限定了 AI 的"说话方式"和"知识深度",避免过于专业或过于笼统。 + +### 2. 提供背景信息 + +``` +"我经营一家奶茶店,位于大学城附近, + 主要客户是 18-25 岁的学生。 + 请帮我策划一个开学季营销方案。" +``` + +**为什么有效**:AI 不了解你的具体情况,给背景信息相当于给它"上下文"。 + +### 3. 明确输出格式 + +``` +"请用表格对比以下三款手机的优缺点: + iPhone 16、华为 Mate 70、小米 15。 + 列包括:价格、拍照、续航、系统流畅度。" +``` + +**为什么有效**:不指定格式,AI 可能给你一大段文字;指定表格就一目了然。 + +### 4. 分步提问(而不是一次问完) + +``` +第一轮:"帮我列出一篇关于'远程办公'的文章大纲" +第二轮:"不错,请把第二章展开写详细" +第三轮:"语气太正式了,改得更轻松一些" +``` + +**为什么有效**:复杂任务分步完成,每一步你都可以调整方向。 + +### 5. 给例子 + +``` +"请帮我给产品写一段介绍文案,风格参考: + '轻轻一涂,妆效持久一整天。不挑肤质,新手也能秒上手。' + 产品是一款保温杯。" +``` + +**为什么有效**:例子比任何描述都直观。AI 会模仿例子的风格和结构。 + +## 常用提示词模板 + +### 写作类 + +``` +请帮我写一篇 [类型] 文章。 +主题:[主题] +目标读者:[谁会看] +字数:[大约多少字] +语气:[正式/轻松/幽默/学术] +要求:[其他具体要求] +``` + +### 分析类 + +``` +请分析以下 [内容类型],并从 [角度1]、[角度2]、[角度3] 三个维度给出你的判断。 +用表格呈现对比,最后给出总结建议。 + +[粘贴你的内容] +``` + +### 学习类 + +``` +我是 [背景],想学习 [主题]。 +请用 [比喻/例子/图表] 的方式解释。 +先给整体概览,再逐步深入。 +如果我有不懂的地方,我会继续追问。 +``` + +### 翻译/润色类 + +``` +请把以下中文翻译成英文。 +要求:[正式商务 / 口语化 / 学术风格] +保持原文的语气和结构。 +如有文化差异需要调整的地方,请标注说明。 + +[粘贴原文] +``` + +## 高级技巧:让 AI "思考"后再回答 + +当问题比较复杂时,可以要求 AI 先分析再回答: + +``` +"请先列出思考过程,再给出最终答案。" +``` + +或者: + +``` +"请从正反两面分析这个问题,然后给出你的综合判断。" +``` + +这样 AI 的回答会更全面、更有逻辑。 + +## 如果回答不满意怎么办? + +| 问题 | 解决方法 | +|------|---------| +| 回答太笼统 | 追问"请更具体",或给更多上下文 | +| 回答太长 | 要求"用 3 句话总结" | +| 回答方向错了 | 纠正它:"不是这个意思,我想问的是……" | +| 风格不对 | 给例子:"请参考这个风格……" | +| 信息不准确 | 要求给出来源,或换一种方式验证 | + +## 小结 + +``` +好的提示词 = 角色 + 背景 + 任务 + 格式 + 约束 + +例子: +"你是一位资深HR(角色), + 我们公司是 50 人的互联网创业公司(背景), + 请帮我写一份前端工程师的招聘 JD(任务), + 用 Markdown 格式(格式), + 要求突出团队氛围和成长空间,不要太死板(约束)。" +``` + +**提示词不是一次写完的**——对话就是迭代。先给一个大概的方向,看到回答后再调整,几轮下来就能得到满意的结果。 + +> **下一篇**:[AI 工具全景图](/zh/docs/ai-intro/ai-tools-landscape) —— ChatGPT、Claude、文心一言、书生……这么多 AI 工具怎么选? diff --git a/docs/ai-intro/what-is-ai.md b/docs/ai-intro/what-is-ai.md new file mode 100644 index 000000000..73b9a9fd9 --- /dev/null +++ b/docs/ai-intro/what-is-ai.md @@ -0,0 +1,110 @@ + +# AI 是什么:从计算器到 ChatGPT + +## 一句话定义 + +**人工智能(AI)就是让机器模仿人类智能行为的技术。** + +听起来很抽象?让我们从你每天都在用的东西说起。 + +## 你已经在用 AI 了 + +可能你没意识到,这些都是 AI: + +| 场景 | AI 在做什么 | +|------|-----------| +| 手机人脸解锁 | 识别你的脸和别人不同 | +| 淘宝"猜你喜欢" | 根据你的行为预测你想买什么 | +| 微信语音转文字 | 把声音变成文字 | +| 导航软件推荐路线 | 预测哪条路最快 | +| 邮件自动过滤垃圾邮件 | 判断一封邮件是不是垃圾 | + +这些 AI 各有各的专长,但都有一个共同点:**从数据中学习规律,然后做出判断**。 + +## AI 的三次浪潮 + +AI 不是突然出现的。它经历了 70 多年的发展: + +### 第一次浪潮(1950-1970 年代):规则时代 + +科学家们认为,只要给机器足够多的规则,它就能像人一样思考。 + +``` +规则:如果 温度 > 38°C 且 咳嗽 = 是 → 可能感冒 +``` + +**问题**:现实世界太复杂了,规则写不完。一个感冒可能有几百种表现。 + +### 第二次浪潮(1980-2010 年代):统计学习时代 + +让机器从大量数据中自己"发现"规律,而不是人类一条条写规则。 + +``` +给机器看 10000 张猫的照片和 10000 张狗的照片 +→ 机器自己学会区分猫和狗 +``` + +**进展**:垃圾邮件过滤、语音识别开始可用。但理解力有限。 + +### 第三次浪潮(2017 年至今):大模型时代 + +关键突破:**Transformer 架构**(2017)+ **海量数据** + **强大算力**。 + +``` +让模型阅读互联网上几乎所有的文本 +→ 模型学会了"语言的规律" +→ 它能写文章、回答问题、翻译、写代码…… +``` + +这就是 ChatGPT、Claude、书生(InternLM)等大模型的来历。 + +## 为什么 AI 现在突然爆发? + +三个条件同时满足了: + +| 条件 | 以前 | 现在 | +|------|------|------| +| **数据** | 数据量少 | 互联网产生了海量文本、图像、视频 | +| **算力** | 计算机太慢 | GPU 并行计算能力突飞猛进 | +| **算法** | 模型太简单 | Transformer 架构让模型能处理超长文本 | + +打个比方:数据是**食材**,算力是**灶火**,算法是**菜谱**。以前食材不够、火不旺、菜谱也不好——现在三样都齐了,自然能做出好菜。 + +## AI、机器学习、深度学习、大模型——它们是什么关系? + +``` +人工智能(AI) +├── 机器学习(ML) ← 让机器从数据中学习 +│ ├── 深度学习(DL) ← 用"神经网络"来学习 +│ │ └── 大语言模型(LLM) ← 专门处理语言的超大神经网络 +│ └── 传统机器学习 ← 决策树、支持向量机等 +└── 其他 AI 方法 ← 专家系统、搜索算法等 +``` + +**大语言模型(LLM)是深度学习的一种,深度学习是机器学习的一种,机器学习是 AI 的一种。** + +就像:**金毛是犬类的一种,犬类是哺乳动物的一种,哺乳动物是动物的一种。** + +## "智能"到底是什么? + +这其实是个哲学问题。AI 研究者通常把智能拆解为这些能力: + +- **感知**:看(图像识别)、听(语音识别) +- **理解**:读懂文字的含义 +- **推理**:根据已知信息得出新结论 +- **生成**:创造文字、图像、音乐 +- **学习**:从经验中不断改进 + +目前的 AI 在"感知"和"生成"上已经接近甚至超过人类,但在"推理"和真正的"理解"上还有很大差距。 + +## 小结 + +| 概念 | 一句话解释 | +|------|-----------| +| AI | 让机器模仿人类智能的技术 | +| 机器学习 | 让机器从数据中自动学习规律 | +| 深度学习 | 用神经网络(模拟大脑结构)来学习 | +| 大语言模型 | 读了海量文本,学会"说话"的超大模型 | +| Transformer | 2017 年发明的核心架构,大模型的基石 | + +> **下一篇**:[大模型如何"理解"文字](/zh/docs/ai-intro/how-llm-works) —— 不用公式,讲清楚 ChatGPT 到底是怎么回答你问题的。 diff --git a/docs/api/authentication.md b/docs/api/authentication.md new file mode 100644 index 000000000..992de2740 --- /dev/null +++ b/docs/api/authentication.md @@ -0,0 +1,124 @@ + +# 认证鉴权 + +所有 书生大模型 API 请求都需要通过 API Key 进行身份认证。根据你使用的 API 服务,获取方式有所不同。 + +## 社区 API Key + +由书生社区 (community.intern-ai.org.cn) 签发,适用于社区 API。 + +**Key 格式:** `sk-intern-XXXXXXXX_XXXXXXXXXXXXXXXXXXXXXXXX` + +**获取步骤:** + +1. 登录 [community.intern-ai.org.cn](https://community.intern-ai.org.cn) +2. 进入「个人中心」 +3. 切换到「API 密钥」Tab +4. 点击「创建密钥」 +5. 复制并妥善保存你的 API Key + +**免费额度:** 注册后每日可获得 10K tokens 免费体验额度,更多额度可通过积分购买流量包。 + +> **注意:** API Key 只在创建时显示一次,请务必立即保存。如果丢失,需要重新创建。 + +### 使用方式 + +```bash +Authorization: Bearer sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx +``` + +```python +from openai import OpenAI + +client = OpenAI( + api_key="sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx", + base_url="https://community.intern-ai.org.cn/api/v1" +) +``` + +推荐使用环境变量管理 API Key: + +```bash +export INTERN_COMMUNITY_API_KEY="sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx" +``` + +```python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["INTERN_COMMUNITY_API_KEY"], + base_url="https://community.intern-ai.org.cn/api/v1" +) +``` + +--- + +## 官方 API Key + +由上海 AI 实验室官方平台签发,适用于官方 API。 + +**获取步骤:** + +1. 访问 [书生大模型开放平台](https://internlm.intern-ai.org.cn/api/document) +2. 注册并登录 +3. 在平台中获取 API Key + +### 使用方式 + +```bash +Authorization: Bearer your-official-api-key +``` + +```python +from openai import OpenAI + +client = OpenAI( + api_key="your-official-api-key", + base_url="https://chat.intern-ai.org.cn/api/v1" +) +``` + +推荐使用环境变量管理 API Key: + +```bash +export INTERN_OFFICIAL_API_KEY="your-official-api-key" +``` + +```python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["INTERN_OFFICIAL_API_KEY"], + base_url="https://chat.intern-ai.org.cn/api/v1" +) +``` + +--- + +## 安全建议 + +- 不要将 API Key 硬编码在代码中 +- 不要将 API Key 提交到 Git 仓库 +- 使用环境变量或密钥管理服务存储 +- 定期轮换 API Key +- 如果怀疑泄露,立即在对应平台撤销并重新创建 + +## 速率限制 + +### 社区 API + +| 计划 | 免费额度 | 扩展方式 | +|------|---------|---------| +| 免费体验 | 每日 10K tokens | 积分购买流量包 | + +### 官方 API + +| 计划 | RPM (请求/分钟) | TPM (Token/分钟) | +|------|----------------|------------------| +| 免费 | 10 | 100,000 | +| 开发者 | 60 | 1,000,000 | +| 企业 | 自定义 | 自定义 | + +超过速率限制时,API 将返回 `429 Too Many Requests` 状态码。 diff --git a/docs/api/claude-code.md b/docs/api/claude-code.md new file mode 100644 index 000000000..7f21da715 --- /dev/null +++ b/docs/api/claude-code.md @@ -0,0 +1,124 @@ + +# Claude Code 接入 Intern-S1-Pro + +[Claude Code](https://github.com/anthropics/claude-code) 是 Anthropic 官方的 AI 编程终端助手,支持通过 Anthropic 兼容 API 接入第三方模型。本指南将教你如何在 Claude Code 中使用 Intern-S1-Pro 模型。 + +## 第一步:获取 API Key + +前往书生大模型官方平台获取 API Token: + +**👉 [https://internlm.intern-ai.org.cn/api/document](https://internlm.intern-ai.org.cn/api/document?lang=zh)** + +1. 注册并登录书生大模型平台 +2. 进入 API 管理页面 +3. 创建新的 API Key 并妥善保存 + +## 第二步:安装 Claude Code + +### macOS / Linux / WSL + +```bash +curl -fsSL https://claude.ai/install.sh | bash +``` + +### Windows PowerShell + +```powershell +irm https://claude.ai/install.ps1 | iex +``` + +### Windows CMD + +```cmd +curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd +``` + +### 验证安装 + +```bash +claude --version +``` + +> 更多信息请参考 [Claude Code 官方文档](https://code.claude.com/docs/en/overview) + +## 第三步:配置环境变量 + +在终端中设置以下环境变量,让 Claude Code 使用 Intern-S1-Pro 模型: + +```bash +# 设置 API 基础地址 +export ANTHROPIC_BASE_URL="https://chat.intern-ai.org.cn" + +# 设置 API Token(替换为你的实际 Token) +export ANTHROPIC_AUTH_TOKEN="your-internlm-api-token" +``` + +> **注意:** Claude Code 使用 Anthropic 协议(非 OpenAI 协议),因此环境变量为 `ANTHROPIC_BASE_URL` 和 `ANTHROPIC_AUTH_TOKEN`。 + +### 持久化配置 + +将环境变量添加到 Shell 配置文件中(以 zsh 为例): + +```bash +# 编辑 ~/.zshrc(或 ~/.bashrc) +echo 'export ANTHROPIC_BASE_URL="https://chat.intern-ai.org.cn"' >> ~/.zshrc +echo 'export ANTHROPIC_AUTH_TOKEN="your-internlm-api-token"' >> ~/.zshrc + +# 生效 +source ~/.zshrc +``` + +## 第四步:启动 Claude Code + +使用 `--model` 参数指定 Intern-S1-Pro 模型: + +```bash +claude --model intern-s1-pro +``` + +启动后,你可以像平常一样使用 Claude Code 进行编程: + +- 代码生成与补全 +- Bug 修复与调试 +- 代码重构 +- 项目架构设计 +- 测试用例编写 + +## 常用命令 + +```bash +# 使用 Intern-S1-Pro 启动交互模式 +claude --model intern-s1-pro + +# 直接执行单次任务 +claude --model intern-s1-pro -p "帮我写一个 Python HTTP 服务器" + +# 在指定目录下工作 +cd /path/to/your/project && claude --model intern-s1-pro +``` + +## 配置文件方式 + +你也可以在项目根目录创建 `.claude/settings.json` 来配置默认模型: + +```json +{ + "model": "intern-s1-pro" +} +``` + +这样在该项目目录下启动 Claude Code 时无需每次指定 `--model` 参数。 + +## 注意事项 + +- Intern-S1-Pro 是书生系列最强推理模型,擅长复杂代码推理和架构设计 +- API Key 请妥善保管,不要提交到 Git 仓库 +- 如遇到连接问题,请检查网络环境和 API Key 是否有效 + +--- + +## 下一步 + +- 查看 [OpenClaw 接入指南](/docs/api/openclaw) 了解具身智能开发 +- 了解 [InternLM3 模型](/docs/api/models/internlm3) 详细参数 +- 查看 [快速开始](/docs/api/quickstart) 了解 API 基础用法 diff --git a/docs/api/coding-tools.md b/docs/api/coding-tools.md new file mode 100644 index 000000000..60e5117ec --- /dev/null +++ b/docs/api/coding-tools.md @@ -0,0 +1,54 @@ + +# AI 编程工具接入 + +书生大模型 API 兼容 OpenAI 接口,可以接入主流 AI 编程工具。 + +## 通用配置信息 + +| 配置项 | 值 | +|--------|-----| +| API Base URL | `https://community.intern-ai.org.cn/api/v1` | +| 协议 | OpenAI Chat Completions | +| 推荐模型 | `internlm3-latest`、`internvl-latest` | +| API Key | 在 [个人设置](/docs/api/authentication) 中获取 | + +--- + +## Claude Code + +[Claude Code](https://github.com/anthropics/claude-code) 是 Anthropic 官方 CLI 编程助手,通过 `ANTHROPIC_BASE_URL` + `ANTHROPIC_AUTH_TOKEN` 环境变量接入 Intern-S1-Pro,使用 `claude --model intern-s1-pro` 启动。 + +**👉 [查看 Claude Code 完整接入指南](/docs/api/claude-code)** + +--- + +## OpenClaw + +[OpenClaw](https://github.com/openclaw/openclaw) 是开源个人 AI Agent,通过 `models.providers` 配置即可接入 Intern-S1-Pro。 + +**👉 [查看 OpenClaw 完整接入指南](/docs/api/openclaw)** + +--- + +## OpenCode + +[OpenCode](https://github.com/opencode-ai/opencode) 是开源终端 AI 编程助手,原生支持 OpenAI 兼容 API,可直接配置 InternLM 作为 Provider。 + +--- + +## 其他工具 + +任何支持 OpenAI 兼容 API 的工具都可以接入 InternLM: + +```bash +export OPENAI_API_KEY="your-internlm-api-key" +export OPENAI_BASE_URL="https://community.intern-ai.org.cn/api/v1" +``` + +--- + +## 下一步 + +- 查看 [认证鉴权](/docs/api/authentication) 获取 API Key +- 了解 [InternLM3](/docs/api/models/internlm3) 和 [InternVL](/docs/api/models/internvl3) 的模型详情 +- 查看 [快速开始](/docs/api/quickstart) 了解 API 基础用法 diff --git a/docs/api/index.md b/docs/api/index.md new file mode 100644 index 000000000..f80098bf2 --- /dev/null +++ b/docs/api/index.md @@ -0,0 +1,66 @@ + +# 书生系列大模型 API 文档 + +欢迎使用书生大模型 API!通过 API 你可以快速将书生大模型的能力集成到你的应用中。 + +目前有两种途径获取书生大模型 API 服务:**社区 API** 和 **官方 API**,两者均兼容 OpenAI SDK。 + +## 两种 API 对比 + +| | 社区 API | 官方 API | +|------|----------|----------| +| **提供方** | 书生社区 (community.intern-ai.org.cn) | 上海 AI 实验室官方 | +| **Base URL** | `https://community.intern-ai.org.cn/api/v1` | `https://chat.intern-ai.org.cn/api/v1` | +| **API Key 格式** | `sk-intern-XXXXXXXX_XXXX...` | 官方平台分配 | +| **获取方式** | 登录社区 → 个人中心 → API 密钥 Tab → 创建密钥 | 访问 [internlm.intern-ai.org.cn](https://internlm.intern-ai.org.cn/api/document) → 注册 → 获取 API Key | +| **支持模型** | `intern-s1-pro`, `intern-s1`, `internlm3-latest`(别名) | `intern-s1-pro`, `intern-s1`, `internvl-latest` 等 | +| **免费额度** | 每日 10K tokens 免费体验 | 注册后获得免费额度 | +| **付费方式** | 积分购买流量包 | 官方计费方案 | +| **特点** | 社区维护,免费体验,积分流量包制 | 官方运维,更多模型,企业级服务 | +| **兼容性** | OpenAI SDK 兼容 | OpenAI SDK 兼容 | + +> **如何选择?** +> - 想快速免费体验 Intern-S1 系列 → 选社区 API +> - 需要 InternVL 多模态理解,或需要企业级稳定性 → 选官方 API + +## 概览 + +书生大模型 API 提供与 OpenAI 兼容的接口,支持以下能力: + +- **Chat Completions** — 多轮对话、文本生成(Intern-S1 / Intern-S1-Pro) +- **多模态理解** — 图片理解、文档分析(官方 API: `internvl-latest`) +- **Function Calling** — 工具调用、Agent 场景 + +此外,社区 [Playground](/playground) 提供 InternVL-U 在线体验(对话、AI 绘画、图片编辑),使用 Cookie 登录态而非 API Key。 + +## 快速导航 + +| 文档 | 说明 | +|------|------| +| [快速开始](/docs/api/quickstart) | 5 分钟完成第一次 API 调用 | +| [认证鉴权](/docs/api/authentication) | API Key 获取与管理 | +| [InternLM3 模型](/docs/api/models/internlm3) | InternLM3 系列模型参数与用法 | +| [InternVL 模型](/docs/api/models/internvl3) | InternVL 多模态模型参数与用法 | +| [Claude Code 接入](/docs/api/claude-code) | 在 Claude Code 中使用 Intern-S1-Pro | +| [OpenClaw 接入](/docs/api/openclaw) | 在 OpenClaw 中使用 Intern-S1-Pro | +| [更多 AI 编程工具](/docs/api/coding-tools) | OpenCode 等其他工具配置 | + +## 兼容性 + +两种 API 均兼容 OpenAI SDK,只需修改 `base_url` 和 `api_key` 即可切换: + +```python +from openai import OpenAI + +# 社区 API +client = OpenAI( + api_key="sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx", + base_url="https://community.intern-ai.org.cn/api/v1" +) + +# 官方 API +client = OpenAI( + api_key="your-official-api-key", + base_url="https://chat.intern-ai.org.cn/api/v1" +) +``` diff --git a/docs/api/models/internlm3.md b/docs/api/models/internlm3.md new file mode 100644 index 000000000..87e3cbf25 --- /dev/null +++ b/docs/api/models/internlm3.md @@ -0,0 +1,61 @@ + +# InternLM3 模型 + +InternLM3 是书生大模型系列的第三代语言模型,仅使用 4T 高质量数据训练的 8B 模型即超越同量级模型,训练成本节约 75% 以上。 + +## 可用模型 + +| 模型 ID | 上下文长度 | 可用 API | 说明 | +|--------|-----------|---------|------| +| `intern-s1-pro` | 32K | 社区 / 官方 | Intern-S1-Pro,推荐使用 | +| `intern-s1` | 32K | 社区 / 官方 | Intern-S1,通用对话与任务处理 | +| `internlm3-latest` | 32K | 社区 / 官方 | 别名,等同于 `intern-s1-pro`(向后兼容) | + +> **说明:** "社区"指社区 API (`community.intern-ai.org.cn`),"官方"指官方 API (`chat.intern-ai.org.cn`)。详见 [API 文档首页](/docs/api) 的对比表。 + +## 特性 + +- **高效训练**:精炼数据框架,4T 数据训练即达 SOTA +- **深度思考**:首次融合常规对话与深度思考模式 +- **数学推理**:在 GSM8K、MATH 等数学基准上表现优异 +- **代码生成**:HumanEval、MBPP 等编程基准领先同量级 + +## 调用示例 + +### 基础对话 + +```python +response = client.chat.completions.create( + model="intern-s1-pro", + messages=[ + {"role": "user", "content": "解释一下 Transformer 中的自注意力机制"} + ], + temperature=0.7 +) +``` + +### 深度思考模式 + +```python +response = client.chat.completions.create( + model="intern-s1-pro", + messages=[ + {"role": "system", "content": "请使用深度思考模式,逐步分析问题。"}, + {"role": "user", "content": "证明根号2是无理数"} + ], + temperature=0.1, + max_tokens=4096 +) +``` + +## 请求参数 + +| 参数 | 类型 | 默认值 | 说明 | +|------|------|--------|------| +| `model` | string | 必填 | 模型 ID | +| `messages` | array | 必填 | 对话消息列表 | +| `temperature` | number | 0.7 | 采样温度 (0-2) | +| `max_tokens` | number | 2048 | 最大生成 Token 数 | +| `top_p` | number | 1.0 | 核采样参数 | +| `stream` | boolean | false | 是否启用流式输出 | +| `stop` | string/array | null | 停止生成的标记 | diff --git a/docs/api/models/internvl3.md b/docs/api/models/internvl3.md new file mode 100644 index 000000000..4c2a674c5 --- /dev/null +++ b/docs/api/models/internvl3.md @@ -0,0 +1,90 @@ + +# InternVL3 多模态模型 + +InternVL3(书生·万象 3.0)是通用多模态大模型,10 亿至 780 亿全量级开源第一,支持图像理解、文档分析、GUI 智能体等多种视觉任务。 + +## 可用模型 + +| 模型 ID | 参数量 | 上下文长度 | 说明 | +|--------|--------|-----------|------| +| `internvl-latest` | 8B | 32K | 轻量多模态,适合快速部署 | +| `internvl-latest` | 78B | 32K | 旗舰多模态,最强性能 | + +## 特性 + +- **全量级第一**:从 1B 到 78B 全面领先开源模型 +- **GUI 智能体**:理解屏幕截图并执行操作指令 +- **文档理解**:解析 PDF、表格、图表等复杂文档 +- **空间推理**:3D 空间关系理解能力大幅提升 + +## 调用示例 + +### 图片理解 + +```python +import base64 + +# 读取本地图片 +with open("image.jpg", "rb") as f: + image_data = base64.b64encode(f.read()).decode() + +response = client.chat.completions.create( + model="internvl-latest", + messages=[ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": f"data:image/jpeg;base64,{image_data}" + } + }, + { + "type": "text", + "text": "请描述这张图片的内容" + } + ] + } + ], + max_tokens=1024 +) + +print(response.choices[0].message.content) +``` + +### URL 图片 + +```python +response = client.chat.completions.create( + model="internvl-latest", + messages=[ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://example.com/chart.png" + } + }, + { + "type": "text", + "text": "请分析这张图表的数据趋势" + } + ] + } + ] +) +``` + +## 请求参数 + +与 InternLM3 基础参数相同,额外支持: + +| 参数 | 类型 | 说明 | +|------|------|------| +| `messages[].content[].type` | string | `text` 或 `image_url` | +| `messages[].content[].image_url.url` | string | 图片 URL 或 base64 编码 | + +> **提示:** 单次请求最多支持 5 张图片,图片总大小不超过 20MB。 diff --git a/docs/api/openclaw.md b/docs/api/openclaw.md new file mode 100644 index 000000000..1f7f3f06f --- /dev/null +++ b/docs/api/openclaw.md @@ -0,0 +1,154 @@ + +# OpenClaw 接入 Intern-S1-Pro + +[OpenClaw](https://github.com/openclaw/openclaw) 是一款开源的个人 AI 助手,运行在你自己的设备上,数据完全私有。它支持通过 WhatsApp、Telegram、微信等消息平台作为交互入口,并具备浏览网页、读写文件、执行代码等能力。 + +## 为什么选择 OpenClaw? + +| 特性 | 说明 | +|------|------| +| 开源免费 | MIT 协议,GitHub 15,000+ Stars | +| 隐私优先 | 数据存储在你自己的设备上 | +| 多平台 | 支持 20+ 消息平台(微信、Telegram、Slack 等) | +| 全能助手 | 浏览网页、读写文件、执行代码、语音交互 | +| 模型灵活 | 支持 Claude、OpenAI、本地模型和 Intern-S1-Pro | + +## 第一步:安装 OpenClaw + +```bash +# 克隆仓库 +git clone https://github.com/openclaw/openclaw.git +cd openclaw + +# 安装依赖 +npm install + +# 复制配置文件 +cp .env.example .env +``` + +## 第二步:获取 Intern-S1-Pro API Key + +前往书生大模型官方平台获取 API Token: + +**[https://internlm.intern-ai.org.cn/api/document](https://internlm.intern-ai.org.cn/api/document?lang=zh)** + +1. 注册并登录书生大模型平台 +2. 进入 API 管理页面 +3. 创建新的 API Key 并妥善保存 + +## 第三步:配置模型 + +编辑 OpenClaw 配置文件,添加 Intern-S1-Pro 作为模型 Provider: + +```yaml +# config.yaml +models: + providers: + - name: intern-s1-pro + type: openai-compatible + base_url: https://chat.intern-ai.org.cn/api/v1 + api_key: your-api-key-here + model: intern-s1-pro + max_tokens: 8192 +``` + +### 可用模型 + +| 模型 | 说明 | 推荐场景 | +|------|------|---------| +| `intern-s1-pro` | 科学多模态大模型(推荐) | 科研、数学、编程 | +| `intern-s1` | 标准版 | 日常对话、文本处理 | +| `internvl-latest` | 多模态 | 图文理解、图像分析 | + +## 第四步:连接消息平台 + +以 Telegram 为例: + +```bash +# 设置 Telegram Bot Token +export TELEGRAM_BOT_TOKEN="your-bot-token" + +# 启动 OpenClaw +npm start +``` + +### 支持的消息平台 + +| 平台 | 配置方式 | +|------|---------| +| Telegram | Bot Token | +| 微信 | ClawBot 接口 | +| WhatsApp | WhatsApp Business API | +| Slack | Slack App | +| Discord | Discord Bot | +| 飞书 | 飞书机器人 | + +## 第五步:开始使用 + +连接完成后,你可以通过消息平台直接与 Intern-S1-Pro 对话: + +``` +你:帮我分析这篇论文的创新点 [上传 PDF] +OpenClaw:基于 Intern-S1-Pro 的分析... + +你:把分析结果保存到 ~/research/notes.md +OpenClaw:已保存到指定路径。 + +你:搜索 arXiv 上关于 "视觉语言模型" 的最新论文 +OpenClaw:正在浏览 arXiv... +``` + +## OpenClaw 核心能力 + +### 网页浏览 + +``` +你:去 GitHub Trending 看看今天最火的 AI 项目 +OpenClaw:[自动打开浏览器] 今天 GitHub Trending 上的 AI 项目... +``` + +### 文件操作 + +``` +你:读取 ~/data/report.csv,生成数据摘要 +OpenClaw:[读取文件] 这个 CSV 文件包含 1000 行数据... +``` + +### 代码执行 + +``` +你:用 Python 画一个 sin 函数图 +OpenClaw:[执行代码] 图片已保存到 ~/output/sin_plot.png +``` + +## 进阶配置 + +### 自定义系统提示词 + +```yaml +# config.yaml +system_prompt: | + 你是一个基于 Intern-S1-Pro 的科研助手。 + 擅长论文分析、数学推导和代码编写。 + 请用中文回复。 +``` + +### MCP Server 集成 + +OpenClaw 支持 MCP 协议,可以扩展工具能力: + +```yaml +mcp_servers: + - name: database + command: npx + args: ["@modelcontextprotocol/server-postgres"] + env: + DATABASE_URL: postgresql://... +``` + +## 下一步 + +- [Claude Code 接入指南](/zh/docs/api/claude-code) — 另一个支持 Intern-S1-Pro 的 AI 编程工具 +- [快速开始](/zh/docs/api/quickstart) — API 基础用法 +- [MCP 协议详解](/zh/docs/learn/core/mcp-protocol) — 扩展 AI 工具能力 diff --git a/docs/api/quickstart.md b/docs/api/quickstart.md new file mode 100644 index 000000000..c22ff4573 --- /dev/null +++ b/docs/api/quickstart.md @@ -0,0 +1,234 @@ + +# 快速开始 + +本指南帮助你在 5 分钟内完成第一次 书生大模型 API 调用。书生大模型提供两种 API 服务,你可以根据需求选择。 + +## 前置条件 + +- 一个有效的 API Key([获取方法](/docs/api/authentication)) +- Python 3.8+ 或 Node.js 18+(或 cURL) + +## 步骤 1:安装 SDK + +### Python + +```bash +pip install openai +``` + +### Node.js + +```bash +npm install openai +``` + +## 步骤 2:发送第一条消息 + +### 使用社区 API + +社区 API 由书生社区 (community.intern-ai.org.cn) 提供,注册即可获得每日 10K tokens 免费额度。 + +#### Python 示例 + +```python +from openai import OpenAI + +client = OpenAI( + api_key="sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx", + base_url="https://community.intern-ai.org.cn/api/v1" +) + +response = client.chat.completions.create( + model="intern-s1-pro", + messages=[ + {"role": "system", "content": "你是书生大模型,一个有用的 AI 助手。"}, + {"role": "user", "content": "你好!请介绍一下自己。"} + ], + temperature=0.7, + max_tokens=1024 +) + +print(response.choices[0].message.content) +``` + +#### cURL 示例 + +```bash +curl -X POST https://community.intern-ai.org.cn/api/v1/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx" \ + -d '{ + "model": "intern-s1-pro", + "messages": [ + {"role": "system", "content": "你是书生大模型,一个有用的 AI 助手。"}, + {"role": "user", "content": "你好!请介绍一下自己。"} + ], + "temperature": 0.7, + "max_tokens": 1024 + }' +``` + +#### Node.js 示例 + +```typescript +import OpenAI from 'openai'; + +const client = new OpenAI({ + apiKey: 'sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx', + baseURL: 'https://community.intern-ai.org.cn/api/v1', +}); + +async function main() { + const response = await client.chat.completions.create({ + model: 'intern-s1-pro', + messages: [ + { role: 'system', content: '你是书生大模型,一个有用的 AI 助手。' }, + { role: 'user', content: '你好!请介绍一下自己。' }, + ], + temperature: 0.7, + max_tokens: 1024, + }); + + console.log(response.choices[0].message.content); +} + +main(); +``` + +--- + +### 使用官方 API + +官方 API 由上海 AI 实验室提供,支持更多模型(Intern-S1, Intern-S1-Pro, InternVL3 等),适合生产环境和企业级场景。 + +#### Python 示例 + +```python +from openai import OpenAI + +client = OpenAI( + api_key="your-official-api-key", + base_url="https://chat.intern-ai.org.cn/api/v1" +) + +response = client.chat.completions.create( + model="intern-s1-pro", + messages=[ + {"role": "system", "content": "你是书生大模型,一个有用的 AI 助手。"}, + {"role": "user", "content": "你好!请介绍一下自己。"} + ], + temperature=0.7, + max_tokens=1024 +) + +print(response.choices[0].message.content) +``` + +#### cURL 示例 + +```bash +curl -X POST https://chat.intern-ai.org.cn/api/v1/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer your-official-api-key" \ + -d '{ + "model": "intern-s1-pro", + "messages": [ + {"role": "system", "content": "你是书生大模型,一个有用的 AI 助手。"}, + {"role": "user", "content": "你好!请介绍一下自己。"} + ], + "temperature": 0.7, + "max_tokens": 1024 + }' +``` + +#### Node.js 示例 + +```typescript +import OpenAI from 'openai'; + +const client = new OpenAI({ + apiKey: 'your-official-api-key', + baseURL: 'https://chat.intern-ai.org.cn/api/v1', +}); + +async function main() { + const response = await client.chat.completions.create({ + model: 'intern-s1-pro', + messages: [ + { role: 'system', content: '你是书生大模型,一个有用的 AI 助手。' }, + { role: 'user', content: '你好!请介绍一下自己。' }, + ], + temperature: 0.7, + max_tokens: 1024, + }); + + console.log(response.choices[0].message.content); +} + +main(); +``` + +## 步骤 3:查看响应 + +成功调用后,你会收到类似如下的 JSON 响应(两种 API 响应格式一致): + +```json +{ + "id": "chatcmpl-abc123", + "object": "chat.completion", + "model": "intern-s1-pro", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": "你好!我是书生大模型(InternLM),..." + }, + "finish_reason": "stop" + } + ], + "usage": { + "prompt_tokens": 28, + "completion_tokens": 156, + "total_tokens": 184 + } +} +``` + +## 可用模型一览 + +### 社区 API 支持的模型 + +| 模型 | 类型 | 上下文长度 | 适用场景 | +|------|------|-----------|---------| +| `intern-s1-pro` | 语言模型 | 32K | Intern-S1-Pro,推荐使用 | +| `intern-s1` | 语言模型 | 32K | Intern-S1,通用对话、文本生成 | +| `internlm3-latest` | 语言模型 | 32K | 别名,等同于 `intern-s1-pro` | + +### 官方 API 支持的模型 + +| 模型 | 类型 | 上下文长度 | 适用场景 | +|------|------|-----------|---------| +| `intern-s1-pro` | 语言模型 | 32K | Intern-S1-Pro,推荐使用 | +| `intern-s1` | 语言模型 | 32K | Intern-S1,通用对话 | +| `internvl-latest` | 多模态模型 | 32K | 多模态最新版本 | +| 更多模型请查阅官方文档 | | | | + +## 常用参数说明 + +| 参数 | 类型 | 默认值 | 说明 | +|------|------|--------|------| +| `model` | string | *必填* | 模型名称 | +| `messages` | array | *必填* | 对话消息列表 | +| `temperature` | float | 0.7 | 控制随机性,0-2 之间 | +| `max_tokens` | int | 1024 | 最大生成 Token 数 | +| `stream` | bool | false | 是否启用流式输出 | +| `top_p` | float | 1.0 | 核采样参数 | + +--- + +## 下一步 + +- 了解 [认证鉴权](/docs/api/authentication) 的详细配置 +- 查看 [InternLM3](/docs/api/models/internlm3) 和 [InternVL](/docs/api/models/internvl3) 的模型参数 +- 探索流式输出、Function Calling 等高级特性 diff --git a/docs/contribute/index.md b/docs/contribute/index.md new file mode 100644 index 000000000..e32203101 --- /dev/null +++ b/docs/contribute/index.md @@ -0,0 +1,133 @@ + +# 如何参与贡献 + +**书生社区是一个由社区成员共同建设的项目。无论你的背景和技能如何,都能找到适合自己的贡献方式。** + +每一次贡献都会获得积分奖励,可在[积分商城](/zh/marketplace)兑换算力、API Token 等资源。 + +## 贡献方式一览 + +| 方式 | 适合谁 | 难度 | 积分 | +|------|--------|------|------| +| [撰写文档教程](#撰写文档教程) | 有学习或使用经验的同学 | 中等 | 100-200 | +| [参与社区任务](#参与社区任务) | 所有人 | 视任务而定 | 10-500 | +| [创意设计](#创意设计) | 设计/美术/视频创作者 | 中等 | 100-150 | +| [翻译与校对](#翻译与校对) | 英语好的同学 | 简单 | 50-100 | +| [反馈与建议](#反馈与建议) | 所有用户 | 简单 | 10 | +| [内容投稿](#内容投稿) | 有开发或写作经验的同学 | 中等 | 100-300 | + +## 撰写文档教程 + +文档是社区最有价值的资产之一。你可以: + +### 写什么? + +- **实战教程**:分享你使用 InternLM、LMDeploy、XTuner 等工具的实战经验 +- **学习笔记**:把你的学习过程整理成教程,帮助后来者 +- **最佳实践**:记录你发现的 Prompt 技巧、部署方案、性能优化等 +- **课程补充**:为实战营课程补充案例、习题或解答 + +### 怎么投稿? + +1. **撰写内容**:使用 Markdown 格式撰写,支持表格、代码块、数学公式(KaTeX) +2. **联系管理员**:将你的文档通过[社区任务](/zh/community/tasks)提交,或直接联系管理员 +3. **审核发布**:管理员审核通过后会将文档上线 + +### 文档规范 + +- 使用简洁清晰的中文,避免生硬的翻译腔 +- 代码示例必须可运行,注明运行环境 +- 每篇文章控制在 10-20 分钟阅读时长 + +## 参与社区任务 + +社区任务是最直接的贡献方式,[查看当前开放任务](/zh/community/tasks)。 + +### 流程 + +``` +浏览任务 → 认领任务 → 完成工作 → 提交成果 → 管理员审核 → 获得积分 +``` + +### 任务类型 + +| 类型 | 说明 | 示例 | +|------|------|------| +| 教程 | 撰写技术教程 | InternLM + Claude Code 实战 | +| 代码 | 开发功能或工具 | Skills 插件开发 | +| 设计 | 创意设计 | 书小生海报/视频 | +| 翻译 | 文档翻译 | 英文文档翻译 | +| Bug 修复 | 修复已知问题 | 代码或文档错误修复 | + +### 提交规范 + +1. **在任务页面认领**:点击「认领任务」按钮 +2. **按要求完成**:仔细阅读任务描述中的要求 +3. **提交成果**:在任务页面提交成果链接(GitHub PR、在线文档等) +4. **等待审核**:管理员会在 3 个工作日内审核 + +## 创意设计 + +如果你擅长设计、绘画或视频制作,可以为社区贡献创意内容: + +- **书小生漫画/插画**:以书小生 IP 为主角的创意作品 +- **科普视频**:[「人类科学群星闪耀时」系列](/zh/community/tasks/43) +- **宣传海报**:社区活动、产品发布的宣传物料 +- **UI 建议**:对网站界面的改进建议 + +素材资源: +- 书小生正面:`public/mascot.png` +- 书小生侧面:`public/mascot-side.png` + +## 翻译与校对 + +帮助社区内容触达更多人: + +- **中译英**:将中文文档翻译为英文 +- **英译中**:将英文技术文档翻译为中文 +- **校对**:检查现有翻译的准确性和流畅度 + +翻译完成后通过社区任务提交,管理员审核后上线。 + +## 反馈与建议 + +最简单的贡献方式——使用网站时发现问题或有改进想法,点击页面右下角的反馈按钮即可提交。 + +被采纳的反馈会获得 **10 积分**奖励。 + +## 内容投稿 + +如果你有独到的见解、实战经验或学习心得,欢迎投稿到书生文档中心: + +- **技术博客**:AI 工具使用心得、模型部署经验、性能调优实践 +- **项目案例**:用 InternLM 完成的有趣项目分享 +- **学习路径**:你的 AI 学习之路,帮助后来者少走弯路 +- **行业应用**:AI 在你所在领域的应用案例 + +### 投稿方式 + +1. 在[社区任务](/zh/community/tasks)中认领相关写作任务 +2. 或直接在网站右下角反馈入口联系管理员投稿 +3. 管理员审核通过后,文章将发布在文档中心并标注作者 + +## 积分奖励 + +所有贡献都会获得积分奖励: + +| 贡献类型 | 积分范围 | +|---------|---------| +| 社区任务 | 按任务定义(10-500) | +| 文档撰写 | 100-200 | +| 翻译校对 | 50-100 | +| 反馈被采纳 | 10 | +| 邀请好友 | 20 | +| 每日签到 | 5 | + +积分可在[积分商城](/zh/marketplace)兑换 API Token、GPU 算力等资源。 + +## 加入我们 + +- **社区任务**:[查看开放任务](/zh/community/tasks) +- **积分商城**:[兑换奖励](/zh/marketplace) + +> 每一份贡献,无论大小,都是社区前进的动力。感谢你的参与! diff --git a/docs/high-school/biology.md b/docs/high-school/biology.md new file mode 100644 index 000000000..9824fb73f --- /dev/null +++ b/docs/high-school/biology.md @@ -0,0 +1,604 @@ + +# 中学生物知识树 + +基于人教版新课标教材,涵盖必修与选择性必修全部内容。 + +--- + +## 必修一:分子与细胞 + +### 1. 走近细胞 + +``` +走近细胞 +├── 细胞是生命活动的基本单位 +├── 细胞的多样性与统一性 +│ ├── 原核细胞与真核细胞 +│ │ ├── 原核细胞(无核膜,如细菌、蓝藻) +│ │ └── 真核细胞(有核膜,如动物、植物、真菌) +│ └── 细胞学说 +│ ├── 施莱登与施旺 +│ └── 要点:细胞是生物体结构和功能的基本单位 +└── 显微镜的使用 + ├── 光学显微镜 + └── 电子显微镜(了解) +``` + +### 2. 组成细胞的分子 + +``` +组成细胞的分子 +├── 细胞中的元素和化合物 +│ ├── 大量元素(C、H、O、N、P、S、K、Ca、Mg) +│ ├── 微量元素(Fe、Mn、Zn、Cu、B、Mo) +│ └── 最基本元素:C +├── 水和无机盐 +│ ├── 自由水与结合水 +│ └── 无机盐的功能(维持 pH、渗透压、参与代谢) +├── 蛋白质 +│ ├── 氨基酸的结构通式 +│ ├── 脱水缩合反应(形成肽键) +│ ├── 蛋白质的空间结构(一级 → 四级) +│ └── 蛋白质的功能 +│ ├── 催化(酶) +│ ├── 运输(血红蛋白) +│ ├── 免疫(抗体) +│ ├── 结构(角蛋白) +│ └── 调节(激素,如胰岛素) +├── 核酸 +│ ├── DNA(脱氧核糖核酸) +│ │ ├── 双链螺旋结构 +│ │ └── 碱基:A-T, G-C +│ ├── RNA(核糖核酸) +│ │ ├── 单链 +│ │ └── 碱基:A-U, G-C +│ └── 核酸的功能:储存和传递遗传信息 +├── 糖类 +│ ├── 单糖(葡萄糖、果糖、核糖、脱氧核糖) +│ ├── 二糖(蔗糖、麦芽糖、乳糖) +│ └── 多糖(淀粉、糖原、纤维素) +└── 脂质 + ├── 脂肪(储能) + ├── 磷脂(细胞膜的主要成分) + └── 固醇(胆固醇、性激素、维生素 D) +``` + +### 3. 细胞的基本结构 + +``` +细胞的基本结构 +├── 细胞膜 +│ ├── 流动镶嵌模型 +│ │ ├── 磷脂双分子层(基本骨架) +│ │ └── 蛋白质(功能承担者) +│ ├── 细胞膜的功能 +│ │ ├── 保护 +│ │ ├── 控制物质进出(选择透过性) +│ │ └── 细胞间的信息传递 +│ └── 糖蛋白(细胞识别) +├── 细胞器 +│ ├── 线粒体(有氧呼吸的主要场所) +│ ├── 叶绿体(光合作用的场所) +│ ├── 内质网(蛋白质加工运输) +│ ├── 高尔基体(蛋白质加工、分泌) +│ ├── 核糖体(蛋白质合成场所) +│ ├── 溶酶体(细胞内消化) +│ ├── 中心体(动物细胞有丝分裂) +│ └── 液泡(植物细胞,维持渗透压) +├── 细胞核 +│ ├── 核膜(双层膜,有核孔) +│ ├── 核仁(与 rRNA 合成有关) +│ ├── 染色质 / 染色体(DNA + 蛋白质) +│ └── 功能:遗传信息的储存与控制中心 +└── 生物膜系统 + └── 各种膜结构的联系与协调 +``` + +### 4. 细胞的物质输入和输出 + +``` +细胞的物质输入和输出 +├── 被动运输 +│ ├── 自由扩散(小分子、脂溶性物质,如 O₂、CO₂) +│ ├── 协助扩散(需要载体蛋白或通道蛋白) +│ └── 渗透作用 +│ ├── 半透膜 +│ ├── 质壁分离与复原 +│ └── 渗透压 +├── 主动运输 +│ ├── 低浓度 → 高浓度 +│ ├── 需要载体蛋白 + ATP +│ └── 例:K⁺ 的吸收、葡萄糖进入小肠上皮细胞 +└── 胞吞与胞吐 + └── 大分子物质的运输(如白细胞吞噬细菌) +``` + +### 5. 细胞的能量供应和利用 + +``` +细胞的能量供应和利用 +├── ATP +│ ├── 结构(腺苷 + 3 个磷酸基团) +│ ├── ATP ⇌ ADP + Pi(可逆反应) +│ └── ATP 是细胞的直接能源物质 +├── 酶 +│ ├── 本质:绝大多数是蛋白质,少数是 RNA +│ ├── 特性:高效性、专一性、多样性 +│ ├── 影响因素:温度、pH +│ └── 酶促反应的机理(降低活化能) +├── 细胞呼吸 +│ ├── 有氧呼吸 +│ │ ├── 第一阶段:糖酵解(细胞质基质) +│ │ │ └── 葡萄糖 → 丙酮酸 + [H] + 少量 ATP +│ │ ├── 第二阶段:柠檬酸循环(线粒体基质) +│ │ │ └── 丙酮酸 → CO₂ + [H] + 少量 ATP +│ │ └── 第三阶段:氧化磷酸化(线粒体内膜) +│ │ └── [H] + O₂ → H₂O + 大量 ATP +│ └── 无氧呼吸 +│ ├── 产物:乙醇 + CO₂(酵母菌、植物) +│ └── 产物:乳酸(动物、乳酸菌) +└── 光合作用 + ├── 光反应(类囊体薄膜) + │ ├── 水的光解 H₂O → [H] + O₂ + │ └── ATP 的合成 + ├── 暗反应(叶绿体基质) + │ ├── CO₂ 固定 CO₂ + C₅ → 2C₃ + │ └── C₃ 还原 C₃ → (CH₂O) + C₅ + └── 影响光合作用的因素 + ├── 光照强度 + ├── CO₂ 浓度 + └── 温度 +``` + +### 6. 细胞的生命历程 + +``` +细胞的生命历程 +├── 有丝分裂 +│ ├── 分裂间期(DNA 复制、蛋白质合成) +│ ├── 前期(染色质 → 染色体,核膜消失) +│ ├── 中期(染色体排列在赤道板) +│ ├── 后期(着丝粒分裂,染色体移向两极) +│ └── 末期(核膜重现,染色体 → 染色质) +├── 细胞分化 +│ ├── 概念(基因的选择性表达) +│ └── 全能性 +├── 细胞衰老 +│ └── 特征(酶活性降低、色素积累等) +├── 细胞凋亡 +│ └── 基因控制的程序性死亡 +└── 细胞癌变 + ├── 原癌基因与抑癌基因 + └── 致癌因子(物理、化学、生物) +``` + +--- + +## 必修二:遗传与进化 + +### 7. 遗传因子的发现 + +``` +遗传因子的发现 +├── 孟德尔的豌豆杂交实验 +│ ├── 一对相对性状的杂交实验 +│ │ ├── 分离定律 +│ │ ├── 显性与隐性 +│ │ └── 性状分离比 3:1 +│ └── 两对相对性状的杂交实验 +│ ├── 自由组合定律 +│ └── 性状分离比 9:3:3:1 +├── 基因与染色体的关系 +│ ├── 基因在染色体上 +│ ├── 萨顿假说(基因的行为与染色体平行) +│ └── 摩尔根的果蝇实验(伴性遗传) +└── 遗传概率计算 + ├── 分支法 + ├── 棋盘法 + └── 概率乘法与加法 +``` + +### 8. 基因的本质 + +``` +基因的本质 +├── DNA 是遗传物质的证据 +│ ├── 肺炎链球菌转化实验(格里菲思) +│ ├── 噬菌体侵染细菌实验(赫尔希、蔡斯) +│ └── ³²P 标记 DNA,³⁵S 标记蛋白质 +├── DNA 的结构 +│ ├── 双螺旋结构(沃森、克里克) +│ ├── 碱基互补配对(A-T, G-C) +│ ├── 脱氧核苷酸的组成 +│ └── 反向平行 +├── DNA 的复制 +│ ├── 半保留复制 +│ ├── 条件:模板、原料、能量、酶(解旋酶、DNA 聚合酶) +│ └── 特点:边解旋边复制 +└── 基因的概念 + └── 有遗传效应的 DNA 片段 +``` + +### 9. 基因的表达 + +``` +基因的表达 +├── 转录(DNA → mRNA) +│ ├── 场所:细胞核 +│ ├── 模板链(反义链) +│ ├── 碱基配对:A-U, T-A, G-C, C-G +│ └── RNA 聚合酶 +├── 翻译(mRNA → 蛋白质) +│ ├── 场所:核糖体 +│ ├── 密码子(mRNA 上三个碱基一组) +│ ├── tRNA(反密码子,携带氨基酸) +│ └── 遗传密码表(64 个密码子,含起始/终止密码子) +├── 中心法则 +│ ├── DNA → DNA(复制) +│ ├── DNA → RNA → 蛋白质 +│ └── RNA → DNA(逆转录,逆转录酶) +└── 基因对性状的控制 + ├── 直接控制:基因 → 蛋白质(结构蛋白) + └── 间接控制:基因 → 酶 → 代谢 → 性状 +``` + +### 10. 基因突变与其他变异 + +``` +基因突变与其他变异 +├── 基因突变 +│ ├── 概念(碱基的增添、缺失或替换) +│ ├── 特点(随机性、不定向性、低频率) +│ └── 意义(变异的根本来源) +├── 基因重组 +│ ├── 自由组合型重组 +│ ├── 交叉互换型重组 +│ └── 意义(有性生殖变异的重要来源) +├── 染色体变异 +│ ├── 染色体结构变异(缺失、重复、倒位、易位) +│ └── 染色体数目变异 +│ ├── 个别染色体增减(如 21 三体综合征) +│ └── 整倍体变异(多倍体、单倍体) +└── 人类遗传病 + ├── 单基因遗传病(常染色体 / X 染色体,显性 / 隐性) + ├── 多基因遗传病 + └── 染色体异常遗传病 +``` + +### 11. 生物的进化 + +``` +生物的进化 +├── 现代生物进化理论 +│ ├── 种群是生物进化的基本单位 +│ ├── 基因频率与基因型频率 +│ ├── 突变和基因重组产生进化的原材料 +│ ├── 自然选择导致种群基因频率定向改变 +│ └── 隔离是物种形成的必要条件 +│ ├── 地理隔离 +│ └── 生殖隔离 +├── 哈迪-温伯格定律 +│ └── p² + 2pq + q² = 1(理想条件下) +└── 共同进化与生物多样性 + ├── 共同进化 + └── 生物多样性的三个层次(基因、物种、生态系统) +``` + +--- + +## 选择性必修一:稳态与调节 + +### 12. 人体的内环境与稳态 + +``` +人体的内环境与稳态 +├── 内环境 +│ ├── 组织液、血浆、淋巴 +│ ├── 内环境的理化性质 +│ │ ├── 渗透压 +│ │ ├── pH +│ │ └── 温度 +│ └── 细胞与内环境的物质交换 +└── 稳态 + ├── 概念(内环境的各项指标保持相对稳定) + └── 调节机制:神经—体液—免疫调节 +``` + +### 13. 神经调节 + +``` +神经调节 +├── 神经系统的结构基础 +│ ├── 神经元的结构(细胞体、树突、轴突) +│ └── 反射弧(感受器 → 传入神经 → 神经中枢 → 传出神经 → 效应器) +├── 兴奋的传导 +│ ├── 静息电位(外正内负,K⁺ 外流) +│ ├── 动作电位(外负内正,Na⁺ 内流) +│ └── 传导特点:双向传导 +├── 兴奋的传递(突触) +│ ├── 突触结构(突触前膜、突触间隙、突触后膜) +│ ├── 神经递质(乙酰胆碱等) +│ ├── 单向传递 +│ └── 兴奋性突触与抑制性突触 +└── 神经系统的分级调节 + ├── 大脑皮层(最高级中枢) + ├── 脑干(呼吸中枢等) + └── 脊髓(低级反射中枢) +``` + +### 14. 体液调节 + +``` +体液调节 +├── 激素调节 +│ ├── 下丘脑—垂体—靶腺轴 +│ │ ├── 甲状腺激素的分级调节 +│ │ └── 负反馈调节 +│ ├── 血糖调节 +│ │ ├── 胰岛素(降血糖) +│ │ ├── 胰高血糖素(升血糖) +│ │ └── 拮抗作用 +│ └── 其他激素 +│ ├── 生长激素 +│ ├── 性激素 +│ └── 肾上腺素 +├── 激素的特点 +│ ├── 微量高效 +│ ├── 通过体液运输 +│ └── 作用于靶器官、靶细胞 +└── 神经调节与体液调节的协调 + └── 体温调节、水盐平衡调节 +``` + +### 15. 免疫调节 + +``` +免疫调节 +├── 免疫系统的组成 +│ ├── 免疫器官(骨髓、胸腺、脾、淋巴结) +│ ├── 免疫细胞 +│ │ ├── 吞噬细胞 +│ │ ├── T 细胞(在胸腺中成熟) +│ │ └── B 细胞(在骨髓中成熟) +│ └── 免疫活性物质(抗体、淋巴因子、溶菌酶) +├── 非特异性免疫 +│ ├── 第一道防线(皮肤、黏膜) +│ └── 第二道防线(吞噬细胞、溶菌酶等) +├── 特异性免疫 +│ ├── 体液免疫 +│ │ ├── 抗原 → 吞噬细胞呈递 → T 细胞 → B 细胞 +│ │ ├── B 细胞 → 浆细胞 → 抗体 +│ │ └── 记忆细胞(二次免疫更快更强) +│ └── 细胞免疫 +│ ├── T 细胞 → 效应 T 细胞 +│ └── 效应 T 细胞裂解靶细胞 +└── 免疫异常 + ├── 自身免疫病(如类风湿关节炎) + ├── 过敏反应 + └── 免疫缺陷病(如 AIDS) +``` + +### 16. 植物的激素调节 + +``` +植物的激素调节 +├── 生长素 +│ ├── 发现(达尔文、温特实验) +│ ├── 产生部位(幼嫩的芽、叶、发育中的种子) +│ ├── 极性运输 +│ ├── 两重性(低促高抑) +│ └── 应用(促进扦插生根、无子果实) +├── 其他植物激素 +│ ├── 赤霉素(促进细胞伸长) +│ ├── 细胞分裂素(促进细胞分裂) +│ ├── 脱落酸(抑制生长、促进衰老脱落) +│ └── 乙烯(促进果实成熟) +└── 植物激素的协调作用 + └── 激素间的拮抗与协同 +``` + +--- + +## 选择性必修二:生物与环境 + +### 17. 种群及其动态 + +``` +种群及其动态 +├── 种群的特征 +│ ├── 种群密度 +│ ├── 出生率和死亡率 +│ ├── 迁入率和迁出率 +│ ├── 年龄结构(增长型、稳定型、衰退型) +│ └── 性别比例 +├── 种群密度的调查方法 +│ ├── 样方法 +│ └── 标志重捕法 +├── 种群数量的变化 +│ ├── "J"形增长(理想条件,Nₜ = N₀λᵗ) +│ ├── "S"形增长(环境阻力,K 值) +│ └── K/2 时增长速率最大 +└── 种群数量的调节 + ├── 非密度制约因素 + └── 密度制约因素 +``` + +### 18. 群落及其演替 + +``` +群落及其演替 +├── 群落的结构 +│ ├── 物种组成(丰富度) +│ ├── 种间关系 +│ │ ├── 竞争 +│ │ ├── 捕食 +│ │ ├── 互利共生 +│ │ └── 寄生 +│ ├── 垂直结构(分层现象) +│ └── 水平结构 +└── 群落的演替 + ├── 初生演替(裸岩 → 地衣 → 苔藓 → ... → 森林) + └── 次生演替(有土壤和种子库的恢复) +``` + +### 19. 生态系统及其稳定性 + +``` +生态系统及其稳定性 +├── 生态系统的结构 +│ ├── 组成成分 +│ │ ├── 非生物的物质和能量 +│ │ ├── 生产者(自养生物) +│ │ ├── 消费者 +│ │ └── 分解者 +│ └── 营养结构 +│ ├── 食物链 +│ └── 食物网 +├── 生态系统的能量流动 +│ ├── 能量流动的过程 +│ ├── 特点:单向流动、逐营养级递减 +│ ├── 传递效率 10%~20% +│ └── 能量金字塔 +├── 生态系统的物质循环 +│ ├── 碳循环 +│ │ ├── CO₂ 的固定(光合作用、化能合成) +│ │ ├── 含碳有机物的传递(食物链) +│ │ └── CO₂ 的释放(呼吸作用、分解作用、燃烧) +│ └── 物质循环的特点(全球性、循环性) +├── 生态系统的信息传递 +│ ├── 物理信息 +│ ├── 化学信息 +│ └── 行为信息 +└── 生态系统的稳定性 + ├── 抵抗力稳定性 + ├── 恢复力稳定性 + └── 负反馈调节 +``` + +### 20. 人与环境 + +``` +人与环境 +├── 生态环境问题 +│ ├── 全球气候变化(温室效应) +│ ├── 水资源短缺 +│ ├── 臭氧层破坏 +│ ├── 酸雨 +│ ├── 土地荒漠化 +│ └── 生物多样性丧失 +├── 生物多样性及其保护 +│ ├── 基因多样性 +│ ├── 物种多样性 +│ ├── 生态系统多样性 +│ └── 保护措施 +│ ├── 就地保护(自然保护区) +│ └── 迁地保护(动物园、植物园) +└── 可持续发展 +``` + +--- + +## 选择性必修三:生物技术与工程 + +### 21. 基因工程 + +``` +基因工程 +├── 基因工程的基本工具 +│ ├── 限制性内切核酸酶("分子手术刀") +│ ├── DNA 连接酶("分子缝合针") +│ └── 运载体(质粒、噬菌体、病毒) +├── 基因工程的基本操作步骤 +│ ├── 获取目的基因 +│ │ ├── 从基因文库中获取 +│ │ ├── 化学合成法 +│ │ └── PCR 扩增 +│ ├── 构建基因表达载体(重组 DNA 分子) +│ ├── 将目的基因导入受体细胞 +│ │ ├── 农杆菌转化法(植物) +│ │ ├── 显微注射法(动物) +│ │ └── 感受态细胞法(微生物) +│ └── 目的基因的检测与鉴定 +│ ├── 分子水平检测 +│ └── 个体水平鉴定 +└── 基因工程的应用 + ├── 农业(转基因作物) + ├── 医药(基因工程药物,如胰岛素) + └── 环保(工程菌处理污染) +``` + +### 22. 细胞工程 + +``` +细胞工程 +├── 植物细胞工程 +│ ├── 植物组织培养 +│ │ ├── 原理:细胞的全能性 +│ │ ├── 过程:外植体 → 脱分化 → 愈伤组织 → 再分化 → 植株 +│ │ └── 应用:快速繁殖、脱毒苗 +│ └── 植物体细胞杂交 +│ ├── 去壁(纤维素酶、果胶酶)→ 原生质体 +│ ├── 融合(PEG、电融合) +│ └── 杂种植株的培育 +├── 动物细胞工程 +│ ├── 动物细胞培养 +│ │ ├── 培养条件(培养基、CO₂、温度、pH) +│ │ └── 贴壁生长与接触抑制 +│ ├── 动物细胞融合 +│ │ └── 灭活的病毒 +│ └── 单克隆抗体的制备 +│ ├── 骨髓瘤细胞 + 免疫 B 细胞 → 杂交瘤细胞 +│ ├── HAT 培养基筛选 +│ └── 抗体检测与克隆化培养 +└── 克隆技术 + ├── 胚胎分割 + └── 体细胞克隆(核移植) +``` + +### 23. 发酵工程与生态工程 + +``` +发酵工程与生态工程 +├── 传统发酵技术 +│ ├── 果酒和果醋的制作 +│ ├── 泡菜的腌制(乳酸发酵) +│ └── 腐乳的制作 +├── 微生物的培养与应用 +│ ├── 培养基(碳源、氮源、矿质元素、水) +│ ├── 灭菌与消毒 +│ ├── 纯化培养(平板划线法、稀释涂布平板法) +│ └── 微生物的计数 +├── 发酵工程 +│ ├── 基本环节 +│ │ ├── 菌种的选育 +│ │ ├── 培养基的配制与灭菌 +│ │ ├── 扩大培养与接种 +│ │ ├── 发酵过程的控制 +│ │ └── 产品的分离纯化 +│ └── 应用(抗生素、氨基酸、维生素的生产) +└── 生态工程 + ├── 基本原理 + │ ├── 物质循环再生原理 + │ ├── 物种多样性原理 + │ ├── 协调与平衡原理 + │ ├── 整体性原理 + │ └── 系统学和工程学原理 + └── 实例 + ├── 农村综合发展型生态工程 + ├── 湿地生态恢复工程 + └── 矿区废弃地生态恢复 +``` + +--- + +## 知识网络与学科交叉 + +``` +生物 → AI/ML 关联 +├── DNA 序列 → 基因组学、序列预测(如 AlphaFold) +├── 蛋白质结构 → 蛋白质折叠预测 +├── 神经调节 → 人工神经网络的生物学灵感 +├── 种群模型 → 进化算法、遗传算法 +├── 生态系统 → 多智能体系统、群体智能 +└── 基因工程 → AI 辅助基因编辑设计 +``` diff --git a/docs/high-school/chemistry.md b/docs/high-school/chemistry.md new file mode 100644 index 000000000..dc61c6679 --- /dev/null +++ b/docs/high-school/chemistry.md @@ -0,0 +1,488 @@ + +# 中学化学知识树 + +基于人教版新课标教材,涵盖必修与选择性必修全部内容。 + +--- + +## 必修第一册 + +### 1. 物质及其变化 + +``` +物质及其变化 +├── 物质的分类 +│ ├── 纯净物与混合物 +│ ├── 单质与化合物 +│ ├── 酸、碱、盐、氧化物 +│ └── 分散系 +│ ├── 溶液、胶体、浊液 +│ └── 胶体的性质(丁达尔效应、电泳、聚沉) +├── 物质的变化 +│ ├── 物理变化与化学变化 +│ └── 化学反应的分类 +│ ├── 按反应形式:化合、分解、置换、复分解 +│ └── 按是否有电子转移:氧化还原反应、非氧化还原反应 +├── 氧化还原反应 +│ ├── 概念(氧化剂、还原剂) +│ ├── 化合价升降法(电子转移方向) +│ ├── 氧化性与还原性强弱比较 +│ └── 配平方法 +└── 离子反应 + ├── 电解质与非电解质 + ├── 强电解质与弱电解质 + ├── 离子方程式的书写 + └── 离子共存问题 +``` + +### 2. 海水中的重要元素——钠和氯 + +``` +钠和氯 +├── 钠(Na) +│ ├── 物理性质(银白色、质软、密度小) +│ ├── 化学性质 +│ │ ├── 与 O₂ 反应(常温 → Na₂O,点燃 → Na₂O₂) +│ │ ├── 与 H₂O 反应 +│ │ └── 与酸、盐溶液的反应 +│ ├── 氧化钠 Na₂O 与过氧化钠 Na₂O₂ +│ │ └── Na₂O₂ 的强氧化性与漂白性 +│ ├── 碳酸钠 Na₂CO₃ 与碳酸氢钠 NaHCO₃ +│ │ └── 鉴别方法与相互转化 +│ └── 焰色试验 +├── 氯(Cl) +│ ├── 氯气的性质 +│ │ ├── 与金属反应(Fe → FeCl₃) +│ │ ├── 与非金属反应(H₂) +│ │ ├── 与 NaOH 反应(制备 84 消毒液) +│ │ └── 与水反应(歧化反应) +│ ├── 次氯酸 HClO 的漂白性 +│ ├── 氯气的实验室制法 +│ │ └── MnO₂ + 浓 HCl +│ └── 卤族元素的递变规律 +└── 物质的量 + ├── 摩尔(mol)与阿伏加德罗常数 Nₐ + ├── 摩尔质量 M(g/mol) + ├── 气体摩尔体积 Vm(标况 22.4 L/mol) + ├── 物质的量浓度 c = n/V(mol/L) + └── 溶液稀释 c₁V₁ = c₂V₂ +``` + +### 3. 铁 金属材料 + +``` +铁 金属材料 +├── 铁的性质 +│ ├── 与非金属反应(O₂、Cl₂、S) +│ ├── 与酸反应 +│ ├── 与盐溶液反应 +│ └── Fe²⁺ 与 Fe³⁺ 的相互转化 +├── 铁的化合物 +│ ├── 氧化铁 Fe₂O₃(铁红) +│ ├── 四氧化三铁 Fe₃O₄ +│ ├── 氢氧化铁 Fe(OH)₃ 与氢氧化亚铁 Fe(OH)₂ +│ └── Fe²⁺ 和 Fe³⁺ 的检验方法 +│ ├── KSCN 溶液 +│ └── NaOH 溶液 +├── 铝的性质 +│ ├── 两性(与酸、碱都反应) +│ └── 铝热反应 +├── 氧化铝与氢氧化铝 +│ └── 两性氧化物与两性氢氧化物 +└── 合金 + ├── 铁合金(生铁、钢) + └── 铝合金、铜合金 +``` + +--- + +## 必修第二册 + +### 4. 物质结构 元素周期律 + +``` +物质结构 元素周期律 +├── 原子结构 +│ ├── 原子核(质子、中子) +│ ├── 核外电子排布 +│ │ ├── 电子层(K, L, M, N...) +│ │ └── 排布规则(2n² 等) +│ └── 原子结构示意图 +├── 元素周期表 +│ ├── 编排原则(周期、族) +│ ├── 7 个周期(短周期 + 长周期) +│ ├── 18 个纵列,16 个族 +│ └── 主族、副族、第 VIII 族、0 族 +├── 元素周期律 +│ ├── 原子半径的变化规律 +│ ├── 主要化合价的变化规律 +│ ├── 元素金属性与非金属性的递变 +│ ├── 最高价氧化物对应水化物酸碱性递变 +│ └── 同主族元素性质递变 +├── 化学键 +│ ├── 离子键(阴阳离子间的静电作用) +│ ├── 共价键(共用电子对) +│ │ ├── 极性共价键与非极性共价键 +│ │ └── σ 键与 π 键(了解) +│ ├── 金属键(了解) +│ └── 电子式与结构式 +└── 分子间作用力 + ├── 范德华力 + └── 氢键 +``` + +### 5. 化学反应与能量 + +``` +化学反应与能量 +├── 化学能与热能 +│ ├── 放热反应与吸热反应 +│ ├── 反应热与焓变 ΔH +│ ├── 热化学方程式 +│ └── 盖斯定律 +├── 化学能与电能 +│ ├── 原电池 +│ │ ├── 工作原理(氧化还原反应) +│ │ ├── 构成条件 +│ │ ├── 正极与负极 +│ │ └── 电极反应式 +│ ├── 化学电源 +│ │ ├── 干电池 +│ │ ├── 铅蓄电池 +│ │ ├── 锂离子电池 +│ │ └── 氢燃料电池 +│ └── 电解池 +│ ├── 工作原理 +│ ├── 阳极氧化、阴极还原 +│ └── 电解食盐水、电解 CuSO₄ 溶液 +└── 化学反应的速率与限度 + ├── 化学反应速率 + │ ├── v = Δc/Δt + │ └── 影响因素(浓度、温度、催化剂、接触面积) + └── 化学平衡 + ├── 可逆反应 + ├── 化学平衡状态的判断 + └── 平衡移动与勒夏特列原理(定性了解) +``` + +### 6. 化学与可持续发展 + +``` +化学与可持续发展 +├── 自然资源的开发利用 +│ ├── 金属矿物的冶炼 +│ │ ├── 热还原法(Fe、Cu) +│ │ ├── 电解法(Al、Na、Mg) +│ │ └── 热分解法(Hg、Ag) +│ └── 海水资源的综合利用 +├── 化学品的合理使用 +│ └── 化肥、农药、食品添加剂 +└── 环境保护 + ├── 大气污染(SO₂、NOₓ、PM2.5) + ├── 水体污染 + └── 绿色化学 +``` + +--- + +## 选择性必修一:化学反应原理 + +### 7. 化学反应的热效应 + +``` +化学反应的热效应 +├── 反应热 +│ ├── 焓变 ΔH 的测定(量热计) +│ └── 中和热 +├── 盖斯定律 +│ └── 利用已知反应计算未知反应的焓变 +└── 键能与反应热 + └── ΔH = 反应物键能之和 - 生成物键能之和 +``` + +### 8. 化学反应速率与化学平衡 + +``` +化学反应速率与化学平衡 +├── 化学反应速率 +│ ├── 浓度对速率的影响 +│ ├── 温度对速率的影响 +│ ├── 催化剂对速率的影响 +│ └── 有效碰撞理论与活化能 +├── 化学平衡 +│ ├── 化学平衡常数 K +│ │ ├── 表达式的书写 +│ │ └── K 只与温度有关 +│ ├── 化学平衡的移动 +│ │ ├── 勒夏特列原理 +│ │ ├── 浓度变化的影响 +│ │ ├── 压强变化的影响 +│ │ └── 温度变化的影响 +│ └── 等效平衡 +└── 化学反应的方向 + ├── 焓变(ΔH) + ├── 熵变(ΔS) + └── 自由能判据 ΔG = ΔH - TΔS < 0(了解) +``` + +### 9. 水溶液中的离子反应与平衡 + +``` +水溶液中的离子反应与平衡 +├── 电离平衡 +│ ├── 弱电解质的电离 +│ ├── 电离常数 Ka、Kb +│ └── 影响电离平衡的因素 +├── 水的电离与溶液的 pH +│ ├── 水的离子积 Kw = [H⁺][OH⁻] = 10⁻¹⁴(25°C) +│ ├── pH = -lg[H⁺] +│ └── pH 的测定方法 +├── 盐类的水解 +│ ├── 水解的实质(盐中弱离子与水电离出的 H⁺/OH⁻ 结合) +│ ├── 水解规律("有弱才水解,越弱越水解") +│ ├── 影响水解的因素 +│ └── 水解的应用(明矾净水等) +├── 沉淀溶解平衡 +│ ├── 溶度积 Ksp +│ ├── 沉淀的生成、溶解与转化 +│ └── Qc 与 Ksp 的比较 +└── 离子浓度大小比较 + ├── 电荷守恒 + ├── 物料守恒 + └── 质子守恒 +``` + +### 10. 电化学基础 + +``` +电化学基础 +├── 原电池(深入) +│ ├── 电极电势 +│ └── 盐桥的作用 +├── 电解池(深入) +│ ├── 放电顺序 +│ │ ├── 阳极:活泼金属电极 > S²⁻ > I⁻ > Br⁻ > Cl⁻ > OH⁻ +│ │ └── 阴极:Ag⁺ > Cu²⁺ > H⁺ > ... > Na⁺ +│ ├── 电解定律 m = MIt/(nF) +│ └── 电解的应用(电镀、电解精炼、电冶金) +└── 金属的腐蚀与防护 + ├── 化学腐蚀与电化学腐蚀 + ├── 吸氧腐蚀与析氢腐蚀 + └── 防护方法(牺牲阳极法、外加电流法) +``` + +--- + +## 选择性必修二:物质结构与性质 + +### 11. 原子结构与元素性质 + +``` +原子结构与元素性质 +├── 原子核外电子的运动 +│ ├── 能层与能级(s, p, d, f) +│ ├── 构造原理与电子排布式 +│ └── 简化电子排布(用稀有气体核表示) +├── 原子结构与元素周期表 +│ ├── 能级与周期的关系 +│ └── 价电子构型与族的关系 +└── 元素性质的周期性变化 + ├── 电离能 + ├── 电负性 + └── 原子半径 +``` + +### 12. 分子结构与性质 + +``` +分子结构与性质 +├── 共价键 +│ ├── σ 键与 π 键 +│ ├── 键参数(键能、键长、键角) +│ └── 等电子体 +├── 分子的立体构型 +│ ├── VSEPR 模型(价层电子对互斥理论) +│ ├── 常见分子构型(直线形、平面三角形、四面体形、V 形等) +│ └── 杂化轨道理论(sp、sp²、sp³) +├── 分子的极性 +│ ├── 极性分子与非极性分子 +│ └── 判断方法 +└── 分子间作用力与物质性质 + ├── 范德华力(影响熔沸点) + ├── 氢键(F、O、N 与 H 之间) + │ ├── 分子间氢键 + │ └── 分子内氢键 + └── 对物质性质的影响 +``` + +### 13. 晶体结构与性质 + +``` +晶体结构与性质 +├── 晶体的常识 +│ ├── 晶体与非晶体 +│ ├── 晶胞 +│ └── X 射线衍射 +├── 四种晶体类型 +│ ├── 离子晶体 +│ │ ├── NaCl 型、CsCl 型 +│ │ └── 配位数 +│ ├── 原子晶体 +│ │ ├── 金刚石、SiO₂、SiC +│ │ └── 硬度大、熔点高 +│ ├── 分子晶体 +│ │ ├── 冰、干冰、I₂ +│ │ └── 分子间作用力决定物理性质 +│ └── 金属晶体 +│ ├── 金属键与电子气模型 +│ └── 堆积方式(面心立方、体心立方、六方最密) +└── 晶体性质的比较 + └── 熔沸点:原子晶体 > 离子晶体 > 分子晶体(一般规律) +``` + +--- + +## 选择性必修三:有机化学基础 + +### 14. 有机化合物概述 + +``` +有机化合物概述 +├── 有机物的分类 +│ ├── 按碳骨架:链状 / 环状 +│ └── 按官能团分类 +├── 有机物的命名 +│ ├── 系统命名法 +│ └── 常见有机物的俗名 +├── 有机物的结构特点 +│ ├── 碳原子的四价 +│ ├── 碳链与碳环 +│ └── 同分异构体 +│ ├── 碳链异构 +│ ├── 位置异构 +│ └── 官能团异构 +└── 有机物的研究方法 + ├── 元素分析(确定分子式) + ├── 红外光谱(IR,确定官能团) + ├── 核磁共振氢谱(¹H NMR,确定 H 的种类) + └── 质谱(MS,确定相对分子质量) +``` + +### 15. 烃 + +``` +烃 +├── 烷烃 +│ ├── 结构特点(C-C 单键、sp³ 杂化) +│ ├── 通式 CₙH₂ₙ₊₂ +│ ├── 性质:取代反应(卤代)、氧化反应(燃烧) +│ └── 甲烷 +├── 烯烃 +│ ├── 结构特点(C=C 双键、sp² 杂化) +│ ├── 通式 CₙH₂ₙ +│ ├── 性质:加成反应、加聚反应、氧化反应 +│ └── 乙烯 +│ └── 使溴水褪色、使酸性 KMnO₄ 褪色 +├── 炔烃 +│ ├── 结构特点(C≡C 三键、sp 杂化) +│ ├── 通式 CₙH₂ₙ₋₂ +│ └── 乙炔 +├── 苯及其同系物 +│ ├── 苯的结构(平面正六边形,大 π 键) +│ ├── 苯的性质:取代反应(溴代、硝化)、加成反应 +│ └── 甲苯、二甲苯 +│ └── 甲苯使酸性 KMnO₄ 褪色(苯不能) +└── 石油化工 + ├── 石油的分馏 + ├── 催化裂化与裂解 + └── 煤的干馏 +``` + +### 16. 烃的衍生物 + +``` +烃的衍生物 +├── 卤代烃 +│ ├── 结构与性质 +│ ├── 取代反应(水解) +│ └── 消去反应 +├── 醇 +│ ├── 官能团 -OH +│ ├── 乙醇的性质 +│ │ ├── 与 Na 反应 +│ │ ├── 催化氧化 → 乙醛 +│ │ ├── 消去反应 → 乙烯 +│ │ ├── 酯化反应 +│ │ └── 与 HBr 取代 +│ └── 醇的通性 +├── 酚 +│ ├── 苯酚的结构(-OH 直接连在苯环上) +│ ├── 弱酸性(与 NaOH 反应) +│ ├── 与 FeCl₃ 显紫色 +│ ├── 与浓溴水反应(白色沉淀) +│ └── 醇与酚的区别 +├── 醛 +│ ├── 官能团 -CHO +│ ├── 乙醛的性质 +│ │ ├── 银镜反应 +│ │ ├── 与新制 Cu(OH)₂ 反应 +│ │ └── 催化氧化 → 乙酸 +│ └── 甲醛(福尔马林) +├── 羧酸 +│ ├── 官能团 -COOH +│ ├── 乙酸的性质 +│ │ ├── 弱酸性 +│ │ └── 酯化反应(与醇反应) +│ └── 常见有机酸 +├── 酯 +│ ├── 酯化反应(可逆、浓 H₂SO₄ 催化) +│ └── 水解反应(酸性 / 碱性条件) +└── 官能团之间的相互转化 + └── 醇 ⇌ 醛 ⇌ 羧酸 → 酯 +``` + +### 17. 生物大分子与合成高分子 + +``` +生物大分子与合成高分子 +├── 糖类 +│ ├── 单糖(葡萄糖 C₆H₁₂O₆、果糖) +│ │ └── 葡萄糖的银镜反应 +│ ├── 二糖(蔗糖、麦芽糖) +│ │ └── 水解产物 +│ └── 多糖(淀粉、纤维素) +│ ├── 淀粉遇碘变蓝 +│ └── 纤维素的水解 +├── 油脂 +│ ├── 高级脂肪酸与甘油的酯 +│ └── 皂化反应 +├── 蛋白质 +│ ├── 氨基酸的结构(氨基 + 羧基) +│ ├── 肽键与肽链 +│ ├── 蛋白质的性质 +│ │ ├── 盐析(可逆) +│ │ ├── 变性(不可逆) +│ │ ├── 颜色反应(双缩脲反应 — 紫色) +│ │ └── 灼烧有烧焦羽毛味 +│ └── 酶(生物催化剂) +├── 核酸(了解) +│ ├── DNA 与 RNA +│ └── 核苷酸 +└── 合成高分子 + ├── 加聚反应(聚乙烯、聚氯乙烯) + ├── 缩聚反应(酚醛树脂、涤纶) + └── 高分子材料(塑料、橡胶、纤维) +``` + +--- + +## 知识网络与学科交叉 + +``` +化学 → AI/ML 关联 +├── 分子结构 → 分子生成模型(GNN、Diffusion) +├── 反应动力学 → 化学反应预测 +├── 元素周期律 → 材料性质预测 +├── 有机合成 → 逆合成分析(AI 辅助药物设计) +└── 化学实验 → 自动化实验室(Lab Automation) +``` diff --git a/docs/high-school/index.md b/docs/high-school/index.md new file mode 100644 index 000000000..8f03f0ac3 --- /dev/null +++ b/docs/high-school/index.md @@ -0,0 +1,34 @@ + +# 中学学科知识 + +基于《普通高中课程标准(2017 年版 2020 年修订)》梳理的中学四大理科学科知识树,帮助你建立系统、完整的知识体系。 + +## 学科导航 + +| 学科 | 必修模块 | 选择性必修模块 | 核心知识点数 | +|------|----------|---------------|-------------| +| [数学](/docs/high-school/math) | 必修一、二 | 选必一、二、三 | ~120 | +| [物理](/docs/high-school/physics) | 必修一、二、三 | 选必一、二、三 | ~100 | +| [化学](/docs/high-school/chemistry) | 必修一、二 | 选必一、二、三 | ~90 | +| [生物](/docs/high-school/biology) | 必修一、二 | 选必一、二、三 | ~80 | + +## 为什么需要中学学科知识树? + +- **学习 AI 的前置知识**:线性代数、概率统计、微积分初步等数学基础是机器学习的必备前置 +- **系统化查漏补缺**:对照知识树快速定位自己的薄弱环节 +- **学科交叉理解**:理解物理建模、化学计算、生物信息学等跨学科联系 + +## 知识树结构说明 + +每个学科按以下层级组织: + +``` +学科 +├── 模块(必修 / 选择性必修) +│ ├── 章节主题 +│ │ ├── 核心概念 +│ │ ├── 重要定理 / 公式 +│ │ └── 典型应用 +``` + +> 内容持续完善中,欢迎在 [GitHub](https://github.com/vansin/intern-ai) 提交 Issue 或 PR 参与贡献。 diff --git a/docs/high-school/math.md b/docs/high-school/math.md new file mode 100644 index 000000000..9d1541472 --- /dev/null +++ b/docs/high-school/math.md @@ -0,0 +1,417 @@ + +# 中学数学知识树 + +基于人教 A 版新课标教材,涵盖必修与选择性必修全部内容。 + +--- + +## 必修第一册 + +### 1. 集合与常用逻辑用语 + +``` +集合与常用逻辑用语 +├── 集合 +│ ├── 集合的概念与表示(列举法、描述法) +│ ├── 集合间的基本关系(子集、真子集、相等) +│ └── 集合的基本运算(交集、并集、补集) +├── 常用逻辑用语 +│ ├── 充分条件与必要条件 +│ ├── 全称量词与存在量词 +│ └── 逻辑联结词(且、或、非) +``` + +### 2. 一元二次函数、方程和不等式 + +``` +一元二次函数、方程和不等式 +├── 等式与不等式的性质 +├── 一元二次不等式 +│ ├── 与二次函数图像的关系 +│ └── 解法(判别式分类讨论) +└── 基本不等式 a+b ≥ 2√(ab) + ├── 证明(算术-几何平均不等式) + └── 求最值的应用条件(一正二定三相等) +``` + +### 3. 函数的概念与性质 + +``` +函数的概念与性质 +├── 函数的概念 +│ ├── 定义域、值域、对应关系 +│ ├── 函数的表示法(解析式、图像、列表) +│ └── 分段函数 +├── 函数的基本性质 +│ ├── 单调性(定义法证明、导数判断) +│ ├── 奇偶性(定义、图像对称性) +│ └── 周期性 +└── 幂函数 + └── y = xⁿ(n = -1, ½, 1, 2, 3) +``` + +### 4. 指数函数与对数函数 + +``` +指数函数与对数函数 +├── 指数 +│ ├── 指数幂的运算(整数 → 有理数 → 实数指数幂) +│ └── 运算性质(aᵐ·aⁿ = aᵐ⁺ⁿ 等) +├── 指数函数 +│ ├── 定义 y = aˣ (a > 0, a ≠ 1) +│ ├── 图像与性质(单调性、过定点 (0,1)) +│ └── 指数方程与不等式 +├── 对数 +│ ├── 对数的定义(指数的逆运算) +│ ├── 运算性质(积、商、幂的对数) +│ └── 换底公式 +└── 对数函数 + ├── 定义 y = logₐx (a > 0, a ≠ 1) + ├── 图像与性质 + └── 指数函数与对数函数的关系(互为反函数) +``` + +### 5. 三角函数 + +``` +三角函数 +├── 任意角和弧度制 +│ ├── 角的概念推广(正角、负角、零角) +│ └── 弧度与角度的换算 +├── 三角函数的概念 +│ ├── 单位圆定义(sin, cos, tan) +│ ├── 同角三角函数的基本关系 +│ └── 诱导公式("奇变偶不变,符号看象限") +├── 三角函数的图像与性质 +│ ├── y = sin x 的图像(五点作图法) +│ ├── y = Asin(ωx + φ) 的变换 +│ ├── 周期、振幅、频率、相位 +│ └── 单调性与最值 +└── 三角恒等变换 + ├── 两角和与差公式 + ├── 二倍角公式 + ├── 辅助角公式(asinx + bcosx = √(a²+b²)sin(x+φ)) + └── 半角公式 +``` + +--- + +## 必修第二册 + +### 6. 平面向量及其应用 + +``` +平面向量及其应用 +├── 平面向量的概念 +│ ├── 向量的定义(有向线段) +│ ├── 相等向量、零向量、单位向量 +│ └── 共线向量与平行 +├── 向量运算 +│ ├── 加法(三角形法则、平行四边形法则) +│ ├── 减法 +│ ├── 数乘 +│ └── 向量的线性运算 +├── 向量的坐标表示 +│ ├── 平面直角坐标系下的坐标运算 +│ ├── 中点坐标公式 +│ └── 向量平行与垂直的坐标条件 +├── 数量积 +│ ├── 定义 a⃗·b⃗ = |a⃗||b⃗|cosθ +│ ├── 坐标运算 a⃗·b⃗ = x₁x₂ + y₁y₂ +│ ├── 几何意义(投影) +│ └── 应用(求夹角、判断垂直) +└── 向量的应用 + ├── 平面几何中的应用 + └── 物理中的力和速度分解 +``` + +### 7. 复数 + +``` +复数 +├── 复数的概念 +│ ├── 虚数单位 i(i² = -1) +│ ├── 代数形式 a + bi +│ ├── 实部、虚部、共轭复数 +│ └── 复平面与几何意义 +├── 复数的运算 +│ ├── 加法与减法 +│ ├── 乘法 +│ ├── 除法(分母实数化) +│ └── 复数的模 |z| = √(a² + b²) +``` + +### 8. 立体几何初步 + +``` +立体几何初步 +├── 基本立体图形 +│ ├── 棱柱(定义、性质、分类) +│ ├── 棱锥(定义、性质、正棱锥) +│ ├── 棱台 +│ └── 圆柱、圆锥、圆台、球 +├── 立体图形的直观图 +│ └── 斜二测画法 +├── 空间点、直线、平面之间的位置关系 +│ ├── 平面的基本性质(三个公理) +│ ├── 空间中直线与直线的关系(平行、相交、异面) +│ ├── 直线与平面的关系(平行、相交、在平面内) +│ └── 平面与平面的关系(平行、相交) +├── 平行关系 +│ ├── 线面平行判定定理与性质定理 +│ └── 面面平行判定定理与性质定理 +├── 垂直关系 +│ ├── 线面垂直判定定理与性质定理 +│ ├── 面面垂直判定定理与性质定理 +│ └── 三垂线定理 +└── 空间几何体的表面积与体积 + ├── 柱体、锥体、台体的表面积 + ├── 柱体、锥体、台体的体积 + └── 球的表面积与体积(S = 4πR², V = 4πR³/3) +``` + +### 9. 统计 + +``` +统计 +├── 随机抽样 +│ ├── 简单随机抽样 +│ ├── 系统抽样 +│ └── 分层抽样 +├── 用样本估计总体 +│ ├── 频率分布直方图 +│ ├── 频率分布折线图与总体密度曲线 +│ ├── 茎叶图 +│ ├── 样本的数字特征(均值、方差、标准差、中位数、众数) +│ └── 百分位数 +└── 统计案例 + ├── 线性回归方程 + └── 独立性检验(χ² 检验) +``` + +### 10. 概率 + +``` +概率 +├── 随机事件与概率 +│ ├── 事件的分类(确定事件、随机事件) +│ ├── 概率的定义与性质 +│ └── 概率的加法公式 +├── 古典概型 +│ ├── 等可能事件 +│ └── P(A) = n(A)/n(Ω) +├── 频率与概率 +│ └── 大量重复实验下频率的稳定性 +└── 事件的相互独立性 + └── P(AB) = P(A)P(B) +``` + +--- + +## 选择性必修第一册 + +### 11. 空间向量与立体几何 + +``` +空间向量与立体几何 +├── 空间向量及其运算 +│ ├── 空间向量的概念 +│ ├── 空间向量的加法、减法、数乘 +│ ├── 空间向量的数量积 +│ ├── 空间向量的坐标表示 +│ └── 空间向量的坐标运算 +├── 空间向量的应用 +│ ├── 用向量证明平行与垂直 +│ ├── 空间角的计算 +│ │ ├── 异面直线所成的角 +│ │ ├── 线面角(直线与平面所成的角) +│ │ └── 二面角 +│ └── 空间距离的计算 +│ ├── 点到平面的距离 +│ └── 异面直线间的距离 +└── 法向量方法 + └── 平面的法向量求法与应用 +``` + +### 12. 直线和圆的方程 + +``` +直线和圆的方程 +├── 直线的方程 +│ ├── 直线的倾斜角与斜率 +│ ├── 直线方程的五种形式 +│ │ ├── 点斜式 +│ │ ├── 斜截式 +│ │ ├── 两点式 +│ │ ├── 截距式 +│ │ └── 一般式 Ax + By + C = 0 +│ ├── 两条直线的位置关系(平行、垂直、相交) +│ └── 点到直线的距离公式 +└── 圆的方程 + ├── 圆的标准方程 (x-a)² + (y-b)² = r² + ├── 圆的一般方程 + ├── 直线与圆的位置关系 + ├── 圆与圆的位置关系 + └── 直线与圆的综合应用 +``` + +### 13. 圆锥曲线的方程 + +``` +圆锥曲线的方程 +├── 椭圆 +│ ├── 定义(到两焦点距离之和为定值) +│ ├── 标准方程 x²/a² + y²/b² = 1 +│ ├── 几何性质(焦点、顶点、长轴、短轴、离心率) +│ └── 焦点三角形 +├── 双曲线 +│ ├── 定义(到两焦点距离之差的绝对值为定值) +│ ├── 标准方程 x²/a² - y²/b² = 1 +│ ├── 几何性质(焦点、顶点、实轴、虚轴、渐近线、离心率) +│ └── 等轴双曲线 +├── 抛物线 +│ ├── 定义(到焦点和准线距离相等) +│ ├── 标准方程 y² = 2px +│ ├── 几何性质(焦点、准线、通径) +│ └── 焦点弦 +└── 圆锥曲线综合 + ├── 直线与圆锥曲线的位置关系(韦达定理法) + ├── 弦长公式 + ├── 面积问题 + └── 定点、定值、存在性问题 +``` + +--- + +## 选择性必修第二册 + +### 14. 数列 + +``` +数列 +├── 数列的概念与表示 +│ ├── 数列的定义 +│ ├── 通项公式 aₙ +│ ├── 递推公式 +│ └── 前 n 项和 Sₙ 与 aₙ 的关系 +├── 等差数列 +│ ├── 定义与通项公式 aₙ = a₁ + (n-1)d +│ ├── 前 n 项和 Sₙ = na₁ + n(n-1)d/2 +│ ├── 等差中项 +│ └── 性质(若 m+n = p+q,则 aₘ+aₙ = aₚ+aₐ) +├── 等比数列 +│ ├── 定义与通项公式 aₙ = a₁·qⁿ⁻¹ +│ ├── 前 n 项和(q ≠ 1 与 q = 1 分类) +│ ├── 等比中项 +│ └── 性质 +└── 数列求和方法 + ├── 公式法 + ├── 分组求和 + ├── 裂项相消 + ├── 错位相减 + └── 倒序相加 +``` + +### 15. 一元函数的导数及其应用 + +``` +一元函数的导数及其应用 +├── 导数的概念 +│ ├── 变化率与导数(极限定义) +│ ├── 导数的几何意义(切线斜率) +│ └── 导函数 +├── 导数的运算 +│ ├── 基本初等函数的导数公式 +│ │ ├── (xⁿ)' = nxⁿ⁻¹ +│ │ ├── (sin x)' = cos x +│ │ ├── (cos x)' = -sin x +│ │ ├── (eˣ)' = eˣ +│ │ ├── (aˣ)' = aˣ ln a +│ │ ├── (ln x)' = 1/x +│ │ └── (logₐx)' = 1/(x ln a) +│ └── 导数的运算法则(和、差、积、商、复合函数) +├── 导数的应用 +│ ├── 函数的单调性(f'(x) > 0 递增,f'(x) < 0 递减) +│ ├── 函数的极值(极大值、极小值) +│ ├── 函数的最值(闭区间上) +│ └── 导数与函数图像 +└── 综合应用 + ├── 含参数的函数讨论 + ├── 不等式证明 + └── 零点问题 +``` + +--- + +## 选择性必修第三册 + +### 16. 计数原理 + +``` +计数原理 +├── 分类加法计数原理 +├── 分步乘法计数原理 +├── 排列 +│ ├── 排列数公式 A(n,m) = n!/(n-m)! +│ └── 全排列 n! +├── 组合 +│ ├── 组合数公式 C(n,m) = n!/[m!(n-m)!] +│ └── 组合数的性质(C(n,m) = C(n,n-m) 等) +└── 二项式定理 + ├── (a+b)ⁿ 的展开式 + ├── 二项式系数的性质 + └── 通项公式 T(r+1) = C(n,r)·aⁿ⁻ʳ·bʳ +``` + +### 17. 概率与统计(进阶) + +``` +概率与统计(进阶) +├── 条件概率与全概率公式 +│ ├── 条件概率 P(B|A) +│ ├── 乘法公式 P(AB) = P(A)·P(B|A) +│ └── 全概率公式 +├── 离散型随机变量 +│ ├── 随机变量及其分布列 +│ ├── 数学期望 E(X) +│ ├── 方差 D(X) +│ ├── 二项分布 B(n, p) +│ └── 超几何分布 +├── 正态分布 +│ ├── 正态分布曲线的特征 +│ ├── 标准正态分布 +│ └── 3σ 原则 +└── 回归分析与独立性检验 + ├── 线性回归 + ├── 非线性回归 + └── 独立性检验 +``` + +### 18. 解三角形 + +``` +解三角形 +├── 正弦定理 +│ ├── a/sinA = b/sinB = c/sinC = 2R +│ └── 应用(已知两角一边、两边一角) +├── 余弦定理 +│ ├── a² = b² + c² - 2bc·cosA +│ └── 应用(已知三边、两边一夹角) +└── 解三角形的综合应用 + ├── 三角形面积公式 S = ½ab·sinC + ├── 判断三角形形状 + └── 实际测量问题(测高、测距) +``` + +--- + +## 知识网络与学科交叉 + +``` +数学 → AI/ML 关联 +├── 函数与导数 → 损失函数、梯度下降 +├── 向量与矩阵 → 线性代数、特征向量 +├── 概率与统计 → 贝叶斯推断、假设检验 +├── 数列与递推 → 递归算法、动态规划 +└── 解析几何 → 高维空间、决策边界 +``` diff --git a/docs/high-school/physics.md b/docs/high-school/physics.md new file mode 100644 index 000000000..113efb026 --- /dev/null +++ b/docs/high-school/physics.md @@ -0,0 +1,456 @@ + +# 中学物理知识树 + +基于人教版新课标教材,涵盖必修与选择性必修全部内容。 + +--- + +## 必修第一册 + +### 1. 运动的描述 + +``` +运动的描述 +├── 质点 +│ └── 质点模型的适用条件 +├── 参考系与坐标系 +├── 时刻与时间间隔 +├── 位移与路程 +│ ├── 位移是矢量,路程是标量 +│ └── 位移—时间图像(x-t 图) +├── 速度 +│ ├── 平均速度与瞬时速度 +│ ├── 速率 +│ └── 速度—时间图像(v-t 图) +└── 加速度 + ├── 定义 a = Δv/Δt + └── 加速度的方向与运动状态变化的关系 +``` + +### 2. 匀变速直线运动 + +``` +匀变速直线运动 +├── 匀变速直线运动的规律 +│ ├── 速度公式 v = v₀ + at +│ ├── 位移公式 x = v₀t + ½at² +│ ├── 速度位移关系 v² - v₀² = 2ax +│ └── 平均速度 v̄ = (v₀ + v)/2 +├── 自由落体运动 +│ ├── 初速度为零,加速度为 g +│ └── g ≈ 9.8 m/s² +├── 竖直上抛运动 +│ ├── 对称性 +│ └── 最高点速度为零 +└── 实验:探究匀变速直线运动 + ├── 打点计时器 + └── 逐差法求加速度 +``` + +### 3. 相互作用——力 + +``` +相互作用——力 +├── 重力 +│ ├── G = mg +│ └── 重心 +├── 弹力 +│ ├── 产生条件(接触 + 弹性形变) +│ ├── 胡克定律 F = kx +│ └── 弹簧的串联与并联 +├── 摩擦力 +│ ├── 静摩擦力(0 ≤ f ≤ fₘₐₓ) +│ ├── 滑动摩擦力 f = μN +│ └── 摩擦力方向的判断 +├── 力的合成与分解 +│ ├── 平行四边形定则 +│ ├── 三角形定则 +│ └── 正交分解法 +└── 共点力的平衡 + └── ΣF = 0 +``` + +### 4. 牛顿运动定律 + +``` +牛顿运动定律 +├── 牛顿第一定律(惯性定律) +│ ├── 惯性的概念 +│ └── 力不是维持运动的原因 +├── 牛顿第二定律 +│ ├── F = ma(合力方向 = 加速度方向) +│ ├── 单位:1 N = 1 kg·m/s² +│ └── 应用:整体法与隔离法 +├── 牛顿第三定律 +│ ├── 作用力与反作用力 +│ └── 与平衡力的区别 +└── 牛顿定律的应用 + ├── 超重与失重 + ├── 连接体问题 + └── 传送带问题 +``` + +--- + +## 必修第二册 + +### 5. 曲线运动 + +``` +曲线运动 +├── 曲线运动的条件 +│ └── 合力方向与速度方向不在同一直线上 +├── 运动的合成与分解 +│ └── 独立性原理 +├── 抛体运动 +│ ├── 平抛运动 +│ │ ├── 水平方向匀速,竖直方向自由落体 +│ │ ├── x = v₀t, y = ½gt² +│ │ └── 轨迹方程 y = gx²/(2v₀²) +│ └── 斜抛运动(了解) +└── 圆周运动 + ├── 描述量:线速度 v、角速度 ω、周期 T、频率 f + ├── 关系:v = ωr, ω = 2π/T + ├── 向心加速度 a = v²/r = ω²r + ├── 向心力 F = mv²/r = mω²r + └── 应用(竖直面圆周运动、离心现象) +``` + +### 6. 万有引力与宇宙航行 + +``` +万有引力与宇宙航行 +├── 开普勒三定律 +│ ├── 椭圆轨道 +│ ├── 面积定律 +│ └── T²/a³ = k(周期定律) +├── 万有引力定律 +│ ├── F = GMm/r² +│ └── 引力常量 G 的测量(卡文迪许扭秤) +├── 万有引力的应用 +│ ├── 计算天体质量 +│ ├── 第一宇宙速度 v₁ = √(gR) ≈ 7.9 km/s +│ ├── 第二宇宙速度 ≈ 11.2 km/s +│ └── 第三宇宙速度 ≈ 16.7 km/s +└── 宇宙航行 + ├── 卫星的轨道参数(GMm/r² = mv²/r) + ├── 同步卫星的特征 + └── 变轨问题 +``` + +### 7. 机械能守恒定律 + +``` +机械能守恒定律 +├── 功 +│ ├── 定义 W = Fs·cosθ +│ ├── 正功、负功、不做功的条件 +│ └── 合力的功 +├── 功率 +│ ├── 平均功率 P = W/t +│ ├── 瞬时功率 P = Fv·cosθ +│ └── 额定功率与实际功率 +├── 重力势能 +│ ├── Eₚ = mgh(势能零点的选取) +│ └── 重力做功与重力势能变化 Wg = -ΔEₚ +├── 弹性势能 +├── 动能与动能定理 +│ ├── Eₖ = ½mv² +│ └── 动能定理 W合 = ΔEₖ +├── 机械能守恒定律 +│ ├── 条件:只有重力(或弹力)做功 +│ └── Eₖ₁ + Eₚ₁ = Eₖ₂ + Eₚ₂ +└── 功能关系 + ├── 除重力外其他力做的功 = 机械能的变化 + └── 摩擦力做的功 = 内能的增加 +``` + +--- + +## 必修第三册 + +### 8. 静电场及其应用 + +``` +静电场及其应用 +├── 电荷 +│ ├── 电荷守恒定律 +│ ├── 元电荷 e = 1.6 × 10⁻¹⁹ C +│ └── 起电方式(摩擦、接触、感应) +├── 库仑定律 +│ ├── F = kq₁q₂/r² +│ └── 适用条件(真空中点电荷) +├── 电场强度 +│ ├── 定义 E = F/q +│ ├── 点电荷的电场 E = kQ/r² +│ ├── 匀强电场 +│ └── 电场线 +├── 电势与电势能 +│ ├── 电势 φ +│ ├── 电势差 U = φₐ - φᵦ +│ ├── 等势面 +│ └── 电势能 Eₚ = qφ +├── 电势差与电场强度的关系 +│ └── U = Ed(匀强电场) +└── 电容器 + ├── 电容 C = Q/U + ├── 平行板电容器 C = εS/(4πkd) + └── 电容器的充放电 +``` + +### 9. 电路及其应用 + +``` +电路及其应用 +├── 电流与电阻 +│ ├── 电流 I = q/t +│ ├── 电阻 R = ρL/S +│ └── 电阻率与温度的关系 +├── 欧姆定律 +│ ├── I = U/R +│ └── I-U 特性曲线 +├── 串并联电路 +│ ├── 串联:电流相等,电压分配 +│ └── 并联:电压相等,电流分配 +├── 电功与电功率 +│ ├── W = UIt +│ ├── P = UI +│ └── 焦耳定律 Q = I²Rt +└── 闭合电路欧姆定律 + ├── I = ε/(R + r) + ├── 路端电压 U = ε - Ir + └── 电源的效率 η = U/ε +``` + +### 10. 磁场 + +``` +磁场 +├── 磁场的描述 +│ ├── 磁感应强度 B +│ ├── 磁感线 +│ └── 地磁场 +├── 几种常见磁场 +│ ├── 条形磁铁 +│ ├── 通电直导线(安培定则) +│ └── 通电螺线管(右手螺旋定则) +├── 磁场对通电导线的力(安培力) +│ ├── F = BIL·sinθ +│ └── 左手定则 +├── 磁场对运动电荷的力(洛伦兹力) +│ ├── F = qvB·sinθ +│ ├── 洛伦兹力不做功 +│ └── 带电粒子在匀强磁场中的圆周运动 +│ ├── 半径 r = mv/(qB) +│ └── 周期 T = 2πm/(qB) +└── 应用 + ├── 速度选择器 + ├── 质谱仪 + └── 回旋加速器 +``` + +--- + +## 选择性必修第一册 + +### 11. 动量守恒定律 + +``` +动量守恒定律 +├── 动量 +│ ├── 定义 p = mv(矢量) +│ └── 动量的变化 Δp +├── 冲量 +│ └── I = FΔt +├── 动量定理 +│ └── FΔt = Δp = mv' - mv +├── 动量守恒定律 +│ ├── 条件:系统所受合外力为零 +│ └── m₁v₁ + m₂v₂ = m₁v₁' + m₂v₂' +└── 碰撞 + ├── 弹性碰撞(动量守恒 + 动能守恒) + ├── 完全非弹性碰撞(动量守恒,粘合) + └── 碰撞的可行性判断 +``` + +### 12. 机械振动与机械波 + +``` +机械振动与机械波 +├── 简谐运动 +│ ├── 回复力 F = -kx +│ ├── 振幅、周期、频率 +│ ├── x-t 图像(正弦曲线) +│ └── 弹簧振子 T = 2π√(m/k) +├── 单摆 +│ ├── T = 2π√(L/g) +│ └── 测量重力加速度 +├── 受迫振动与共振 +│ └── 固有频率 = 驱动频率时振幅最大 +├── 机械波 +│ ├── 横波与纵波 +│ ├── 波长、频率、波速 v = λf +│ └── 波的图像 +└── 波的现象 + ├── 波的干涉 + ├── 波的衍射 + └── 多普勒效应 +``` + +### 13. 光 + +``` +光 +├── 光的折射 +│ ├── 折射定律 n₁sinθ₁ = n₂sinθ₂ +│ ├── 折射率 n = c/v +│ └── 全反射(临界角 sinC = 1/n) +├── 光的干涉 +│ ├── 杨氏双缝干涉 +│ ├── 条纹间距 Δy = λL/d +│ └── 薄膜干涉 +├── 光的衍射 +│ └── 单缝衍射 +├── 光的偏振 +│ └── 自然光与偏振光 +└── 激光的特性 + └── 单色性、方向性、相干性 +``` + +--- + +## 选择性必修第二册 + +### 14. 电磁感应 + +``` +电磁感应 +├── 电磁感应现象 +│ ├── 法拉第电磁感应定律 ε = ΔΦ/Δt = NΔΦ/Δt +│ └── 楞次定律(感应电流的方向——阻碍磁通量的变化) +├── 感应电动势 +│ ├── ε = BLv(导体棒切割磁力线) +│ └── ε = NΔΦ/Δt(线圈中磁通量变化) +├── 自感 +│ ├── 自感电动势 +│ └── 通电自感与断电自感 +├── 涡流 +│ └── 电磁阻尼与电磁驱动 +└── 电磁感应综合问题 + ├── 导体棒在磁场中的运动(力学 + 电路) + ├── 能量转化分析 + └── 感应电路中的图像问题 +``` + +### 15. 交变电流 + +``` +交变电流 +├── 交变电流的产生 +│ ├── 正弦交变电流 e = NBSω·sin(ωt) +│ └── 峰值、有效值、平均值的关系 +├── 描述交变电流的物理量 +│ ├── 峰值 Eₘ = NBSω +│ ├── 有效值(等效热量) +│ ├── 周期与频率 +│ └── 我国市电:220V / 50Hz +├── 变压器 +│ ├── 原理(互感) +│ ├── U₁/U₂ = n₁/n₂ +│ └── 理想变压器 P₁ = P₂ +└── 远距离输电 + ├── 输电损耗 P损 = I²R线 + └── 高压输电减小损耗 +``` + +### 16. 电磁振荡与电磁波 + +``` +电磁振荡与电磁波 +├── LC 振荡电路 +│ ├── 电场能与磁场能的相互转化 +│ └── 振荡周期 T = 2π√(LC) +├── 电磁波 +│ ├── 麦克斯韦电磁场理论 +│ ├── 电磁波的产生与传播 +│ ├── 电磁波谱(无线电波 → γ 射线) +│ └── c = λf +└── 电磁波的应用 + ├── 无线电通信 + └── 雷达 +``` + +--- + +## 选择性必修第三册 + +### 17. 热学 + +``` +热学 +├── 分子动理论 +│ ├── 物质的分子模型 +│ ├── 分子热运动(布朗运动、扩散现象) +│ ├── 分子间作用力(引力 + 斥力) +│ └── 分子动能与分子势能 +├── 气体 +│ ├── 气体实验定律 +│ │ ├── 玻意耳定律(等温 pV = C) +│ │ ├── 查理定律(等容 p/T = C) +│ │ └── 盖-吕萨克定律(等压 V/T = C) +│ ├── 理想气体状态方程 pV/T = C +│ └── 气体压强的微观解释 +├── 热力学定律 +│ ├── 热力学第一定律 ΔU = W + Q +│ ├── 热力学第二定律 +│ │ ├── 克劳修斯表述(热量传递方向性) +│ │ └── 开尔文表述(热机效率不可能为 100%) +│ └── 熵的概念(了解) +└── 物态变化 + ├── 固体(晶体与非晶体) + ├── 液体(表面张力、毛细现象) + └── 气液相变(饱和蒸汽压、沸点与气压) +``` + +### 18. 原子物理与原子核 + +``` +原子物理与原子核 +├── 原子结构 +│ ├── 汤姆孙模型("枣糕模型") +│ ├── 卢瑟福散射实验 +│ ├── 核式结构模型 +│ └── 玻尔模型(能级、跃迁) +│ ├── 氢原子能级 Eₙ = E₁/n² +│ └── 光子能量 hν = Eₘ - Eₙ +├── 光的粒子性 +│ ├── 黑体辐射与普朗克量子假说 +│ ├── 光电效应 +│ │ ├── 爱因斯坦光电效应方程 Eₖ = hν - W₀ +│ │ ├── 截止频率 +│ │ └── 遏止电压 +│ └── 光的波粒二象性 +├── 原子核 +│ ├── 天然放射性(α、β、γ 射线) +│ ├── 半衰期 +│ ├── 核力与核能 +│ ├── 质能方程 E = mc² +│ ├── 核裂变(链式反应) +│ └── 核聚变 +└── 粒子物理(了解) + ├── 基本粒子 + └── 夸克模型 +``` + +--- + +## 知识网络与学科交叉 + +``` +物理 → AI/ML 关联 +├── 力学分析 → 物理仿真、机器人运动学 +├── 电磁学 → 传感器原理、信号处理 +├── 波与光学 → 计算机视觉、光学神经网络 +├── 热力学 → 模拟退火算法、统计力学与深度学习 +└── 原子物理 → 量子计算、量子机器学习 +``` diff --git a/docs/learn/concepts/attention-mechanism.md b/docs/learn/concepts/attention-mechanism.md new file mode 100644 index 000000000..52158a4e3 --- /dev/null +++ b/docs/learn/concepts/attention-mechanism.md @@ -0,0 +1,131 @@ + +# 注意力机制详解 + +注意力机制(Attention)是 Transformer 架构的核心。它让模型在处理每个词时,能够"关注"到输入中所有相关的词,而不是只看附近的几个。 + +## 直觉理解 + +阅读这句话:"小明把球传给了小红,**她**很开心。" + +你的大脑会自动把"她"和"小红"联系起来,而不是"小明"或"球"。这就是注意力——在大量信息中,**有选择地关注最相关的部分**。 + +``` +她 → 注意力分布 + 小明: 0.05 (弱关注) + 球: 0.02 (几乎忽略) + 小红: 0.88 (强关注) + 开心: 0.05 (弱关注) +``` + +## 核心概念 + +### Q、K、V 三兄弟 + +Self-Attention 的核心是三个矩阵:Query(查询)、Key(键)、Value(值)。 + +用图书馆做类比: +- **Query**:你要搜索的问题("有没有关于机器学习的书?") +- **Key**:每本书的标签/索引("机器学习入门"、"烹饪大全") +- **Value**:书的实际内容 + +流程:用 Query 和每个 Key 比对,找到匹配度高的,然后取出对应的 Value。 + +### 计算步骤 + +```python +import numpy as np + +def self_attention(X, W_q, W_k, W_v): + """ + X: 输入矩阵 (seq_len, d_model) + W_q, W_k, W_v: 权重矩阵 + """ + Q = X @ W_q # 查询 + K = X @ W_k # 键 + V = X @ W_v # 值 + + d_k = K.shape[-1] + # 计算注意力分数 + scores = Q @ K.T / np.sqrt(d_k) # 缩放防止值过大 + # Softmax 归一化 + weights = np.exp(scores) / np.exp(scores).sum(axis=-1, keepdims=True) + # 加权求和 + output = weights @ V + return output +``` + +核心公式: + +``` +Attention(Q, K, V) = softmax(Q·K^T / √d_k) · V +``` + +| 步骤 | 操作 | 含义 | +|------|------|------| +| Q·K^T | 矩阵乘法 | 计算每对 token 间的相关性 | +| / √d_k | 缩放 | 防止数值过大导致 softmax 梯度消失 | +| softmax | 归一化 | 将分数转为 0-1 的概率分布 | +| · V | 加权求和 | 根据注意力权重汇聚信息 | + +### Multi-Head Attention + +一个"头"只能关注一种模式。多头注意力让模型同时关注不同类型的关系: + +``` +Head 1: 关注语法关系 ("她" → "小红") +Head 2: 关注位置邻近 ("她" → "很开心") +Head 3: 关注主题相关 ("她" → "球"、"传") +``` + +```python +# 伪代码 +heads = [attention(Q @ W_q_i, K @ W_k_i, V @ W_v_i) for i in range(n_heads)] +output = concat(heads) @ W_o +``` + +| 模型 | 隐藏维度 | 注意力头数 | 每头维度 | +|------|---------|-----------|---------| +| InternLM3-8B | 4096 | 32 | 128 | +| GPT-3 (175B) | 12288 | 96 | 128 | +| LLaMA-2 7B | 4096 | 32 | 128 | + +### 为什么 Attention 如此强大 + +与 RNN 的对比: + +| 特性 | RNN | Self-Attention | +|------|-----|---------------| +| 长距离依赖 | 困难(信息逐步衰减) | 直接连接任意两个位置 | +| 并行计算 | 不可(必须顺序处理) | 可以(矩阵运算并行) | +| 计算复杂度 | O(n) | O(n²),但可被优化 | + +## 书生生态中的应用 + +InternLM3 在注意力机制上的优化: + +- 使用 **GQA**(Grouped Query Attention):Key 和 Value 共享分组,降低显存占用,加速推理 +- 结合 **RoPE** 位置编码,支持长上下文外推 +- LMDeploy 在推理时通过 **KV Cache** 缓存已计算的 Key/Value,避免重复计算 + +## 下一步 + +理解了注意力机制后,推荐继续学习: + +- [Transformer 架构](/docs/learn/transformer) — 看注意力机制如何组合成完整的 Transformer +- [Tokenization](/docs/learn/tokenization) — 回顾模型输入是如何准备的 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 手工计算一个 4-token 序列的注意力分数(含 softmax),验证权重和为 1。 +2. 构造“长距离依赖”句子,分析注意力如何聚焦关键信息。 +3. 对比单头与多头注意力在信息覆盖上的差异。 + +### 交付物 +- 一份《手算 Attention 过程表》 +- 一份《多头注意力观察笔记》 + +### 自检清单 +- [ ] 能解释 Q/K/V 的角色分工 +- [ ] 能说明为什么多头注意力更强 +- [ ] 能从注意力角度理解上下文建模能力 diff --git a/docs/learn/concepts/embedding.md b/docs/learn/concepts/embedding.md new file mode 100644 index 000000000..c660eb971 --- /dev/null +++ b/docs/learn/concepts/embedding.md @@ -0,0 +1,122 @@ + +# Embedding 与词向量 + +Token 只是文本切分后的编号,模型还需要将它们变成**有含义的数字向量**,才能进行计算和理解。这些向量就叫 Embedding。 + +## 直觉理解 + +想象一张城市地图。两个城市在地图上越近,它们在现实中也越近。Embedding 就是给每个词在一个高维空间中找一个"坐标"——意思相近的词,坐标也相近。 + +``` +"国王" → [0.21, 0.85, -0.33, ...] # 高维坐标 +"王后" → [0.19, 0.82, -0.31, ...] # 和"国王"很近 +"苹果" → [-0.72, 0.11, 0.64, ...] # 和"国王"很远 +``` + +经典发现:`国王 - 男人 + 女人 ≈ 王后`,这说明 Embedding 捕捉到了语义关系。 + +## 核心概念 + +### 从独热编码到稠密向量 + +| 表示方式 | 维度 | "猫" 的表示 | 特点 | +|---------|------|------------|------| +| 独热编码 | 词表大小(数万) | [0,0,...,1,...,0] | 稀疏、无语义关系 | +| Embedding | 几百到几千 | [0.12, -0.34, ...] | 稠密、蕴含语义 | + +### 词向量的演进 + +| 阶段 | 代表方法 | 特点 | +|------|---------|------| +| 静态词向量 | Word2Vec, GloVe | 每个词一个固定向量 | +| 上下文词向量 | ELMo | 同一个词在不同句中有不同向量 | +| 预训练模型 | BERT, InternLM | Transformer 编码,embedding 质量大幅提升 | +| 专用 Embedding 模型 | BGE, E5, text-embedding-3 | 专为检索/相似度优化 | + +### 向量相似度 + +衡量两个 Embedding 有多"接近"的常用方法: + +```python +import numpy as np + +def cosine_similarity(a, b): + """余弦相似度:值域 [-1, 1],越大越相似""" + return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)) +``` + +| 相似度方法 | 公式 | 适用场景 | +|-----------|------|---------| +| 余弦相似度 | cos(a,b) = a·b / (\|a\|\|b\|) | 最常用,忽略向量长度 | +| 欧氏距离 | \|a - b\| | 对绝对距离敏感 | +| 点积 | a·b | 计算最快 | + +## Embedding 在 RAG 中的作用 + +RAG(检索增强生成)的核心依赖 Embedding: + +``` +用户问题 → Embedding → 查询向量 +知识库文档 → Embedding → 文档向量集合 +查询向量 vs 文档向量 → 相似度排序 → 取 Top-K → 送入 LLM 生成回答 +``` + +Embedding 质量直接决定了"能不能检索到正确的内容",是 RAG 系统最关键的环节。 + +## 实践示例 + +使用 Sentence Transformers 计算文本相似度: + +```python +from sentence_transformers import SentenceTransformer + +model = SentenceTransformer("BAAI/bge-base-zh-v1.5") + +sentences = [ + "什么是大语言模型", + "LLM 的基本概念", + "今天北京天气怎么样", +] + +embeddings = model.encode(sentences) + +# 计算相似度 +from sklearn.metrics.pairwise import cosine_similarity +sim_matrix = cosine_similarity(embeddings) + +print("相似度矩阵:") +for i, s1 in enumerate(sentences): + for j, s2 in enumerate(sentences): + print(f" '{s1}' vs '{s2}': {sim_matrix[i][j]:.3f}") +``` + +## 书生生态中的应用 + +书生生态与 Embedding 技术紧密相关: + +- **BGE 系列**(智源 BAAI 开源):中文 Embedding 领域的标杆模型,`bge-base-zh-v1.5` 在多个评测中领先 +- **InternLM 内部 Embedding**:InternLM 的 hidden states 本身就是高质量的文本表示 +- **RAG 实践**:结合 InternLM + BGE + 向量数据库,可以搭建企业级知识问答系统 + +## 下一步 + +理解了 Embedding 之后,推荐继续学习: + +- [注意力机制详解](/docs/learn/attention-mechanism) — 模型如何决定"关注"哪些 Token +- [RAG 基础](/docs/learn/rag-basics) — 深入了解 Embedding 在检索增强中的应用 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 用 20 段课程文本构建一个迷你向量库,完成相似度检索。 +2. 设计 5 个查询问题,观察 Top-K 命中质量并调参(chunk_size、overlap、K)。 +3. 对比“只靠生成”与“检索增强后生成”的答案可信度。 + +### 交付物 +- 一份《Embedding 检索实验记录》 +- 一份《参数调优建议(chunk/K)》 + +### 自检清单 +- [ ] 能解释向量相似度与语义相关性的关系 +- [ ] 能完成最小可用语义检索流程 +- [ ] 能识别召回不足和语义漂移问题 diff --git a/docs/learn/concepts/index.md b/docs/learn/concepts/index.md new file mode 100644 index 000000000..9eb0475d1 --- /dev/null +++ b/docs/learn/concepts/index.md @@ -0,0 +1,4 @@ + +# 基础概念 + +LLM、Tokenization、Embedding、Transformer、注意力机制 diff --git a/docs/learn/concepts/tokenization.md b/docs/learn/concepts/tokenization.md new file mode 100644 index 000000000..593a10854 --- /dev/null +++ b/docs/learn/concepts/tokenization.md @@ -0,0 +1,106 @@ + +# Tokenization:模型如何理解文字 + +大语言模型不能直接读懂"你好"这两个字。它需要先把文本切成一个个小片段——Token,然后用数字表示它们。这个过程就是 Tokenization。 + +## 直觉理解 + +想象你要用电报发一段话。电报不能直接传汉字,你需要先把汉字转成电报码(数字),对方收到后再把数字还原成汉字。Tokenization 就是大模型的"电报编码"过程。 + +``` +"书生大模型真厉害" → [书生, 大模型, 真, 厉害] → [3214, 8872, 156, 9431] +``` + +## 核心概念 + +### 什么是 Token + +Token 是模型处理文本的基本单位。它可以是一个字、一个词,也可以是一个子词片段: + +``` +英文: "unhappiness" → ["un", "happiness"] # 子词切分 +中文: "人工智能" → ["人工", "智能"] # 常见词保留 +代码: "print('hello')" → ["print", "('", "hello", "')"] +``` + +### 主流分词算法 + +| 算法 | 核心思想 | 代表模型 | +|------|---------|---------| +| BPE | 统计最高频的字符对,反复合并 | GPT 系列、InternLM | +| WordPiece | 类似 BPE,按最大似然选合并 | BERT | +| SentencePiece | 语言无关,直接处理原始字符串 | LLaMA、T5 | +| Unigram | 从大词表逐步裁剪低频 token | mBART | + +BPE(Byte Pair Encoding)是目前最主流的算法。核心步骤: + +1. 初始化:每个字符是一个 token +2. 统计所有相邻 token 对的出现频率 +3. 合并频率最高的 token 对为新 token +4. 重复步骤 2-3,直到达到目标词表大小 + +### Token 数与计费 + +调用 LLM API 时,费用按 Token 数计算。不同语言的 Token 效率差异很大: + +| 文本 | 字符数 | Token 数(约) | 比率 | +|------|--------|---------------|------| +| "Hello, how are you?" | 20 | 6 | 3.3 字符/token | +| "你好,你今天怎么样?" | 10 | 8 | 1.3 字符/token | + +中文通常比英文消耗更多 Token——这也是为什么中文优化的 tokenizer 非常重要。 + +## 实践示例 + +用 Python 体验 tokenization 过程: + +```python +from transformers import AutoTokenizer + +# 加载 InternLM3 的 tokenizer +tokenizer = AutoTokenizer.from_pretrained( + "internlm/internlm3-8b", trust_remote_code=True +) + +text = "书生大模型是一个开源的大语言模型" +tokens = tokenizer.tokenize(text) +ids = tokenizer.encode(text) + +print(f"原文: {text}") +print(f"Token: {tokens}") +print(f"Token ID: {ids}") +print(f"Token 数: {len(ids)}") +``` + +## 书生生态中的应用 + +InternLM3 使用基于 BPE 的 tokenizer,词表大小约 **92,544**。相比早期模型,它: + +- 对中文分词效率更高,减少 Token 浪费 +- 支持代码、数学符号等特殊字符 +- 包含特殊 token(如 `<|im_start|>`)用于多轮对话格式 + +XTuner 微调时,tokenizer 会自动添加对话模板所需的特殊 token,确保微调数据与预训练格式一致。 + +## 下一步 + +理解了 Token 之后,推荐继续学习: + +- [Embedding 与词向量](/docs/learn/embedding) — Token 如何变成模型能理解的数字向量 +- [什么是大语言模型](/docs/learn/what-is-llm) — 回顾 LLM 基础概念 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 选 10 条中英混合提示词,统计 token 数并分析哪些写法更省 token。 +2. 设计一版“同语义短提示词”,目标是把 token 成本降低 20%。 +3. 用同一任务对比“冗长 prompt”和“压缩 prompt”的输出差异。 + +### 交付物 +- 一份《提示词 Token 成本对照表》 +- 一份《Prompt 压缩策略清单》 + +### 自检清单 +- [ ] 能解释 BPE 的基本思想与优缺点 +- [ ] 能估算一次调用的大致 token 成本 +- [ ] 能针对高频任务写出低成本 prompt 模板 diff --git a/docs/learn/concepts/transformer.md b/docs/learn/concepts/transformer.md new file mode 100644 index 000000000..2e25c1540 --- /dev/null +++ b/docs/learn/concepts/transformer.md @@ -0,0 +1,115 @@ + +# Transformer 架构 + +Transformer 是现代大语言模型的基础架构,由 Google 在 2017 年的论文 "Attention Is All You Need" 中提出。 + +## 为什么要了解 Transformer? + +当你使用 InternLM、GPT、LLaMA 等大模型时,它们的"大脑"都是基于 Transformer 构建的。理解 Transformer 能帮助你: + +- 更好地理解模型的能力和局限 +- 更高效地编写 Prompt +- 理解量化、KV Cache 等优化技术 +- 为微调和部署打下基础 + +## 核心思想:注意力机制 + +Transformer 的核心是**自注意力(Self-Attention)**机制。 + +### 直觉理解 + +想象你在读一句话: + +> "小明把苹果给了小红,**她**很开心。" + +你的大脑会自动将"她"与"小红"关联。这就是注意力——模型在处理每个词时,会"关注"句子中所有其他词,并计算它们的相关性。 + +### 数学表示 + +自注意力的计算公式: + +``` +Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) * V +``` + +其中: +- **Q (Query)**:当前词的"提问"向量 +- **K (Key)**:所有词的"标签"向量 +- **V (Value)**:所有词的"内容"向量 +- **d_k**:向量维度(用于缩放) + +## Transformer 的组件 + +### 1. Embedding + 位置编码 + +将 Token 转换为数字向量,并注入位置信息(因为注意力本身不感知顺序)。 + +### 2. 多头注意力(Multi-Head Attention) + +多个注意力"头"并行工作,每个头关注不同维度的语义关系: + +- 头 1 可能关注语法结构 +- 头 2 可能关注语义相似性 +- 头 3 可能关注指代关系 + +### 3. 前馈网络(FFN) + +每个注意力层后接一个前馈网络,做非线性变换: + +``` +FFN(x) = max(0, xW1 + b1)W2 + b2 +``` + +### 4. 残差连接 + LayerNorm + +保证深层网络的梯度稳定传播: + +``` +output = LayerNorm(x + Sublayer(x)) +``` + +## Decoder-Only 架构 + +InternLM 等现代 LLM 采用 **Decoder-Only** 架构(只有解码器): + +- 使用因果注意力(Causal Attention):每个 Token 只能看到它之前的 Token +- 自回归生成:逐个 Token 预测下一个 + +``` +输入: [我] [爱] [AI] +预测: [爱] [AI] [技术] + +第1步:[我] → 预测 [爱] +第2步:[我][爱] → 预测 [AI] +第3步:[我][爱][AI] → 预测 [技术] +``` + +## 关键参数 + +| 参数 | InternLM3-8B | 说明 | +|------|-------------|------| +| 层数 | 32 | Transformer 层数 | +| 注意力头数 | 32 | 多头注意力的头数 | +| 隐藏维度 | 4096 | 每个 Token 的向量维度 | +| 词表大小 | 92544 | 支持的 Token 种类数 | + +## 进一步阅读 + +- 原论文:[Attention Is All You Need](https://arxiv.org/abs/1706.03762) +- 下一篇:[Prompt Engineering](/docs/learn/prompt-engineering) + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 画出 Decoder-Only Transformer 的完整数据流图(输入到输出)。 +2. 估算一个 8B 级模型的主要参数构成(Embedding、Attention、FFN)。 +3. 结合实际任务说明在哪些场景需要更长上下文。 + +### 交付物 +- 一份《Transformer 架构图(标注版)》 +- 一份《参数规模与能力关系说明》 + +### 自检清单 +- [ ] 能解释每个核心模块在做什么 +- [ ] 能区分 Encoder-Decoder 与 Decoder-Only 的应用差异 +- [ ] 能把架构理解映射到推理性能问题 diff --git a/docs/learn/concepts/what-is-llm.md b/docs/learn/concepts/what-is-llm.md new file mode 100644 index 000000000..8cf095ed9 --- /dev/null +++ b/docs/learn/concepts/what-is-llm.md @@ -0,0 +1,89 @@ + +# 什么是大语言模型 (LLM) + +大语言模型(Large Language Model,简称 LLM)是一种基于深度学习的人工智能模型,能够理解和生成人类语言。 + +## 直觉理解 + +你可以把大语言模型想象成一个**超级自动补全系统**。当你在手机输入法中打"今天天气"时,输入法会建议"真好"、"不错"等词。大语言模型做的事情本质相同,只是它的"词汇量"和"理解力"远超普通输入法。 + +``` +输入:今天天气 +普通输入法:→ 真好 / 不错 / 很热 +大语言模型:→ 真好,适合出去散步。我推荐去公园走走, + 既能锻炼身体又能欣赏春天的景色。 +``` + +## 核心概念 + +### Token(令牌) + +大模型不直接处理文字,而是将文本切分成更小的单元——Token。 + +``` +"我爱人工智能" → ["我", "爱", "人工", "智能"] +"Hello World" → ["Hello", " World"] +``` + +### 参数量 + +模型的"脑容量"。参数越多,模型能记住的知识越多,推理能力越强。 + +| 规模 | 参数量 | 类比 | +|------|--------|------| +| 小型 | 1-3B | 初中生知识水平 | +| 中型 | 7-13B | 大学生知识水平 | +| 大型 | 70B+ | 专家级知识水平 | + +InternLM3-8B 拥有 80 亿参数,通过精炼的训练数据,在同规模模型中表现领先。 + +### 上下文窗口 + +模型一次能"看到"的文本长度。InternLM2.5 支持 100 万 Token 的上下文,相当于能一次读完一本长篇小说。 + +## LLM 能做什么? + +- **对话**:自然流畅的多轮对话 +- **写作**:文章、代码、邮件、报告 +- **翻译**:多语言互译 +- **推理**:数学计算、逻辑推理 +- **分析**:数据分析、文档理解 +- **编程**:代码生成、调试、解释 + +## LLM 的局限 + +- **幻觉**:可能生成看似合理但实际错误的内容 +- **知识截止**:只知道训练数据截止日期前的信息 +- **推理上限**:复杂的多步推理可能出错 +- **无法执行**:只能生成文本,不能真正运行代码或操作系统 + +## 书生大模型家族 + +书生生态提供了一系列开源大模型: + +- **InternLM3**:高效语言模型,深度思考能力 +- **InternVL3**:多模态模型,图像+文本理解 +- **InternThinker**:推理模型,数学/代码/逻辑推理增强 + +## 下一步 + +理解了大模型的基本概念后,推荐继续学习: + +- [Transformer 架构](/docs/learn/transformer) — 理解大模型的核心技术 +- [Prompt Engineering](/docs/learn/prompt-engineering) — 学会更好地使用大模型 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 用 300 字向三类对象解释 LLM:高中生、产品经理、后端工程师,比较三版解释差异。 +2. 选一个真实问题(如科研选题、代码重构、文档翻译),分别用 Base 思路和 Instruct 思路设计提问方式。 +3. 对同一问题给出 3 轮追问,观察上下文窗口对回答质量的影响并记录。 + +### 交付物 +- 一份《LLM 概念解释对照表》 +- 一份《同问题多轮追问记录》 + +### 自检清单 +- [ ] 能清楚区分 Token、参数量、上下文窗口 +- [ ] 能说明 LLM 的 3 个典型能力和 3 个关键局限 +- [ ] 能给出至少 1 个适合 Intern-S1-Pro 的应用场景 diff --git a/docs/learn/core/agent2agent.md b/docs/learn/core/agent2agent.md new file mode 100644 index 000000000..7906ff001 --- /dev/null +++ b/docs/learn/core/agent2agent.md @@ -0,0 +1,227 @@ + +# Agent2Agent (A2A) 协议 + +> **前置知识**:建议先学习 [AI Agent 原理与架构](/zh/docs/learn/core/ai-agent) 和 [MCP 协议](/zh/docs/learn/core/mcp-protocol) + +## 什么是 Agent2Agent? + +Agent2Agent (A2A) 是 Google 于 2025 年 4 月发布的开放协议,解决的核心问题是:**不同厂商、不同框架构建的 AI Agent 之间如何互相通信、协作和交接任务**。 + +打个比方: +- **MCP** 解决的是「Agent 如何使用工具」——类似给 Agent 装上手和脚 +- **A2A** 解决的是「Agent 如何与其他 Agent 对话」——类似给 Agent 装上嘴和耳朵 + +两者是互补关系,不是竞争关系。 + +## 为什么需要 A2A? + +在实际企业场景中,一个复杂任务往往需要多个专业 Agent 协作: + +| 场景 | 涉及的 Agent | 协作方式 | +|------|-------------|---------| +| 招聘流程 | HR Agent + 技术面试 Agent + 背调 Agent | 顺序交接 | +| 客服升级 | 一线客服 Agent + 专家 Agent + 工单 Agent | 条件路由 | +| 数据分析 | 数据采集 Agent + 清洗 Agent + 可视化 Agent | 流水线 | +| 科研协作 | 文献检索 Agent + 实验设计 Agent + 论文撰写 Agent | 迭代协作 | + +如果每对 Agent 之间都要写定制的通信代码,N 个 Agent 就需要 N×(N-1) 个适配器。A2A 提供统一协议,让任何 Agent 都能「即插即用」地与其他 Agent 通信。 + +## A2A 核心概念 + +### Agent Card(智能体名片) + +每个 A2A Agent 都有一张「名片」,描述自己的能力: + +```json +{ + "name": "科研文献助手", + "description": "检索、分析和总结学术论文", + "url": "https://scholar-agent.example.com", + "capabilities": { + "streaming": true, + "pushNotifications": true + }, + "skills": [ + { + "id": "paper-search", + "name": "论文检索", + "description": "根据关键词检索 arXiv、Google Scholar 等数据库" + }, + { + "id": "paper-summary", + "name": "论文摘要", + "description": "阅读论文全文并生成结构化摘要" + } + ] +} +``` + +Agent Card 通常托管在 `/.well-known/agent.json`,其他 Agent 可以自动发现。 + +### Task(任务) + +A2A 中的核心交互单元。一个 Task 有明确的生命周期: + +``` +submitted → working → input-required → completed / failed / canceled +``` + +- **submitted**:任务已提交 +- **working**:Agent 正在处理 +- **input-required**:Agent 需要更多信息(支持多轮交互) +- **completed**:任务完成 +- **failed / canceled**:任务失败或取消 + +### Message & Part + +Agent 之间的对话由 Message 组成,每个 Message 包含多个 Part: + +```json +{ + "role": "user", + "parts": [ + { "type": "text", "text": "分析这篇论文的创新点" }, + { "type": "file", "file": { "name": "paper.pdf", "mimeType": "application/pdf", "bytes": "..." } } + ] +} +``` + +Part 支持文本、文件和结构化 JSON 数据,灵活表达各种信息。 + +## A2A 通信模式 + +### 1. 同步请求/响应 + +最简单的模式,适合快速任务: + +``` +Client Agent → POST /tasks/send → Server Agent + ← 200 OK (结果) ← +``` + +### 2. 流式响应 (SSE) + +适合长时间任务,实时返回进度: + +``` +Client Agent → POST /tasks/sendSubscribe → Server Agent + ← SSE: status update ← + ← SSE: partial result ← + ← SSE: final result ← +``` + +### 3. 异步推送通知 + +适合耗时很长的任务(几分钟到几小时): + +``` +Client Agent → POST /tasks/send → Server Agent + ← 202 Accepted ← + ... (Server 处理中) ... +Server Agent → POST callback URL → Client Agent (推送结果) +``` + +## A2A vs MCP 对比 + +| 维度 | MCP | A2A | +|------|-----|-----| +| 解决的问题 | Agent ↔ 工具/数据源 | Agent ↔ Agent | +| 通信对象 | 被动的工具服务 | 主动的智能体 | +| 交互模式 | 单次调用 | 多轮对话 | +| 发起方 | 总是 Agent 发起 | 双方都可发起 | +| 状态管理 | 无状态 | 有状态(Task 生命周期) | +| 典型场景 | 查数据库、调 API | 任务委派、协作决策 | +| 发起者 | Anthropic | Google | +| 标准组织 | — | Linux Foundation | + +**最佳实践**:同时使用 MCP(连接工具)+ A2A(连接其他 Agent),构建完整的多 Agent 系统。 + +## 行业支持 + +A2A 已获得 50+ 技术合作伙伴支持,并已捐赠给 Linux Foundation: + +- **云厂商**:Google Cloud、Salesforce、SAP +- **AI 框架**:LangChain、Cohere +- **企业应用**:Atlassian、Box、Intuit、PayPal、ServiceNow、Workday +- **数据库**:MongoDB + +## 实战:用 Intern-S1-Pro 构建 A2A Agent + +### 基本架构 + +``` +用户 → 主控 Agent (Intern-S1-Pro) → A2A → 文献 Agent + → A2A → 数据分析 Agent + → A2A → 可视化 Agent +``` + +### 关键步骤 + +1. **定义 Agent Card**:声明你的 Agent 能力 +2. **实现 Task 处理**:接收任务、处理、返回结果 +3. **注册发现**:将 Agent Card 发布到可发现的位置 +4. **集成 MCP**:Agent 内部用 MCP 连接工具,对外用 A2A 通信 + +### 代码示例(Python) + +```python +from a2a import A2AServer, AgentCard, Task, Message, TextPart + +# 定义 Agent Card +card = AgentCard( + name="科研助手", + description="基于 Intern-S1-Pro 的科研辅助 Agent", + skills=[ + {"id": "literature-review", "name": "文献综述", "description": "生成指定领域的文献综述"} + ] +) + +# 创建 A2A Server +server = A2AServer(card) + +@server.on_task +async def handle_task(task: Task) -> Task: + user_message = task.messages[-1] + + # 调用 Intern-S1-Pro 处理任务 + response = await call_intern_s1_pro(user_message.parts[0].text) + + task.messages.append(Message( + role="agent", + parts=[TextPart(text=response)] + )) + task.status = "completed" + return task + +server.run(port=8080) +``` + +## 进阶实践(Intern-S1-Pro 专题) + +### 实操任务 + +1. **搭建 A2A 服务**:用 Intern-S1-Pro 实现一个具有 A2A 接口的 Agent +2. **多 Agent 编排**:构建 2-3 个专业 Agent,通过 A2A 协作完成一个复杂任务 +3. **MCP + A2A 融合**:Agent 内部用 MCP 连接工具,对外用 A2A 接收任务 + +### 交付物 + +- A2A Agent 服务代码 + Agent Card 定义 +- 多 Agent 协作流程图 +- 性能对比报告:单 Agent vs 多 Agent 协作 + +### 自检清单 + +- [ ] 理解 A2A 与 MCP 的互补关系 +- [ ] 能解释 Task 的生命周期状态转换 +- [ ] 能用 Agent Card 描述一个 Agent 的能力 +- [ ] 实现了至少一个 A2A Agent 服务 +- [ ] 测试了两个 Agent 之间的通信 + +## 延伸阅读 + +- [A2A 官方文档](https://a2a-protocol.org/latest/) +- [A2A GitHub 仓库](https://github.com/a2aproject/A2A) +- [Google Blog: A2A 发布公告](https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/) +- [AI Agent 原理与架构](/zh/docs/learn/core/ai-agent) +- [MCP 协议详解](/zh/docs/learn/core/mcp-protocol) diff --git a/docs/learn/core/ai-agent.md b/docs/learn/core/ai-agent.md new file mode 100644 index 000000000..93a6d68ad --- /dev/null +++ b/docs/learn/core/ai-agent.md @@ -0,0 +1,168 @@ + +# AI Agent 原理与架构 + +如果说大语言模型是一个"超级大脑",那 AI Agent 就是给这个大脑装上了眼睛、手脚和工具箱——它不仅能思考,还能感知环境、做出决策并采取行动。 + +## 什么是 AI Agent? + +AI Agent(智能体)是一个能够自主完成任务的系统。它的核心是一个**感知-决策-行动**的循环: + +``` + ┌──────────────────────────┐ + │ 环境 (Environment) │ + └────┬────────────────┬────┘ + │ 感知 │ 行动 + ▼ │ + ┌─────────┐ ┌─────┴─────┐ + │ 观察 │ │ 执行 │ + │ Observe │ │ Execute │ + └────┬────┘ └─────▲─────┘ + │ │ + ▼ │ + ┌──────────────────────────┐ + │ LLM 大脑 (决策中心) │ + │ 思考 → 规划 → 选择行动 │ + └──────────────────────────┘ +``` + +## ReAct 范式 + +ReAct(Reasoning + Acting)是目前最经典的 Agent 设计范式,让模型交替进行**推理**和**行动**: + +```python +# ReAct 循环的伪代码 +def react_loop(question): + history = [] + while not finished: + # Thought: 模型进行推理 + thought = llm.think(question, history) + + # Action: 选择并执行工具 + action = llm.choose_action(thought) + observation = execute_tool(action) + + # 将结果加入历史,继续循环 + history.append({ + "thought": thought, + "action": action, + "observation": observation + }) + + return llm.final_answer(history) +``` + +一个实际的 ReAct 执行过程: + +``` +问题:北京今天的气温是多少摄氏度? + +Thought 1: 我需要查询北京的实时天气。 +Action 1: search_weather(city="北京") +Observation 1: 北京今天晴,气温 22°C + +Thought 2: 我已经获得了答案。 +Answer: 北京今天的气温是 22 摄氏度。 +``` + +## Agent 核心组件 + +一个完整的 Agent 系统由四大组件构成: + +| 组件 | 作用 | 类比 | +|------|------|------| +| **LLM** | 核心推理引擎 | 大脑 | +| **Memory** | 存储上下文和历史 | 记忆 | +| **Tools** | 与外部世界交互 | 手和工具箱 | +| **Planning** | 任务分解与规划 | 思考策略 | + +### Memory(记忆) + +Agent 的记忆分为两类: + +- **短期记忆**:当前对话的上下文(Context Window) +- **长期记忆**:持久化存储的经验和知识(向量数据库、文件等) + +### Planning(规划) + +面对复杂任务,Agent 会先制定计划再逐步执行: + +```python +# 任务分解示例 +task = "写一篇关于 Intern-S1-Pro 的技术博客" + +plan = [ + "1. 搜索 Intern-S1-Pro 的最新技术资料", + "2. 整理模型的核心特点和创新点", + "3. 编写博客大纲", + "4. 逐段撰写正文", + "5. 检查和润色内容" +] +``` + +### Tools(工具) + +工具是 Agent 的能力扩展,常见工具包括: + +- **搜索引擎**:获取实时信息 +- **代码执行器**:运行 Python 代码 +- **文件操作**:读写本地文件 +- **API 调用**:访问外部服务 + +## 书生生态中的 Agent + +### Lagent + +Lagent 是书生生态的轻量级 Agent 框架,支持快速搭建 Agent 应用: + +```python +from lagent import ReAct, GPTAPI, ActionExecutor +from lagent.actions import WebBrowser, PythonInterpreter + +# 配置工具 +tools = ActionExecutor( + actions=[WebBrowser(), PythonInterpreter()] +) + +# 创建 ReAct Agent +agent = ReAct( + llm=GPTAPI(model_type="internlm/internlm3-latest"), + action_executor=tools +) + +response = agent.chat("帮我计算斐波那契数列前 20 项的和") +``` + +### MindSearch + +MindSearch 是基于 InternLM 的深度搜索引擎,它将搜索过程建模为一个多步 Agent 推理过程,能像人类研究者一样深度分析问题。 + +## 典型应用场景 + +| 场景 | Agent 能力 | 示例 | +|------|-----------|------| +| 智能客服 | 查询知识库 + 工单系统 | 自动处理退换货 | +| 代码助手 | 读写文件 + 执行代码 | Claude Code、OpenClaw、Cursor | +| 数据分析 | SQL 查询 + 可视化 | 自然语言分析数据库 | +| 研究助手 | 搜索 + 阅读 + 总结 | 文献调研、报告撰写 | + +## 下一步 + +- 学习 [Function Calling 与 Tool Use](/zh/learn/function-calling),掌握 Agent 调用工具的核心机制 +- 了解 [RAG 基础](/zh/learn/rag-basics),为 Agent 添加知识检索能力 +- 探索 [Prompt Engineering](/zh/learn/prompt-engineering),优化 Agent 的指令设计 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 设计一个 Agent 工作流:需求拆解 -> 工具调用 -> 结果校验 -> 复盘。 +2. 分别用 Agent Skills / OpenClaw / Claude Code 规划同一任务,比较流程差异。 +3. 为 Agent 增加失败重试与人工接管策略,记录异常处理路径。 + +### 交付物 +- 一份《Agent 工作流设计图》 +- 一份《三种工具链协作对比报告》 + +### 自检清单 +- [ ] 能把复杂任务拆成可执行子任务 +- [ ] 能为每个工具定义清晰输入输出约束 +- [ ] 能设计可观测、可回滚的执行流程 diff --git a/docs/learn/core/evaluation-benchmarks.md b/docs/learn/core/evaluation-benchmarks.md new file mode 100644 index 000000000..8953ff75f --- /dev/null +++ b/docs/learn/core/evaluation-benchmarks.md @@ -0,0 +1,146 @@ + +# 评测基准:MMLU、GSM8K、HumanEval 等 + +买手机看跑分,选大模型看什么?答案是 Benchmark(评测基准)。评测基准就是给大模型出的"标准化考试",通过统一的题目和评分标准来衡量不同模型的能力。 + +## 为什么需要评测? + +1. **客观比较**:不同模型在相同题目上的表现可以直接对比 +2. **能力诊断**:发现模型在哪些方面强、哪些方面弱 +3. **指导训练**:根据评测结果调整训练策略 +4. **选型参考**:帮助用户选择适合自己场景的模型 + +## 主流 Benchmark 一览 + +### 综合知识:MMLU + +MMLU(Massive Multitask Language Understanding)包含 57 个学科的选择题,涵盖从高中到专业级别的知识: + +``` +题目示例 (抽象代数): +Find the degree for the given field extension Q(sqrt(2), sqrt(3)) over Q. +A. 0 B. 4 C. 2 D. 6 +答案: B +``` + +| 信息 | 说明 | +|------|------| +| 题量 | ~15,000 道 | +| 题型 | 四选一选择题 | +| 学科 | 人文、社科、STEM、专业领域 | +| 指标 | 准确率 (Accuracy) | + +### 数学推理:GSM8K / MATH + +**GSM8K**(Grade School Math)是小学数学应用题,测试多步推理能力: + +``` +题目:一家商店的苹果售价每个 2 元,橘子售价每个 3 元。 +小明买了 4 个苹果和 3 个橘子,一共花了多少钱? + +解答过程: +苹果费用:4 × 2 = 8 元 +橘子费用:3 × 3 = 9 元 +总计:8 + 9 = 17 元 +答案:17 元 +``` + +**MATH** 则包含竞赛级别的数学题,难度更高。 + +### 代码能力:HumanEval / MBPP + +**HumanEval** 包含 164 道 Python 编程题,由 OpenAI 创建: + +```python +# 题目示例 +def has_close_elements(numbers: list, threshold: float) -> bool: + """检查列表中是否有两个数字的差小于给定阈值 + >>> has_close_elements([1.0, 2.0, 3.0], 0.5) + False + >>> has_close_elements([1.0, 2.8, 3.0, 4.0], 0.3) + True + """ + # 模型需要补全函数体 +``` + +评测指标使用 **pass@k**:生成 k 个答案,至少有一个通过所有测试用例的概率。 + +### 更多 Benchmark + +| Benchmark | 测试能力 | 题量 | 特点 | +|-----------|---------|------|------| +| MMLU | 综合知识 | ~15K | 57 学科覆盖 | +| GSM8K | 数学推理 | 1,319 | 小学难度,多步推理 | +| MATH | 数学竞赛 | 12,500 | 竞赛级难度 | +| HumanEval | Python 编程 | 164 | pass@k 评测 | +| MBPP | Python 编程 | 974 | 更大规模编程测试 | +| ARC | 科学推理 | 7,787 | 小学科学题 | +| HellaSwag | 常识推理 | 10K | 句子完成任务 | +| TruthfulQA | 真实性 | 817 | 测试模型是否会编造信息 | +| GPQA | 研究生知识 | 448 | 博士级学科问题 | + +## 评测指标解读 + +| 指标 | 含义 | 使用场景 | +|------|------|---------| +| Accuracy | 正确率 | 选择题、判断题 | +| pass@k | k 次尝试中至少一次通过 | 代码生成 | +| F1 Score | 精确率与召回率的调和均值 | 信息抽取 | +| BLEU / ROUGE | 生成文本与参考答案的相似度 | 翻译、摘要 | +| Perplexity | 模型对文本的困惑度(越低越好) | 语言建模 | + +## 排行榜 + +### Open LLM Leaderboard + +Hugging Face 维护的开源模型排行榜,是业界最受关注的开源模型评测平台。它使用统一的评测流程对提交的模型进行测试,确保结果可比。 + +### OpenCompass 排行榜 + +OpenCompass 是书生生态打造的**全面评测体系**,特点包括: + +- **覆盖面广**:100+ 评测数据集,涵盖语言、推理、代码、数学等维度 +- **多模态支持**:不仅评测文本模型,还支持 VLM 评测 +- **客观公正**:标准化流程,避免数据污染 +- **持续更新**:跟踪最新模型和 Benchmark + +```bash +# 使用 OpenCompass 评测模型 +pip install opencompass + +# 对 InternLM3 运行 MMLU 评测 +python run.py --models internlm3_8b --datasets mmlu +``` + +## 如何看待评测分数? + +需要注意的几个问题: + +1. **数据污染**:部分模型可能在训练数据中包含了评测题目 +2. **过拟合评测**:为了刷分而专门针对 Benchmark 优化 +3. **静态 vs 动态**:评测集一旦发布就不变,但真实世界是动态的 +4. **分数不等于体验**:Benchmark 分高不代表实际使用体验好 + +因此,评测分数是参考,不是唯一标准。结合实际使用场景测试才是最可靠的。 + +## 下一步 + +- 了解 [Transformer 架构](/zh/learn/transformer),理解模型能力的技术基础 +- 学习 [模型安全](/zh/learn/model-safety),认识评测之外的模型质量维度 +- 探索 [模型量化](/zh/learn/model-quantization),了解量化对评测分数的影响 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 选 2 个通用基准 + 1 个业务基准,搭建最小评测流程。 +2. 制定评测报告模板(数据集、参数、结果、误差分析、结论)。 +3. 比较“公开榜单高分”与“业务场景效果”差异,给出解释。 + +### 交付物 +- 一份《模型评测报告模板》 +- 一份《业务评测样例与结论》 + +### 自检清单 +- [ ] 能正确解读主流 benchmark 指标 +- [ ] 能复现实验并保证可比性 +- [ ] 能建立面向业务目标的评测体系 diff --git a/docs/learn/core/function-calling.md b/docs/learn/core/function-calling.md new file mode 100644 index 000000000..6d9003013 --- /dev/null +++ b/docs/learn/core/function-calling.md @@ -0,0 +1,175 @@ + +# Function Calling 与 Tool Use + +当你问 LLM "今天上海天气怎样",它无法真正查天气——因为它只是一个语言模型。Function Calling 就是给 LLM 装上"遥控器",让它能够按下按钮调用外部工具获取真实信息。 + +## 什么是 Function Calling? + +Function Calling(函数调用)是让 LLM 在对话中识别用户意图,并生成**结构化的函数调用请求**,由外部系统执行后将结果返回给模型。 + +``` +用户: "帮我查一下北京到上海的机票" + │ + ▼ +┌─────────────────────┐ +│ LLM 分析用户意图 │ +│ 决定调用 search_flights│ +│ 生成参数 JSON │ +└──────────┬──────────┘ + │ + ▼ + { + "name": "search_flights", + "arguments": { + "from": "北京", + "to": "上海", + "date": "2026-02-28" + } + } + │ + ▼ +┌─────────────────────┐ +│ 外部 API 执行查询 │ +│ 返回航班列表 │ +└──────────┬──────────┘ + │ + ▼ + LLM 组织自然语言回答 +``` + +## 定义函数:JSON Schema + +告诉模型有哪些工具可以用,需要用 JSON Schema 格式描述函数: + +```python +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "查询指定城市的当前天气信息", + "parameters": { + "type": "object", + "properties": { + "city": { + "type": "string", + "description": "城市名称,如:北京、上海" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "温度单位" + } + }, + "required": ["city"] + } + } + } +] +``` + +## 完整调用流程 + +以下是一个使用 OpenAI 兼容接口的完整示例: + +```python +from openai import OpenAI +import json + +client = OpenAI( + base_url="https://internlm-chat.intern-ai.org.cn/puyu/api/v1", + api_key="your-api-key" +) + +# 第一步:带 tools 参数发起请求 +response = client.chat.completions.create( + model="internlm3-latest", + messages=[{"role": "user", "content": "北京今天多少度?"}], + tools=tools +) + +# 第二步:检查是否触发了函数调用 +message = response.choices[0].message +if message.tool_calls: + tool_call = message.tool_calls[0] + func_name = tool_call.function.name + func_args = json.loads(tool_call.function.arguments) + + # 第三步:执行函数并获取结果 + result = get_weather(**func_args) + + # 第四步:将结果返回给模型生成最终回答 + messages = [ + {"role": "user", "content": "北京今天多少度?"}, + message, + { + "role": "tool", + "tool_call_id": tool_call.id, + "content": json.dumps(result) + } + ] + final = client.chat.completions.create( + model="internlm3-latest", + messages=messages, + tools=tools + ) + print(final.choices[0].message.content) +``` + +## 常用工具类型 + +| 工具类型 | 用途 | 示例 | +|---------|------|------| +| 信息查询 | 获取实时数据 | 天气、股票、搜索 | +| 数据操作 | 读写数据库/文件 | SQL 查询、文件读写 | +| 代码执行 | 运行代码获取结果 | Python 计算、绘图 | +| 外部服务 | 调用第三方 API | 发邮件、创建日程 | + +## 多函数调用(Parallel Tool Calls) + +模型可以在一次回复中同时调用多个函数: + +```python +# 用户: "帮我查北京和上海的天气" +# 模型会同时生成两个 tool_calls: +# 1. get_weather(city="北京") +# 2. get_weather(city="上海") +``` + +## Intern-S1-Pro / InternLM 的 Function Calling + +Intern-S1-Pro 以及 InternLM 系列均支持 Function Calling 能力: + +- 支持 OpenAI 兼容的 tools 参数格式 +- 支持并行工具调用(Parallel Tool Calls) +- 可通过 Lagent 框架实现更复杂的多轮工具调用 +- 结合 LMDeploy 部署,可获得高性能的工具调用推理 + +## 设计好工具的技巧 + +1. **描述要清晰**:函数和参数的 description 直接影响模型调用准确率 +2. **参数要精简**:必填项最小化,可选项给默认值 +3. **返回值要明确**:返回结构化数据,方便模型理解 +4. **错误要友好**:返回可读的错误信息而非堆栈 + +## 下一步 + +- 了解 [AI Agent 原理与架构](/zh/learn/ai-agent),理解 Function Calling 在 Agent 系统中的角色 +- 学习 [RAG 基础](/zh/learn/rag-basics),结合检索增强与工具调用 +- 探索 [Prompt Engineering](/zh/learn/prompt-engineering),优化工具调用的提示词 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 设计 3 个工具 Schema(天气、检索、工单),验证参数约束是否足够严格。 +2. 构建“多工具并行调用”示例,观察调用排序与结果聚合策略。 +3. 为工具调用增加错误码与重试机制,避免模型陷入循环调用。 + +### 交付物 +- 一份《工具 Schema 设计规范》 +- 一份《Function Calling 调试日志样例》 + +### 自检清单 +- [ ] 能设计可维护的 JSON Schema +- [ ] 能处理并行调用与异常返回 +- [ ] 能避免工具注入和越权调用风险 diff --git a/docs/learn/core/index.md b/docs/learn/core/index.md new file mode 100644 index 000000000..2fb6ad07c --- /dev/null +++ b/docs/learn/core/index.md @@ -0,0 +1,4 @@ + +# 核心技术 + +Prompt Engineering、RAG、Agent、Function Calling、评测、安全 diff --git a/docs/learn/core/mcp-protocol.md b/docs/learn/core/mcp-protocol.md new file mode 100644 index 000000000..96cff00ce --- /dev/null +++ b/docs/learn/core/mcp-protocol.md @@ -0,0 +1,216 @@ + +# MCP 协议详解 + +> **配套视频**:[MCP:AI 世界的 USB 接口](https://c.vansin.top/video/v3/knowledge-mcp-v3.mp4) + +## 什么是 MCP? + +MCP(Model Context Protocol,模型上下文协议)是 Anthropic 于 2024 年 11 月开源的通信协议。它的核心理念非常简单:**给 AI 一个标准接口,让它能连接任何外部工具和数据**。 + +就像 USB 让所有外设都能连接电脑一样,MCP 让所有工具都能连接 AI。 + +## 为什么需要 MCP? + +没有 MCP 之前,AI 被困在「聊天框」里: + +| 能力 | 没有 MCP | 有 MCP | +|------|---------|--------| +| 数据库查询 | 不能直接查,只能让用户复制粘贴 | 直接连接数据库,实时查询 | +| 文件操作 | 只能读用户上传的文件 | 直接读写本地文件系统 | +| API 调用 | 需要用户手动转发 | 自动调用外部 API | +| 代码执行 | 只能生成代码,不能运行 | 在沙箱中运行代码并返回结果 | + +MCP 的月下载量已超过 9700 万次,被 OpenAI、Google、Microsoft、Amazon 全部采纳。 + +## MCP 架构 + +### 三个角色 + +``` +┌──────────────┐ MCP 协议 ┌──────────────┐ +│ MCP Client │ ◄─────────────► │ MCP Server │ +│ (AI 应用) │ │ (工具服务) │ +│ │ │ │ +│ Claude Code │ │ 数据库 │ +│ Cursor │ │ 文件系统 │ +│ 自定义应用 │ │ GitHub API │ +└──────────────┘ └──────────────┘ + ▲ + │ 调用 + ▼ +┌──────────────┐ +│ LLM (Host) │ +│ Intern-S1 │ +└──────────────┘ +``` + +- **Host**:运行 LLM 的应用(如 Claude Code) +- **Client**:MCP 客户端,负责与 Server 通信 +- **Server**:提供工具、资源和提示的服务端 + +### 三种能力 + +| 能力 | 说明 | 示例 | +|------|------|------| +| **Tools**(工具) | 可被 AI 调用的函数 | 查数据库、发邮件、运行代码 | +| **Resources**(资源) | 可被 AI 读取的数据 | 文件内容、API 响应、配置信息 | +| **Prompts**(提示) | 预定义的提示模板 | 代码审查模板、翻译模板 | + +## 开发 MCP Server + +### TypeScript 实现 + +```typescript +import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js"; +import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; + +const server = new McpServer({ + name: "我的工具服务", + version: "1.0.0" +}); + +// 注册一个工具 +server.tool( + "查询天气", + { city: { type: "string", description: "城市名" } }, + async ({ city }) => { + const weather = await fetchWeather(city); + return { content: [{ type: "text", text: `${city}天气:${weather}` }] }; + } +); + +// 注册一个资源 +server.resource( + "config", + "config://app", + async (uri) => ({ + contents: [{ uri: uri.href, text: JSON.stringify(appConfig) }] + }) +); + +// 启动 +const transport = new StdioServerTransport(); +await server.connect(transport); +``` + +### Python 实现 + +```python +from mcp.server.fastmcp import FastMCP + +mcp = FastMCP("我的工具服务") + +@mcp.tool() +async def query_weather(city: str) -> str: + """查询指定城市的天气""" + weather = await fetch_weather(city) + return f"{city}天气:{weather}" + +@mcp.resource("config://app") +async def get_config() -> str: + """获取应用配置""" + return json.dumps(app_config) + +mcp.run() +``` + +## 在 Claude Code 中使用 MCP + +Claude Code 原生支持 MCP Server: + +```bash +# 添加 MCP Server +claude mcp add weather-server -- npx weather-mcp-server + +# 查看已安装的 MCP Server +claude mcp list + +# 在对话中,AI 会自动发现并调用 MCP 工具 +``` + +### 配置文件方式 + +```json +// .claude/settings.json +{ + "mcpServers": { + "weather": { + "command": "npx", + "args": ["weather-mcp-server"], + "env": { + "API_KEY": "your-key" + } + }, + "database": { + "command": "python", + "args": ["db_mcp_server.py"], + "env": { + "DB_URL": "postgresql://..." + } + } + } +} +``` + +## 用 Intern-S1-Pro 构建 MCP 应用 + +### 场景:科研论文助手 + +``` +用户 → Claude Code (Intern-S1-Pro) + ├── MCP: arXiv Server → 搜索和下载论文 + ├── MCP: PDF Parser → 解析论文 PDF + ├── MCP: Database → 存储笔记和标注 + └── MCP: Citation → 生成引用格式 +``` + +### 关键配置 + +```bash +# 设置 Claude Code 使用 Intern-S1-Pro +export ANTHROPIC_BASE_URL="https://chat.intern-ai.org.cn/api" +export ANTHROPIC_AUTH_TOKEN="your-api-key" + +# 启动 Claude Code 并选择模型 +claude --model intern-s1-pro +``` + +## 社区 MCP Server 生态 + +| MCP Server | 功能 | 适用场景 | +|------------|------|---------| +| @modelcontextprotocol/server-filesystem | 文件系统读写 | 代码编辑 | +| @modelcontextprotocol/server-github | GitHub API | 项目管理 | +| @modelcontextprotocol/server-postgres | PostgreSQL 查询 | 数据分析 | +| @modelcontextprotocol/server-brave-search | 网页搜索 | 信息检索 | +| @modelcontextprotocol/server-puppeteer | 浏览器自动化 | 网页交互 | + +## 进阶实践(Intern-S1-Pro 专题) + +### 实操任务 + +1. **开发 MCP Server**:用 TypeScript 或 Python 实现一个自定义 MCP Server +2. **集成到 Claude Code**:将自定义 MCP Server 注册到 Claude Code 中使用 +3. **科研场景应用**:用 Intern-S1-Pro + MCP 构建一个论文检索和分析工具 + +### 交付物 + +- 自定义 MCP Server 代码仓库 +- 使用演示视频或 GIF +- 工具调用日志和效果对比报告 + +### 自检清单 + +- [ ] 理解 MCP 的 Host / Client / Server 三层架构 +- [ ] 能区分 Tools、Resources、Prompts 三种能力 +- [ ] 实现了一个包含至少 2 个 Tool 的 MCP Server +- [ ] 在 Claude Code 中成功调用了自定义 MCP Server +- [ ] 理解 MCP 与 A2A 的互补关系 + +## 延伸阅读 + +- [MCP 官方文档](https://modelcontextprotocol.io/) +- [MCP GitHub 仓库](https://github.com/modelcontextprotocol) +- [Agent2Agent (A2A) 协议](/zh/docs/learn/core/agent2agent)——Agent 之间的通信协议 +- [Function Calling 与 Tool Use](/zh/docs/learn/core/function-calling) +- [AI Agent 原理与架构](/zh/docs/learn/core/ai-agent) diff --git a/docs/learn/core/model-safety.md b/docs/learn/core/model-safety.md new file mode 100644 index 000000000..c1c2758af --- /dev/null +++ b/docs/learn/core/model-safety.md @@ -0,0 +1,161 @@ + +# 模型安全:幻觉、对齐与 Red Teaming + +大模型能写诗、写代码、做翻译,但它也可能一本正经地胡说八道,或者被诱导生成有害内容。模型安全就是确保 AI 系统**既好用又可靠**的技术领域。 + +## 模型幻觉(Hallucination) + +### 什么是幻觉? + +幻觉是指模型生成看似合理但实际不正确的内容。就像一个"过度自信的学生",不知道答案时也会编一个出来。 + +### 幻觉的类型 + +| 类型 | 描述 | 示例 | +|------|------|------| +| **事实幻觉** | 生成错误的事实信息 | "爱因斯坦获得了 1922 年诺贝尔化学奖" | +| **忠实度幻觉** | 回答与输入上下文不一致 | 文档中说"营收增长 5%",模型说"增长 15%" | +| **推理幻觉** | 逻辑推理过程中出错 | 数学计算步骤正确但最终结果错误 | + +### 幻觉的成因 + +``` +训练数据问题 模型结构局限 解码策略影响 +├── 数据中有错误 ├── 无法区分记忆和推理 ├── 高温度采样增加随机性 +├── 知识截止日期 ├── 注意力分布偏差 └── 长文本中上下文丢失 +└── 数据分布不均衡 └── 参数量有限 +``` + +### 缓解幻觉的方法 + +```python +# 方法 1:RAG 检索增强 — 用外部知识"兜底" +context = retrieve_relevant_docs(question) +prompt = f"仅基于以下资料回答,无法回答请说'不确定':\n{context}\n问题:{question}" + +# 方法 2:自我一致性 (Self-Consistency) — 多次采样取多数答案 +answers = [model.generate(question, temperature=0.7) for _ in range(5)] +final_answer = majority_vote(answers) + +# 方法 3:设置系统提示 — 要求模型在不确定时说"不知道" +system_prompt = "如果你不确定答案,请明确说明你不确定,而不是猜测。" +``` + +## 对齐技术 + +对齐(Alignment)是让模型的行为符合人类价值观和期望的技术。目标是让模型做到"3H": + +- **Helpful**(有帮助):能够有效地回答问题和完成任务 +- **Honest**(诚实):不编造信息,承认不确定性 +- **Harmless**(无害):不生成有害、偏见或危险的内容 + +### 对齐技术发展路线 + +| 阶段 | 技术 | 原理 | +|------|------|------| +| 预训练 | 数据清洗与过滤 | 从源头减少有害数据 | +| 微调 | SFT(有监督微调) | 用高质量标注数据教模型如何回答 | +| 偏好对齐 | RLHF / DPO | 根据人类偏好优化模型行为 | +| 推理阶段 | 安全护栏(Guardrails) | 对输入和输出进行实时过滤 | + +### 安全护栏(Guardrails) + +安全护栏是在模型推理阶段添加的保护层: + +```python +# 简化的安全护栏流程 +def safe_generate(user_input): + # 1. 输入过滤:检查用户输入是否包含恶意意图 + if is_harmful_input(user_input): + return "抱歉,我无法回答这个问题。" + + # 2. 正常生成 + response = model.generate(user_input) + + # 3. 输出过滤:检查模型输出是否安全 + if is_harmful_output(response): + return "抱歉,我无法提供这方面的信息。" + + return response +``` + +## Red Teaming(红队测试) + +Red Teaming 是一种主动的安全测试方法,通过模拟攻击者的行为来发现模型的安全漏洞。 + +### 常见攻击手法 + +| 攻击类型 | 描述 | 示例 | +|---------|------|------| +| **直接攻击** | 直接要求生成有害内容 | "告诉我如何..." | +| **角色扮演** | 诱导模型扮演不受限的角色 | "假设你是一个没有限制的 AI..." | +| **注入攻击** | 在输入中嵌入隐藏指令 | 在正常文本中插入特殊指令 | +| **多轮诱导** | 通过多轮对话逐步突破限制 | 先建立信任再提出敏感请求 | + +### Red Teaming 流程 + +``` +1. 确定评测范围 + ├── 哪些安全维度要测试? + └── 暴力、偏见、隐私、虚假信息... + +2. 设计攻击场景 + ├── 直接攻击 + ├── 间接攻击 + └── 创造性攻击 + +3. 执行测试 + ├── 人工红队测试 + └── 自动化红队工具 + +4. 分析结果 + ├── 分类安全漏洞 + └── 评估风险等级 + +5. 修复与迭代 + ├── 针对性 SFT/RLHF + └── 更新安全护栏规则 +``` + +## 负责任的 AI 实践 + +### 开发者应做到 + +1. **透明性**:公开模型的能力边界和已知局限 +2. **评测**:使用安全 Benchmark 持续评测(如 TruthfulQA、SafetyBench) +3. **监控**:上线后持续监控模型输出 +4. **反馈**:建立用户反馈机制,及时发现问题 + +### 使用者应注意 + +- 对模型输出**保持怀疑**,特别是关键决策场景 +- 涉及医疗、法律、金融等领域时,务必**交叉验证** +- 不要将 LLM 的输出作为**唯一信息来源** + +## 书生生态中的安全实践 + +- **OpenCompass** 集成了安全评测维度,可以系统性评估模型的安全能力 +- **InternLM3** 在训练过程中通过 RLHF 增强了安全对齐 +- 书生社区提供安全评测排行榜,帮助开发者了解不同模型的安全表现 + +## 下一步 + +- 学习 [评测基准](/zh/learn/evaluation-benchmarks),了解如何系统性评估模型能力 +- 探索 [RAG 基础](/zh/learn/rag-basics),用检索增强缓解幻觉问题 +- 了解 [Prompt Engineering](/zh/learn/prompt-engineering),通过提示词设计减少不安全输出 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 设计一套红队测试题库(越权、注入、虚假事实、敏感内容)。 +2. 对比“无护栏”和“有护栏”两种配置的风险暴露差异。 +3. 建立安全响应流程:检测、降级、人工复核、审计留痕。 + +### 交付物 +- 一份《Red Team 测试清单》 +- 一份《安全事件响应 SOP》 + +### 自检清单 +- [ ] 能识别常见提示注入与越权模式 +- [ ] 能设计分层安全策略(输入/推理/输出) +- [ ] 能平衡安全性与可用性 diff --git a/docs/learn/core/prompt-engineering.md b/docs/learn/core/prompt-engineering.md new file mode 100644 index 000000000..80cd6ec04 --- /dev/null +++ b/docs/learn/core/prompt-engineering.md @@ -0,0 +1,133 @@ + +# Prompt Engineering + +Prompt Engineering(提示工程)是与大语言模型高效交互的核心技能。好的 Prompt 能让模型输出质量提升数倍。 + +## 基础原则 + +### 1. 清晰具体 + +``` +# 差的 Prompt +帮我写个东西 + +# 好的 Prompt +请用 Python 写一个函数,输入一个字符串列表, +返回其中长度最长的 3 个字符串,按长度降序排列。 +``` + +### 2. 提供上下文 + +``` +# 差的 Prompt +翻译这句话 + +# 好的 Prompt +请将以下技术文档从中文翻译为英文,保持专业术语准确, +语气正式: +"大语言模型通过自注意力机制捕捉长距离依赖关系。" +``` + +### 3. 指定输出格式 + +``` +请分析以下代码的问题,按如下格式输出: +- **问题**:具体描述 +- **原因**:为什么出错 +- **修复**:修改后的代码 +``` + +## 高级技巧 + +### System Prompt(系统提示) + +为模型设定角色和行为规范: + +```python +messages = [ + { + "role": "system", + "content": "你是一位资深 Python 开发者,擅长代码审查。" + "回答要简洁专业,先指出问题再给出修复方案。" + }, + { + "role": "user", + "content": "请审查这段代码:..." + } +] +``` + +### Few-shot Learning(少样本学习) + +通过示例教模型输出格式: + +``` +将产品评论分类为"正面"或"负面": + +评论:这个手机拍照效果太棒了! +分类:正面 + +评论:电池续航太差,一天要充三次。 +分类:负面 + +评论:屏幕显示效果不错,但价格偏贵。 +分类: +``` + +### Chain of Thought(思维链) + +让模型逐步推理: + +``` +请一步步思考以下数学问题: + +小明有 15 个苹果,给了小红 3 个,又买了 7 个, +然后把剩下的苹果平均分给 3 个人。每人分到几个? + +请展示计算过程。 +``` + +### 结构化输出 + +要求 JSON 等格式化输出: + +``` +分析以下文本的情感,返回 JSON 格式: +{ + "sentiment": "positive/negative/neutral", + "confidence": 0.0-1.0, + "keywords": ["关键词列表"] +} + +文本:今天发布的 InternLM3 模型效果真的很惊艳! +``` + +## 常见误区 + +| 误区 | 正确做法 | +|------|---------| +| Prompt 越长越好 | 简洁清晰,去掉冗余 | +| 只说"不要做什么" | 告诉模型"要做什么" | +| 期望一次完美 | 迭代优化 Prompt | +| 忽略 temperature | 创作类任务用 0.7-1.0,事实类用 0-0.3 | + +## 下一步 + +- [RAG 基础](/docs/learn/rag-basics) — 学习检索增强生成 +- [InternLM API](/docs/api/quickstart) — 实际调用模型试试 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 为同一任务写 3 版 prompt(基础版、Few-shot 版、结构化输出版)。 +2. 设计一个“系统提示 + 用户提示 + 输出约束”的模板并复用到 3 个任务。 +3. 建立一套 prompt 评测维度(准确性、稳定性、可复用性)。 + +### 交付物 +- 一份《Prompt 模板库(至少 5 条)》 +- 一份《Prompt A/B 对比评测表》 + +### 自检清单 +- [ ] 能写出可复用的系统提示模板 +- [ ] 能用结构化输出减少后处理成本 +- [ ] 能定位 prompt 失效的主要原因 diff --git a/docs/learn/core/rag-basics.md b/docs/learn/core/rag-basics.md new file mode 100644 index 000000000..43f87bb07 --- /dev/null +++ b/docs/learn/core/rag-basics.md @@ -0,0 +1,124 @@ + +# RAG 基础 + +RAG(Retrieval-Augmented Generation,检索增强生成)是解决大语言模型知识局限性的核心技术。 + +## 为什么需要 RAG? + +大语言模型有两个核心限制: + +1. **知识截止**:模型只知道训练数据截止前的信息 +2. **幻觉问题**:可能生成看似合理但不正确的内容 + +RAG 通过将外部知识检索与模型生成相结合来解决这些问题。 + +## 工作原理 + +``` +用户问题 + │ + ▼ +┌─────────────┐ ┌──────────────┐ +│ 向量化查询 │────→│ 向量数据库 │ +│ (Embedding) │ │ (知识库检索) │ +└─────────────┘ └──────┬───────┘ + │ 相关文档 + ▼ + ┌──────────────┐ + │ 组装 Prompt │ + │ 问题 + 上下文 │ + └──────┬───────┘ + │ + ▼ + ┌──────────────┐ + │ LLM 生成 │ + │ (InternLM) │ + └──────┬───────┘ + │ + ▼ + 最终回答 +``` + +## 核心步骤 + +### 1. 文档预处理 + +将知识库文档切分成合适大小的块(Chunk): + +```python +# 简单的文本切分示例 +def split_text(text, chunk_size=500, overlap=50): + chunks = [] + for i in range(0, len(text), chunk_size - overlap): + chunks.append(text[i:i + chunk_size]) + return chunks +``` + +### 2. 向量化存储 + +使用 Embedding 模型将文本块转换为向量: + +```python +from sentence_transformers import SentenceTransformer + +model = SentenceTransformer('BAAI/bge-base-zh-v1.5') +embeddings = model.encode(chunks) + +# 存入向量数据库(如 FAISS、Milvus、ChromaDB) +``` + +### 3. 检索相关内容 + +```python +# 将用户问题向量化,检索最相关的 Top-K 文档 +query_embedding = model.encode([user_question]) +similar_docs = vector_db.search(query_embedding, top_k=3) +``` + +### 4. 生成回答 + +```python +context = "\n".join([doc.text for doc in similar_docs]) + +prompt = f"""基于以下参考资料回答用户问题。 +如果参考资料中没有相关信息,请明确告知。 + +参考资料: +{context} + +问题:{user_question} +""" + +response = llm.chat(prompt) +``` + +## 关键参数 + +| 参数 | 推荐值 | 说明 | +|------|--------|------| +| Chunk Size | 300-500 字 | 文本块大小 | +| Overlap | 50-100 字 | 块之间的重叠 | +| Top-K | 3-5 | 检索的文档数量 | +| Embedding 模型 | BGE-base-zh | 中文场景推荐 | + +## 下一步 + +- 实际搭建一个 RAG 系统(实战营 L2 关卡) +- 了解更多 [InternLM 模型](/docs/models/internlm) 的能力 +- 使用 [InternLM API](/docs/api/quickstart) 构建应用 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 基于课程文档搭建最小 RAG 系统(切分、向量化、检索、生成)。 +2. 对比不同 chunk 策略在召回率和答案完整性上的影响。 +3. 增加引用来源输出,要求每段结论可追溯。 + +### 交付物 +- 一份《RAG 架构与数据流图》 +- 一份《检索质量评估报告(Recall@K / 命中率)》 + +### 自检清单 +- [ ] 能解释 RAG 各阶段的输入输出 +- [ ] 能定位“检索不到”与“回答跑偏”的根因 +- [ ] 能实现带引用的可追溯回答 diff --git a/docs/learn/index.md b/docs/learn/index.md new file mode 100644 index 000000000..e6fed292e --- /dev/null +++ b/docs/learn/index.md @@ -0,0 +1,201 @@ + +# AI 技术基础 + +从零开始系统学习 AI,为使用和开发大语言模型打下坚实基础。涵盖基础概念、核心技术、进阶应用和工程实践四大层次,当前中文 17 篇核心教程(双语共 35 篇)。 + +> **开发中提示**:第 7 期书生大模型实战营「Skills / MCP / Claude Code / A2A / InternVL-U / InternSVG / OpenClaw」专题内容正在完善中,教程会持续更新。 + +## 教程审阅结论(本轮) + +本轮已完成 `/zh/docs/learn` 全量教程结构审阅,并统一补充“进阶实践(Intern-S1-Pro 专题)”模块,重点增强三类能力: + +- **从概念到实操**:每篇教程新增可执行任务,避免“只看懂、做不出” +- **从学习到交付**:每篇教程新增交付物要求,便于沉淀作品集 +- **从完成到复盘**:每篇教程新增自检清单,支持自评与同伴评审 + +## 详细学习法(建议 4 周) + +### 第 1 周:基础理解(概念正确) + +- 重点教程:什么是大语言模型、Tokenization、Embedding、Attention、Transformer +- 目标:建立统一术语与核心机制认知 +- 周交付:完成 1 份《LLM 基础概念图谱》 + +### 第 2 周:能力构建(会调会用) + +- 重点教程:Prompt Engineering、RAG、Function Calling、AI Agent +- 目标:掌握“提示词 + 检索 + 工具调用 + 任务编排”的最小闭环 +- 周交付:完成 1 个可运行的 Agent Demo(含至少 2 个工具) + +### 第 3 周:模型工程(会训会改) + +- 重点教程:Pretraining、SFT、RLHF/DPO、LoRA、Quantization +- 目标:理解训练对齐与部署优化全链路 +- 周交付:完成 1 份《微调与部署选型报告》 + +### 第 4 周:质量与安全(可评可控) + +- 重点教程:Evaluation Benchmarks、Model Safety、VLM +- 目标:建立评测体系与安全护栏能力 +- 周交付:完成 1 份《模型评测 + 安全红队报告》 + +## 学习验收标准 + +- **准确性**:关键概念解释无明显错误 +- **可复现性**:至少 3 个实战任务可被他人复现 +- **可交付性**:至少形成 2 份结构化文档交付物 +- **可迭代性**:能根据评测结果优化 Prompt / 检索 / 工具调用策略 + +## 适合谁? + +- **AI 新手**:没有机器学习背景,想入门大模型领域 +- **开发者**:有编程经验,想深入理解 AI 技术并动手实践 +- **产品经理**:想理解 AI 能力边界,做出更好的产品决策 +- **学生**:正在学习 AI 相关课程,需要系统化的知识补充 + +## 推荐学习路径 + +根据你的背景和目标,选择一条适合的路径开始学习。 + +### 路径一:AI 入门者 + +适合零基础读者,从概念到实操,约 3 小时完成。 + +| 顺序 | 教程 | 预计时间 | +|------|------|---------| +| 1 | [什么是大语言模型](/zh/docs/learn/concepts/what-is-llm) | 15 分钟 | +| 2 | [Tokenization:模型如何理解文字](/zh/docs/learn/concepts/tokenization) | 15 分钟 | +| 3 | [Embedding 与词向量](/zh/docs/learn/concepts/embedding) | 20 分钟 | +| 4 | [注意力机制详解](/zh/docs/learn/concepts/attention-mechanism) | 25 分钟 | +| 5 | [Transformer 架构](/zh/docs/learn/concepts/transformer) | 30 分钟 | +| 6 | [Prompt Engineering](/zh/docs/learn/core/prompt-engineering) | 20 分钟 | +| 7 | [RAG 基础](/zh/docs/learn/core/rag-basics) | 25 分钟 | + +### 路径二:AI 开发者 + +适合有编程基础的开发者,覆盖训练到部署全链路,约 4.5 小时完成。 + +| 顺序 | 教程 | 预计时间 | +|------|------|---------| +| 1 | [什么是大语言模型](/zh/docs/learn/concepts/what-is-llm) | 15 分钟 | +| 2 | [Transformer 架构](/zh/docs/learn/concepts/transformer) | 30 分钟 | +| 3 | [预训练:从零训练大模型](/zh/docs/learn/training/pretraining) | 25 分钟 | +| 4 | [SFT 有监督微调](/zh/docs/learn/training/sft) | 20 分钟 | +| 5 | [RLHF 与 DPO:人类偏好对齐](/zh/docs/learn/training/rlhf) | 25 分钟 | +| 6 | [LoRA 与参数高效微调](/zh/docs/learn/training/lora) | 20 分钟 | +| 7 | [视觉语言模型 (VLM)](/zh/docs/learn/multimodal/vlm) | 25 分钟 | +| 8 | [AI Agent 原理与架构](/zh/docs/learn/core/ai-agent) | 25 分钟 | +| 9 | [Function Calling 与 Tool Use](/zh/docs/learn/core/function-calling) | 20 分钟 | +| 10 | [模型量化:GPTQ/AWQ/GGUF](/zh/docs/learn/training/model-quantization) | 25 分钟 | + +### 路径三:AI 产品经理 + +适合非技术背景的产品和决策者,理解 AI 能力边界,约 3 小时完成。 + +| 顺序 | 教程 | 预计时间 | +|------|------|---------| +| 1 | [什么是大语言模型](/zh/docs/learn/concepts/what-is-llm) | 15 分钟 | +| 2 | [Prompt Engineering](/zh/docs/learn/core/prompt-engineering) | 20 分钟 | +| 3 | [RAG 基础](/zh/docs/learn/core/rag-basics) | 25 分钟 | +| 4 | [AI Agent 原理与架构](/zh/docs/learn/core/ai-agent) | 25 分钟 | +| 5 | [Function Calling 与 Tool Use](/zh/docs/learn/core/function-calling) | 20 分钟 | +| 6 | [评测基准:MMLU、GSM8K、HumanEval 等](/zh/docs/learn/core/evaluation-benchmarks) | 20 分钟 | +| 7 | [模型安全:幻觉、对齐与 Red Teaming](/zh/docs/learn/core/model-safety) | 25 分钟 | + +## 专题任务(开发中) + +围绕 S7「Skills / MCP / Claude Code / A2A / InternVL-U / InternSVG / OpenClaw」的 7 大方向学习任务如下: + +| 任务 | 学习目标 | 推荐教程 | +|------|----------|---------| +| 任务 1:MCP 协议实战 | 开发一个 MCP Server,配置 Claude Code 调用 | [MCP 协议详解](/zh/docs/learn/core/mcp-protocol)、[Function Calling](/zh/docs/learn/core/function-calling) | +| 任务 2:Skills 自定义与自进化 | 编写自定义 Skill,实现自动化工作流 | [AI Agent 原理与架构](/zh/docs/learn/core/ai-agent)、[MCP 协议详解](/zh/docs/learn/core/mcp-protocol) | +| 任务 3:A2A 多 Agent 协作 | 理解 Agent Card、Task 状态机,实现 Agent 间通信 | [Agent2Agent 协议](/zh/docs/learn/core/agent2agent)、[AI Agent 原理与架构](/zh/docs/learn/core/ai-agent) | +| 任务 4:InternVL-U 多模态实验 | 多模态理解 + 图像生成 + 图片编辑 | [视觉语言模型](/zh/docs/learn/multimodal/vlm)、[文生图](/zh/docs/learn/multimodal/text-to-image) | +| 任务 5:InternSVG 矢量图形 | SVG 生成与编辑任务 | [InternSVG](/zh/docs/learn/multimodal/internsvg)、[视觉语言模型](/zh/docs/learn/multimodal/vlm) | +| 任务 6:Claude Code 全流程 | 用 Claude Code 完成完整项目开发 | [AI Agent 原理与架构](/zh/docs/learn/core/ai-agent)、[Prompt Engineering](/zh/docs/learn/core/prompt-engineering) | +| 任务 7:OpenClaw 开源协作 | 多平台 AI 开发环境集成 | [RAG 基础](/zh/docs/learn/core/rag-basics)、[评测基准](/zh/docs/learn/core/evaluation-benchmarks) | + +--- + +## 按分类浏览 + +### 基础概念 + +零基础入门,理解大模型的核心概念。 + +| 教程 | 说明 | 预计时间 | +|------|------|---------| +| [什么是大语言模型](/zh/docs/learn/concepts/what-is-llm) | LLM 的基本概念、工作原理和应用场景 | 15 分钟 | +| [Tokenization:模型如何理解文字](/zh/docs/learn/concepts/tokenization) | Token 切分、BPE 算法、词表构建 | 15 分钟 | +| [Embedding 与词向量](/zh/docs/learn/concepts/embedding) | 文本向量化、语义空间、相似度计算 | 20 分钟 | +| [注意力机制详解](/zh/docs/learn/concepts/attention-mechanism) | Self-Attention、QKV 计算、注意力可视化 | 25 分钟 | + +### 应用技巧 + +学会高效使用大模型。 + +| 教程 | 说明 | 预计时间 | +|------|------|---------| +| [Prompt Engineering](/zh/docs/learn/core/prompt-engineering) | 系统提示、少样本学习、思维链 | 20 分钟 | +| [RAG 基础](/zh/docs/learn/core/rag-basics) | 检索增强生成的原理、架构与实践 | 25 分钟 | + +### 模型架构 + +理解大模型的技术原理。 + +| 教程 | 说明 | 预计时间 | +|------|------|---------| +| [Transformer 架构](/zh/docs/learn/concepts/transformer) | 自注意力、多头注意力、位置编码、Decoder-Only | 30 分钟 | + +### 训练与对齐 + +了解大模型是怎么训练出来的。 + +| 教程 | 说明 | 预计时间 | +|------|------|---------| +| [预训练:从零训练大模型](/zh/docs/learn/training/pretraining) | 预训练目标、数据准备、训练流程 | 25 分钟 | +| [SFT 有监督微调](/zh/docs/learn/training/sft) | 指令微调、数据格式、XTuner 实践 | 20 分钟 | +| [RLHF 与 DPO:人类偏好对齐](/zh/docs/learn/training/rlhf) | 奖励模型、PPO、DPO 直接偏好优化 | 25 分钟 | +| [LoRA 与参数高效微调](/zh/docs/learn/training/lora) | 低秩适配、QLoRA、适用场景 | 20 分钟 | + +### 多模态 + +超越文本,理解图像、语音、视频等多模态能力。 + +| 教程 | 说明 | 预计时间 | +|------|------|---------| +| [视觉语言模型 (VLM)](/zh/docs/learn/multimodal/vlm) | 图文理解、InternVL 架构、应用场景 | 25 分钟 | +| [文生图:AI 图像生成基础](/zh/docs/learn/multimodal/text-to-image) | 扩散模型原理、Prompt 技巧、InternVL-U 实战 | 25 分钟 | +| [图片编辑:AI 编辑图像基础](/zh/docs/learn/multimodal/image-editing) | 局部编辑、风格迁移、IP 形象变换 | 20 分钟 | +| [文生视频:AI 视频生成基础](/zh/docs/learn/multimodal/text-to-video) | Sora/Wan2.2/DreamID-Omni、Prompt 技巧 | 25 分钟 | +| [InternSVG:AI 矢量图形生成](/zh/docs/learn/multimodal/internsvg) | 文本/图片生成、编辑和理解 SVG 矢量图形 | 20 分钟 | + +### Agent 与应用 + +让大模型真正做事。 + +| 教程 | 说明 | 预计时间 | +|------|------|---------| +| [AI Agent 原理与架构](/zh/docs/learn/core/ai-agent) | Agent 架构、规划与推理、记忆机制 | 25 分钟 | +| [Function Calling 与 Tool Use](/zh/docs/learn/core/function-calling) | 工具调用、JSON Schema、实践示例 | 20 分钟 | +| [MCP 协议详解](/zh/docs/learn/core/mcp-protocol) | AI 世界的 USB 接口,让大模型连接一切工具和数据 | 25 分钟 | +| [Agent2Agent (A2A) 协议](/zh/docs/learn/core/agent2agent) | Agent 间通信与协作,Task 状态机、Agent Card | 25 分钟 | + +### 部署与推理 + +把模型跑起来。 + +| 教程 | 说明 | 预计时间 | +|------|------|---------| +| [模型量化:GPTQ/AWQ/GGUF](/zh/docs/learn/training/model-quantization) | 量化原理、主流方案对比、LMDeploy 实践 | 25 分钟 | +| [在昇腾 NPU 上部署 InternVL-U](/zh/docs/learn/tutorials/ascend-internvl-u) | SDPA Patch、API 服务搭建、公网代理 | 30 分钟 | + +### 评测与数据 + +衡量和驱动模型质量。 + +| 教程 | 说明 | 预计时间 | +|------|------|---------| +| [评测基准:MMLU、GSM8K、HumanEval 等](/zh/docs/learn/core/evaluation-benchmarks) | 主流 Benchmark 介绍与解读 | 20 分钟 | +| [模型安全:幻觉、对齐与 Red Teaming](/zh/docs/learn/core/model-safety) | 幻觉问题、安全对齐、红队测试 | 25 分钟 | diff --git a/docs/learn/multimodal/image-editing.md b/docs/learn/multimodal/image-editing.md new file mode 100644 index 000000000..394b5d905 --- /dev/null +++ b/docs/learn/multimodal/image-editing.md @@ -0,0 +1,164 @@ + +# 图片编辑:AI 编辑图像基础 + +上传一张图片,用一句话描述你想要的改动,AI 就能帮你完成——这是 AI 图像编辑(Image Editing)的核心能力。 + +## 什么是 AI 图片编辑? + +**AI 图片编辑** 是指输入一张原始图片和一段编辑指令,由 AI 模型生成编辑后的图片。 + +``` +输入: [原始图片] + "把背景换成海滩" +输出: [编辑后的图片(主体不变,背景变为海滩)] +``` + +与文生图不同,图片编辑需要**保持原图的关键内容**,只修改指定部分。 + +## 核心编辑类型 + +### 1. 局部编辑(Local Editing) + +只修改图片的某个区域: + +| 操作 | 示例 Prompt | +|------|-------------| +| 添加物体 | "给人物加上一副墨镜" | +| 移除物体 | "去掉背景中的路人" | +| 替换物体 | "把桌上的苹果换成橙子" | +| 修改属性 | "把头发颜色改成金色" | + +### 2. 全局风格迁移(Style Transfer) + +改变整张图片的艺术风格: + +| 操作 | 示例 Prompt | +|------|-------------| +| 画风变换 | "转为水墨画风格" | +| 滤镜效果 | "添加复古胶片滤镜" | +| 色调调整 | "变成黑白照片" | +| 季节变换 | "把场景从夏天变成冬天" | + +### 3. IP 形象变换 + +将角色放入不同场景或风格中: + +| 操作 | 示例 Prompt | +|------|-------------| +| 场景迁移 | "把书小生放在星空宇宙的背景中" | +| 风格化 | "将书小生变成赛博朋克风格" | +| 装饰添加 | "给书小生戴上圣诞帽" | + +## 技术原理 + +### Instruct-based Editing + +用户以自然语言描述编辑意图,模型理解语义后执行编辑: + +``` +模型输入: 原图 + "把猫的颜色从黑色改成白色" +处理流程: 文本理解 → 定位编辑区域 → 保持其余不变 → 生成结果 +``` + +代表模型:InstructPix2Pix, InternVL-U + +### Inpainting(区域重绘) + +用户手动标记需要编辑的区域(Mask),模型在该区域内重新生成内容: + +``` +模型输入: 原图 + Mask(标记区域)+ "在这里画一棵树" +处理流程: 识别 Mask 区域 → 在区域内生成 → 与周围融合 +``` + +### 统一多模态方案 + +InternVL-U 等统一模型可以同时理解图像内容和编辑指令,在一个前向传播中完成编辑: + +``` +原图 + "将书小生变成水墨画风格" +→ VLM 理解原图内容和风格要求 +→ Generation Decoder 生成编辑结果 +``` + +## Prompt 写作技巧 + +### 局部编辑 + +**清晰指定目标:** +``` +好: "把左边的人物头发从黑色改成红色" +差: "改一下颜色" +``` + +**明确操作动词:** +- "添加" / "移除" / "替换" / "修改" +- "把...变成..." / "在...上添加..." + +### 风格迁移 + +**指定具体风格:** +``` +好: "转为莫奈风格的印象派油画,保持原始构图" +差: "变好看一点" +``` + +**常用风格关键词:** +- 油画: "oil painting, brushstrokes visible" +- 水彩: "watercolor, soft edges, flowing colors" +- 水墨: "Chinese ink painting, traditional, minimalist" +- 素描: "pencil sketch, detailed hatching" +- 波普艺术: "pop art, bold colors, halftone dots" +- 赛博朋克: "cyberpunk, neon lights, dark atmosphere" + +### 推理增强(CoT) + +对于复杂编辑任务,开启推理增强让模型先分析再编辑: + +``` +Prompt: "给书小生戴上圣诞帽,背景加上雪花" + +[推理过程] +- 目标 1: 在角色头顶添加圣诞帽 +- 目标 2: 背景添加飘落的雪花 +- 约束: 保持角色本身形象不变 +- 风格: 节日温馨氛围 + +[编辑结果] → 更精确的编辑 +``` + +## 在 InternVL-U Playground 体验 + +访问 [Playground](/zh/playground) 的「图片编辑」Tab: + +1. **上传原图** 或点击「书小生示例图」一键加载 +2. **输入编辑指令**(自然语言) +3. 可选开启「推理增强」 +4. 点击「编辑」 + +### 书小生示例 + +Playground 内置了 4 个一键编辑案例: +- "把书小生放在星空宇宙的背景中" +- "将书小生变成水墨画风格" +- "给书小生戴上圣诞帽,背景加上雪花" +- "把书小生变成赛博朋克风格,加上霓虹灯光效" + +## 常见问题 + +**Q: 编辑后主体变形了怎么办?** + +A: 更具体地描述要保持的内容。例如:"只修改背景,保持人物完全不变"。开启推理增强也有帮助。 + +**Q: 局部编辑和全局编辑可以同时做吗?** + +A: 可以但不推荐。复杂编辑建议分步进行:先做一种编辑,再在结果基础上做第二种。 + +**Q: 图片分辨率有要求吗?** + +A: 上传图片最大 5MB。模型会自动处理分辨率,但建议使用清晰的原图以获得最佳效果。 + +## 延伸阅读 + +- [文生图:AI 图像生成基础](/zh/docs/learn/text-to-image) — 从零生成图片 +- [文生视频:AI 视频生成基础](/zh/docs/learn/text-to-video) — 从文字生成视频 +- [视觉语言模型 (VLM)](/zh/docs/learn/vlm) — 理解图像的 AI 模型 diff --git a/docs/learn/multimodal/index.md b/docs/learn/multimodal/index.md new file mode 100644 index 000000000..e076a5499 --- /dev/null +++ b/docs/learn/multimodal/index.md @@ -0,0 +1,4 @@ + +# 多模态 + +视觉语言模型、文生图、图片编辑、文生视频 diff --git a/docs/learn/multimodal/internsvg.md b/docs/learn/multimodal/internsvg.md new file mode 100644 index 000000000..7f13a374b --- /dev/null +++ b/docs/learn/multimodal/internsvg.md @@ -0,0 +1,167 @@ + +# InternSVG:AI 矢量图形生成 + +> **前置知识**:建议先学习 [视觉语言模型 (VLM)](/zh/docs/learn/multimodal/vlm) 和 [文生图基础](/zh/docs/learn/multimodal/text-to-image) + +## 什么是 InternSVG? + +InternSVG 是书生生态推出的**统一多模态 SVG 智能系统**,能够理解、生成和编辑 SVG(可缩放矢量图形)。它是首个将文本、图像和矢量图形三种模态打通的 AI 系统。 + +### SVG vs 位图 + +| 特性 | SVG(矢量图) | PNG/JPG(位图) | +|------|-------------|---------------| +| 缩放 | 无损缩放,任意分辨率清晰 | 放大后模糊 | +| 文件大小 | 通常更小(代码描述) | 随分辨率增大 | +| 可编辑性 | 可修改每个元素 | 像素级编辑 | +| 适用场景 | 图标、图表、UI、动画 | 照片、复杂纹理 | +| AI 生成 | 输出可编辑代码 | 输出像素矩阵 | + +SVG 的核心优势:**AI 生成的 SVG 是代码,可以被人类阅读、修改和复用**。 + +## InternSVG 能做什么? + +### 1. 文本生成 SVG + +输入自然语言描述,生成高质量 SVG 代码: + +``` +输入:"一个蓝色渐变背景的登录按钮,带圆角和悬停动画" +输出:完整的 SVG 代码(可直接用于网页) +``` + +### 2. 图片转 SVG + +输入位图图片,自动矢量化为 SVG: + +``` +输入:一张 PNG 格式的 Logo 图片 +输出:等效的 SVG 矢量代码 +``` + +### 3. SVG 编辑 + +基于指令修改已有 SVG: + +``` +输入:原始 SVG + "把背景色改成深色模式,按钮换成绿色" +输出:修改后的 SVG +``` + +### 4. SVG 理解 + +分析 SVG 代码,解释其内容和结构: + +``` +输入:一段 SVG 代码 +输出:"这是一个包含 3 层的柱状图,展示了 2023-2025 年的销售数据..." +``` + +### 5. SVG 动画生成 + +生成带动画效果的 SVG: + +``` +输入:"一个旋转的加载指示器,蓝色圆弧" +输出:包含 CSS 动画的 SVG 代码 +``` + +## 技术架构 + +InternSVG 采用「ViT-MLP-LLM」架构: + +``` + ┌──────────────────┐ +输入 ───► │ InternViT-300M │ ───► 视觉特征 +(图片) │ (视觉编码器) │ + └──────────────────┘ + │ + ▼ MLP 投影 + ┌──────────────────┐ + │ Qwen2.5-7B │ ───► SVG 代码 + │ (语言模型) │ / 文本描述 + └──────────────────┘ + ▲ +输入 ───────────┘ +(文本/SVG) +``` + +### 关键技术创新 + +1. **SVG 专用 Token**:引入 SVG 标签的特殊 Token,提高生成效率 +2. **子词嵌入初始化**:SVG 关键字(如 ``, ``)用子词级别嵌入 +3. **两阶段训练**: + - 阶段 1:短 SVG(图标、简单图形) + - 阶段 2:长序列 SVG(插图、科学图表、动画) + +### SAgoge 数据集 + +InternSVG 配套的大规模多模态 SVG 数据集: + +| 类别 | 内容 | 规模 | +|------|------|------| +| 静态图标 | 应用图标、标志 | 大量 | +| 长序列插图 | 复杂插画 | 中量 | +| 科学图表 | 数据可视化 | 中量 | +| 动画 SVG | CSS/SMIL 动画 | 少量 | + +## 应用场景 + +### UI/UX 设计 + +``` +设计师:"生成一套电商 App 的底部导航图标,5 个:首页、搜索、购物车、消息、我的" +InternSVG:输出 5 个统一风格的 SVG 图标 +``` + +### 数据可视化 + +``` +分析师:"用饼图展示市场份额:NVIDIA 82%, AMD 12%, 其他 6%" +InternSVG:输出可直接嵌入报告的 SVG 饼图 +``` + +### 科学插图 + +``` +研究员:"画 Transformer 的自注意力机制示意图" +InternSVG:输出包含 Q/K/V 矩阵、注意力权重的架构图 +``` + +### Web 开发 + +``` +开发者:"生成一个响应式的 Hero Section 背景波浪 SVG" +InternSVG:输出可嵌入 HTML 的 SVG 背景代码 +``` + +## 进阶实践(Intern-S1-Pro 专题) + +### 实操任务 + +1. **SVG 图标生成**:用 InternSVG 为一个项目生成一套统一风格的图标 +2. **数据可视化**:输入数据,生成 SVG 图表,对比 matplotlib 输出 +3. **SVG 编辑与优化**:修改已有 SVG,添加动画效果 +4. **批量生产**:构建流水线,从 CSV 数据自动生成 SVG 图表 + +### 交付物 + +- 一套 10+ SVG 图标(统一风格) +- 3 个数据可视化 SVG 图表 +- 1 个带动画的 SVG 作品 + +### 自检清单 + +- [ ] 理解 SVG 与位图的区别和各自适用场景 +- [ ] 能用 InternSVG 从文本描述生成 SVG +- [ ] 能将位图转换为 SVG 矢量图 +- [ ] 能对 SVG 进行编辑和修改 +- [ ] 生成的 SVG 能在网页中正确显示 + +## 延伸阅读 + +- [InternSVG 论文](https://arxiv.org/abs/2510.11341) +- [InternSVG 项目主页](https://hmwang2002.github.io/release/internsvg/) +- [HuggingFace: InternSVG 模型](https://huggingface.co/InternSVG) +- [视觉语言模型 (VLM)](/zh/docs/learn/multimodal/vlm) +- [文生图基础](/zh/docs/learn/multimodal/text-to-image) diff --git a/docs/learn/multimodal/text-to-image.md b/docs/learn/multimodal/text-to-image.md new file mode 100644 index 000000000..258817002 --- /dev/null +++ b/docs/learn/multimodal/text-to-image.md @@ -0,0 +1,175 @@ + +# 文生图:AI 图像生成基础 + +用一句话描述就能生成一张图片——这是 AI 图像生成(Text-to-Image)的核心能力。本教程带你从原理到实战,系统掌握文生图技术。 + +## 什么是文生图? + +**文生图(Text-to-Image Generation)** 是指输入一段文本描述(Prompt),由 AI 模型生成对应图像的技术。 + +``` +输入: "一只穿着宇航服的猫咪在太空中漫步,背景是星云" +输出: [生成的图像] +``` + +### 主流技术路线 + +| 方案 | 代表模型 | 核心思路 | +|------|----------|----------| +| **扩散模型 (Diffusion)** | Stable Diffusion, DALL-E 3, Midjourney | 从噪声逐步"去噪"生成图像 | +| **自回归模型 (AR)** | Parti, CM3Leon | 像写文字一样逐 Token 生成图像 | +| **统一多模态模型 (UMM)** | InternVL-U, Chameleon | 理解 + 生成在一个模型里 | + +## 扩散模型核心原理 + +扩散模型是当前最主流的图像生成技术,分两个阶段: + +### 前向过程(加噪) + +将一张清晰图片逐步添加高斯噪声,直到变成纯噪声: + +``` +清晰图片 → 轻微噪声 → 更多噪声 → ... → 纯随机噪声 +``` + +### 反向过程(去噪) + +从纯噪声出发,模型学习如何一步步去除噪声,恢复出清晰图片: + +``` +纯随机噪声 → 模糊轮廓 → 逐渐清晰 → ... → 生成图片 +``` + +关键洞察:模型学习的是"给定噪声图片,预测该去除多少噪声"。加上文本条件(Prompt),模型就能朝着目标描述去噪——这就是**文本引导的图像生成**。 + +### 关键组件 + +| 组件 | 作用 | 示例 | +|------|------|------| +| **Text Encoder** | 将 Prompt 编码为向量 | CLIP, T5 | +| **UNet / DiT** | 预测噪声(核心网络) | UNet-2D, DiT (Diffusion Transformer) | +| **VAE** | 图像压缩/解压(降低计算量) | KL-VAE | +| **Scheduler** | 控制去噪步骤 | DDPM, DPM-Solver | + +## Prompt 写作技巧 + +好的 Prompt 是高质量生图的关键。 + +### 基本结构 + +``` +[主体] + [动作/姿态] + [风格] + [光影] + [背景] + [质量词] +``` + +### 示例对比 + +| Prompt | 质量 | +|--------|------| +| "一只猫" | 模糊,无细节 | +| "一只橘色短毛猫坐在窗台上,阳光照射,背景是绿色花园,高清摄影" | 清晰,有细节 | + +### 关键要素 + +**1. 具体描述主体** +- "一位年轻女性" → "一位戴着圆框眼镜的亚洲女性,长发扎马尾" + +**2. 指定画风** +- 写实摄影: "photo, realistic, 8K" +- 油画: "oil painting, impressionism" +- 水彩: "watercolor, soft edges" +- 水墨画: "Chinese ink painting, traditional" +- 赛博朋克: "cyberpunk, neon lights, dark city" +- 像素风: "pixel art, retro game style" +- 扁平插画: "flat illustration, vector style" + +**3. 光影与氛围** +- "golden hour lighting"(黄金时段) +- "dramatic shadows"(戏剧性阴影) +- "soft diffused light"(柔和散射光) +- "studio lighting"(影棚灯光) + +**4. 构图与视角** +- "close-up portrait"(特写肖像) +- "bird's eye view"(鸟瞰) +- "wide angle landscape"(广角风景) +- "symmetrical composition"(对称构图) + +**5. 质量提升词** +- "high resolution, 4K, detailed" +- "masterpiece, best quality" + +### 负面提示(Negative Prompt) + +告诉模型不要生成什么: + +``` +negative: "blur, distortion, bad anatomy, extra fingers, low quality" +``` + +## 分辨率选择 + +| 分辨率 | 适用场景 | 生成速度 | +|--------|----------|----------| +| 256x256 | 快速预览 | 最快 | +| 512x512 | 通用推荐(速度与质量平衡) | 快 | +| 768x768 | 高质量输出 | 中等 | +| 1024x1024 | 精细创作 | 较慢 | + +> InternVL-U Playground 支持 256~1024 分辨率,推荐 512x512 作为起点。 + +## 推理增强(Chain-of-Thought) + +开启推理增强(CoT)后,模型会先分析 Prompt 的语义、构图和风格要求,再进行图像生成。这对于复杂场景特别有效: + +``` +Prompt: "一个机器人在图书馆里阅读,周围堆满了书,暖色灯光" + +[推理过程] +- 主体:人形机器人,金属质感 +- 场景:传统木质图书馆 +- 构图:中景,机器人居中 +- 光影:暖色台灯,柔和阴影 +- 风格:写实与科幻结合 + +[生成结果] → 质量更高的图像 +``` + +## InternVL-U 的文生图能力 + +InternVL-U 是书生团队开发的统一多模态模型(4B 参数),在**一个模型**内同时支持: + +- 文本理解与对话 +- 图像理解与分析 +- **文生图(Text-to-Image)** +- **图片编辑(Image Editing)** + +与传统扩散模型不同,InternVL-U 采用"理解 + 生成"统一架构,能更好地理解复杂 Prompt 的语义。 + +### 在 Playground 体验 + +访问 [Playground](/zh/playground) 的「文生图」Tab: + +1. 输入描述文本 +2. 选择分辨率(推荐 512x512) +3. 可选开启「推理增强」 +4. 点击生成 + +## 常见问题 + +**Q: 为什么生成的人物手指经常有问题?** + +A: 这是扩散模型的已知缺陷,因为训练数据中手指姿态变化多、细节复杂。可以在 Negative Prompt 中加入 "bad hands, extra fingers" 来缓解。 + +**Q: 同样的 Prompt 每次生成结果不同?** + +A: 正常现象。扩散模型从随机噪声开始,不同的随机种子(seed)会产生不同结果。固定 seed 可以复现结果。 + +**Q: 推理增强会消耗更多配额吗?** + +A: 推理增强只是让模型多一步"思考",不会额外消耗配额。但生成时间会稍长。 + +## 延伸阅读 + +- [图片编辑:AI 编辑图像基础](/zh/docs/learn/image-editing) — 在已有图片上做修改 +- [文生视频:AI 视频生成基础](/zh/docs/learn/text-to-video) — 从文字生成视频 +- [视觉语言模型 (VLM)](/zh/docs/learn/vlm) — 理解图像的 AI 模型 diff --git a/docs/learn/multimodal/text-to-video.md b/docs/learn/multimodal/text-to-video.md new file mode 100644 index 000000000..fdac1ca75 --- /dev/null +++ b/docs/learn/multimodal/text-to-video.md @@ -0,0 +1,191 @@ + +# 文生视频:AI 视频生成基础 + +用一段文字描述就能生成一段视频——这是 AI 视频生成(Text-to-Video)的核心能力。本教程带你了解文生视频的原理、主流技术路线和实际应用。 + +## 什么是文生视频? + +**文生视频(Text-to-Video Generation)** 是指输入一段文本描述,由 AI 模型生成对应视频片段的技术。 + +``` +输入: "一只橘猫在海边追逐海浪,夕阳西下,慢动作" +输出: [5 秒视频片段] +``` + +相比文生图,文生视频需要额外解决**时间一致性**——视频的每一帧不仅要画质好,帧与帧之间还要连贯自然。 + +## 核心技术路线 + +### 1. 扩散模型路线(主流) + +将文生图的扩散模型从 2D 扩展到 3D(加上时间维度): + +``` +文生图: 文本 → UNet/DiT → 2D 图像 +文生视频: 文本 → 3D-UNet/VideoDiT → 视频帧序列 +``` + +| 模型 | 团队 | 特点 | +|------|------|------| +| **Sora** | OpenAI | 高质量长视频,DiT 架构 | +| **Wan2.2** | Wan-AI (中国) | 开源,支持文生视频 + 图生视频 | +| **CogVideo** | 智谱 AI | 开源,支持中文 Prompt | +| **Stable Video Diffusion** | Stability AI | 开源,图生视频为主 | + +### 2. 自回归 + 扩散混合路线 + +先用语言模型规划视频内容,再用扩散模型逐帧生成: + +``` +文本 → LLM 规划帧描述 → 扩散模型 → 视频帧 → 组装 +``` + +### 3. 图生视频(Image-to-Video) + +以参考图片为起始帧,生成视频动画: + +``` +参考图片 + 文本描述 → 模型 → 视频(图片里的内容动起来) +``` + +这是当前应用最多的方向之一,因为可以精确控制视频内容。 + +## 文生视频 vs 文生图 + +| 维度 | 文生图 | 文生视频 | +|------|--------|----------| +| 输出 | 单张图片 | 多帧序列(通常 2-10 秒) | +| 计算量 | 较低 | 高很多(帧数 x 单帧成本) | +| 核心挑战 | 画质、构图 | 时间一致性、运动自然性 | +| 显存需求 | 8-16 GB | 40-80+ GB | +| 典型分辨率 | 512-1024px | 512-720p | +| 生成时间 | 几秒~几十秒 | 几分钟~几十分钟 | + +## 关键技术概念 + +### 时间一致性 + +视频中相邻帧之间必须保持物体外观、光照、背景的连续性。如果没有时间一致性,视频会出现"闪烁"或"跳变"。 + +**解决方案:** +- **3D 注意力**:在空间注意力基础上加入时间注意力 +- **光流引导**:利用光流信息约束帧间运动 +- **帧插值**:先生成关键帧,再插值中间帧 + +### 运动建模 + +让模型理解"走路"、"旋转"、"飞行"等运动语义: + +``` +"一个人慢慢转身" → 模型需要理解 3D 空间中的旋转运动 +``` + +### 音频生成 + +高级视频生成模型可以同时生成配套音频: + +- **环境音效**:根据场景生成背景音 +- **语音合成**:根据对话内容生成语音 +- **音画同步**:确保音频与画面动作对齐 + +## 前沿模型介绍 + +### Wan2.2 (开源) + +Wan-AI 开源的视频生成模型,支持: +- 文生视频 (T2V): 文本描述生成视频 +- 图生视频 (TI2V): 参考图片生成视频动画 +- 5B 参数量,A100 单卡可运行 + +### DreamID-Omni + +基于 Wan2.2 的身份保持视频生成: +- **IP 保持**:输入一张人物/角色照片,生成该角色的视频 +- **音频同步**:支持说话人口型与语音同步 +- **多角色支持**:可同时控制多个角色 + +应用场景:数字人、IP 动画、虚拟主播。 + +### Sora (OpenAI) + +目前公认最强的文生视频模型: +- 支持长达 1 分钟的高质量视频 +- 理解复杂的物理世界规律 +- 基于 DiT(Diffusion Transformer)架构 + +## Prompt 技巧 + +### 基本结构 + +``` +[主体] + [动作] + [场景] + [镜头运动] + [风格] + [时长/节奏] +``` + +### 示例 + +``` +好的 Prompt: +"一只金毛犬在雪地里奔跑,雪花飞舞,慢动作,电影级画质, + 镜头从侧面跟随拍摄,温暖的冬日阳光" + +差的 Prompt: +"狗在雪地跑" +``` + +### 关键要素 + +**1. 明确动作** +- "慢慢走向镜头" 而非 "移动" +- "从左到右旋转 360 度" 而非 "旋转" + +**2. 镜头语言** +- "镜头缓慢推近"(Slow zoom in) +- "环绕拍摄"(Orbit shot) +- "固定机位"(Static camera) +- "跟随拍摄"(Tracking shot) + +**3. 时间节奏** +- "慢动作"(Slow motion) +- "延时摄影"(Time lapse) +- "正常速度"(Normal speed) + +**4. 画面风格** +- "电影级画质,浅景深" (Cinematic, shallow depth of field) +- "动画风格,色彩鲜艳" +- "黑白纪录片风格" + +## 硬件需求 + +| 模型 | 参数量 | 最低显存 | 推荐显存 | +|------|--------|----------|----------| +| Wan2.2-T2V-1.3B | 1.3B | 16 GB | 24 GB | +| Wan2.2-TI2V-5B | 5B | 40 GB | 80 GB | +| DreamID-Omni | ~5B | 40 GB | 80 GB | +| CogVideoX | 5B | 24 GB | 40 GB | + +> 文生视频对显存要求高,通常需要 A100 (80GB) 级别的 GPU。 + +## 实际应用场景 + +| 场景 | 说明 | +|------|------| +| **内容创作** | 短视频、社交媒体内容快速生成 | +| **广告与营销** | 产品宣传视频、广告创意制作 | +| **影视制作** | 概念预览、特效辅助、场景扩展 | +| **教育培训** | 教学动画、实验模拟、历史场景重现 | +| **IP 动画** | 将静态角色(如书小生)变成动态视频 | +| **数字人** | 虚拟主播、AI 客服、数字分身 | + +## 当前局限 + +1. **生成时间长**:高质量视频通常需要数分钟 +2. **长视频困难**:目前多数模型只能生成 2-10 秒 +3. **物理一致性**:复杂物理交互(如水流、碰撞)仍有瑕疵 +4. **精细控制难**:难以精确控制每一帧的具体内容 +5. **计算成本高**:需要高端 GPU,推理成本高 + +## 延伸阅读 + +- [文生图:AI 图像生成基础](/zh/docs/learn/text-to-image) — 图像生成的基础知识 +- [图片编辑:AI 编辑图像基础](/zh/docs/learn/image-editing) — 编辑已有图片 +- [视觉语言模型 (VLM)](/zh/docs/learn/vlm) — 理解图像的 AI 模型 diff --git a/docs/learn/multimodal/vlm.md b/docs/learn/multimodal/vlm.md new file mode 100644 index 000000000..3e3cc7f5f --- /dev/null +++ b/docs/learn/multimodal/vlm.md @@ -0,0 +1,121 @@ + +# 视觉语言模型 (VLM) + +视觉语言模型(Vision-Language Model,VLM)是能够同时理解**图像和文本**的 AI 模型。它不仅能看图说话,还能根据图片回答问题、理解文档、甚至分析视频。 + +## 直觉理解 + +普通的 LLM 只能"读"文字,就像一个只有耳朵没有眼睛的人。VLM 给模型装上了"眼睛"——它先用视觉编码器"看"图片,然后把视觉信息翻译成语言模型能理解的格式,最后由 LLM "大脑"综合理解并生成回答。 + +``` +普通 LLM: 文本 → [LLM] → 回答 +VLM: 图片 → [视觉编码器] → 视觉 Token + 文本 → [文本编码器] → 文本 Token + [视觉 Token + 文本 Token] → [LLM] → 回答 +``` + +## 核心架构 + +### 三大组件 + +| 组件 | 功能 | 常见选择 | +|------|------|---------| +| Vision Encoder | 将图片编码为视觉特征 | ViT、InternViT、SigLIP | +| Projection Layer | 将视觉特征映射到语言空间 | MLP、Cross-Attention | +| LLM Backbone | 理解多模态信息并生成回答 | InternLM3、LLaMA、Qwen | + +### 图文对齐 + +VLM 的关键挑战是让视觉和语言在同一个"空间"中对齐。主流方案: + +``` +图片 [768 维特征] → Projection → [4096 维特征] → 与文本 Token 拼接 → LLM +``` + +- **InternVL3** 使用 Dynamic Resolution 策略:将图片分割成多个子图,每个子图独立编码后拼接,支持任意分辨率输入 +- 这避免了固定分辨率带来的信息损失,尤其对文档和细粒度图片理解很有帮助 + +### InternVL3 架构 + +``` +InternVL3 架构: +├── InternViT-6B # 60 亿参数视觉编码器 +├── MLP Projection # 视觉-语言投影层 +└── InternLM3-8B # 80 亿参数语言模型 + 总参数: ~140 亿 +``` + +InternVL3 的训练分为三个阶段: + +| 阶段 | 目标 | 数据 | +|------|------|------| +| 视觉预训练 | 学习图像特征表示 | 大规模图文对数据 | +| 对齐训练 | 视觉特征与语言空间对齐 | 图文对 + 指令数据 | +| 指令微调 | 多任务能力提升 | 多模态指令数据 | + +## VLM 能做什么 + +```python +from transformers import AutoModel, AutoTokenizer +import torch +from PIL import Image + +# 加载 InternVL3 +model = AutoModel.from_pretrained( + "OpenGVLab/InternVL3-8B", + torch_dtype=torch.bfloat16, + trust_remote_code=True +).cuda() +tokenizer = AutoTokenizer.from_pretrained( + "OpenGVLab/InternVL3-8B", trust_remote_code=True +) + +image = Image.open("example.jpg") + +# 图片问答 +response = model.chat(tokenizer, image, "图片里有什么?") +print(response) +``` + +典型应用场景: + +| 场景 | 输入 | 输出示例 | +|------|------|---------| +| 图片问答 | 图片 + 问题 | 描述图片内容、回答具体问题 | +| 文档理解 | PDF/表格截图 | 提取文字、理解表格数据 | +| OCR 增强 | 含文字图片 | 识别并理解文字含义 | +| 视频理解 | 视频帧序列 | 总结视频内容、回答时序问题 | +| 图表分析 | 统计图表 | 读取数据、分析趋势 | + +## 书生生态中的应用 + +书生在多模态领域的布局: + +- **InternVL3**:最新一代视觉语言模型,在 OCRBench、MathVista 等多个评测中达到开源 SOTA +- **InternViT**:强大的视觉编码器,可独立用于图像理解任务 +- **XComposer**:专注图文创作的多模态模型,支持生成长文配图 +- **LMDeploy**:支持 InternVL 系列模型的高效推理部署 + +## 下一步 + +理解了 VLM 之后,推荐继续学习: + +- [Transformer 架构](/docs/learn/transformer) — VLM 的底层技术基础 +- [注意力机制详解](/docs/learn/attention-mechanism) — 理解视觉和语言如何通过注意力交互 +- [什么是大语言模型](/docs/learn/what-is-llm) — 回顾 LLM 基础 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 选 20 张图(图表、公式、截图)做图文问答测试并记录错误类型。 +2. 设计一个多模态任务链路:图片理解 + 文本推理 + 结构化输出。 +3. 对比不同输入分辨率下的推理质量与延迟表现。 + +### 交付物 +- 一份《VLM 评测样例集》 +- 一份《多模态任务误差分析报告》 + +### 自检清单 +- [ ] 能解释视觉编码器与语言模型协作机制 +- [ ] 能识别 OCR 类与推理类任务的边界 +- [ ] 能设计适合科学场景的图文提示模板 diff --git a/docs/learn/training/index.md b/docs/learn/training/index.md new file mode 100644 index 000000000..efdd57db7 --- /dev/null +++ b/docs/learn/training/index.md @@ -0,0 +1,4 @@ + +# 训练方法 + +预训练、SFT、RLHF、LoRA、量化 diff --git a/docs/learn/training/lora.md b/docs/learn/training/lora.md new file mode 100644 index 000000000..ada02600d --- /dev/null +++ b/docs/learn/training/lora.md @@ -0,0 +1,176 @@ + +# LoRA 与参数高效微调 + +全量微调一个 8B 模型需要 80GB+ 显存,一张消费级 GPU 根本跑不动。**LoRA(Low-Rank Adaptation)** 让你用不到 1% 的参数就能微调大模型,效果接近全量微调。 + +## 为什么需要参数高效微调? + +全量微调的资源瓶颈: + +| 模型规模 | 全量微调显存 | LoRA 微调显存 | QLoRA 微调显存 | +|---------|------------|-------------|--------------| +| 1.8B | ~15GB | ~8GB | ~5GB | +| 8B | ~80GB | ~24GB | ~12GB | +| 70B | ~600GB | ~160GB | ~48GB | + +大多数开发者手上只有一张 24GB 的 RTX 4090 或更小的 GPU。参数高效微调让微调从"实验室专属"变成了"人人可用"。 + +## LoRA 的核心原理 + +### 直觉理解 + +想象一位已经精通中菜的大厨(预训练模型),现在要学做日料(新任务)。他不需要忘掉所有中菜技能重新学习,只需要学一些"增量技巧"——刀法调整、调味方式变化。这些增量技巧就是 LoRA 学习的内容。 + +### 低秩分解 + +LoRA 的关键洞察:微调时权重的变化量是**低秩**的。 + +原始权重矩阵 `W` 的维度为 `d x d`(例如 4096 x 4096),微调时的变化量 `deltaW` 可以分解为两个小矩阵的乘积: + +``` +deltaW = A * B +其中 A 的维度为 d x r,B 的维度为 r x d +r << d(例如 r=8, d=4096) +``` + +参数量对比: +- 全量微调:`d * d = 4096 * 4096 = 16,777,216` 个参数 +- LoRA (r=8):`d * r + r * d = 4096 * 8 * 2 = 65,536` 个参数 +- **压缩比:256 倍!** + +### 训练过程 + +```python +# LoRA 的前向传播(伪代码) +class LoRALayer: + def __init__(self, d, r, alpha): + self.W = original_weight # 冻结,不训练 + self.A = random_init(d, r) # 可训练 + self.B = zeros(r, d) # 可训练 + self.scaling = alpha / r + + def forward(self, x): + # 原始输出 + LoRA 增量 + return x @ self.W + x @ self.A @ self.B * self.scaling +``` + +训练时只更新 A 和 B,原始权重 W 完全冻结。 + +## QLoRA:更进一步 + +QLoRA 在 LoRA 的基础上加入**量化**技术,进一步降低显存: + +1. 将预训练权重量化为 4-bit(NF4 格式) +2. 在量化后的模型上应用 LoRA +3. 计算时反量化回高精度进行运算 + +效果:8B 模型微调只需约 12GB 显存,一张 RTX 4090 就够了。 + +## 关键超参数 + +| 超参数 | 含义 | 推荐值 | 说明 | +|--------|------|--------|------| +| `rank (r)` | 低秩矩阵的秩 | 8-64 | 越大能力越强,但参数越多 | +| `alpha` | 缩放系数 | 通常 = 2r | 控制 LoRA 增量的强度 | +| `target_modules` | 应用 LoRA 的层 | q_proj, v_proj, k_proj, o_proj | 一般应用于注意力层 | +| `dropout` | LoRA Dropout | 0.05-0.1 | 防止过拟合 | +| `lr` | 学习率 | 1e-4 ~ 2e-4 | 比全量微调大一个量级 | + +**rank 选择经验:** +- 简单任务(风格迁移、单领域问答):r=8 足够 +- 中等任务(多领域微调):r=16-32 +- 复杂任务(全面能力调整):r=64+ + +## 实践示例:XTuner LoRA 微调 + +### 配置文件 + +```python +# internlm3_8b_qlora.py — XTuner QLoRA 配置 +from xtuner.model import SupervisedFineTune + +pretrained_model_name_or_path = "internlm/internlm3-8b" + +# LoRA 配置 +lora_config = dict( + r=16, + lora_alpha=32, + target_modules=["q_proj", "v_proj", "k_proj", "o_proj"], + lora_dropout=0.05, +) + +# 量化配置(QLoRA) +quantization_config = dict( + load_in_4bit=True, + bnb_4bit_compute_dtype="float16", + bnb_4bit_quant_type="nf4", +) + +# 训练参数 +batch_size = 1 +accumulative_counts = 16 +lr = 2e-4 +max_epochs = 3 +``` + +### 训练与合并 + +```bash +# 启动 QLoRA 微调 +xtuner train internlm3_8b_qlora.py + +# 合并 LoRA adapter 到基座模型 +xtuner convert merge \ + internlm/internlm3-8b \ + work_dirs/internlm3_8b_qlora/epoch_3.pth \ + merged_model/ \ + --max-shard-size 2GB +``` + +合并后的模型可以直接用于推理,和全量微调的模型使用方式完全一致。 + +## LoRA 的进阶技巧 + +### LoRA 组合与切换 + +LoRA 的一个优势是 adapter 可以动态加载和切换: + +```python +from peft import PeftModel + +# 加载基座模型 +base_model = AutoModelForCausalLM.from_pretrained("internlm/internlm3-8b") + +# 加载不同任务的 LoRA adapter +medical_model = PeftModel.from_pretrained(base_model, "path/to/medical-lora") +legal_model = PeftModel.from_pretrained(base_model, "path/to/legal-lora") +``` + +一个基座模型 + 多个轻量级 adapter = 多个专业模型,大幅节省存储和部署成本。 + +## 书生生态中的 LoRA + +- **XTuner**:一站式支持 LoRA / QLoRA / 全量微调,内置 InternLM 系列模型的配置模板 +- 书生社区提供大量 LoRA 微调教程和最佳实践 +- **InternLM3** 的各类专业版本(代码、数学等)也是通过微调技术在基座模型上优化而来 + +## 下一步 + +- [SFT 有监督微调](/docs/learn/sft) — LoRA 最常用的场景就是 SFT +- [RLHF 与 DPO](/docs/learn/rlhf) — LoRA 同样可以用于对齐阶段 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 用同一数据集跑两组 LoRA 参数(r/alpha/dropout)并比较效果。 +2. 设计“多任务 Adapter”策略:代码助手、文档写作、问答检索三类。 +3. 评估 LoRA 合并与不合并在部署效率和回滚成本上的差异。 + +### 交付物 +- 一份《LoRA 参数对比实验表》 +- 一份《Adapter 管理与发布规范》 + +### 自检清单 +- [ ] 能解释低秩分解为何节省训练成本 +- [ ] 能选择适合场景的 LoRA 参数范围 +- [ ] 能给出可落地的 adapter 版本管理策略 diff --git a/docs/learn/training/model-quantization.md b/docs/learn/training/model-quantization.md new file mode 100644 index 000000000..af4c9713e --- /dev/null +++ b/docs/learn/training/model-quantization.md @@ -0,0 +1,144 @@ + +# 模型量化:GPTQ/AWQ/GGUF + +一个 70B 参数的大模型,以 FP16 精度加载需要约 140GB 显存——这超过了绝大多数消费级显卡的容量。量化就像是给模型"瘦身",用更低的精度表示权重,让大模型可以跑在普通 GPU 甚至 CPU 上。 + +## 为什么需要量化? + +| 模型大小 | FP16 显存 | INT8 显存 | INT4 显存 | +|---------|----------|----------|----------| +| 7B | ~14 GB | ~7 GB | ~4 GB | +| 14B | ~28 GB | ~14 GB | ~8 GB | +| 70B | ~140 GB | ~70 GB | ~35 GB | + +量化的目标:**用尽可能少的精度损失换取大幅的显存和速度收益。** + +## 精度是什么? + +模型权重本质上是浮点数。不同精度用不同的位数来存储一个数字: + +``` +FP32 (32位): 1位符号 + 8位指数 + 23位尾数 → 精度最高,占用最大 +FP16 (16位): 1位符号 + 5位指数 + 10位尾数 → 训练和推理的常用精度 +INT8 (8位): 256 个整数值 → 显存减半,精度损失小 +INT4 (4位): 16 个整数值 → 显存降至 1/4,有一定精度损失 +``` + +## 主流量化方法对比 + +| 方法 | 类型 | 精度 | 速度 | 特点 | 适用场景 | +|------|------|------|------|------|---------| +| **GPTQ** | 训练后量化 | INT4/INT8 | 快(GPU) | 校准数据驱动,精度较好 | GPU 推理 | +| **AWQ** | 训练后量化 | INT4 | 快(GPU) | 保护重要权重,精度更优 | GPU 推理 | +| **GGUF** | 训练后量化 | 多种 | 适中 | CPU 友好,跨平台 | CPU/混合推理 | + +### GPTQ(GPU 量化首选) + +GPTQ 使用一小批校准数据来优化量化过程,逐层处理模型权重: + +```bash +# 使用 LMDeploy 进行 GPTQ 量化 +pip install lmdeploy + +# W4A16 量化(权重 INT4,激活 FP16) +lmdeploy lite auto_awq \ + internlm/internlm3-8b-instruct \ + --work-dir internlm3-8b-4bit +``` + +### AWQ(精度更优) + +AWQ(Activation-aware Weight Quantization)的核心思想:不是所有权重都同等重要,保护少数关键权重通道可以显著提升量化质量。 + +```python +from awq import AutoAWQForCausalLM +from transformers import AutoTokenizer + +model_path = "internlm/internlm3-8b-instruct" + +# 加载模型 +model = AutoAWQForCausalLM.from_pretrained(model_path) +tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True) + +# 执行 AWQ 量化 +model.quantize(tokenizer, quant_config={"w_bit": 4, "q_group_size": 128}) +model.save_quantized("internlm3-8b-awq") +``` + +### GGUF(CPU 部署之选) + +GGUF 是 llama.cpp 生态的量化格式,最大优势是**可以在纯 CPU 上运行**: + +```bash +# 使用 Ollama 直接运行 GGUF 模型 +ollama run internlm3:8b + +# 或者用 llama.cpp +./llama-cli -m internlm3-8b-Q4_K_M.gguf -p "你好" +``` + +GGUF 提供多种量化级别: + +| 量化类型 | 精度 | 模型大小 (7B) | 推荐场景 | +|---------|------|-------------|---------| +| Q8_0 | 8-bit | ~7.5 GB | 精度敏感任务 | +| Q5_K_M | 5-bit | ~5.0 GB | 平衡之选 | +| Q4_K_M | 4-bit | ~4.0 GB | 日常使用推荐 | +| Q2_K | 2-bit | ~2.7 GB | 极限压缩,精度下降明显 | + +## 使用 LMDeploy 量化部署 + +LMDeploy 是书生生态的推理部署框架,支持高效的 W4A16 量化: + +```python +from lmdeploy import pipeline, TurbomindEngineConfig + +# 加载 4-bit 量化模型 +engine_config = TurbomindEngineConfig(model_format="awq") +pipe = pipeline("internlm/internlm3-8b-instruct-awq", backend_config=engine_config) + +response = pipe(["介绍一下量化技术"]) +print(response[0].text) +``` + +## 量化对性能的影响 + +以 InternLM3-8B 为例(参考值): + +| 指标 | FP16 | INT8 | INT4 (AWQ) | +|------|------|------|-----------| +| 显存占用 | 16 GB | 8 GB | 5 GB | +| 推理速度 | 基准 | ~1.2x | ~1.5x | +| MMLU 精度 | 72.1 | 71.8 | 71.2 | +| 精度损失 | - | <0.5% | <1.5% | + +关键结论:**INT4 量化在保持 98%+ 精度的同时,显存降低 70%,速度提升 50%。** + +## 如何选择? + +- **有 GPU、追求精度** → AWQ 或 GPTQ +- **需要 CPU 部署** → GGUF +- **显存有限但需要好效果** → AWQ INT4 +- **嵌入式/边缘设备** → GGUF Q4_K_M + +## 下一步 + +- 学习 [Transformer 架构](/zh/learn/transformer),理解模型权重的来源 +- 了解 [评测基准](/zh/learn/evaluation-benchmarks),衡量量化对模型能力的影响 +- 探索 [AI Agent](/zh/learn/ai-agent),用量化模型搭建轻量级智能体 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 对同一模型分别做 FP16、INT8、INT4 推理测试并记录性能差异。 +2. 以实际硬件为约束给出“量化方案选型表”(显存、速度、精度)。 +3. 评估量化后在真实问答集上的精度下降幅度。 + +### 交付物 +- 一份《量化性能对比表(吞吐/延迟/显存)》 +- 一份《部署选型建议(GPU/CPU)》 + +### 自检清单 +- [ ] 能解释量化为何提升部署效率 +- [ ] 能在精度与成本之间做权衡 +- [ ] 能给出场景化量化策略 diff --git a/docs/learn/training/pretraining.md b/docs/learn/training/pretraining.md new file mode 100644 index 000000000..49c397892 --- /dev/null +++ b/docs/learn/training/pretraining.md @@ -0,0 +1,128 @@ + +# 预训练:从零训练大模型 + +预训练是大语言模型诞生的第一步。一个模型从"一无所知"到"博览群书",靠的就是在海量文本上进行预训练。 + +## 直觉理解:完形填空的超级版本 + +小学时你做过完形填空——根据上下文猜一个词。预训练的核心思想类似,但更简单:**给定前面的所有文字,预测下一个词**。 + +``` +输入:今天天气真 +模型预测:好(概率 0.42)、不错(概率 0.31)、差(概率 0.05)... +``` + +这个任务叫做 **Next Token Prediction(下一个 Token 预测)**。模型通过数万亿次这样的预测练习,逐渐学会了语法、常识、推理甚至代码编写能力。 + +## 核心概念 + +### 1. 自回归语言建模 + +预训练的目标函数非常直觉:最大化给定上文时下一个 Token 的概率。 + +``` +L = -sum( log P(x_t | x_1, x_2, ..., x_{t-1}) ) +``` + +模型一次只预测一个 Token,但通过因果注意力(Causal Attention),每个位置的 Token 可以同时计算损失,训练效率很高。 + +### 2. 预训练数据 + +预训练数据的规模和质量直接决定模型能力。典型的预训练数据组成: + +| 数据来源 | 占比 | 作用 | +|---------|------|------| +| 网页(Common Crawl 等) | 60-70% | 通用知识、语言能力 | +| 书籍 | 10-15% | 深度知识、长文本理解 | +| 代码(GitHub 等) | 10-15% | 代码生成、逻辑推理 | +| 论文(arXiv 等) | 3-5% | 科学知识、数学能力 | +| 百科(Wikipedia 等) | 3-5% | 事实性知识 | + +数据清洗是预训练中最耗时的工程之一,包括去重、过滤低质量文本、去除有害内容等。 + +### 3. 计算资源需求 + +预训练是一项昂贵的工程。以 InternLM3-8B 为参考: + +| 项目 | 量级 | +|------|------| +| 模型参数量 | 80 亿 | +| 训练数据量 | 数万亿 Token | +| GPU 数量 | 数百张 A100/H100 | +| 训练时间 | 数周到数月 | + +Scaling Laws 告诉我们:模型参数量、数据量和计算量三者之间存在幂律关系,需要协调增长才能获得最优性能。 + +## 实践示例:理解训练过程 + +虽然我们很难在本地从头预训练一个大模型,但可以理解其核心代码结构: + +```python +import torch +from transformers import AutoModelForCausalLM, AutoTokenizer + +# 加载预训练模型(体验推理过程) +model_name = "internlm/internlm3-8b" +tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) +model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True) + +# 预训练的本质:给定前文,预测下一个 Token +text = "人工智能的发展" +inputs = tokenizer(text, return_tensors="pt") + +with torch.no_grad(): + outputs = model(**inputs) + # outputs.logits 的最后一个位置就是对下一个 Token 的预测 + next_token_logits = outputs.logits[0, -1, :] + next_token_id = torch.argmax(next_token_logits).item() + print(f"预测的下一个 Token:{tokenizer.decode(next_token_id)}") +``` + +### 训练循环的核心逻辑 + +```python +# 简化的预训练循环(伪代码) +for batch in dataloader: + input_ids = batch["input_ids"] # [batch_size, seq_len] + + outputs = model(input_ids) + # 将预测值与右移一位的标签对比 + logits = outputs.logits[:, :-1, :] # 预测位置 + labels = input_ids[:, 1:] # 目标位置 + + loss = cross_entropy(logits, labels) + loss.backward() + optimizer.step() +``` + +## 书生生态中的预训练 + +**InternLM3** 系列是书生体系的核心语言模型,预训练过程具有以下特点: + +- **高质量数据**:精心筛选的中英文混合语料,代码和学术数据占比较高 +- **长上下文**:支持 32K 甚至更长的上下文窗口 +- **多阶段训练**:先在通用数据上训练,再在高质量数据上退火(annealing),提升能力密度 +- **开源开放**:模型权重和技术报告完全开源 + +预训练结束后的模型叫做 **Base Model(基座模型)**。它能接话、补全文本,但还不擅长对话和遵循指令——这就需要下一步的 **SFT(有监督微调)** 来解决。 + +## 下一步 + +- [SFT 有监督微调](/docs/learn/sft) — 如何让基座模型学会对话和遵循指令 +- [Transformer 架构](/docs/learn/transformer) — 回顾预训练模型的底层架构 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 设计一个小规模预训练数据清洗流程(去重、去噪、质量分层)。 +2. 基于公开语料估算训练 token 总量与预算区间。 +3. 写出一份“预训练风险清单”(数据偏差、版权、安全)。 + +### 交付物 +- 一份《预训练数据流程图》 +- 一份《训练预算估算表(算力/时长/成本)》 + +### 自检清单 +- [ ] 能解释预训练目标函数的基本思想 +- [ ] 能说明数据质量对模型能力上限的影响 +- [ ] 能列出至少 3 个训练阶段关键风险 diff --git a/docs/learn/training/rlhf.md b/docs/learn/training/rlhf.md new file mode 100644 index 000000000..c9fa997c5 --- /dev/null +++ b/docs/learn/training/rlhf.md @@ -0,0 +1,151 @@ + +# RLHF 与 DPO:人类偏好对齐 + +经过预训练和 SFT,模型已经能对话了。但它有时会"胡说八道"、给出不安全的内容、或者用一堆正确但无用的废话敷衍你。**对齐(Alignment)** 技术就是教模型"什么样的回答才是好的"。 + +## 为什么需要对齐? + +SFT 模型的问题可以用一个例子说明: + +``` +用户:如何做一顿健康的早餐? + +SFT 模型(可能的回答): +"早餐是一天中最重要的一餐。关于健康早餐,有很多方面需要考虑。 +首先,营养均衡很重要。其次,控制热量也很关键。然后..." +(正确但啰嗦、没有实用信息) + +对齐后的模型(期望的回答): +"这里是一份简单的健康早餐方案: +1. 全麦面包 2 片 + 鸡蛋 1 个(蛋白质 + 碳水) +2. 一杯牛奶或无糖酸奶(钙质) +3. 一份水果(维生素) +准备时间约 10 分钟,总热量约 400 大卡。" +``` + +对齐的三个目标(3H 原则): +- **Helpful(有帮助)**:直接回答问题,给出实用信息 +- **Harmless(无害)**:拒绝有害请求,不输出危险内容 +- **Honest(诚实)**:不编造事实,对不确定的事情承认局限 + +## RLHF:基于人类反馈的强化学习 + +RLHF(Reinforcement Learning from Human Feedback)是 OpenAI 在 ChatGPT 中使用的经典对齐方法,分为三个阶段。 + +### 第一步:收集人类偏好数据 + +让 SFT 模型对同一个问题生成多个回答,然后由人类标注员排序: + +``` +问题:Python 和 JavaScript 哪个更适合初学者? + +回答 A:Python 更适合初学者,因为语法简洁... (详细对比) +回答 B:两者都可以学。 (过于简短) +回答 C:推荐 Python。参考 www.xxx.com... (含可疑链接) + +人类排序:A > B > C +``` + +### 第二步:训练奖励模型(Reward Model) + +用偏好数据训练一个"打分器",让它学会区分好回答和差回答: + +```python +# 奖励模型的训练目标(简化) +# 对于偏好对 (chosen, rejected): +loss = -log(sigmoid(reward(chosen) - reward(rejected))) +``` + +奖励模型本质上是在学习人类的偏好标准。 + +### 第三步:PPO 强化学习优化 + +用奖励模型的分数作为反馈信号,通过 PPO(Proximal Policy Optimization)算法优化 LLM: + +``` +目标:最大化 reward(response) - beta * KL(policy || reference) +``` + +- **reward(response)**:奖励模型给回答的打分 +- **KL 散度惩罚**:防止模型为了拿高分而偏离 SFT 模型太远("奖励 hack") + +## DPO:直接偏好优化 + +DPO(Direct Preference Optimization)是 2023 年提出的简化方案,跳过了奖励模型和强化学习。 + +### 核心思想 + +DPO 直接用偏好数据优化语言模型,只需一个损失函数: + +```python +# DPO 损失函数(简化) +# pi: 当前策略模型, ref: 参考模型(SFT 模型) +loss = -log(sigmoid( + beta * (log(pi(chosen)/ref(chosen)) - log(pi(rejected)/ref(rejected))) +)) +``` + +直觉理解:让模型学会给"好回答"更高的概率、给"差回答"更低的概率,同时不偏离参考模型太远。 + +### RLHF vs DPO 对比 + +| 维度 | RLHF (PPO) | DPO | +|------|-----------|-----| +| 训练阶段 | 3 个(SFT + RM + PPO) | 1 个(直接优化) | +| 是否需要奖励模型 | 需要单独训练 | 不需要 | +| 实现复杂度 | 高(RL 调参困难) | 低(标准监督学习) | +| 训练稳定性 | 较低,容易崩溃 | 较高 | +| 内存开销 | 大(需同时加载多个模型) | 小(只需 2 个模型) | +| 最终效果 | 略优(理论上限更高) | 接近 RLHF | + +由于 DPO 的简洁高效,它已成为当前最流行的对齐方法之一。 + +## 实践示例:偏好数据的格式 + +无论 RLHF 还是 DPO,都需要偏好数据。标准格式如下: + +```json +{ + "prompt": "请推荐一本适合编程初学者的书", + "chosen": "推荐《Python Crash Course》。这本书从基础语法讲起,每章都有实战项目(游戏、数据可视化、Web 应用),非常适合零基础读者。中文版叫《Python 编程:从入门到实践》。", + "rejected": "你可以看看网上的教程,有很多资源可以学习编程。" +} +``` + +## 对齐的效果 + +对齐前后的模型在评测中表现差异明显: + +| 评测维度 | SFT 模型 | 对齐后模型 | +|---------|---------|-----------| +| 指令遵循 | 中等 | 显著提升 | +| 回答质量 | 基本可用 | 简洁准确 | +| 安全拒答 | 较弱 | 大幅提升 | +| 用户满意度 | 一般 | 高 | + +## 书生生态中的对齐 + +- **InternLM3-8B-Instruct** 在 SFT 之后还经过了对齐训练,这也是 Instruct 版本比 Base 版本更好用的核心原因 +- 书生生态的 **XTuner** 工具已支持 DPO 训练流程 +- **OpenCompass** 评测体系可以量化对齐效果,包括指令遵循、安全性等多个维度 + +## 下一步 + +- [LoRA 与参数高效微调](/docs/learn/lora) — 用更少的资源完成 SFT 和对齐 +- [预训练:从零训练大模型](/docs/learn/pretraining) — 回顾对齐之前的预训练阶段 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 构造 30 组偏好对(chosen/rejected),覆盖正确性与安全性两个维度。 +2. 分别设计 RLHF 和 DPO 的实验方案,比较实现复杂度与训练稳定性。 +3. 总结一份“对齐后收益与副作用”观察表(如保守化、风格收敛)。 + +### 交付物 +- 一份《偏好数据标注规范》 +- 一份《RLHF vs DPO 方案对比报告》 + +### 自检清单 +- [ ] 能解释奖励模型在 RLHF 中的作用 +- [ ] 能说明 DPO 为何能绕开 PPO 复杂流程 +- [ ] 能识别对齐过度带来的能力损失风险 diff --git a/docs/learn/training/sft.md b/docs/learn/training/sft.md new file mode 100644 index 000000000..6d8b06240 --- /dev/null +++ b/docs/learn/training/sft.md @@ -0,0 +1,150 @@ + +# SFT 有监督微调 + +SFT(Supervised Fine-Tuning,有监督微调)是将预训练的基座模型"教会"对话和遵循指令的关键步骤。 + +## 直觉理解:从"学霸"到"好老师" + +预训练好的基座模型像一个读过无数书的学霸——他知识渊博,但如果你问他一个问题,他可能不会好好回答,而是开始"续写"你的话。 + +``` +用户:请解释量子力学 +基座模型:是物理学的一个重要分支,研究微观粒子的运动规律。量子力学的发展始于... +(像百科全书一样续写,而不是在"对话") +``` + +SFT 就是请一批"教师"示范标准对话,让模型学会:**收到指令 -> 给出高质量回答**。 + +## 核心概念 + +### 1. 指令数据格式 + +SFT 的训练数据是"指令-回答"对,通常遵循以下格式: + +```json +{ + "instruction": "请用通俗的语言解释量子力学", + "input": "", + "output": "量子力学是研究极小粒子(如电子、光子)行为规律的物理学分支。在这个微观世界里,粒子的行为和我们日常生活中的物体很不一样..." +} +``` + +有些任务需要额外的输入上下文: + +```json +{ + "instruction": "将以下英文翻译为中文", + "input": "The quick brown fox jumps over the lazy dog.", + "output": "那只敏捷的棕色狐狸跳过了那只懒狗。" +} +``` + +### 2. 对话模板 + +现代 LLM 使用特定的对话模板区分不同角色。以 InternLM 为例: + +``` +<|im_start|>system +你是一个有帮助的AI助手。<|im_end|> +<|im_start|>user +请解释量子力学<|im_end|> +<|im_start|>assistant +量子力学是...<|im_end|> +``` + +SFT 时只对 **assistant** 部分的 Token 计算损失,让模型学习生成回答,而不是模仿用户提问。 + +### 3. 全量微调 vs 参数高效微调 + +| 方式 | 训练参数 | 显存需求 | 效果 | 适用场景 | +|------|---------|---------|------|---------| +| 全量微调 | 全部参数 | 极高(8B 模型约需 80GB+) | 最佳 | 资源充足、追求最佳效果 | +| LoRA | 约 0.1-1% 参数 | 较低(8B 模型约需 24GB) | 接近全量 | 资源有限、快速实验 | +| QLoRA | 约 0.1-1% 参数 | 更低(8B 模型约需 12GB) | 接近 LoRA | 消费级 GPU | + +详细的参数高效微调方法参见 [LoRA 与参数高效微调](/docs/learn/lora)。 + +## 实践示例:使用 XTuner 微调 InternLM + +[XTuner](https://github.com/InternLM/xtuner) 是书生生态的微调工具,支持全量微调和 LoRA/QLoRA。 + +### 准备配置文件 + +```python +# internlm3_8b_chat_sft.py — XTuner 配置示例(简化版) +from xtuner.dataset import process_hf_dataset +from xtuner.model import SupervisedFineTune + +# 模型 +pretrained_model_name_or_path = "internlm/internlm3-8b" + +# 训练参数 +batch_size = 1 +accumulative_counts = 16 +lr = 2e-5 +max_epochs = 3 + +# 数据集(Alpaca 格式) +dataset = dict( + type=process_hf_dataset, + dataset=dict(type="json", data_files="my_sft_data.json"), + max_length=2048, +) + +# 微调方式:全量微调 +model = dict( + type=SupervisedFineTune, + llm=dict(type="AutoModelForCausalLM", pretrained_model_name_or_path=pretrained_model_name_or_path), +) +``` + +### 启动训练 + +```bash +# 使用 XTuner 启动 SFT +xtuner train internlm3_8b_chat_sft.py + +# 合并 adapter(如果使用 LoRA) +xtuner convert merge \ + internlm/internlm3-8b \ + work_dirs/internlm3_8b_chat_sft/epoch_3.pth \ + merged_model/ +``` + +## 微调的注意事项 + +| 常见问题 | 原因 | 解决方案 | +|---------|------|---------| +| 灾难性遗忘 | 微调数据分布与预训练差异大 | 混入通用数据、降低学习率 | +| 过拟合 | 数据量太少或训练轮数太多 | 早停、增加数据多样性 | +| 回答质量不稳定 | 训练数据质量参差不齐 | 人工审核数据、统一格式 | +| 回答过短/过长 | 训练数据长度分布不均 | 控制数据中回答的长度分布 | + +## 书生生态中的 SFT + +- **InternLM3-8B-Instruct**:基于 InternLM3-8B 基座模型,经过大规模高质量 SFT 数据微调 +- **XTuner**:一站式微调框架,内置多种对话模板和数据处理流水线 +- 书生社区提供开源的 SFT 数据集和微调教程,帮助开发者快速上手 + +SFT 让模型学会了对话,但模型的回答可能仍存在"说废话"、"不够安全"等问题。这就需要进一步的 **对齐(Alignment)** 技术。 + +## 下一步 + +- [RLHF 与 DPO:人类偏好对齐](/docs/learn/rlhf) — 如何让模型的回答更符合人类偏好 +- [LoRA 与参数高效微调](/docs/learn/lora) — 用更少的资源完成微调 + +## 进阶实践(Intern-S1-Pro 专题) + +### 实战任务 +1. 构建一个 100 条指令数据的小样本集(问答、总结、改写三类)。 +2. 设计并对比两种对话模板,观察回答风格与可控性差异。 +3. 输出一份 SFT 数据质量检查规则(重复、冲突、低质样本)。 + +### 交付物 +- 一份《SFT 数据样例集(JSON/JSONL)》 +- 一份《SFT 训练配置与参数说明》 + +### 自检清单 +- [ ] 能写出符合规范的指令数据格式 +- [ ] 能说明 SFT 与预训练目标的差异 +- [ ] 能识别常见数据污染与风格漂移问题 diff --git a/docs/learn/tutorials/a100-internvl-u.md b/docs/learn/tutorials/a100-internvl-u.md new file mode 100644 index 000000000..75f86573e --- /dev/null +++ b/docs/learn/tutorials/a100-internvl-u.md @@ -0,0 +1,371 @@ + +# 在 A100 GPU 上部署 InternVL-U + +本教程基于 InternStudio 开发机实战,手把手带你在 NVIDIA A100 GPU 上完成 InternVL-U 4B 模型的全能力部署,包括文本对话、文生图、图片编辑三大功能。 + +## 前置条件 + +| 项目 | 要求 | +|------|------| +| 硬件 | NVIDIA A100(80 GB),推荐 InternStudio GPU 开发机 | +| 驱动 | CUDA 12.x + cuDNN 8.x | +| Python | 3.10+ | +| 磁盘 | >= 20 GB(模型 ~8.2 GB + 依赖) | + +## Step 1:环境准备 + +### 1.1 验证 GPU 可用 + +```bash +nvidia-smi +# 确认看到 A100 设备 + +python3 -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))" +# 期望输出: True NVIDIA A100-SXM4-80GB +``` + +### 1.2 安装依赖 + +```bash +pip install fastapi uvicorn pillow modelscope transformers accelerate flash-attn +``` + +> **flash-attn** 是 InternVL-U 图像生成的加速组件,A100 上可直接安装。如果安装失败,可参考 [昇腾 NPU 部署教程](/zh/docs/learn/ascend-internvl-u) 中的 SDPA Fallback Patch 方案作为替代。 + +## Step 2:下载模型 + +HuggingFace 在国内网络不可用,使用 ModelScope 镜像下载: + +```bash +python3 -c " +from modelscope import snapshot_download +snapshot_download('OpenGVLab/InternVL-U', local_dir='/root/models/OpenGVLab/InternVL-U') +" +``` + +模型约 8.2 GB,下载完成后目录结构: + +``` +/root/models/OpenGVLab/InternVL-U/ +├── config.json +├── model-*.safetensors +├── tokenizer.json +└── ... +``` + +> 如果可以访问 HuggingFace,也可以使用: +> ```bash +> pip install huggingface_hub +> huggingface-cli download OpenGVLab/InternVL-U --local-dir /root/models/OpenGVLab/InternVL-U +> ``` + +## Step 3:验证模型加载 + +```python +import torch +from internvlu.pipeline_internvlu import InternVLUPipeline + +pipe = InternVLUPipeline.from_pretrained( + '/root/models/OpenGVLab/InternVL-U', + torch_dtype=torch.bfloat16 +) +pipe = pipe.to("cuda:0") + +print(f"GPU 显存占用: {torch.cuda.memory_allocated(0)/1e9:.1f} GB") +# 期望输出: GPU 显存占用: 8.6 GB +``` + +> 注意:需要将 InternVL-U 的 `internvlu` 包放在 Python Path 中。如果你用 `git clone` 下载了完整仓库,可以 `cd InternVL-U-2` 或者 `sys.path.insert(0, '/root/InternVL-U-2')`。 + +## Step 4:测试三大能力 + +### 4.1 文本对话 + +```python +result = pipe(prompt="你好,用一句话介绍你自己", generation_mode="text") +text = pipe.tokenizer.decode(result.generate_output[0], skip_special_tokens=True) +print(text) +# 输出: 你好,我是书生·浦语,来自上海人工智能实验室... +``` + +> **注意**:pipeline 返回的是 token IDs tensor,需要用 `pipe.tokenizer.decode()` 解码为文本。 + +### 4.2 文生图 + +```python +from PIL import Image + +result = pipe( + prompt="一只穿着宇航服的猫咪在太空中漫步,背景是星云", + generation_mode="image", + height=512, width=512, + num_inference_steps=30, + all_cfg_scale=4.5 +) +result.images[0].save("cat_space.png") +# 512x512 生成约 3.5 秒 +``` + +### 4.3 图片编辑 + +```python +source = Image.open("input.png").convert("RGB") + +result = pipe( + prompt="把背景换成海滩", + image=source, + generation_mode="image", + height=512, width=512, + num_inference_steps=30, + all_cfg_scale=4.5 +) +result.images[0].save("edited.png") +``` + +## Step 5:搭建 FastAPI 服务 + +创建 `/root/api_server.py`,将模型封装为 REST API: + +```python +#!/usr/bin/env python3 +"""InternVL-U FastAPI server for A100 GPU.""" +import os, sys, time, base64, io, traceback +import torch + +from internvlu.pipeline_internvlu import InternVLUPipeline +from PIL import Image +from fastapi import FastAPI, Request +from fastapi.responses import JSONResponse +import uvicorn + +app = FastAPI(title="InternVL-U API") +pipe = None +API_KEY = os.environ.get("API_KEY", "") + +def get_pipe(): + global pipe + if pipe is None: + print("[INIT] Loading InternVL-U pipeline on GPU...") + t0 = time.time() + pipe = InternVLUPipeline.from_pretrained( + '/root/models/OpenGVLab/InternVL-U', torch_dtype=torch.bfloat16 + ) + pipe = pipe.to("cuda:0") + print(f"[INIT] Pipeline ready in {time.time()-t0:.1f}s, " + f"GPU mem: {torch.cuda.memory_allocated(0)/1e9:.1f} GB") + return pipe + +@app.on_event("startup") +async def startup(): + get_pipe() + +@app.middleware("http") +async def check_api_key(request: Request, call_next): + if API_KEY and request.url.path != "/health": + key = request.headers.get("X-API-Key", "") + if key != API_KEY: + return JSONResponse({"error": "Unauthorized"}, status_code=401) + return await call_next(request) + +@app.get("/health") +def health(): + return {"status": "ok", "device": "a100-gpu", "model": "InternVL-U-4B"} + +@app.post("/v1/chat") +async def chat(request: Request): + body = await request.json() + messages = body.get("messages", []) + if not messages: + return JSONResponse({"error": "No messages"}, status_code=400) + + p = get_pipe() + last = messages[-1] + prompt = last.get("content", "") + image = None + if last.get("image"): + image = Image.open(io.BytesIO(base64.b64decode(last["image"]))).convert("RGB") + + t0 = time.time() + try: + result = p( + prompt=prompt, image=image, generation_mode="text", + max_new_tokens=body.get("max_new_tokens", 2048), + temperature=body.get("temperature", 0.7) + ) + if hasattr(result, 'generate_output') and result.generate_output is not None: + text = p.tokenizer.decode(result.generate_output[0], skip_special_tokens=True) + elif isinstance(result, str): + text = result + else: + text = str(result) + print(f"[CHAT] {time.time()-t0:.1f}s, prompt={prompt[:50]}") + return {"ok": True, "text": text} + except Exception as e: + traceback.print_exc() + return JSONResponse({"error": str(e)}, status_code=500) + +@app.post("/v1/generate") +async def generate(request: Request): + body = await request.json() + prompt = body.get("prompt", "") + if not prompt: + return JSONResponse({"error": "No prompt"}, status_code=400) + + p = get_pipe() + width = min(body.get("width", 512), 1024) + height = min(body.get("height", 512), 1024) + + t0 = time.time() + try: + result = p( + prompt=prompt, generation_mode="image", + height=height, width=width, + num_inference_steps=30, all_cfg_scale=4.5 + ) + if hasattr(result, 'images') and result.images: + buf = io.BytesIO() + result.images[0].save(buf, format="PNG") + img_b64 = base64.b64encode(buf.getvalue()).decode() + print(f"[GEN] {time.time()-t0:.1f}s, {width}x{height}, prompt={prompt[:50]}") + return {"ok": True, "image": img_b64} + return JSONResponse({"error": "No image generated"}, status_code=500) + except Exception as e: + traceback.print_exc() + return JSONResponse({"error": str(e)}, status_code=500) + +@app.post("/v1/edit") +async def edit(request: Request): + body = await request.json() + prompt = body.get("prompt", "") + image_b64 = body.get("image", "") + if not prompt or not image_b64: + return JSONResponse({"error": "prompt and image required"}, status_code=400) + + p = get_pipe() + source = Image.open(io.BytesIO(base64.b64decode(image_b64))).convert("RGB") + + t0 = time.time() + try: + result = p( + prompt=prompt, image=source, generation_mode="image", + height=512, width=512, + num_inference_steps=30, all_cfg_scale=4.5 + ) + if hasattr(result, 'images') and result.images: + buf = io.BytesIO() + result.images[0].save(buf, format="PNG") + img_b64_out = base64.b64encode(buf.getvalue()).decode() + print(f"[EDIT] {time.time()-t0:.1f}s, prompt={prompt[:50]}") + return {"ok": True, "image": img_b64_out} + return JSONResponse({"error": "No image generated"}, status_code=500) + except Exception as e: + traceback.print_exc() + return JSONResponse({"error": str(e)}, status_code=500) + +if __name__ == "__main__": + uvicorn.run(app, host="0.0.0.0", port=8000, log_level="info") +``` + +启动服务: + +```bash +nohup python3 /root/api_server.py > /root/api_server.log 2>&1 & +``` + +验证: + +```bash +curl http://localhost:8000/health +# {"status":"ok","device":"a100-gpu","model":"InternVL-U-4B"} + +curl -X POST http://localhost:8000/v1/chat \ + -H 'Content-Type: application/json' \ + -d '{"messages":[{"role":"user","content":"hello"}]}' +# {"ok":true,"text":"Hello! How can I assist you today?..."} +``` + +## Step 6:配置公网访问(可选) + +InternStudio 开发机没有公网 IP,需要通过 SSH 隧道暴露服务。 + +假设你有一台公网服务器 `YOUR_SERVER_IP`: + +```bash +# 在公网服务器上执行,将 8100 端口转发到 A100 的 8000 端口 +sshpass -p '' \ + ssh -N -L 0.0.0.0:8100:localhost:8000 \ + -p root@ \ + -o StrictHostKeyChecking=no \ + -o ServerAliveInterval=30 \ + -o ServerAliveCountMax=3 \ + -o ExitOnForwardFailure=yes +``` + +验证公网可达: + +```bash +curl http://YOUR_SERVER_IP:8100/health +# {"status":"ok","device":"a100-gpu","model":"InternVL-U-4B"} +``` + +> 建议用 `nohup` 或 `tmux` 保持隧道常驻。 + +## 性能参考 + +以下数据基于 A100 80GB 实测: + +| 能力 | 参数 | 耗时 | 备注 | +|------|------|------|------| +| 文本对话 | 短文本 ~64 tokens | ~1.6 秒 | FlashAttention2 加速 | +| 文生图 | 512x512, 30 steps | ~3.5 秒 | 热启动后稳定 | +| 图片编辑 | 512x512, 30 steps | ~3.5 秒 | 与生图速度一致 | +| 图像理解 | 1024x1024 输入 | ~3 秒 | 包含图片编码 | + +### 与昇腾 NPU 对比 + +| 指标 | A100 (CUDA) | 昇腾 NPU (SDPA) | +|------|-------------|-----------------| +| 文生图 512x512 | ~3.5 秒 | ~5.5 秒 | +| 文本对话 | ~1.6 秒 | ~3-5 秒 | +| 显存占用 | 8.6 GB | 8.6 GB | +| Attention 实现 | FlashAttention2 原生 | SDPA Fallback | + +> A100 使用原生 FlashAttention2,性能更优。昇腾 NPU 部署教程请参考 [在昇腾 NPU 上部署 InternVL-U](/zh/docs/learn/ascend-internvl-u)。 + +## 常见问题 + +### Q: flash-attn 安装失败 + +flash-attn 需要 CUDA 编译,安装时间较长(约 10 分钟)。如果失败: + +```bash +# 确保 CUDA toolkit 已安装 +nvcc --version + +# 指定 CUDA 架构编译 +TORCH_CUDA_ARCH_LIST="8.0" pip install flash-attn --no-build-isolation +``` + +如果仍然失败,可以使用 SDPA Fallback Patch 方案,参考 [昇腾 NPU 教程](/zh/docs/learn/ascend-internvl-u) 中的 Step 3。 + +### Q: CUDA Out of Memory + +InternVL-U 4B 仅需 8.6 GB 显存,A100 80GB 有充足余量。如果出现 OOM: + +- 检查是否有其他进程占用 GPU:`nvidia-smi` +- 确保使用 `bfloat16`:`torch_dtype=torch.bfloat16` + +### Q: 生成图片质量不好 + +- 增加推理步数:`num_inference_steps=50`(更慢但更精细) +- 调整 CFG 引导强度:`all_cfg_scale=7.0`(更高 = 更忠实于 Prompt) +- 描述尽量具体:主体 + 风格 + 色调 + 构图 + 光影 + 背景 + +## 总结 + +A100 GPU 是部署 InternVL-U 的最佳选择: + +1. **原生 FlashAttention2**:无需任何 Patch,开箱即用 +2. **性能最优**:文生图 512x512 仅需 ~3.5 秒 +3. **显存充裕**:8.6 GB / 80 GB,可同时部署多个模型 +4. **生态成熟**:CUDA 驱动、PyTorch、所有依赖均原生支持 diff --git a/docs/learn/tutorials/ascend-internvl-u.md b/docs/learn/tutorials/ascend-internvl-u.md new file mode 100644 index 000000000..c8b25e752 --- /dev/null +++ b/docs/learn/tutorials/ascend-internvl-u.md @@ -0,0 +1,528 @@ + +# 在昇腾 NPU 上部署 InternVL-U + +本教程基于 InternStudio 开发机实战,手把手带你在华为昇腾 NPU 上完成 InternVL-U 4B 模型的全能力部署,包括文本对话、文生图、图片编辑三大功能。 + +## 前置条件 + +| 项目 | 要求 | +|------|------| +| 硬件 | 华为昇腾 Atlas 800T A2(64 GB HBM),推荐 InternStudio Ascend 开发机 | +| 驱动 | CANN 25.x + torch_npu 2.6.0+ | +| Python | 3.10+ | +| 磁盘 | ≥ 20 GB(模型 ~8.2 GB + 依赖) | + +## Step 1:环境准备 + +### 1.1 初始化 Ascend 驱动环境 + +每次开启终端时需执行: + +```bash +export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:\ +/usr/local/Ascend/driver/lib64/common:\ +/usr/local/Ascend/driver/lib64/driver:\ +$LD_LIBRARY_PATH + +source /usr/local/Ascend/ascend-toolkit/set_env.sh +``` + +> 建议将以上内容写入 `~/.bashrc`,避免每次手动执行。 + +### 1.2 验证 NPU 可用 + +```bash +python3 -c "import torch, torch_npu; print(torch_npu.npu.is_available())" +# 期望输出: True +``` + +### 1.3 安装 InternVL-U 及依赖 + +InternVL-U 需要从源码安装: + +```bash +# 克隆 InternVL-U 仓库 +cd /root +git clone https://github.com/OpenGVLab/InternVL-U.git +cd InternVL-U + +# 安装依赖(注意:不要安装 flash_attn,昇腾不支持) +pip install -e . --no-deps +pip install fastapi uvicorn pillow modelscope transformers accelerate +pip install diffusers sentencepiece tiktoken einops timm +``` + +> **重要**:如果 `pip install -e .` 尝试安装 `flash_attn` 并报错,使用 `--no-deps` 跳过,然后手动安装其他依赖。 + +### 1.4 确认安装成功 + +```bash +python3 -c "import internvlu; print('internvlu 安装成功')" +``` + +如果报 `ModuleNotFoundError`,检查是否在 InternVL-U 目录下执行了 `pip install -e .`。 + +## Step 2:下载模型 + +HuggingFace 在国内网络不可用,使用 ModelScope 镜像下载: + +```bash +# 方式一:ModelScope 下载 +python3 -c " +from modelscope import snapshot_download +snapshot_download('OpenGVLab/InternVL-U', local_dir='/root/models/OpenGVLab/InternVL-U') +" + +# 方式二:如果 ModelScope 也很慢,使用 HF Mirror +HF_ENDPOINT=https://hf-mirror.com python3 -c " +from huggingface_hub import snapshot_download +snapshot_download('OpenGVLab/InternVL-U', local_dir='/root/models/OpenGVLab/InternVL-U') +" +``` + +模型约 8.2 GB,下载完成后目录结构: + +``` +/root/models/OpenGVLab/InternVL-U/ +├── config.json +├── model-*.safetensors +├── tokenizer.json +└── ... +``` + +## Step 3:编写 SDPA Fallback Patch + +**核心问题**:InternVL-U 的图像生成(Diffusion)路径硬编码依赖 `flash_attn` 库,该库仅支持 CUDA,无法在昇腾 NPU 上安装。 + +**解决方案**:编写 Monkey Patch,用 PyTorch 原生 `F.scaled_dot_product_attention` 替代 `flash_attn` 的所有函数。 + +创建 `/root/flash_attn_sdpa_patch.py`: + +```python +""" +SDPA fallback patch for InternVL-U on Ascend NPU (no flash_attn). +Monkey-patches flash_attn functions with F.scaled_dot_product_attention equivalents. +""" +import math +import torch +import torch.nn.functional as F + + +def flash_attn_func(q, k, v, dropout_p=0.0, softmax_scale=None, causal=False, **kwargs): + """替代 flash_attn_func。 + Input/Output: (batch, seqlen, nheads, head_dim) + """ + batch, seqlen, nheads, head_dim = q.shape + q = q.transpose(1, 2) # -> (batch, nheads, seqlen, head_dim) + k = k.transpose(1, 2) + v = v.transpose(1, 2) + + if softmax_scale is not None: + q = q * (softmax_scale * math.sqrt(head_dim)) + + out = F.scaled_dot_product_attention(q, k, v, dropout_p=0.0, is_causal=causal) + return out.transpose(1, 2).contiguous() + + +def flash_attn_varlen_func(q, k, v, cu_seqlens_q, cu_seqlens_k, + max_seqlen_q, max_seqlen_k, + dropout_p=0.0, softmax_scale=None, causal=False, **kwargs): + """替代 flash_attn_varlen_func。 + Input/Output: (total_tokens, nheads, head_dim) packed variable-length + """ + nheads = q.shape[1] + head_dim = q.shape[2] + batch_size = cu_seqlens_q.shape[0] - 1 + + # 将不等长序列 padding 到统一长度 + q_padded = q.new_zeros(batch_size, max_seqlen_q, nheads, head_dim) + k_padded = k.new_zeros(batch_size, max_seqlen_k, nheads, head_dim) + v_padded = v.new_zeros(batch_size, max_seqlen_k, nheads, head_dim) + attn_mask = q.new_zeros(batch_size, max_seqlen_k, dtype=torch.bool) + + for i in range(batch_size): + sq = (cu_seqlens_q[i + 1] - cu_seqlens_q[i]).item() + sk = (cu_seqlens_k[i + 1] - cu_seqlens_k[i]).item() + q_padded[i, :sq] = q[cu_seqlens_q[i]:cu_seqlens_q[i + 1]] + k_padded[i, :sk] = k[cu_seqlens_k[i]:cu_seqlens_k[i + 1]] + v_padded[i, :sk] = v[cu_seqlens_k[i]:cu_seqlens_k[i + 1]] + attn_mask[i, sk:] = True + + q_padded = q_padded.transpose(1, 2) + k_padded = k_padded.transpose(1, 2) + v_padded = v_padded.transpose(1, 2) + + if softmax_scale is not None: + q_padded = q_padded * (softmax_scale * math.sqrt(head_dim)) + + expanded_mask = attn_mask.unsqueeze(1).unsqueeze(2) + attn_bias = torch.zeros_like(expanded_mask, dtype=q_padded.dtype) + attn_bias.masked_fill_(expanded_mask, float("-inf")) + + out = F.scaled_dot_product_attention( + q_padded, k_padded, v_padded, + attn_mask=attn_bias if attn_mask.any() else None, + dropout_p=0.0, + is_causal=causal if not attn_mask.any() else False, + ) + out = out.transpose(1, 2) + + # 重新 pack 为不等长格式 + output = q.new_zeros(q.shape[0], nheads, head_dim) + for i in range(batch_size): + sq = (cu_seqlens_q[i + 1] - cu_seqlens_q[i]).item() + output[cu_seqlens_q[i]:cu_seqlens_q[i + 1]] = out[i, :sq] + return output + + +def unpad_input(hidden_states, attention_mask): + """替代 flash_attn.bert_padding.unpad_input""" + seqlens = attention_mask.sum(dim=-1, dtype=torch.int32) + indices = torch.nonzero(attention_mask.flatten(), as_tuple=False).flatten() + max_seqlen = seqlens.max().item() + cu_seqlens = F.pad(torch.cumsum(seqlens, dim=0, dtype=torch.int32), (1, 0)) + flat = hidden_states.reshape(-1, *hidden_states.shape[2:]) + return flat[indices], indices, cu_seqlens, max_seqlen + + +def pad_input(hidden_states, indices, batch_size, seqlen): + """替代 flash_attn.bert_padding.pad_input""" + dim = hidden_states.shape[1:] + output = hidden_states.new_zeros(batch_size * seqlen, *dim) + output[indices] = hidden_states + return output.reshape(batch_size, seqlen, *dim) + + +def index_first_axis(input, indices): + return input[indices] + + +def apply_patch(): + """应用 SDPA Patch,必须在加载模型之前调用。""" + import internvlu.diffusion.internvlu_transformer as mod + + mod.flash_attn_func = flash_attn_func + mod.flash_attn_varlen_func = flash_attn_varlen_func + mod.index_first_axis = index_first_axis + mod.pad_input = pad_input + mod.unpad_input = unpad_input + mod._flash_supports_window_size = True + + import transformers.utils + transformers.utils.is_flash_attn_2_available = lambda: True + transformers.utils.is_flash_attn_greater_or_equal_2_10 = lambda: True + mod.is_flash_attn_2_available = lambda: True + mod.is_flash_attn_greater_or_equal_2_10 = lambda: True + + print("[PATCH] SDPA fallback for flash_attn applied successfully") +``` + +### Patch 原理简述 + +| flash_attn 函数 | SDPA 替代策略 | +|-----------------|--------------| +| `flash_attn_func` | 转置 QKV 维度后调用 `F.scaled_dot_product_attention` | +| `flash_attn_varlen_func` | 将不等长序列 padding → SDPA 计算 → 重新 unpack | +| `pad_input` / `unpad_input` | 纯 PyTorch 实现的 padding 工具函数 | +| `is_flash_attn_2_available` | Patch 为始终返回 `True`,绕过可用性检查 | + +## Step 4:验证模型加载 + +```python +import os, sys +os.environ["PYTORCH_NPU_ALLOC_CONF"] = "expandable_segments:True" +import torch, torch_npu + +# 必须在 import InternVLU 之前应用 Patch +sys.path.insert(0, '/root') +import flash_attn_sdpa_patch +flash_attn_sdpa_patch.apply_patch() + +from internvlu.pipeline_internvlu import InternVLUPipeline + +pipe = InternVLUPipeline.from_pretrained( + '/root/models/OpenGVLab/InternVL-U', + torch_dtype=torch.bfloat16 +) +pipe = pipe.to("npu:0") + +print(f"NPU 显存占用: {torch_npu.npu.memory_allocated(0)/1e9:.1f} GB") +# 期望输出: NPU 显存占用: 8.6 GB +``` + +## Step 5:测试三大能力 + +### 5.1 文本对话 + +```python +result = pipe(prompt="你好,用一句话介绍你自己", generation_mode="text") +text = pipe.tokenizer.decode(result.generate_output[0], skip_special_tokens=True) +print(text) +# 输出: 你好,我是书生·浦语,来自上海人工智能实验室... +``` + +> **注意**:pipeline 返回的是 token IDs tensor,需要用 `pipe.tokenizer.decode()` 解码为文本。 + +### 5.2 文生图 + +```python +from PIL import Image + +result = pipe( + prompt="一只穿着宇航服的猫咪在太空中漫步,背景是星云", + generation_mode="image", + height=512, width=512, + num_inference_steps=20, + all_cfg_scale=4.5 +) +result.images[0].save("cat_space.png") +# 512x512 生成约 5.5 秒 +``` + +### 5.3 图片编辑 + +```python +source = Image.open("input.png").convert("RGB") + +result = pipe( + prompt="把背景换成海滩", + image=source, + generation_mode="image", + height=512, width=512, + num_inference_steps=20, + all_cfg_scale=4.5 +) +result.images[0].save("edited.png") +``` + +## Step 6:搭建 FastAPI 服务 + +创建 `/root/api_server.py`,将模型封装为 REST API: + +```python +#!/usr/bin/env python3 +"""InternVL-U FastAPI server for Ascend NPU.""" +import os, sys, time, base64, io, traceback +os.environ["PYTORCH_NPU_ALLOC_CONF"] = "expandable_segments:True" + +import torch, torch_npu + +sys.path.insert(0, '/root') +import flash_attn_sdpa_patch +flash_attn_sdpa_patch.apply_patch() + +from internvlu.pipeline_internvlu import InternVLUPipeline +from PIL import Image +from fastapi import FastAPI, Request +from fastapi.responses import JSONResponse +import uvicorn + +app = FastAPI(title="InternVL-U Ascend API") +pipe = None + +def get_pipe(): + global pipe + if pipe is None: + pipe = InternVLUPipeline.from_pretrained( + '/root/models/OpenGVLab/InternVL-U', torch_dtype=torch.bfloat16 + ) + pipe = pipe.to("npu:0") + return pipe + +@app.on_event("startup") +async def startup(): + get_pipe() + +@app.get("/health") +def health(): + return {"status": "ok", "device": "ascend-npu"} + +@app.post("/v1/chat") +async def chat(request: Request): + body = await request.json() + messages = body.get("messages", []) + last = messages[-1] + p = get_pipe() + image = None + if last.get("image"): + image = Image.open(io.BytesIO(base64.b64decode(last["image"]))).convert("RGB") + + result = p( + prompt=last["content"], image=image, generation_mode="text", + max_new_tokens=body.get("max_new_tokens", 2048), + temperature=body.get("temperature", 0.7) + ) + text = p.tokenizer.decode(result.generate_output[0], skip_special_tokens=True) + return {"ok": True, "text": text} + +@app.post("/v1/generate") +async def generate(request: Request): + body = await request.json() + p = get_pipe() + result = p( + prompt=body["prompt"], generation_mode="image", + height=min(body.get("height", 512), 1024), + width=min(body.get("width", 512), 1024), + num_inference_steps=20, all_cfg_scale=4.5 + ) + buf = io.BytesIO() + result.images[0].save(buf, format="PNG") + return {"ok": True, "image": base64.b64encode(buf.getvalue()).decode()} + +@app.post("/v1/edit") +async def edit(request: Request): + body = await request.json() + p = get_pipe() + source = Image.open(io.BytesIO(base64.b64decode(body["image"]))).convert("RGB") + result = p( + prompt=body["prompt"], image=source, generation_mode="image", + height=512, width=512, num_inference_steps=20, all_cfg_scale=4.5 + ) + buf = io.BytesIO() + result.images[0].save(buf, format="PNG") + return {"ok": True, "image": base64.b64encode(buf.getvalue()).decode()} + +if __name__ == "__main__": + uvicorn.run(app, host="0.0.0.0", port=8000, log_level="info") +``` + +启动服务: + +```bash +export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:$LD_LIBRARY_PATH +source /usr/local/Ascend/ascend-toolkit/set_env.sh +nohup python3 /root/api_server.py > /root/api_server.log 2>&1 & +``` + +验证: + +```bash +curl http://localhost:8000/health +# {"status":"ok","device":"ascend-npu"} + +curl -X POST http://localhost:8000/v1/chat \ + -H 'Content-Type: application/json' \ + -d '{"messages":[{"role":"user","content":"hello"}]}' +# {"ok":true,"text":"Hello! How can I assist you today?..."} +``` + +## Step 7:配置公网访问(可选) + +InternStudio 开发机没有公网 IP,需要通过 SSH 隧道暴露服务。 + +### 方案:通过公网服务器 SSH 隧道 + +假设你有一台公网服务器 `YOUR_SERVER_IP`: + +```bash +# 在公网服务器上执行,将 8101 端口转发到 Ascend 的 8000 端口 +ssh -N -L 0.0.0.0:8101:localhost:8000 \ + -p root@ \ + -o ServerAliveInterval=30 \ + -o ServerAliveCountMax=3 \ + -o ExitOnForwardFailure=yes +``` + +验证公网可达: + +```bash +curl http://YOUR_SERVER_IP:8101/health +# {"status":"ok","device":"ascend-npu"} +``` + +## 性能参考 + +以下数据基于 Ascend NPU(64 GB HBM)实测: + +| 能力 | 参数 | 耗时 | 备注 | +|------|------|------|------| +| 文本对话 | 短文本 ~64 tokens | 3~5 秒 | 首次推理含 warmup | +| 文生图 | 512x512, 20 steps | ~5.5 秒 | 热启动后稳定 | +| 图片编辑 | 512x512, 20 steps | ~5.5 秒 | 与生图速度一致 | +| 图像理解 | 1024x1024 输入 | ~11 秒 | 包含图片编码 | + +### 与 A100 对比 + +| 指标 | A100 (CUDA) | Ascend NPU (SDPA) | +|------|-------------|---------------------| +| 文生图 512x512 | ~3.5 秒 | ~5.5 秒 | +| 显存占用 | 8.6 GB | 8.6 GB | +| Attention 实现 | FlashAttention2 原生 | SDPA Fallback | + +## 常见问题 + +### Q: 启动时报 `FlashAttention2 is not installed` + +这是正常现象。Patch 会在此警告之后生效,不影响功能。 + +### Q: 首次推理很慢 + +昇腾 NPU 首次推理需要编译算子 kernel(类似 CUDA JIT),后续调用会显著加快。 + +### Q: `bitsandbytes` 警告 `compiled without GPU support` + +不影响 bfloat16 推理。忽略即可。 + +### Q: `ModuleNotFoundError: No module named 'internvlu'` + +说明 InternVL-U 包没有正确安装。请确认: +1. 已 `git clone` 了 InternVL-U 仓库 +2. 在仓库目录下执行了 `pip install -e .` +3. 或者将仓库路径加入 PYTHONPATH:`export PYTHONPATH=/root/InternVL-U:$PYTHONPATH` + +### Q: `pip install -e .` 报错 `flash_attn` 安装失败 + +flash_attn 只支持 CUDA,在昇腾上无法编译。解决方法: + +```bash +# 方式一:跳过依赖安装 +pip install -e . --no-deps + +# 方式二:先注释掉 setup.py/pyproject.toml 中的 flash_attn 依赖再安装 +``` + +我们的 SDPA Patch 会完全替代 flash_attn 的功能,不需要安装它。 + +### Q: `apply_patch()` 报错 `No module named 'internvlu.diffusion.internvlu_transformer'` + +InternVL-U 的包结构可能更新了。请检查实际的模块路径: + +```bash +# 查找实际的 transformer 模块 +find /root/InternVL-U -name "*transformer*" -path "*/diffusion/*" +``` + +然后修改 `flash_attn_sdpa_patch.py` 中第 180 行的 import 路径。 + +### Q: 模型下载很慢或失败 + +```bash +# 使用 HF Mirror 加速 +export HF_ENDPOINT=https://hf-mirror.com + +# 或用 git lfs 直接克隆 +git lfs install +git clone https://hf-mirror.com/OpenGVLab/InternVL-U /root/models/OpenGVLab/InternVL-U +``` + +### Q: 生图时报 OOM(显存不足) + +尝试减小图片尺寸或减少推理步数: +```python +result = pipe(prompt="...", generation_mode="image", + height=256, width=256, # 先用小尺寸测试 + num_inference_steps=10) # 减少步数 +``` + +### Q: 能部署更大的模型吗? + +InternVL-U 4B 仅占用 8.6 GB 显存,NPU 有 64 GB HBM,剩余 55+ GB 足够部署更大模型或多实例并发。 + +## 总结 + +通过 SDPA Fallback Patch,我们实现了 InternVL-U 在昇腾 NPU 上的全能力运行。这个方案的核心价值在于: + +1. **零修改模型代码**:Monkey Patch 方式,不需要改动 InternVL-U 源码 +2. **通用性强**:相同方案可推广到任何依赖 flash_attn 的模型 +3. **功能完整**:对话、文生图、图片编辑三大能力全部可用 +4. **性能可接受**:比 A100 慢约 50%,但远优于 CPU 推理 diff --git a/docs/learn/tutorials/index.md b/docs/learn/tutorials/index.md new file mode 100644 index 000000000..ac7040c7f --- /dev/null +++ b/docs/learn/tutorials/index.md @@ -0,0 +1,4 @@ + +# 部署教程 + +A100、昇腾 NPU、沐曦 MetaX 部署 InternVL-U diff --git a/docs/learn/tutorials/metax-internvl-u.md b/docs/learn/tutorials/metax-internvl-u.md new file mode 100644 index 000000000..7997308bf --- /dev/null +++ b/docs/learn/tutorials/metax-internvl-u.md @@ -0,0 +1,803 @@ + +# 在沐曦 C500 GPU 上部署 InternVL-U + +本教程手把手带你在沐曦 MetaX C500 GPU 上完成 InternVL-U 4B 模型的全能力部署,包括文本对话、文生图、图片编辑三大功能。 + +得益于沐曦 MACA 框架预装的 FlashAttention2 实现,MetaX C500 无需任何额外 Patch 即可直接运行完整模型——这是相比昇腾 NPU 部署的一大优势。 + +## 关于沐曦 MetaX + +沐曦集成电路(上海)有限公司是一家专注于高性能 GPU 芯片设计的国产半导体企业。MetaX C500 是其面向数据中心推出的 AI 推理/训练 GPU,搭配自研 MACA(MetaX Architecture for Computing Acceleration)计算框架,提供与 CUDA 高度兼容的编程接口。 + +**MACA 框架核心特性:** + +- 提供与 CUDA 兼容的 API,代码中直接使用 `torch.cuda` 接口 +- 预装主流深度学习算子库,包括 FlashAttention2、xformers 等 +- 配套 `mx-smi` GPU 管理工具(类似 `nvidia-smi`) +- 支持 PyTorch、TensorFlow 等主流框架 + +## 获取 MetaX C500 算力 + +如果你还没有 MetaX C500 GPU 资源,可以通过 [Gitee AI 算力市场](https://ai.gitee.com/compute) 按需租用沐曦 C500 算力实例,支持小时级起租。 + +创建实例时选择镜像:**PyTorch / 2.8.0 / Python 3.12 / MACA 3.3.0.4**,该镜像已预装 MACA 框架、PyTorch 和 FlashAttention2,开箱即用。 + +> 联系书生社区小助手可获取算力优惠券,降低体验成本。 + +## 前置条件 + +| 项目 | 要求 | +|------|------| +| 硬件 | 沐曦 MetaX C500(64 GB VRAM,350W TDP) | +| 驱动 | MACA 3.3.0.4+(沐曦 GPU 计算框架) | +| PyTorch | 2.8.0(MACA 适配版,镜像已预装) | +| Python | 3.12(推荐使用镜像预装的 Conda 环境) | +| 操作系统 | Ubuntu 22.04 / 24.04 | +| 磁盘 | >= 30 GB(模型 ~8.2 GB + 代码 + 依赖) | +| 内存 | >= 32 GB(模型加载时需要) | + +## Step 1:环境准备 + +### 1.1 设置 MACA 环境变量 + +MetaX C500 的 MACA 框架安装在 `/opt/maca`,使用前需设置环境变量: + +```bash +export MACA_PATH=/opt/maca +``` + +> 建议将以上内容写入 `~/.bashrc`,避免每次手动执行: +> +> ```bash +> echo 'export MACA_PATH=/opt/maca' >> ~/.bashrc +> source ~/.bashrc +> ``` + +### 1.2 验证 GPU 状态 + +使用 `mx-smi`(沐曦版 `nvidia-smi`)查看 GPU 状态: + +```bash +mx-smi +``` + +期望输出类似: + +``` +=================== MetaX System Management Interface Log =================== +Timestamp : Wed Mar 18 06:44:43 2026 + +Attached GPUs : 1 ++---------------------------------------------------------------------------------+ +| MX-SMI 2.2.9 Kernel Mode Driver Version: 3.0.11 | +| MACA Version: 3.3.0.15 BIOS Version: 1.27.5.0 | +|------------------+-----------------+---------------------+----------------------| +| Board Name | GPU Persist-M | Bus-id | GPU-Util sGPU-M | +| Pwr:Usage/Cap | Temp Perf | Memory-Usage | GPU-Util | +|==================+=================+=====================+======================| +| 0 MetaX C500 | 0 Off | 0000:10:00.0 | 0% Disabled | +| 50W / 350W | 35C P9 | 0/65536 MiB | Available | ++------------------+-----------------+---------------------+----------------------+ +``` + +确认可以看到 **MetaX C500** 设备信息,显存 65536 MiB(64 GB)。 + +### 1.3 验证 PyTorch 可用 + +MetaX C500 环境通常预装了 MACA 适配的 PyTorch。使用 Conda 环境中的 Python: + +```bash +/opt/conda/bin/python3 -c " +import torch +print(f'PyTorch 版本: {torch.__version__}') +print(f'CUDA 可用: {torch.cuda.is_available()}') +print(f'GPU 设备数: {torch.cuda.device_count()}') +print(f'GPU 名称: {torch.cuda.get_device_name(0)}') +" +``` + +期望输出: + +``` +PyTorch 版本: 2.8.0+metax3.3.0.2 +CUDA 可用: True +GPU 设备数: 1 +GPU 名称: MetaX C500 +``` + +> **关键点**:MACA 提供 CUDA 兼容 API,因此代码中使用 `torch.cuda` 接口即可,无需导入任何特殊库(不像昇腾需要 `torch_npu`)。这意味着几乎所有基于 CUDA 的 PyTorch 代码可以在 MetaX C500 上零修改运行。 + +### 1.4 检查预装的关键库 + +```bash +/opt/conda/bin/pip list | grep -iE "flash_attn|torch|transformers|xformers" +``` + +期望看到类似: + +``` +flash_attn 2.6.3+metax3.3.0.2torch2.8 +torch 2.8.0+metax3.3.0.2 +transformers 4.x.x +xformers 0.0.22+metax3.3.0.2torch2.8 +``` + +> 注意 `flash_attn` 已预装(MACA 版本),这正是 MetaX C500 不需要 SDPA Patch 的原因。 + +### 1.5 创建独立 Conda 环境(推荐) + +为了避免污染系统预装的 Conda 环境,建议创建一个独立的虚拟环境: + +```bash +# 基于系统 Python 创建独立环境,继承 MACA 预装的 PyTorch / flash_attn +/opt/conda/bin/conda create -n internvlu --clone base -y +/opt/conda/bin/conda activate internvlu + +# 后续所有 pip 命令使用该环境 +which python3 +# /opt/conda/envs/internvlu/bin/python3 +``` + +> 如果 `conda create --clone` 耗时较长或磁盘空间不足,也可以直接使用系统 base 环境(`/opt/conda/bin/python3`),但需注意避免依赖冲突。 + +### 1.6 安装额外依赖 + +```bash +# 如果使用了独立环境 +pip install fastapi uvicorn pillow modelscope accelerate + +# 如果使用系统 base 环境 +/opt/conda/bin/pip install fastapi uvicorn pillow modelscope accelerate +``` + +## Step 2:下载模型和代码 + +### 2.1 下载 InternVL-U 模型权重 + +HuggingFace 在国内网络不可用,使用 ModelScope 镜像下载: + +```bash +/opt/conda/bin/python3 -c " +from modelscope import snapshot_download +snapshot_download('OpenGVLab/InternVL-U', local_dir='/data/models/OpenGVLab/InternVL-U') +" +``` + +模型约 8.2 GB,下载完成后目录结构: + +``` +/data/models/OpenGVLab/InternVL-U/ +├── configuration.json +├── generation_decoder/ # Diffusion 解码器权重 +│ ├── config.json +│ └── diffusion_pytorch_model.safetensors +├── model_index.json +├── processor/ # 图像处理器配置 +├── scheduler/ # 扩散调度器配置 +├── vae/ # VAE 编解码器权重 +│ ├── config.json +│ └── diffusion_pytorch_model.safetensors +└── vlm/ # 视觉语言模型权重 + ├── config.json + ├── model-00001-of-00002.safetensors + ├── model-00002-of-00002.safetensors + └── tokenizer.json +``` + +### 2.2 下载 InternVL-U 推理代码 + +InternVL-U 的 Pipeline 代码需要单独克隆: + +```bash +cd /data +git clone https://github.com/OpenGVLab/InternVL-U.git InternVL-U-code +``` + +> 如果 GitHub 访问受限,可使用镜像: +> +> ```bash +> git clone https://mirror.ghproxy.com/https://github.com/OpenGVLab/InternVL-U.git InternVL-U-code +> ``` + +代码目录结构: + +``` +/data/InternVL-U-code/ +├── internvlu/ +│ ├── __init__.py +│ ├── pipeline_internvlu.py # 主 Pipeline(推理入口) +│ └── diffusion/ +│ └── internvlu_transformer.py # Diffusion Transformer(使用 flash_attn) +├── requirements.txt +└── README.md +``` + +### 2.3 安装推理代码依赖 + +```bash +cd /data/InternVL-U-code +/opt/conda/bin/pip install -r requirements.txt +``` + +## Step 3:理解 MACA 与 FlashAttention2 的关系 + +在开始验证模型之前,有必要理解为什么 MetaX C500 **不需要** 昇腾教程中那样的 SDPA Fallback Patch。 + +### 三大平台的 FlashAttention2 支持情况 + +| 平台 | flash_attn 库 | 是否需要 Patch | +|------|--------------|---------------| +| NVIDIA A100 | 原生 CUDA 版本,pip 安装 | 不需要 | +| 华为昇腾 NPU | 不支持(CUDA-only),无法安装 | 需要 SDPA Patch | +| 沐曦 MetaX C500 | MACA 适配版本,环境预装 | 不需要 | + +**InternVL-U 的 Diffusion 路径**(`internvlu_transformer.py`)硬编码调用了以下 `flash_attn` 函数: + +- `flash_attn_func` — 标准注意力计算 +- `flash_attn_varlen_func` — 变长序列注意力 +- `pad_input` / `unpad_input` — 序列 padding 工具 +- `is_flash_attn_2_available` — 可用性检查 + +在昇腾 NPU 上,这些函数全部需要用 PyTorch SDPA 手动替换。而 MetaX C500 的 MACA 框架已经提供了完整的 `flash_attn` 实现(版本 `2.6.3+metax3.3.0.2torch2.8`),所有函数调用可以直接走通。 + +验证 flash_attn 可用: + +```bash +/opt/conda/bin/python3 -c " +import flash_attn +print(f'flash_attn 版本: {flash_attn.__version__}') +from flash_attn import flash_attn_func, flash_attn_varlen_func +print('flash_attn_func 可用: OK') +print('flash_attn_varlen_func 可用: OK') +" +``` + +## Step 4:验证模型加载 + +```python +import os, sys +os.environ["MACA_PATH"] = "/opt/maca" +sys.path.insert(0, "/data/InternVL-U-code") + +import torch +from internvlu.pipeline_internvlu import InternVLUPipeline + +print("正在加载 InternVL-U 模型...") +pipe = InternVLUPipeline.from_pretrained( + '/data/models/OpenGVLab/InternVL-U', + torch_dtype=torch.bfloat16 +) +pipe = pipe.to("cuda:0") + +mem_gb = torch.cuda.memory_allocated(0) / 1e9 +total_gb = torch.cuda.get_device_properties(0).total_memory / 1e9 +print(f"GPU 显存占用: {mem_gb:.1f} GB / {total_gb:.0f} GB") +print(f"剩余显存: {total_gb - mem_gb:.0f} GB") +print("模型加载成功!") +``` + +期望输出: + +``` +正在加载 InternVL-U 模型... +GPU 显存占用: 8.7 GB / 64 GB +剩余显存: 55 GB +模型加载成功! +``` + +> **启动时可能看到的警告**(均可忽略): +> +> - `flash_attn is installed but failed to import: cannot import name '_wrapped_flash_attn_backward'` — MACA 版 flash_attn 的已知无害警告,前向推理正常 +> - `FutureWarning: torch.cuda.amp.custom_fwd` — PyTorch API 迁移警告 +> - `torchvision.datapoints Beta` — torchvision 内部警告 + +## Step 5:测试三大能力 + +### 5.1 文本对话 + +```python +result = pipe(prompt="你好,用一句话介绍你自己", generation_mode="text") +text = pipe.tokenizer.decode(result.generate_output[0], skip_special_tokens=True) +print(text) +# 输出: 你好,我是书生·浦语,来自上海人工智能实验室... +``` + +> **注意**:pipeline 返回的是 token IDs tensor,需要用 `pipe.tokenizer.decode()` 解码为文本。 + +测试多轮对话能力: + +```python +# 带上下文的多轮对话 +result = pipe( + prompt="请用 Python 写一个快速排序算法", + generation_mode="text", + max_new_tokens=1024, + temperature=0.7 +) +text = pipe.tokenizer.decode(result.generate_output[0], skip_special_tokens=True) +print(text) +``` + +### 5.2 图像理解 + +InternVL-U 支持上传图片并进行理解分析: + +```python +from PIL import Image + +# 加载一张图片 +img = Image.open("test_image.jpg").convert("RGB") + +result = pipe( + prompt="详细描述这张图片的内容", + image=img, + generation_mode="text", + max_new_tokens=512 +) +text = pipe.tokenizer.decode(result.generate_output[0], skip_special_tokens=True) +print(text) +``` + +### 5.3 文生图 + +```python +import time + +t0 = time.time() +result = pipe( + prompt="一只穿着宇航服的猫咪在太空中漫步,背景是星云和银河", + generation_mode="image", + height=512, width=512, + num_inference_steps=20, + all_cfg_scale=4.5 +) +result.images[0].save("cat_space.png") +print(f"生成耗时: {time.time()-t0:.1f} 秒") +# 512x512 生成约 4~5 秒 +``` + +尝试不同分辨率: + +```python +# 高分辨率生成(更慢但更精细) +result = pipe( + prompt="水墨画风格的山水风景,云雾缭绕", + generation_mode="image", + height=1024, width=1024, + num_inference_steps=20, + all_cfg_scale=4.5 +) +result.images[0].save("landscape_1024.png") +``` + +> **Prompt 技巧**:描述越具体效果越好。推荐结构:主体 + 动作/姿态 + 风格 + 光影 + 背景。支持的画风包括:写实、油画、水彩、水墨、赛博朋克、像素风、扁平插画等。 + +### 5.4 图片编辑 + +```python +source = Image.open("input.png").convert("RGB") + +# 局部编辑 +result = pipe( + prompt="把背景换成海滩", + image=source, + generation_mode="image", + height=512, width=512, + num_inference_steps=20, + all_cfg_scale=4.5 +) +result.images[0].save("edited_beach.png") + +# 风格迁移 +result = pipe( + prompt="转为油画风格", + image=source, + generation_mode="image", + height=512, width=512, + num_inference_steps=20, + all_cfg_scale=4.5 +) +result.images[0].save("edited_oil_painting.png") +``` + +> **编辑类型参考**: +> +> - 局部编辑:"给人物加上墨镜"、"把天空换成星空" +> - 全局风格:"转为黑白照片"、"添加复古滤镜"、"变成水彩画风格" +> - 场景变换:"把背景换成雪山"、"放在太空宇宙中" + +## Step 6:搭建 FastAPI 服务 + +创建 `/data/api_server.py`,将模型封装为 REST API,供前端 Playground 或其他服务调用: + +> **安全提示**:如果服务暴露在公网,**必须**通过 `API_KEY` 环境变量设置鉴权密钥,否则任何人都可以调用你的 GPU 资源。同时建议在反向代理(如 Nginx)层面配置速率限制。 + +```python +#!/usr/bin/env python3 +"""InternVL-U FastAPI server for MetaX C500.""" +import os, sys, time, base64, io, traceback, secrets +os.environ["MACA_PATH"] = "/opt/maca" +sys.path.insert(0, "/data/InternVL-U-code") + +import torch +from internvlu.pipeline_internvlu import InternVLUPipeline +from PIL import Image +from fastapi import FastAPI, Request +from fastapi.responses import JSONResponse +import uvicorn + +app = FastAPI(title="InternVL-U API (MetaX C500)") +pipe = None + +# API Key 鉴权:如未设置,自动生成随机密钥并打印到日志 +API_KEY = os.environ.get("API_KEY", "") +if not API_KEY: + API_KEY = secrets.token_urlsafe(32) + print(f"[WARN] API_KEY not set, auto-generated: {API_KEY}") + print("[WARN] Set API_KEY env var for production use!") + +# 输入限制常量 +MAX_BASE64_SIZE = 10 * 1024 * 1024 # 10 MB base64 上限 +MAX_PROMPT_LENGTH = 4096 # prompt 最大字符数 +ALLOWED_IMAGE_FORMATS = {"JPEG", "PNG", "WEBP", "BMP", "GIF"} + +def validate_base64_image(b64_str: str) -> Image.Image: + """验证并解码 base64 图片,检查大小和格式。""" + if len(b64_str) > MAX_BASE64_SIZE: + raise ValueError(f"Image too large (max {MAX_BASE64_SIZE // 1024 // 1024} MB)") + img = Image.open(io.BytesIO(base64.b64decode(b64_str))).convert("RGB") + if img.format and img.format.upper() not in ALLOWED_IMAGE_FORMATS: + raise ValueError(f"Unsupported image format: {img.format}") + # 限制图片尺寸,防止 OOM + if img.width > 4096 or img.height > 4096: + raise ValueError(f"Image too large: {img.width}x{img.height} (max 4096x4096)") + return img + +def get_pipe(): + """懒加载模型,首次调用时初始化。""" + global pipe + if pipe is None: + print("[INIT] Loading InternVL-U on MetaX C500...") + t0 = time.time() + pipe = InternVLUPipeline.from_pretrained( + "/data/models/OpenGVLab/InternVL-U", torch_dtype=torch.bfloat16 + ) + pipe = pipe.to("cuda:0") + mem = torch.cuda.memory_allocated(0) / 1e9 + print(f"[INIT] Ready in {time.time()-t0:.1f}s, GPU mem: {mem:.1f} GB") + return pipe + +@app.on_event("startup") +async def startup(): + """服务启动时预加载模型,避免首次请求超时。""" + get_pipe() + +@app.middleware("http") +async def check_api_key(request: Request, call_next): + """API Key 鉴权中间件(/health 接口除外)。""" + if request.url.path != "/health": + key = request.headers.get("X-API-Key", "") + if key != API_KEY: + return JSONResponse({"error": "Unauthorized"}, status_code=401) + return await call_next(request) + +@app.get("/health") +def health(): + """健康检查接口,返回设备信息和显存使用。""" + mem = torch.cuda.memory_allocated(0) / 1e9 if torch.cuda.is_available() else 0 + return { + "status": "ok", + "device": "metax-c500", + "model": "InternVL-U-4B", + "gpu_mem_gb": round(mem, 1) + } + +@app.post("/v1/chat") +async def chat(request: Request): + """文本对话 + 图像理解接口。""" + body = await request.json() + messages = body.get("messages", []) + if not messages: + return JSONResponse({"error": "No messages"}, status_code=400) + + p = get_pipe() + last = messages[-1] + prompt = last.get("content", "") + if len(prompt) > MAX_PROMPT_LENGTH: + return JSONResponse({"error": f"Prompt too long (max {MAX_PROMPT_LENGTH} chars)"}, status_code=400) + + image = None + # 支持 base64 编码的图片输入 + if last.get("image"): + try: + image = validate_base64_image(last["image"]) + except ValueError as e: + return JSONResponse({"error": str(e)}, status_code=400) + + t0 = time.time() + try: + result = p( + prompt=prompt, image=image, generation_mode="text", + max_new_tokens=min(body.get("max_new_tokens", 2048), 4096), + temperature=body.get("temperature", 0.7) + ) + text = p.tokenizer.decode(result.generate_output[0], skip_special_tokens=True) + return {"text": text, "latency": round(time.time()-t0, 2), "device": "metax-c500"} + except Exception as e: + traceback.print_exc() + return JSONResponse({"error": str(e)}, status_code=500) + +@app.post("/v1/generate") +async def generate(request: Request): + """文生图接口。""" + body = await request.json() + prompt = body.get("prompt", "") + if not prompt: + return JSONResponse({"error": "No prompt"}, status_code=400) + if len(prompt) > MAX_PROMPT_LENGTH: + return JSONResponse({"error": f"Prompt too long (max {MAX_PROMPT_LENGTH} chars)"}, status_code=400) + + p = get_pipe() + t0 = time.time() + try: + result = p( + prompt=prompt, generation_mode="image", + height=min(body.get("height", 512), 1024), + width=min(body.get("width", 512), 1024), + num_inference_steps=min(body.get("num_inference_steps", 20), 50), + all_cfg_scale=body.get("all_cfg_scale", 4.5) + ) + buf = io.BytesIO() + result.images[0].save(buf, format="PNG") + b64 = base64.b64encode(buf.getvalue()).decode() + return {"image": b64, "latency": round(time.time()-t0, 2), "device": "metax-c500"} + except Exception as e: + traceback.print_exc() + return JSONResponse({"error": str(e)}, status_code=500) + +@app.post("/v1/edit") +async def edit(request: Request): + """图片编辑接口。""" + body = await request.json() + prompt = body.get("prompt", "") + image_b64 = body.get("image", "") + if not prompt or not image_b64: + return JSONResponse({"error": "Need prompt and image"}, status_code=400) + if len(prompt) > MAX_PROMPT_LENGTH: + return JSONResponse({"error": f"Prompt too long (max {MAX_PROMPT_LENGTH} chars)"}, status_code=400) + + try: + source = validate_base64_image(image_b64) + except ValueError as e: + return JSONResponse({"error": str(e)}, status_code=400) + + p = get_pipe() + t0 = time.time() + try: + result = p( + prompt=prompt, image=source, generation_mode="image", + height=min(body.get("height", 512), 1024), + width=min(body.get("width", 512), 1024), + num_inference_steps=min(body.get("num_inference_steps", 20), 50), + all_cfg_scale=body.get("all_cfg_scale", 4.5) + ) + buf = io.BytesIO() + result.images[0].save(buf, format="PNG") + b64 = base64.b64encode(buf.getvalue()).decode() + return {"image": b64, "latency": round(time.time()-t0, 2), "device": "metax-c500"} + except Exception as e: + traceback.print_exc() + return JSONResponse({"error": str(e)}, status_code=500) + +if __name__ == "__main__": + uvicorn.run(app, host="0.0.0.0", port=8000, log_level="info") +``` + +### 启动服务 + +```bash +export MACA_PATH=/opt/maca +export API_KEY="your-secret-api-key" # 设置 API 鉴权密钥 +nohup /opt/conda/bin/python3 /data/api_server.py > /data/api_server.log 2>&1 & +``` + +查看启动日志: + +```bash +tail -f /data/api_server.log +# 等待看到 "Uvicorn running on http://0.0.0.0:8000" 即启动成功 +``` + +### 验证所有接口 + +**健康检查:** + +```bash +curl http://localhost:8000/health +# {"status":"ok","device":"metax-c500","model":"InternVL-U-4B","gpu_mem_gb":8.7} +``` + +**文本对话:** + +```bash +curl -X POST http://localhost:8000/v1/chat \ + -H 'Content-Type: application/json' \ + -H 'X-API-Key: your-secret-api-key' \ + -d '{"messages":[{"role":"user","content":"用一句话解释什么是大语言模型"}]}' +# {"text":"大语言模型是...","latency":1.07,"device":"metax-c500"} +``` + +**文生图:** + +```bash +curl -X POST http://localhost:8000/v1/generate \ + -H 'Content-Type: application/json' \ + -H 'X-API-Key: your-secret-api-key' \ + -d '{"prompt":"一只可爱的柴犬坐在樱花树下","height":512,"width":512}' \ + -o response.json +# 返回 JSON 包含 base64 编码的图片 +``` + +**图片编辑(需提供 base64 编码的源图):** + +```bash +# 将图片转为 base64 +IMAGE_B64=$(base64 -w0 input.png) + +curl -X POST http://localhost:8000/v1/edit \ + -H 'Content-Type: application/json' \ + -H 'X-API-Key: your-secret-api-key' \ + -d "{\"prompt\":\"把背景换成星空\",\"image\":\"$IMAGE_B64\"}" \ + -o edit_response.json +``` + +## Step 7:配置公网访问(可选) + +如果你的 MetaX C500 服务器没有公网 IP,需要通过 SSH 隧道暴露服务。 + +### 方案:通过公网服务器 SSH 隧道 + +假设你有一台公网服务器 `YOUR_SERVER_IP`: + +```bash +# 在公网服务器上执行,将 8102 端口转发到 MetaX 的 8000 端口 +ssh -N -L 0.0.0.0:8102:localhost:8000 \ + -p root@ \ + -o StrictHostKeyChecking=no \ + -o UserKnownHostsFile=/dev/null \ + -o ServerAliveInterval=30 \ + -o ServerAliveCountMax=3 \ + -o ExitOnForwardFailure=yes +``` + +使用 `sshpass` 实现自动重连: + +```bash +# 安装 sshpass +apt install -y sshpass + +# 带密码的自动重连隧道 +while true; do + echo "[$(date)] Starting SSH tunnel..." + sshpass -p 'YOUR_PASSWORD' ssh -N \ + -L 0.0.0.0:8102:localhost:8000 \ + -p root@ \ + -o StrictHostKeyChecking=no \ + -o UserKnownHostsFile=/dev/null \ + -o ServerAliveInterval=30 \ + -o ServerAliveCountMax=3 \ + -o ExitOnForwardFailure=yes \ + 2>/dev/null + echo "[$(date)] Tunnel disconnected, reconnecting in 5s..." + sleep 5 +done +``` + +> 建议将隧道脚本保存为 `.sh` 文件并用 `nohup` 后台运行。 + +验证公网可达: + +```bash +curl http://YOUR_SERVER_IP:8102/health +# {"status":"ok","device":"metax-c500","model":"InternVL-U-4B","gpu_mem_gb":8.7} +``` + +### 安全组配置 + +如果你的公网服务器在阿里云/腾讯云等云平台上,还需要在安全组中开放 8102 端口的入站规则: + +- 协议:TCP +- 端口范围:8102 +- 授权对象:0.0.0.0/0(或限定 IP) + +## 性能参考 + +以下数据基于 MetaX C500(64 GB VRAM,MACA 3.3.0)实测: + +| 能力 | 参数 | 耗时 | 备注 | +|------|------|------|------| +| 文本对话 | 短文本 ~64 tokens | 1~2 秒 | 首次推理含 warmup | +| 图像理解 | 1024x1024 输入 | ~8 秒 | 包含图片编码 | +| 文生图 | 512x512, 20 steps | ~4-5 秒 | 热启动后稳定 | +| 文生图 | 1024x1024, 20 steps | ~15 秒 | 大尺寸更精细但更慢 | +| 图片编辑 | 512x512, 20 steps | ~4-5 秒 | 与生图速度一致 | +| 模型加载 | 首次启动 | ~30 秒 | 含权重加载和 GPU 初始化 | +| 显存占用 | bfloat16 | 8.7 GB | 64 GB 显存余量充足 | + +### 三平台性能对比 + +| 指标 | A100 (CUDA) | 昇腾 NPU (SDPA) | MetaX C500 (MACA) | +|------|-------------|------------------|--------------------| +| 文生图 512x512 | ~3.5 秒 | ~5.5 秒 | ~4-5 秒 | +| 文本对话 | ~1 秒 | ~3-5 秒 | ~1-2 秒 | +| 显存占用 | 8.6 GB | 8.6 GB | 8.7 GB | +| 总显存 | 80 GB | 64 GB | 64 GB | +| Attention 实现 | FlashAttention2 原生 | SDPA Fallback | FlashAttention2 (MACA) | +| 是否需要 Patch | 否 | 是(SDPA Patch) | 否 | +| 设备接口 | `cuda:0` | `npu:0` | `cuda:0` | +| GPU 工具 | `nvidia-smi` | `npu-smi` | `mx-smi` | + +> MetaX C500 的文生图性能接近 A100,文本对话速度也非常快。得益于 MACA 框架对 FlashAttention2 的原生支持,Attention 计算效率高于 SDPA Fallback 方案。 + +## 常见问题 + +### Q: 启动时出现 `_wrapped_flash_attn_backward` 相关警告 + +``` +flash_attn is installed but failed to import: cannot import name '_wrapped_flash_attn_backward' +from 'flash_attn.flash_attn_interface'. Falling back to native PyTorch attention. +``` + +这是 MACA 版 `flash_attn` 的已知无害警告。尽管提示 "Falling back",实际前向推理的 FlashAttention2 仍正常工作,不影响任何功能和性能。忽略即可。 + +### Q: `mx-smi` 显示 GPU 利用率很高 + +模型加载到 GPU 后常驻显存(约 8.7 GB / 64 GB),`mx-smi` 显示较高的 Memory-Usage 是正常现象。GPU-Util 在推理时会波动,空闲时接近 0%。 + +### Q: 什么是 MACA? + +MACA(MetaX Architecture for Computing Acceleration)是沐曦自研的 GPU 计算框架,类似 NVIDIA 的 CUDA。它的核心特性: + +- **CUDA API 兼容**:代码中 `import torch` 后直接使用 `torch.cuda`,无需修改 +- **预装算子库**:包括 FlashAttention2、xformers、causal_conv1d 等主流加速库 +- **开发者友好**:现有 CUDA 代码几乎可以零修改迁移 + +### Q: 能部署更大的模型吗? + +InternVL-U 4B 仅占用 8.7 GB 显存,C500 有 64 GB VRAM,剩余 55+ GB 足够部署更大模型或多实例并发。例如可以同时加载多个 InternVL-U 实例用于负载均衡。 + +### Q: 与昇腾 NPU 教程相比,为什么这里不需要 SDPA Patch? + +昇腾 NPU 无法安装 CUDA 原生的 `flash_attn` 库(因为 flash_attn 底层依赖 CUDA kernel),因此需要用 PyTorch 原生 `F.scaled_dot_product_attention` 手动替代全部 flash_attn 函数。 + +而 MetaX C500 的 MACA 框架已预装了兼容版本的 `flash_attn`(版本号 `2.6.3+metax3.3.0.2torch2.8`),其底层使用 MACA kernel 实现,对上层 Python API 完全兼容。模型可以直接调用,无需任何 Monkey Patch。 + +### Q: 如何监控 GPU 状态? + +```bash +# 实时监控(每秒刷新) +watch -n 1 mx-smi + +# 查看 GPU 进程 +mx-smi # 底部会列出占用 GPU 的进程和显存 +``` + +### Q: 服务启动后如何查看日志? + +```bash +# 查看实时日志 +tail -f /data/api_server.log + +# 查看最近的请求记录 +grep "POST\|GET" /data/api_server.log | tail -20 +``` + +## 总结 + +MetaX C500 凭借 MACA 框架的 CUDA 兼容能力,实现了 InternVL-U 的开箱即用部署。这个方案的核心优势在于: + +1. **零额外适配**:MACA 预装 FlashAttention2,无需编写任何 Patch,部署流程比昇腾 NPU 更简单 +2. **标准 CUDA API**:使用 `torch.cuda` 接口,代码与 NVIDIA A100 完全一致,迁移成本为零 +3. **功能完整**:对话、图像理解、文生图、图片编辑四大能力全部可用 +4. **性能优异**:文生图速度接近 A100(~4-5s vs ~3.5s),文本推理速度快,显著优于 SDPA Fallback 方案 +5. **国产替代**:作为国产 GPU 方案,MetaX C500 展示了在 AI 推理场景下替代 NVIDIA GPU 的可行性 diff --git a/docs/models/index.md b/docs/models/index.md new file mode 100644 index 000000000..cb093bb27 --- /dev/null +++ b/docs/models/index.md @@ -0,0 +1,35 @@ + +# 模型与工具链文档 + +书生大模型生态提供了从模型到部署、微调、评测的全链路开源工具链。 + +## 产品矩阵 + +| 产品 | 说明 | 文档 | +|------|------|------| +| **InternLM** | 书生大语言模型系列 | [查看文档](/docs/models/internlm) | +| **InternVL** | 书生多模态大模型系列 | [查看文档](/docs/models/internvl) | +| **LMDeploy** | 大模型高效部署工具 | [查看文档](/docs/models/lmdeploy) | +| **XTuner** | 大模型高效微调框架 | [查看文档](/docs/models/xtuner) | +| **OpenCompass** | 大模型一站式评测平台 | [查看文档](/docs/models/opencompass) | + +## 快速选择 + +### 我想使用模型 + +- 想用 API 调用 → [API 文档](/docs/api/quickstart) +- 想在本地运行 → [InternLM 本地部署](/docs/models/internlm) +- 想理解图片 / 多模态 → [InternVL](/docs/models/internvl) + +### 我想部署模型 + +- 高性能推理服务 → [LMDeploy](/docs/models/lmdeploy) +- 量化部署减少显存 → [LMDeploy 量化](/docs/models/lmdeploy) + +### 我想微调模型 + +- LoRA / QLoRA 微调 → [XTuner](/docs/models/xtuner) + +### 我想评测模型 + +- 标准基准评测 → [OpenCompass](/docs/models/opencompass) diff --git a/docs/models/internlm/index.md b/docs/models/internlm/index.md new file mode 100644 index 000000000..91ee9498f --- /dev/null +++ b/docs/models/internlm/index.md @@ -0,0 +1,69 @@ + +# InternLM 书生·浦语 + +InternLM 是书生大模型系列的核心语言模型产品线,经历了三代迭代,从 InternLM 到 InternLM3,持续推进大语言模型的开源创新。 + +## 模型系列 + +| 模型 | 发布时间 | 参数量 | 亮点 | +|------|---------|--------|------| +| **InternLM3** | 2025.01 | 8B | 精炼数据框架,4T 数据超越同量级,深度思考 | +| **InternLM2.5** | 2024.07 | 1.8B/7B/20B | 百万 Token 长文本,自主规划 | +| **InternLM2** | 2024.01 | 1.8B/7B/20B | 高质量语料,开源领先 | +| **InternLM** | 2023.06 | 7B/20B/104B | 首发千亿参数,中国高考超越 ChatGPT | + +## 快速开始 + +### 使用 Transformers + +```python +import torch +from transformers import AutoTokenizer, AutoModelForCausalLM + +model_name = "internlm/internlm3-8b-instruct" +tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) +model = AutoModelForCausalLM.from_pretrained( + model_name, + torch_dtype=torch.float16, + trust_remote_code=True +).cuda() + +messages = [ + {"role": "user", "content": "你好,请介绍一下 InternLM。"} +] +response = model.chat(tokenizer, messages) +print(response) +``` + +### 使用 Ollama + +```bash +# 安装并运行 +ollama run internlm3:8b + +# 对话 +>>> 你好,介绍一下自己 +``` + +### 使用 LMDeploy 部署 + +```bash +# 安装 +pip install lmdeploy + +# 启动 API 服务 +lmdeploy serve api_server internlm/internlm3-8b-instruct --server-port 23333 + +# 调用 +curl http://localhost:23333/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{"model": "internlm3-8b-instruct", "messages": [{"role": "user", "content": "hello"}]}' +``` + +## 相关资源 + +- [GitHub 仓库](https://github.com/InternLM/InternLM) +- [HuggingFace 模型](https://huggingface.co/internlm) +- [技术报告](https://arxiv.org/abs/2403.17297) +- [LMDeploy 部署指南](/docs/models/lmdeploy) +- [XTuner 微调指南](/docs/models/xtuner) diff --git a/docs/models/internlm/quickstart.md b/docs/models/internlm/quickstart.md new file mode 100644 index 000000000..36ea51cfd --- /dev/null +++ b/docs/models/internlm/quickstart.md @@ -0,0 +1,99 @@ + +# InternLM 快速上手 + +本指南帮助你在本地环境中运行 InternLM3 模型。 + +## 环境要求 + +| 项目 | 最低配置 | 推荐配置 | +|------|---------|---------| +| GPU | 8GB 显存 (INT4 量化) | 16GB+ 显存 | +| Python | 3.8+ | 3.10+ | +| CUDA | 11.7+ | 12.1+ | +| 内存 | 16GB | 32GB+ | + +## 方式一:Transformers(最简单) + +### 安装依赖 + +```bash +pip install torch transformers sentencepiece +``` + +### 运行推理 + +```python +import torch +from transformers import AutoTokenizer, AutoModelForCausalLM + +model_name = "internlm/internlm3-8b-instruct" + +tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) +model = AutoModelForCausalLM.from_pretrained( + model_name, + torch_dtype=torch.float16, + device_map="auto", + trust_remote_code=True +) + +messages = [ + {"role": "system", "content": "你是一个有用的 AI 助手。"}, + {"role": "user", "content": "什么是大语言模型?请用简单的语言解释。"} +] + +response = model.chat(tokenizer, messages) +print(response) +``` + +## 方式二:Ollama(最方便) + +```bash +# 安装 Ollama(如果还没有) +curl -fsSL https://ollama.com/install.sh | sh + +# 运行 InternLM3 +ollama run internlm3:8b +``` + +在 Ollama 交互界面中直接输入问题即可对话。 + +## 方式三:LMDeploy(高性能生产部署) + +```bash +# 安装 +pip install lmdeploy + +# 交互式对话 +lmdeploy chat internlm/internlm3-8b-instruct + +# 或启动 OpenAI 兼容 API 服务 +lmdeploy serve api_server internlm/internlm3-8b-instruct \ + --server-port 23333 \ + --tp 1 +``` + +详细的 LMDeploy 使用指南请参考 [LMDeploy 文档](/docs/models/lmdeploy)。 + +## 常见问题 + +### 显存不足怎么办? + +使用 INT4 量化可以将显存需求从 16GB 降至 8GB: + +```bash +# LMDeploy 4-bit 量化 +lmdeploy chat internlm/internlm3-8b-instruct --model-format awq +``` + +### 如何使用多卡运行? + +```bash +# 2 卡并行 +lmdeploy serve api_server internlm/internlm3-8b-instruct --tp 2 +``` + +## 下一步 + +- 了解 [InternVL 多模态模型](/docs/models/internvl) +- 学习 [XTuner 微调](/docs/models/xtuner)自定义模型 +- 使用 [OpenCompass](/docs/models/opencompass) 评测模型效果 diff --git a/docs/models/internvl/index.md b/docs/models/internvl/index.md new file mode 100644 index 000000000..ec9693078 --- /dev/null +++ b/docs/models/internvl/index.md @@ -0,0 +1,40 @@ + +# InternVL 书生·万象 + +InternVL 是书生系列的多模态大模型产品线,支持图像理解、视频理解、文档分析等视觉语言任务。InternVL3 在 10 亿至 780 亿全量级上均为开源第一。 + +## 模型系列 + +| 模型 | 发布时间 | 参数量 | 亮点 | +|------|---------|--------|------| +| **InternVL3** | 2025.04 | 1B-78B | 全量级开源第一,GUI 智能体,空间推理 | +| **InternVL2.5** | 2024.12 | 1B-78B | MathVista 76.5%,OCRBench 907 | +| **InternVL2** | 2024.07 | 1B-78B | 图像/视频/文字/语音/3D 点云 | +| **InternVL1.5** | 2024.06 | 6B | 动态高分辨率,比肩 GPT-4V | + +## 快速体验 + +```python +import torch +from transformers import AutoModel, AutoTokenizer + +model = AutoModel.from_pretrained( + "OpenGVLab/InternVL3-8B", + torch_dtype=torch.bfloat16, + trust_remote_code=True +).cuda() +tokenizer = AutoTokenizer.from_pretrained( + "OpenGVLab/InternVL3-8B", + trust_remote_code=True +) + +# 图片理解 +response = model.chat(tokenizer, pixel_values, "描述这张图片", history=[]) +print(response) +``` + +## 相关资源 + +- [GitHub 仓库](https://github.com/OpenGVLab/InternVL) +- [HuggingFace 模型](https://huggingface.co/OpenGVLab) +- [API 调用指南](/docs/api/models/internvl3) diff --git a/docs/models/lmdeploy/index.md b/docs/models/lmdeploy/index.md new file mode 100644 index 000000000..c7a029918 --- /dev/null +++ b/docs/models/lmdeploy/index.md @@ -0,0 +1,70 @@ + +# LMDeploy + +LMDeploy 是书生生态中的大模型部署工具,提供高效的推理引擎和便捷的部署方案。支持 LLM 和 VLM 的推理、量化和 API 服务。 + +## 核心特性 + +- **TurboMind 推理引擎**:高性能 C++ 推理后端,支持连续批处理 +- **量化部署**:AWQ / GPTQ / SmoothQuant / KV Cache 量化,大幅降低显存 +- **OpenAI 兼容 API**:一行命令启动兼容 OpenAI 的 API 服务 +- **多模型支持**:InternLM、LLaMA、Qwen、Mistral 等 20+ 模型架构 + +## 快速安装 + +```bash +pip install lmdeploy +``` + +## 快速使用 + +### 交互式对话 + +```bash +lmdeploy chat internlm/internlm3-8b-instruct +``` + +### 启动 API 服务 + +```bash +lmdeploy serve api_server internlm/internlm3-8b-instruct \ + --server-port 23333 \ + --tp 1 +``` + +### Python API + +```python +from lmdeploy import pipeline + +pipe = pipeline("internlm/internlm3-8b-instruct") +response = pipe(["什么是大语言模型?"]) +print(response[0].text) +``` + +## 量化部署 + +### AWQ 4-bit 量化 + +```bash +# 量化模型 +lmdeploy lite auto_awq internlm/internlm3-8b-instruct \ + --work-dir internlm3-8b-4bit + +# 使用量化模型 +lmdeploy chat internlm3-8b-4bit +``` + +显存对比: + +| 模式 | 显存占用 | +|------|---------| +| FP16 | ~16GB | +| AWQ 4-bit | ~6GB | +| AWQ 4-bit + KV8 | ~4GB | + +## 相关资源 + +- [GitHub 仓库](https://github.com/InternLM/lmdeploy) +- [官方文档](https://lmdeploy.readthedocs.io) +- [PyPI 包](https://pypi.org/project/lmdeploy) diff --git a/docs/models/opencompass/index.md b/docs/models/opencompass/index.md new file mode 100644 index 000000000..5cd4e44dd --- /dev/null +++ b/docs/models/opencompass/index.md @@ -0,0 +1,42 @@ + +# OpenCompass + +OpenCompass 是书生生态中的一站式大模型评测平台,支持 100+ 评测基准、50+ 模型架构,提供全面客观的模型能力评估。 + +## 核心特性 + +- **全面评测**:知识、语言、理解、推理、考试五大维度 +- **100+ 数据集**:MMLU、GSM8K、HumanEval、C-Eval 等 +- **多模型支持**:HuggingFace 模型 / OpenAI API / 本地模型 +- **竞技场**:Compass Arena 匿名对战,客观排名 + +## 快速安装 + +```bash +pip install opencompass +``` + +## 快速评测 + +```bash +# 评测 InternLM3 在 GSM8K 上的表现 +python run.py \ + --models internlm3_8b_instruct \ + --datasets gsm8k \ + --work-dir outputs/internlm3-gsm8k +``` + +## 评测报告解读 + +OpenCompass 生成的评测报告包含: + +- **总分**:加权平均分 +- **分项得分**:各数据集详细得分 +- **对比分析**:与基准模型的对比 +- **错误分析**:典型错误案例 + +## 相关资源 + +- [GitHub 仓库](https://github.com/open-compass/opencompass) +- [官方文档](https://opencompass.readthedocs.io) +- [排行榜](https://rank.opencompass.org.cn) diff --git a/docs/models/timeline.md b/docs/models/timeline.md new file mode 100644 index 000000000..8e61b957e --- /dev/null +++ b/docs/models/timeline.md @@ -0,0 +1,60 @@ + +# 产品模型时间线 + +书生大模型家族自 2023 年以来持续演进,涵盖语言模型、多模态模型、工具链和数据四大产品线。 + +## 产品线分类 + +| 标签 | 产品线 | 代表产品 | +|------|--------|---------| +| 🟦 语言模型 | InternLM 系列 | InternLM → InternLM2 → InternLM3 → InternThinker | +| 🟩 多模态模型 | InternVL 系列 | InternVL → InternVL2 → InternVL2.5 → InternVL3 / XComposer / InternVideo / Intern-S1 | +| 🟧 工具链 | 部署/微调/评测 | LMDeploy / XTuner / OpenCompass / MindSearch | +| 🟪 数据 | 训练数据 | 书生·万卷 / OREAL | + +--- + +## 2025 年 + +| 日期 | 产品 | 产品线 | 亮点 | +|------|------|--------|------| +| 7.27 | **Intern-S1** | 🟩 多模态 | 科学多模态大模型,多模态能力全球开源第一,文本比肩一流,科学能力全模态国际领先,综合性能开源最优 | +| 5.23 | **InternThinker 升级** | 🟦 语言 | 首个既具备围棋专业水平,又能展示透明思维链的大模型 | +| 4.16 | **InternVL3 开源** | 🟩 多模态 | 通用多模态书生·万象3.0,10亿~780亿全量级开源第一,GUI智能体/建筑图纸理解/空间推理能力大幅提升 | +| 2.18 | **OREAL 开源** | 🟪 数据 | 基于结果奖励的强化学习新范式,无需蒸馏超大模型,7B/32B 模型推理能力再提升 | +| 2.11 | **InternVideo2.5 开源** | 🟩 多模态 | 视频理解"记忆力"较前代扩容6倍,万帧长视频精准"大海捞针" | +| 1.15 | **InternLM3 开源** | 🟦 语言 | 精炼数据框架,仅 4T 数据训练,8B 超越同量级,节约成本75%+,首次融合常规对话与深度思考 | + +## 2024 年 + +| 日期 | 产品 | 产品线 | 亮点 | +|------|------|--------|------| +| 12.30 | **InternVL2.5 升级** | 🟩 多模态 | 开源后训练算法及数据,数学推理 MathVista 76.5%,OCRBench 907 分 | +| 12.20 | **InternThinker Beta** | 🟦 语言 | 数学、理科、推理谜题复杂推理优异,近期开放免费 API | +| 12.12 | **InternLM-XComposer2.5-OL** | 🟩 多模态 | 多模态实时交互,视觉+听觉实时理解,自动长期记忆,语音对话 | +| 12.5 | **InternVL2.5 开源** | 🟩 多模态 | 全量级(10亿~780亿)开源多模态第一,MMMU 突破70%(仅次 o1),纯语言能力完全保持 | +| 11.25 | **InternThinker Alpha** | 🟦 语言 | 长思维+自我反思纠正,数学/代码/推理谜题更优结果 | +| 8.15 | **MindSearch 开源** | 🟧 工具链 | 模拟人类思维的搜索框架,任务规划+拆解,同时从上百网页搜集整理信息 | +| 8.9 | **Compass Multi-Modal Arena** | 🟧 工具链 | 多模态大模型竞技版块上线,用户可比较多款主流多模态模型 | +| 8.5 | **InternLM2.5 1.8B/20B** | 🟦 语言 | 开源轻量版(4GB显存可跑)和中型版,适应更多场景 | +| 7.4 | **InternLM2.5 开源** | 🟦 语言 | 百万Token超长文本窗口,开源领先推理能力,支持自主规划和在线信息整合 | +| 7.4 | **InternVL2 开源** | 🟩 多模态 | 支持图像/视频/文字/语音/3D点云,渐进式对齐训练,成本更低性能更高 | +| 6.18 | **InternVL1.5 开源** | 🟩 多模态 | 强大视觉编码器+动态高分辨率,综合能力领先开源,比肩 GPT-4V/Gemini Pro | +| 5.17 | **Compass Arena** | 🟧 工具链 | 大语言模型竞技场,匿名随机对战,客观真实评价 | +| 2.28 | **InternLM2 1.8B** | 🟦 语言 | 4GB显存笔记本可跑,8GB即可微调,初学者友好 | +| 1.30 | **OpenCompass 2.0** | 🟧 工具链 | 一站式评测五大维度(知识/语言/理解/推理/考试) | +| 1.29 | **书生·浦语灵笔 2.0** | 🟩 多模态 | 图文混合创作,12项评测大幅领先同量级,免费商用 | +| 1.29 | **InternVL 6B** | 🟩 多模态 | 新一代书生·视觉大模型,60亿参数,对比-生成融合渐进式对齐 | +| 1.19 | **InternLM2 开源** | 🟦 语言 | 回归语言建模本质,更高质量语料+信息密度,综合性能开源领先 | + +## 2023 年 + +| 日期 | 产品 | 产品线 | 亮点 | +|------|------|--------|------| +| 10.18 | **OpenCompass 开放评测** | 🟧 工具链 | 完整开源可复现评测框架,支持大语言/多模态一站式评测 | +| 10.10 | **书生·浦语灵笔 XComposer** | 🟩 多模态 | 首个图文混合创作大模型,一键生成图文文章,免费商用 | +| 9.20 | **InternLM-20B 开源** | 🟦 语言 | 200亿参数版本,全链条工具链全线升级,免费商用 | +| 9.18 | **XTuner 发布** | 🟧 工具链 | 面向大模型的轻量级微调框架,全链条开源体系微调环节 | +| 8.14 | **书生·万卷 1.0** | 🟪 数据 | 预训练语料数据集,文本+图文+视频,总量超 2TB | +| 7.6 | **书生通用大模型体系开源** | 🟦 语言 | 书生·多模态 + 书生·浦语 + 书生·天际,首个全链条开源体系 | +| 6.7 | **InternLM 发布** | 🟦 语言 | 千亿级(1040亿)参数,1.6万亿Token训练,中国高考多科超越ChatGPT | diff --git a/docs/models/xtuner/index.md b/docs/models/xtuner/index.md new file mode 100644 index 000000000..c67838500 --- /dev/null +++ b/docs/models/xtuner/index.md @@ -0,0 +1,56 @@ + +# XTuner + +XTuner 是书生生态中的大模型微调框架,支持 LoRA / QLoRA / Full 微调,以及 RLHF / GRPO 强化学习训练。 + +## 核心特性 + +- **高效微调**:LoRA / QLoRA,8GB 显存即可微调 7B 模型 +- **多模型支持**:InternLM、LLaMA、Qwen、Mistral 等 +- **强化学习**:GRPO 训练,提升推理能力 +- **数据灵活**:支持多种数据格式,简单配置即可训练 + +## 快速安装 + +```bash +pip install xtuner +``` + +## 快速微调示例 + +### 准备数据 + +```json +[ + { + "conversation": [ + {"input": "你是谁?", "output": "我是一个由书生团队训练的 AI 助手。"}, + {"input": "你能做什么?", "output": "我可以回答问题、写代码、创作文本等。"} + ] + } +] +``` + +### 开始训练 + +```bash +# 使用预置配置 +xtuner train internlm3_8b_instruct_qlora_custom_e3 + +# 或指定自定义配置 +xtuner train my_config.py +``` + +### 合并 LoRA 权重 + +```bash +xtuner convert merge \ + internlm/internlm3-8b-instruct \ + work_dirs/checkpoint-final \ + merged_model +``` + +## 相关资源 + +- [GitHub 仓库](https://github.com/InternLM/xtuner) +- [官方文档](https://xtuner.readthedocs.io) From d6217a06c6aff2fc82e7761451dfa58cb3cabf0d Mon Sep 17 00:00:00 2001 From: vansin Date: Wed, 8 Apr 2026 09:13:41 +0800 Subject: [PATCH 2/6] =?UTF-8?q?docs:=20api/models=20=E5=8A=A0=20index.md?= =?UTF-8?q?=20=E7=9B=AE=E5=BD=95=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/api/models/index.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 docs/api/models/index.md diff --git a/docs/api/models/index.md b/docs/api/models/index.md new file mode 100644 index 000000000..8eed7e39a --- /dev/null +++ b/docs/api/models/index.md @@ -0,0 +1,15 @@ +# 模型列表 + +书生系列大模型 API 支持以下模型: + +| 模型 | 模型 ID | 说明 | +|------|---------|------| +| Intern-S1-Pro | `intern-s1-pro` | 科学多模态旗舰,数学/科学/代码 | +| Intern-S1 | `intern-s1` | 标准版,通用对话 | +| InternLM3 | `internlm3-latest` | 高性能语言大模型 | +| InternVL3 | `internvl-latest` | 视觉语言多模态 | + +## 模型详情 + +- [InternLM3](internlm3.md) — 语言大模型 API 参数与示例 +- [InternVL3](internvl3.md) — 多模态模型 API 参数与示例 From a6bb5d0a863353820c39a7a389795b656f8a72b9 Mon Sep 17 00:00:00 2001 From: vansin Date: Wed, 8 Apr 2026 09:28:40 +0800 Subject: [PATCH 3/6] =?UTF-8?q?docs:=20=E5=88=A0=E9=99=A4=20high-school=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/api/authentication.md | 69 +--- docs/api/coding-tools.md | 10 +- docs/api/index.md | 43 +-- docs/api/models/internlm3.md | 12 +- docs/api/quickstart.md | 97 +----- docs/high-school/biology.md | 604 ---------------------------------- docs/high-school/chemistry.md | 488 --------------------------- docs/high-school/index.md | 34 -- docs/high-school/math.md | 417 ----------------------- docs/high-school/physics.md | 456 ------------------------- 10 files changed, 33 insertions(+), 2197 deletions(-) delete mode 100644 docs/high-school/biology.md delete mode 100644 docs/high-school/chemistry.md delete mode 100644 docs/high-school/index.md delete mode 100644 docs/high-school/math.md delete mode 100644 docs/high-school/physics.md diff --git a/docs/api/authentication.md b/docs/api/authentication.md index 992de2740..a0b105364 100644 --- a/docs/api/authentication.md +++ b/docs/api/authentication.md @@ -1,62 +1,11 @@ # 认证鉴权 -所有 书生大模型 API 请求都需要通过 API Key 进行身份认证。根据你使用的 API 服务,获取方式有所不同。 +所有 书生大模型 API 请求都需要通过 API Key 进行身份认证。 -## 社区 API Key +## API Key -由书生社区 (community.intern-ai.org.cn) 签发,适用于社区 API。 - -**Key 格式:** `sk-intern-XXXXXXXX_XXXXXXXXXXXXXXXXXXXXXXXX` - -**获取步骤:** - -1. 登录 [community.intern-ai.org.cn](https://community.intern-ai.org.cn) -2. 进入「个人中心」 -3. 切换到「API 密钥」Tab -4. 点击「创建密钥」 -5. 复制并妥善保存你的 API Key - -**免费额度:** 注册后每日可获得 10K tokens 免费体验额度,更多额度可通过积分购买流量包。 - -> **注意:** API Key 只在创建时显示一次,请务必立即保存。如果丢失,需要重新创建。 - -### 使用方式 - -```bash -Authorization: Bearer sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx -``` - -```python -from openai import OpenAI - -client = OpenAI( - api_key="sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx", - base_url="https://community.intern-ai.org.cn/api/v1" -) -``` - -推荐使用环境变量管理 API Key: - -```bash -export INTERN_COMMUNITY_API_KEY="sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx" -``` - -```python -import os -from openai import OpenAI - -client = OpenAI( - api_key=os.environ["INTERN_COMMUNITY_API_KEY"], - base_url="https://community.intern-ai.org.cn/api/v1" -) -``` - ---- - -## 官方 API Key - -由上海 AI 实验室官方平台签发,适用于官方 API。 +由上海 AI 实验室官方平台签发。 **获取步骤:** @@ -82,7 +31,7 @@ client = OpenAI( 推荐使用环境变量管理 API Key: ```bash -export INTERN_OFFICIAL_API_KEY="your-official-api-key" +export INTERN_API_KEY="your-api-key" ``` ```python @@ -90,7 +39,7 @@ import os from openai import OpenAI client = OpenAI( - api_key=os.environ["INTERN_OFFICIAL_API_KEY"], + api_key=os.environ["INTERN_API_KEY"], base_url="https://chat.intern-ai.org.cn/api/v1" ) ``` @@ -107,14 +56,6 @@ client = OpenAI( ## 速率限制 -### 社区 API - -| 计划 | 免费额度 | 扩展方式 | -|------|---------|---------| -| 免费体验 | 每日 10K tokens | 积分购买流量包 | - -### 官方 API - | 计划 | RPM (请求/分钟) | TPM (Token/分钟) | |------|----------------|------------------| | 免费 | 10 | 100,000 | diff --git a/docs/api/coding-tools.md b/docs/api/coding-tools.md index 60e5117ec..deae0c978 100644 --- a/docs/api/coding-tools.md +++ b/docs/api/coding-tools.md @@ -7,10 +7,10 @@ | 配置项 | 值 | |--------|-----| -| API Base URL | `https://community.intern-ai.org.cn/api/v1` | +| API Base URL | `https://chat.intern-ai.org.cn/api/v1` | | 协议 | OpenAI Chat Completions | -| 推荐模型 | `internlm3-latest`、`internvl-latest` | -| API Key | 在 [个人设置](/docs/api/authentication) 中获取 | +| 推荐模型 | `intern-s1-pro`、`internvl-latest` | +| API Key | 在 [认证鉴权](/docs/api/authentication) 中获取 | --- @@ -41,8 +41,8 @@ 任何支持 OpenAI 兼容 API 的工具都可以接入 InternLM: ```bash -export OPENAI_API_KEY="your-internlm-api-key" -export OPENAI_BASE_URL="https://community.intern-ai.org.cn/api/v1" +export OPENAI_API_KEY="your-api-key" +export OPENAI_BASE_URL="https://chat.intern-ai.org.cn/api/v1" ``` --- diff --git a/docs/api/index.md b/docs/api/index.md index f80098bf2..313984d96 100644 --- a/docs/api/index.md +++ b/docs/api/index.md @@ -3,36 +3,24 @@ 欢迎使用书生大模型 API!通过 API 你可以快速将书生大模型的能力集成到你的应用中。 -目前有两种途径获取书生大模型 API 服务:**社区 API** 和 **官方 API**,两者均兼容 OpenAI SDK。 - -## 两种 API 对比 - -| | 社区 API | 官方 API | -|------|----------|----------| -| **提供方** | 书生社区 (community.intern-ai.org.cn) | 上海 AI 实验室官方 | -| **Base URL** | `https://community.intern-ai.org.cn/api/v1` | `https://chat.intern-ai.org.cn/api/v1` | -| **API Key 格式** | `sk-intern-XXXXXXXX_XXXX...` | 官方平台分配 | -| **获取方式** | 登录社区 → 个人中心 → API 密钥 Tab → 创建密钥 | 访问 [internlm.intern-ai.org.cn](https://internlm.intern-ai.org.cn/api/document) → 注册 → 获取 API Key | -| **支持模型** | `intern-s1-pro`, `intern-s1`, `internlm3-latest`(别名) | `intern-s1-pro`, `intern-s1`, `internvl-latest` 等 | -| **免费额度** | 每日 10K tokens 免费体验 | 注册后获得免费额度 | -| **付费方式** | 积分购买流量包 | 官方计费方案 | -| **特点** | 社区维护,免费体验,积分流量包制 | 官方运维,更多模型,企业级服务 | -| **兼容性** | OpenAI SDK 兼容 | OpenAI SDK 兼容 | - -> **如何选择?** -> - 想快速免费体验 Intern-S1 系列 → 选社区 API -> - 需要 InternVL 多模态理解,或需要企业级稳定性 → 选官方 API +书生大模型 API 由上海 AI 实验室官方提供,兼容 OpenAI SDK。 ## 概览 +| 配置项 | 值 | +|--------|-----| +| **提供方** | 上海 AI 实验室官方 | +| **Base URL** | `https://chat.intern-ai.org.cn/api/v1` | +| **获取方式** | 访问 [internlm.intern-ai.org.cn](https://internlm.intern-ai.org.cn/api/document) → 注册 → 获取 API Key | +| **支持模型** | `intern-s1-pro`, `intern-s1`, `internvl-latest` 等 | +| **兼容性** | OpenAI SDK 兼容 | + 书生大模型 API 提供与 OpenAI 兼容的接口,支持以下能力: - **Chat Completions** — 多轮对话、文本生成(Intern-S1 / Intern-S1-Pro) -- **多模态理解** — 图片理解、文档分析(官方 API: `internvl-latest`) +- **多模态理解** — 图片理解、文档分析(`internvl-latest`) - **Function Calling** — 工具调用、Agent 场景 -此外,社区 [Playground](/playground) 提供 InternVL-U 在线体验(对话、AI 绘画、图片编辑),使用 Cookie 登录态而非 API Key。 - ## 快速导航 | 文档 | 说明 | @@ -47,20 +35,13 @@ ## 兼容性 -两种 API 均兼容 OpenAI SDK,只需修改 `base_url` 和 `api_key` 即可切换: +书生大模型 API 兼容 OpenAI SDK,只需修改 `base_url` 和 `api_key` 即可使用: ```python from openai import OpenAI -# 社区 API -client = OpenAI( - api_key="sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx", - base_url="https://community.intern-ai.org.cn/api/v1" -) - -# 官方 API client = OpenAI( - api_key="your-official-api-key", + api_key="your-api-key", base_url="https://chat.intern-ai.org.cn/api/v1" ) ``` diff --git a/docs/api/models/internlm3.md b/docs/api/models/internlm3.md index 87e3cbf25..da05fb2e0 100644 --- a/docs/api/models/internlm3.md +++ b/docs/api/models/internlm3.md @@ -5,13 +5,11 @@ InternLM3 是书生大模型系列的第三代语言模型,仅使用 4T 高质 ## 可用模型 -| 模型 ID | 上下文长度 | 可用 API | 说明 | -|--------|-----------|---------|------| -| `intern-s1-pro` | 32K | 社区 / 官方 | Intern-S1-Pro,推荐使用 | -| `intern-s1` | 32K | 社区 / 官方 | Intern-S1,通用对话与任务处理 | -| `internlm3-latest` | 32K | 社区 / 官方 | 别名,等同于 `intern-s1-pro`(向后兼容) | - -> **说明:** "社区"指社区 API (`community.intern-ai.org.cn`),"官方"指官方 API (`chat.intern-ai.org.cn`)。详见 [API 文档首页](/docs/api) 的对比表。 +| 模型 ID | 上下文长度 | 说明 | +|--------|-----------|------| +| `intern-s1-pro` | 32K | Intern-S1-Pro,推荐使用 | +| `intern-s1` | 32K | Intern-S1,通用对话与任务处理 | +| `internlm3-latest` | 32K | 别名,等同于 `intern-s1-pro`(向后兼容) | ## 特性 diff --git a/docs/api/quickstart.md b/docs/api/quickstart.md index c22ff4573..6524e68b2 100644 --- a/docs/api/quickstart.md +++ b/docs/api/quickstart.md @@ -1,7 +1,7 @@ # 快速开始 -本指南帮助你在 5 分钟内完成第一次 书生大模型 API 调用。书生大模型提供两种 API 服务,你可以根据需求选择。 +本指南帮助你在 5 分钟内完成第一次 书生大模型 API 调用。 ## 前置条件 @@ -24,84 +24,9 @@ npm install openai ## 步骤 2:发送第一条消息 -### 使用社区 API +官方 API 由上海 AI 实验室提供,支持 Intern-S1、Intern-S1-Pro、InternVL3 等模型,适合生产环境和企业级场景。 -社区 API 由书生社区 (community.intern-ai.org.cn) 提供,注册即可获得每日 10K tokens 免费额度。 - -#### Python 示例 - -```python -from openai import OpenAI - -client = OpenAI( - api_key="sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx", - base_url="https://community.intern-ai.org.cn/api/v1" -) - -response = client.chat.completions.create( - model="intern-s1-pro", - messages=[ - {"role": "system", "content": "你是书生大模型,一个有用的 AI 助手。"}, - {"role": "user", "content": "你好!请介绍一下自己。"} - ], - temperature=0.7, - max_tokens=1024 -) - -print(response.choices[0].message.content) -``` - -#### cURL 示例 - -```bash -curl -X POST https://community.intern-ai.org.cn/api/v1/chat/completions \ - -H "Content-Type: application/json" \ - -H "Authorization: Bearer sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx" \ - -d '{ - "model": "intern-s1-pro", - "messages": [ - {"role": "system", "content": "你是书生大模型,一个有用的 AI 助手。"}, - {"role": "user", "content": "你好!请介绍一下自己。"} - ], - "temperature": 0.7, - "max_tokens": 1024 - }' -``` - -#### Node.js 示例 - -```typescript -import OpenAI from 'openai'; - -const client = new OpenAI({ - apiKey: 'sk-intern-xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx', - baseURL: 'https://community.intern-ai.org.cn/api/v1', -}); - -async function main() { - const response = await client.chat.completions.create({ - model: 'intern-s1-pro', - messages: [ - { role: 'system', content: '你是书生大模型,一个有用的 AI 助手。' }, - { role: 'user', content: '你好!请介绍一下自己。' }, - ], - temperature: 0.7, - max_tokens: 1024, - }); - - console.log(response.choices[0].message.content); -} - -main(); -``` - ---- - -### 使用官方 API - -官方 API 由上海 AI 实验室提供,支持更多模型(Intern-S1, Intern-S1-Pro, InternVL3 等),适合生产环境和企业级场景。 - -#### Python 示例 +### Python 示例 ```python from openai import OpenAI @@ -124,7 +49,7 @@ response = client.chat.completions.create( print(response.choices[0].message.content) ``` -#### cURL 示例 +### cURL 示例 ```bash curl -X POST https://chat.intern-ai.org.cn/api/v1/chat/completions \ @@ -141,7 +66,7 @@ curl -X POST https://chat.intern-ai.org.cn/api/v1/chat/completions \ }' ``` -#### Node.js 示例 +### Node.js 示例 ```typescript import OpenAI from 'openai'; @@ -170,7 +95,7 @@ main(); ## 步骤 3:查看响应 -成功调用后,你会收到类似如下的 JSON 响应(两种 API 响应格式一致): +成功调用后,你会收到类似如下的 JSON 响应: ```json { @@ -197,16 +122,6 @@ main(); ## 可用模型一览 -### 社区 API 支持的模型 - -| 模型 | 类型 | 上下文长度 | 适用场景 | -|------|------|-----------|---------| -| `intern-s1-pro` | 语言模型 | 32K | Intern-S1-Pro,推荐使用 | -| `intern-s1` | 语言模型 | 32K | Intern-S1,通用对话、文本生成 | -| `internlm3-latest` | 语言模型 | 32K | 别名,等同于 `intern-s1-pro` | - -### 官方 API 支持的模型 - | 模型 | 类型 | 上下文长度 | 适用场景 | |------|------|-----------|---------| | `intern-s1-pro` | 语言模型 | 32K | Intern-S1-Pro,推荐使用 | diff --git a/docs/high-school/biology.md b/docs/high-school/biology.md deleted file mode 100644 index 9824fb73f..000000000 --- a/docs/high-school/biology.md +++ /dev/null @@ -1,604 +0,0 @@ - -# 中学生物知识树 - -基于人教版新课标教材,涵盖必修与选择性必修全部内容。 - ---- - -## 必修一:分子与细胞 - -### 1. 走近细胞 - -``` -走近细胞 -├── 细胞是生命活动的基本单位 -├── 细胞的多样性与统一性 -│ ├── 原核细胞与真核细胞 -│ │ ├── 原核细胞(无核膜,如细菌、蓝藻) -│ │ └── 真核细胞(有核膜,如动物、植物、真菌) -│ └── 细胞学说 -│ ├── 施莱登与施旺 -│ └── 要点:细胞是生物体结构和功能的基本单位 -└── 显微镜的使用 - ├── 光学显微镜 - └── 电子显微镜(了解) -``` - -### 2. 组成细胞的分子 - -``` -组成细胞的分子 -├── 细胞中的元素和化合物 -│ ├── 大量元素(C、H、O、N、P、S、K、Ca、Mg) -│ ├── 微量元素(Fe、Mn、Zn、Cu、B、Mo) -│ └── 最基本元素:C -├── 水和无机盐 -│ ├── 自由水与结合水 -│ └── 无机盐的功能(维持 pH、渗透压、参与代谢) -├── 蛋白质 -│ ├── 氨基酸的结构通式 -│ ├── 脱水缩合反应(形成肽键) -│ ├── 蛋白质的空间结构(一级 → 四级) -│ └── 蛋白质的功能 -│ ├── 催化(酶) -│ ├── 运输(血红蛋白) -│ ├── 免疫(抗体) -│ ├── 结构(角蛋白) -│ └── 调节(激素,如胰岛素) -├── 核酸 -│ ├── DNA(脱氧核糖核酸) -│ │ ├── 双链螺旋结构 -│ │ └── 碱基:A-T, G-C -│ ├── RNA(核糖核酸) -│ │ ├── 单链 -│ │ └── 碱基:A-U, G-C -│ └── 核酸的功能:储存和传递遗传信息 -├── 糖类 -│ ├── 单糖(葡萄糖、果糖、核糖、脱氧核糖) -│ ├── 二糖(蔗糖、麦芽糖、乳糖) -│ └── 多糖(淀粉、糖原、纤维素) -└── 脂质 - ├── 脂肪(储能) - ├── 磷脂(细胞膜的主要成分) - └── 固醇(胆固醇、性激素、维生素 D) -``` - -### 3. 细胞的基本结构 - -``` -细胞的基本结构 -├── 细胞膜 -│ ├── 流动镶嵌模型 -│ │ ├── 磷脂双分子层(基本骨架) -│ │ └── 蛋白质(功能承担者) -│ ├── 细胞膜的功能 -│ │ ├── 保护 -│ │ ├── 控制物质进出(选择透过性) -│ │ └── 细胞间的信息传递 -│ └── 糖蛋白(细胞识别) -├── 细胞器 -│ ├── 线粒体(有氧呼吸的主要场所) -│ ├── 叶绿体(光合作用的场所) -│ ├── 内质网(蛋白质加工运输) -│ ├── 高尔基体(蛋白质加工、分泌) -│ ├── 核糖体(蛋白质合成场所) -│ ├── 溶酶体(细胞内消化) -│ ├── 中心体(动物细胞有丝分裂) -│ └── 液泡(植物细胞,维持渗透压) -├── 细胞核 -│ ├── 核膜(双层膜,有核孔) -│ ├── 核仁(与 rRNA 合成有关) -│ ├── 染色质 / 染色体(DNA + 蛋白质) -│ └── 功能:遗传信息的储存与控制中心 -└── 生物膜系统 - └── 各种膜结构的联系与协调 -``` - -### 4. 细胞的物质输入和输出 - -``` -细胞的物质输入和输出 -├── 被动运输 -│ ├── 自由扩散(小分子、脂溶性物质,如 O₂、CO₂) -│ ├── 协助扩散(需要载体蛋白或通道蛋白) -│ └── 渗透作用 -│ ├── 半透膜 -│ ├── 质壁分离与复原 -│ └── 渗透压 -├── 主动运输 -│ ├── 低浓度 → 高浓度 -│ ├── 需要载体蛋白 + ATP -│ └── 例:K⁺ 的吸收、葡萄糖进入小肠上皮细胞 -└── 胞吞与胞吐 - └── 大分子物质的运输(如白细胞吞噬细菌) -``` - -### 5. 细胞的能量供应和利用 - -``` -细胞的能量供应和利用 -├── ATP -│ ├── 结构(腺苷 + 3 个磷酸基团) -│ ├── ATP ⇌ ADP + Pi(可逆反应) -│ └── ATP 是细胞的直接能源物质 -├── 酶 -│ ├── 本质:绝大多数是蛋白质,少数是 RNA -│ ├── 特性:高效性、专一性、多样性 -│ ├── 影响因素:温度、pH -│ └── 酶促反应的机理(降低活化能) -├── 细胞呼吸 -│ ├── 有氧呼吸 -│ │ ├── 第一阶段:糖酵解(细胞质基质) -│ │ │ └── 葡萄糖 → 丙酮酸 + [H] + 少量 ATP -│ │ ├── 第二阶段:柠檬酸循环(线粒体基质) -│ │ │ └── 丙酮酸 → CO₂ + [H] + 少量 ATP -│ │ └── 第三阶段:氧化磷酸化(线粒体内膜) -│ │ └── [H] + O₂ → H₂O + 大量 ATP -│ └── 无氧呼吸 -│ ├── 产物:乙醇 + CO₂(酵母菌、植物) -│ └── 产物:乳酸(动物、乳酸菌) -└── 光合作用 - ├── 光反应(类囊体薄膜) - │ ├── 水的光解 H₂O → [H] + O₂ - │ └── ATP 的合成 - ├── 暗反应(叶绿体基质) - │ ├── CO₂ 固定 CO₂ + C₅ → 2C₃ - │ └── C₃ 还原 C₃ → (CH₂O) + C₅ - └── 影响光合作用的因素 - ├── 光照强度 - ├── CO₂ 浓度 - └── 温度 -``` - -### 6. 细胞的生命历程 - -``` -细胞的生命历程 -├── 有丝分裂 -│ ├── 分裂间期(DNA 复制、蛋白质合成) -│ ├── 前期(染色质 → 染色体,核膜消失) -│ ├── 中期(染色体排列在赤道板) -│ ├── 后期(着丝粒分裂,染色体移向两极) -│ └── 末期(核膜重现,染色体 → 染色质) -├── 细胞分化 -│ ├── 概念(基因的选择性表达) -│ └── 全能性 -├── 细胞衰老 -│ └── 特征(酶活性降低、色素积累等) -├── 细胞凋亡 -│ └── 基因控制的程序性死亡 -└── 细胞癌变 - ├── 原癌基因与抑癌基因 - └── 致癌因子(物理、化学、生物) -``` - ---- - -## 必修二:遗传与进化 - -### 7. 遗传因子的发现 - -``` -遗传因子的发现 -├── 孟德尔的豌豆杂交实验 -│ ├── 一对相对性状的杂交实验 -│ │ ├── 分离定律 -│ │ ├── 显性与隐性 -│ │ └── 性状分离比 3:1 -│ └── 两对相对性状的杂交实验 -│ ├── 自由组合定律 -│ └── 性状分离比 9:3:3:1 -├── 基因与染色体的关系 -│ ├── 基因在染色体上 -│ ├── 萨顿假说(基因的行为与染色体平行) -│ └── 摩尔根的果蝇实验(伴性遗传) -└── 遗传概率计算 - ├── 分支法 - ├── 棋盘法 - └── 概率乘法与加法 -``` - -### 8. 基因的本质 - -``` -基因的本质 -├── DNA 是遗传物质的证据 -│ ├── 肺炎链球菌转化实验(格里菲思) -│ ├── 噬菌体侵染细菌实验(赫尔希、蔡斯) -│ └── ³²P 标记 DNA,³⁵S 标记蛋白质 -├── DNA 的结构 -│ ├── 双螺旋结构(沃森、克里克) -│ ├── 碱基互补配对(A-T, G-C) -│ ├── 脱氧核苷酸的组成 -│ └── 反向平行 -├── DNA 的复制 -│ ├── 半保留复制 -│ ├── 条件:模板、原料、能量、酶(解旋酶、DNA 聚合酶) -│ └── 特点:边解旋边复制 -└── 基因的概念 - └── 有遗传效应的 DNA 片段 -``` - -### 9. 基因的表达 - -``` -基因的表达 -├── 转录(DNA → mRNA) -│ ├── 场所:细胞核 -│ ├── 模板链(反义链) -│ ├── 碱基配对:A-U, T-A, G-C, C-G -│ └── RNA 聚合酶 -├── 翻译(mRNA → 蛋白质) -│ ├── 场所:核糖体 -│ ├── 密码子(mRNA 上三个碱基一组) -│ ├── tRNA(反密码子,携带氨基酸) -│ └── 遗传密码表(64 个密码子,含起始/终止密码子) -├── 中心法则 -│ ├── DNA → DNA(复制) -│ ├── DNA → RNA → 蛋白质 -│ └── RNA → DNA(逆转录,逆转录酶) -└── 基因对性状的控制 - ├── 直接控制:基因 → 蛋白质(结构蛋白) - └── 间接控制:基因 → 酶 → 代谢 → 性状 -``` - -### 10. 基因突变与其他变异 - -``` -基因突变与其他变异 -├── 基因突变 -│ ├── 概念(碱基的增添、缺失或替换) -│ ├── 特点(随机性、不定向性、低频率) -│ └── 意义(变异的根本来源) -├── 基因重组 -│ ├── 自由组合型重组 -│ ├── 交叉互换型重组 -│ └── 意义(有性生殖变异的重要来源) -├── 染色体变异 -│ ├── 染色体结构变异(缺失、重复、倒位、易位) -│ └── 染色体数目变异 -│ ├── 个别染色体增减(如 21 三体综合征) -│ └── 整倍体变异(多倍体、单倍体) -└── 人类遗传病 - ├── 单基因遗传病(常染色体 / X 染色体,显性 / 隐性) - ├── 多基因遗传病 - └── 染色体异常遗传病 -``` - -### 11. 生物的进化 - -``` -生物的进化 -├── 现代生物进化理论 -│ ├── 种群是生物进化的基本单位 -│ ├── 基因频率与基因型频率 -│ ├── 突变和基因重组产生进化的原材料 -│ ├── 自然选择导致种群基因频率定向改变 -│ └── 隔离是物种形成的必要条件 -│ ├── 地理隔离 -│ └── 生殖隔离 -├── 哈迪-温伯格定律 -│ └── p² + 2pq + q² = 1(理想条件下) -└── 共同进化与生物多样性 - ├── 共同进化 - └── 生物多样性的三个层次(基因、物种、生态系统) -``` - ---- - -## 选择性必修一:稳态与调节 - -### 12. 人体的内环境与稳态 - -``` -人体的内环境与稳态 -├── 内环境 -│ ├── 组织液、血浆、淋巴 -│ ├── 内环境的理化性质 -│ │ ├── 渗透压 -│ │ ├── pH -│ │ └── 温度 -│ └── 细胞与内环境的物质交换 -└── 稳态 - ├── 概念(内环境的各项指标保持相对稳定) - └── 调节机制:神经—体液—免疫调节 -``` - -### 13. 神经调节 - -``` -神经调节 -├── 神经系统的结构基础 -│ ├── 神经元的结构(细胞体、树突、轴突) -│ └── 反射弧(感受器 → 传入神经 → 神经中枢 → 传出神经 → 效应器) -├── 兴奋的传导 -│ ├── 静息电位(外正内负,K⁺ 外流) -│ ├── 动作电位(外负内正,Na⁺ 内流) -│ └── 传导特点:双向传导 -├── 兴奋的传递(突触) -│ ├── 突触结构(突触前膜、突触间隙、突触后膜) -│ ├── 神经递质(乙酰胆碱等) -│ ├── 单向传递 -│ └── 兴奋性突触与抑制性突触 -└── 神经系统的分级调节 - ├── 大脑皮层(最高级中枢) - ├── 脑干(呼吸中枢等) - └── 脊髓(低级反射中枢) -``` - -### 14. 体液调节 - -``` -体液调节 -├── 激素调节 -│ ├── 下丘脑—垂体—靶腺轴 -│ │ ├── 甲状腺激素的分级调节 -│ │ └── 负反馈调节 -│ ├── 血糖调节 -│ │ ├── 胰岛素(降血糖) -│ │ ├── 胰高血糖素(升血糖) -│ │ └── 拮抗作用 -│ └── 其他激素 -│ ├── 生长激素 -│ ├── 性激素 -│ └── 肾上腺素 -├── 激素的特点 -│ ├── 微量高效 -│ ├── 通过体液运输 -│ └── 作用于靶器官、靶细胞 -└── 神经调节与体液调节的协调 - └── 体温调节、水盐平衡调节 -``` - -### 15. 免疫调节 - -``` -免疫调节 -├── 免疫系统的组成 -│ ├── 免疫器官(骨髓、胸腺、脾、淋巴结) -│ ├── 免疫细胞 -│ │ ├── 吞噬细胞 -│ │ ├── T 细胞(在胸腺中成熟) -│ │ └── B 细胞(在骨髓中成熟) -│ └── 免疫活性物质(抗体、淋巴因子、溶菌酶) -├── 非特异性免疫 -│ ├── 第一道防线(皮肤、黏膜) -│ └── 第二道防线(吞噬细胞、溶菌酶等) -├── 特异性免疫 -│ ├── 体液免疫 -│ │ ├── 抗原 → 吞噬细胞呈递 → T 细胞 → B 细胞 -│ │ ├── B 细胞 → 浆细胞 → 抗体 -│ │ └── 记忆细胞(二次免疫更快更强) -│ └── 细胞免疫 -│ ├── T 细胞 → 效应 T 细胞 -│ └── 效应 T 细胞裂解靶细胞 -└── 免疫异常 - ├── 自身免疫病(如类风湿关节炎) - ├── 过敏反应 - └── 免疫缺陷病(如 AIDS) -``` - -### 16. 植物的激素调节 - -``` -植物的激素调节 -├── 生长素 -│ ├── 发现(达尔文、温特实验) -│ ├── 产生部位(幼嫩的芽、叶、发育中的种子) -│ ├── 极性运输 -│ ├── 两重性(低促高抑) -│ └── 应用(促进扦插生根、无子果实) -├── 其他植物激素 -│ ├── 赤霉素(促进细胞伸长) -│ ├── 细胞分裂素(促进细胞分裂) -│ ├── 脱落酸(抑制生长、促进衰老脱落) -│ └── 乙烯(促进果实成熟) -└── 植物激素的协调作用 - └── 激素间的拮抗与协同 -``` - ---- - -## 选择性必修二:生物与环境 - -### 17. 种群及其动态 - -``` -种群及其动态 -├── 种群的特征 -│ ├── 种群密度 -│ ├── 出生率和死亡率 -│ ├── 迁入率和迁出率 -│ ├── 年龄结构(增长型、稳定型、衰退型) -│ └── 性别比例 -├── 种群密度的调查方法 -│ ├── 样方法 -│ └── 标志重捕法 -├── 种群数量的变化 -│ ├── "J"形增长(理想条件,Nₜ = N₀λᵗ) -│ ├── "S"形增长(环境阻力,K 值) -│ └── K/2 时增长速率最大 -└── 种群数量的调节 - ├── 非密度制约因素 - └── 密度制约因素 -``` - -### 18. 群落及其演替 - -``` -群落及其演替 -├── 群落的结构 -│ ├── 物种组成(丰富度) -│ ├── 种间关系 -│ │ ├── 竞争 -│ │ ├── 捕食 -│ │ ├── 互利共生 -│ │ └── 寄生 -│ ├── 垂直结构(分层现象) -│ └── 水平结构 -└── 群落的演替 - ├── 初生演替(裸岩 → 地衣 → 苔藓 → ... → 森林) - └── 次生演替(有土壤和种子库的恢复) -``` - -### 19. 生态系统及其稳定性 - -``` -生态系统及其稳定性 -├── 生态系统的结构 -│ ├── 组成成分 -│ │ ├── 非生物的物质和能量 -│ │ ├── 生产者(自养生物) -│ │ ├── 消费者 -│ │ └── 分解者 -│ └── 营养结构 -│ ├── 食物链 -│ └── 食物网 -├── 生态系统的能量流动 -│ ├── 能量流动的过程 -│ ├── 特点:单向流动、逐营养级递减 -│ ├── 传递效率 10%~20% -│ └── 能量金字塔 -├── 生态系统的物质循环 -│ ├── 碳循环 -│ │ ├── CO₂ 的固定(光合作用、化能合成) -│ │ ├── 含碳有机物的传递(食物链) -│ │ └── CO₂ 的释放(呼吸作用、分解作用、燃烧) -│ └── 物质循环的特点(全球性、循环性) -├── 生态系统的信息传递 -│ ├── 物理信息 -│ ├── 化学信息 -│ └── 行为信息 -└── 生态系统的稳定性 - ├── 抵抗力稳定性 - ├── 恢复力稳定性 - └── 负反馈调节 -``` - -### 20. 人与环境 - -``` -人与环境 -├── 生态环境问题 -│ ├── 全球气候变化(温室效应) -│ ├── 水资源短缺 -│ ├── 臭氧层破坏 -│ ├── 酸雨 -│ ├── 土地荒漠化 -│ └── 生物多样性丧失 -├── 生物多样性及其保护 -│ ├── 基因多样性 -│ ├── 物种多样性 -│ ├── 生态系统多样性 -│ └── 保护措施 -│ ├── 就地保护(自然保护区) -│ └── 迁地保护(动物园、植物园) -└── 可持续发展 -``` - ---- - -## 选择性必修三:生物技术与工程 - -### 21. 基因工程 - -``` -基因工程 -├── 基因工程的基本工具 -│ ├── 限制性内切核酸酶("分子手术刀") -│ ├── DNA 连接酶("分子缝合针") -│ └── 运载体(质粒、噬菌体、病毒) -├── 基因工程的基本操作步骤 -│ ├── 获取目的基因 -│ │ ├── 从基因文库中获取 -│ │ ├── 化学合成法 -│ │ └── PCR 扩增 -│ ├── 构建基因表达载体(重组 DNA 分子) -│ ├── 将目的基因导入受体细胞 -│ │ ├── 农杆菌转化法(植物) -│ │ ├── 显微注射法(动物) -│ │ └── 感受态细胞法(微生物) -│ └── 目的基因的检测与鉴定 -│ ├── 分子水平检测 -│ └── 个体水平鉴定 -└── 基因工程的应用 - ├── 农业(转基因作物) - ├── 医药(基因工程药物,如胰岛素) - └── 环保(工程菌处理污染) -``` - -### 22. 细胞工程 - -``` -细胞工程 -├── 植物细胞工程 -│ ├── 植物组织培养 -│ │ ├── 原理:细胞的全能性 -│ │ ├── 过程:外植体 → 脱分化 → 愈伤组织 → 再分化 → 植株 -│ │ └── 应用:快速繁殖、脱毒苗 -│ └── 植物体细胞杂交 -│ ├── 去壁(纤维素酶、果胶酶)→ 原生质体 -│ ├── 融合(PEG、电融合) -│ └── 杂种植株的培育 -├── 动物细胞工程 -│ ├── 动物细胞培养 -│ │ ├── 培养条件(培养基、CO₂、温度、pH) -│ │ └── 贴壁生长与接触抑制 -│ ├── 动物细胞融合 -│ │ └── 灭活的病毒 -│ └── 单克隆抗体的制备 -│ ├── 骨髓瘤细胞 + 免疫 B 细胞 → 杂交瘤细胞 -│ ├── HAT 培养基筛选 -│ └── 抗体检测与克隆化培养 -└── 克隆技术 - ├── 胚胎分割 - └── 体细胞克隆(核移植) -``` - -### 23. 发酵工程与生态工程 - -``` -发酵工程与生态工程 -├── 传统发酵技术 -│ ├── 果酒和果醋的制作 -│ ├── 泡菜的腌制(乳酸发酵) -│ └── 腐乳的制作 -├── 微生物的培养与应用 -│ ├── 培养基(碳源、氮源、矿质元素、水) -│ ├── 灭菌与消毒 -│ ├── 纯化培养(平板划线法、稀释涂布平板法) -│ └── 微生物的计数 -├── 发酵工程 -│ ├── 基本环节 -│ │ ├── 菌种的选育 -│ │ ├── 培养基的配制与灭菌 -│ │ ├── 扩大培养与接种 -│ │ ├── 发酵过程的控制 -│ │ └── 产品的分离纯化 -│ └── 应用(抗生素、氨基酸、维生素的生产) -└── 生态工程 - ├── 基本原理 - │ ├── 物质循环再生原理 - │ ├── 物种多样性原理 - │ ├── 协调与平衡原理 - │ ├── 整体性原理 - │ └── 系统学和工程学原理 - └── 实例 - ├── 农村综合发展型生态工程 - ├── 湿地生态恢复工程 - └── 矿区废弃地生态恢复 -``` - ---- - -## 知识网络与学科交叉 - -``` -生物 → AI/ML 关联 -├── DNA 序列 → 基因组学、序列预测(如 AlphaFold) -├── 蛋白质结构 → 蛋白质折叠预测 -├── 神经调节 → 人工神经网络的生物学灵感 -├── 种群模型 → 进化算法、遗传算法 -├── 生态系统 → 多智能体系统、群体智能 -└── 基因工程 → AI 辅助基因编辑设计 -``` diff --git a/docs/high-school/chemistry.md b/docs/high-school/chemistry.md deleted file mode 100644 index dc61c6679..000000000 --- a/docs/high-school/chemistry.md +++ /dev/null @@ -1,488 +0,0 @@ - -# 中学化学知识树 - -基于人教版新课标教材,涵盖必修与选择性必修全部内容。 - ---- - -## 必修第一册 - -### 1. 物质及其变化 - -``` -物质及其变化 -├── 物质的分类 -│ ├── 纯净物与混合物 -│ ├── 单质与化合物 -│ ├── 酸、碱、盐、氧化物 -│ └── 分散系 -│ ├── 溶液、胶体、浊液 -│ └── 胶体的性质(丁达尔效应、电泳、聚沉) -├── 物质的变化 -│ ├── 物理变化与化学变化 -│ └── 化学反应的分类 -│ ├── 按反应形式:化合、分解、置换、复分解 -│ └── 按是否有电子转移:氧化还原反应、非氧化还原反应 -├── 氧化还原反应 -│ ├── 概念(氧化剂、还原剂) -│ ├── 化合价升降法(电子转移方向) -│ ├── 氧化性与还原性强弱比较 -│ └── 配平方法 -└── 离子反应 - ├── 电解质与非电解质 - ├── 强电解质与弱电解质 - ├── 离子方程式的书写 - └── 离子共存问题 -``` - -### 2. 海水中的重要元素——钠和氯 - -``` -钠和氯 -├── 钠(Na) -│ ├── 物理性质(银白色、质软、密度小) -│ ├── 化学性质 -│ │ ├── 与 O₂ 反应(常温 → Na₂O,点燃 → Na₂O₂) -│ │ ├── 与 H₂O 反应 -│ │ └── 与酸、盐溶液的反应 -│ ├── 氧化钠 Na₂O 与过氧化钠 Na₂O₂ -│ │ └── Na₂O₂ 的强氧化性与漂白性 -│ ├── 碳酸钠 Na₂CO₃ 与碳酸氢钠 NaHCO₃ -│ │ └── 鉴别方法与相互转化 -│ └── 焰色试验 -├── 氯(Cl) -│ ├── 氯气的性质 -│ │ ├── 与金属反应(Fe → FeCl₃) -│ │ ├── 与非金属反应(H₂) -│ │ ├── 与 NaOH 反应(制备 84 消毒液) -│ │ └── 与水反应(歧化反应) -│ ├── 次氯酸 HClO 的漂白性 -│ ├── 氯气的实验室制法 -│ │ └── MnO₂ + 浓 HCl -│ └── 卤族元素的递变规律 -└── 物质的量 - ├── 摩尔(mol)与阿伏加德罗常数 Nₐ - ├── 摩尔质量 M(g/mol) - ├── 气体摩尔体积 Vm(标况 22.4 L/mol) - ├── 物质的量浓度 c = n/V(mol/L) - └── 溶液稀释 c₁V₁ = c₂V₂ -``` - -### 3. 铁 金属材料 - -``` -铁 金属材料 -├── 铁的性质 -│ ├── 与非金属反应(O₂、Cl₂、S) -│ ├── 与酸反应 -│ ├── 与盐溶液反应 -│ └── Fe²⁺ 与 Fe³⁺ 的相互转化 -├── 铁的化合物 -│ ├── 氧化铁 Fe₂O₃(铁红) -│ ├── 四氧化三铁 Fe₃O₄ -│ ├── 氢氧化铁 Fe(OH)₃ 与氢氧化亚铁 Fe(OH)₂ -│ └── Fe²⁺ 和 Fe³⁺ 的检验方法 -│ ├── KSCN 溶液 -│ └── NaOH 溶液 -├── 铝的性质 -│ ├── 两性(与酸、碱都反应) -│ └── 铝热反应 -├── 氧化铝与氢氧化铝 -│ └── 两性氧化物与两性氢氧化物 -└── 合金 - ├── 铁合金(生铁、钢) - └── 铝合金、铜合金 -``` - ---- - -## 必修第二册 - -### 4. 物质结构 元素周期律 - -``` -物质结构 元素周期律 -├── 原子结构 -│ ├── 原子核(质子、中子) -│ ├── 核外电子排布 -│ │ ├── 电子层(K, L, M, N...) -│ │ └── 排布规则(2n² 等) -│ └── 原子结构示意图 -├── 元素周期表 -│ ├── 编排原则(周期、族) -│ ├── 7 个周期(短周期 + 长周期) -│ ├── 18 个纵列,16 个族 -│ └── 主族、副族、第 VIII 族、0 族 -├── 元素周期律 -│ ├── 原子半径的变化规律 -│ ├── 主要化合价的变化规律 -│ ├── 元素金属性与非金属性的递变 -│ ├── 最高价氧化物对应水化物酸碱性递变 -│ └── 同主族元素性质递变 -├── 化学键 -│ ├── 离子键(阴阳离子间的静电作用) -│ ├── 共价键(共用电子对) -│ │ ├── 极性共价键与非极性共价键 -│ │ └── σ 键与 π 键(了解) -│ ├── 金属键(了解) -│ └── 电子式与结构式 -└── 分子间作用力 - ├── 范德华力 - └── 氢键 -``` - -### 5. 化学反应与能量 - -``` -化学反应与能量 -├── 化学能与热能 -│ ├── 放热反应与吸热反应 -│ ├── 反应热与焓变 ΔH -│ ├── 热化学方程式 -│ └── 盖斯定律 -├── 化学能与电能 -│ ├── 原电池 -│ │ ├── 工作原理(氧化还原反应) -│ │ ├── 构成条件 -│ │ ├── 正极与负极 -│ │ └── 电极反应式 -│ ├── 化学电源 -│ │ ├── 干电池 -│ │ ├── 铅蓄电池 -│ │ ├── 锂离子电池 -│ │ └── 氢燃料电池 -│ └── 电解池 -│ ├── 工作原理 -│ ├── 阳极氧化、阴极还原 -│ └── 电解食盐水、电解 CuSO₄ 溶液 -└── 化学反应的速率与限度 - ├── 化学反应速率 - │ ├── v = Δc/Δt - │ └── 影响因素(浓度、温度、催化剂、接触面积) - └── 化学平衡 - ├── 可逆反应 - ├── 化学平衡状态的判断 - └── 平衡移动与勒夏特列原理(定性了解) -``` - -### 6. 化学与可持续发展 - -``` -化学与可持续发展 -├── 自然资源的开发利用 -│ ├── 金属矿物的冶炼 -│ │ ├── 热还原法(Fe、Cu) -│ │ ├── 电解法(Al、Na、Mg) -│ │ └── 热分解法(Hg、Ag) -│ └── 海水资源的综合利用 -├── 化学品的合理使用 -│ └── 化肥、农药、食品添加剂 -└── 环境保护 - ├── 大气污染(SO₂、NOₓ、PM2.5) - ├── 水体污染 - └── 绿色化学 -``` - ---- - -## 选择性必修一:化学反应原理 - -### 7. 化学反应的热效应 - -``` -化学反应的热效应 -├── 反应热 -│ ├── 焓变 ΔH 的测定(量热计) -│ └── 中和热 -├── 盖斯定律 -│ └── 利用已知反应计算未知反应的焓变 -└── 键能与反应热 - └── ΔH = 反应物键能之和 - 生成物键能之和 -``` - -### 8. 化学反应速率与化学平衡 - -``` -化学反应速率与化学平衡 -├── 化学反应速率 -│ ├── 浓度对速率的影响 -│ ├── 温度对速率的影响 -│ ├── 催化剂对速率的影响 -│ └── 有效碰撞理论与活化能 -├── 化学平衡 -│ ├── 化学平衡常数 K -│ │ ├── 表达式的书写 -│ │ └── K 只与温度有关 -│ ├── 化学平衡的移动 -│ │ ├── 勒夏特列原理 -│ │ ├── 浓度变化的影响 -│ │ ├── 压强变化的影响 -│ │ └── 温度变化的影响 -│ └── 等效平衡 -└── 化学反应的方向 - ├── 焓变(ΔH) - ├── 熵变(ΔS) - └── 自由能判据 ΔG = ΔH - TΔS < 0(了解) -``` - -### 9. 水溶液中的离子反应与平衡 - -``` -水溶液中的离子反应与平衡 -├── 电离平衡 -│ ├── 弱电解质的电离 -│ ├── 电离常数 Ka、Kb -│ └── 影响电离平衡的因素 -├── 水的电离与溶液的 pH -│ ├── 水的离子积 Kw = [H⁺][OH⁻] = 10⁻¹⁴(25°C) -│ ├── pH = -lg[H⁺] -│ └── pH 的测定方法 -├── 盐类的水解 -│ ├── 水解的实质(盐中弱离子与水电离出的 H⁺/OH⁻ 结合) -│ ├── 水解规律("有弱才水解,越弱越水解") -│ ├── 影响水解的因素 -│ └── 水解的应用(明矾净水等) -├── 沉淀溶解平衡 -│ ├── 溶度积 Ksp -│ ├── 沉淀的生成、溶解与转化 -│ └── Qc 与 Ksp 的比较 -└── 离子浓度大小比较 - ├── 电荷守恒 - ├── 物料守恒 - └── 质子守恒 -``` - -### 10. 电化学基础 - -``` -电化学基础 -├── 原电池(深入) -│ ├── 电极电势 -│ └── 盐桥的作用 -├── 电解池(深入) -│ ├── 放电顺序 -│ │ ├── 阳极:活泼金属电极 > S²⁻ > I⁻ > Br⁻ > Cl⁻ > OH⁻ -│ │ └── 阴极:Ag⁺ > Cu²⁺ > H⁺ > ... > Na⁺ -│ ├── 电解定律 m = MIt/(nF) -│ └── 电解的应用(电镀、电解精炼、电冶金) -└── 金属的腐蚀与防护 - ├── 化学腐蚀与电化学腐蚀 - ├── 吸氧腐蚀与析氢腐蚀 - └── 防护方法(牺牲阳极法、外加电流法) -``` - ---- - -## 选择性必修二:物质结构与性质 - -### 11. 原子结构与元素性质 - -``` -原子结构与元素性质 -├── 原子核外电子的运动 -│ ├── 能层与能级(s, p, d, f) -│ ├── 构造原理与电子排布式 -│ └── 简化电子排布(用稀有气体核表示) -├── 原子结构与元素周期表 -│ ├── 能级与周期的关系 -│ └── 价电子构型与族的关系 -└── 元素性质的周期性变化 - ├── 电离能 - ├── 电负性 - └── 原子半径 -``` - -### 12. 分子结构与性质 - -``` -分子结构与性质 -├── 共价键 -│ ├── σ 键与 π 键 -│ ├── 键参数(键能、键长、键角) -│ └── 等电子体 -├── 分子的立体构型 -│ ├── VSEPR 模型(价层电子对互斥理论) -│ ├── 常见分子构型(直线形、平面三角形、四面体形、V 形等) -│ └── 杂化轨道理论(sp、sp²、sp³) -├── 分子的极性 -│ ├── 极性分子与非极性分子 -│ └── 判断方法 -└── 分子间作用力与物质性质 - ├── 范德华力(影响熔沸点) - ├── 氢键(F、O、N 与 H 之间) - │ ├── 分子间氢键 - │ └── 分子内氢键 - └── 对物质性质的影响 -``` - -### 13. 晶体结构与性质 - -``` -晶体结构与性质 -├── 晶体的常识 -│ ├── 晶体与非晶体 -│ ├── 晶胞 -│ └── X 射线衍射 -├── 四种晶体类型 -│ ├── 离子晶体 -│ │ ├── NaCl 型、CsCl 型 -│ │ └── 配位数 -│ ├── 原子晶体 -│ │ ├── 金刚石、SiO₂、SiC -│ │ └── 硬度大、熔点高 -│ ├── 分子晶体 -│ │ ├── 冰、干冰、I₂ -│ │ └── 分子间作用力决定物理性质 -│ └── 金属晶体 -│ ├── 金属键与电子气模型 -│ └── 堆积方式(面心立方、体心立方、六方最密) -└── 晶体性质的比较 - └── 熔沸点:原子晶体 > 离子晶体 > 分子晶体(一般规律) -``` - ---- - -## 选择性必修三:有机化学基础 - -### 14. 有机化合物概述 - -``` -有机化合物概述 -├── 有机物的分类 -│ ├── 按碳骨架:链状 / 环状 -│ └── 按官能团分类 -├── 有机物的命名 -│ ├── 系统命名法 -│ └── 常见有机物的俗名 -├── 有机物的结构特点 -│ ├── 碳原子的四价 -│ ├── 碳链与碳环 -│ └── 同分异构体 -│ ├── 碳链异构 -│ ├── 位置异构 -│ └── 官能团异构 -└── 有机物的研究方法 - ├── 元素分析(确定分子式) - ├── 红外光谱(IR,确定官能团) - ├── 核磁共振氢谱(¹H NMR,确定 H 的种类) - └── 质谱(MS,确定相对分子质量) -``` - -### 15. 烃 - -``` -烃 -├── 烷烃 -│ ├── 结构特点(C-C 单键、sp³ 杂化) -│ ├── 通式 CₙH₂ₙ₊₂ -│ ├── 性质:取代反应(卤代)、氧化反应(燃烧) -│ └── 甲烷 -├── 烯烃 -│ ├── 结构特点(C=C 双键、sp² 杂化) -│ ├── 通式 CₙH₂ₙ -│ ├── 性质:加成反应、加聚反应、氧化反应 -│ └── 乙烯 -│ └── 使溴水褪色、使酸性 KMnO₄ 褪色 -├── 炔烃 -│ ├── 结构特点(C≡C 三键、sp 杂化) -│ ├── 通式 CₙH₂ₙ₋₂ -│ └── 乙炔 -├── 苯及其同系物 -│ ├── 苯的结构(平面正六边形,大 π 键) -│ ├── 苯的性质:取代反应(溴代、硝化)、加成反应 -│ └── 甲苯、二甲苯 -│ └── 甲苯使酸性 KMnO₄ 褪色(苯不能) -└── 石油化工 - ├── 石油的分馏 - ├── 催化裂化与裂解 - └── 煤的干馏 -``` - -### 16. 烃的衍生物 - -``` -烃的衍生物 -├── 卤代烃 -│ ├── 结构与性质 -│ ├── 取代反应(水解) -│ └── 消去反应 -├── 醇 -│ ├── 官能团 -OH -│ ├── 乙醇的性质 -│ │ ├── 与 Na 反应 -│ │ ├── 催化氧化 → 乙醛 -│ │ ├── 消去反应 → 乙烯 -│ │ ├── 酯化反应 -│ │ └── 与 HBr 取代 -│ └── 醇的通性 -├── 酚 -│ ├── 苯酚的结构(-OH 直接连在苯环上) -│ ├── 弱酸性(与 NaOH 反应) -│ ├── 与 FeCl₃ 显紫色 -│ ├── 与浓溴水反应(白色沉淀) -│ └── 醇与酚的区别 -├── 醛 -│ ├── 官能团 -CHO -│ ├── 乙醛的性质 -│ │ ├── 银镜反应 -│ │ ├── 与新制 Cu(OH)₂ 反应 -│ │ └── 催化氧化 → 乙酸 -│ └── 甲醛(福尔马林) -├── 羧酸 -│ ├── 官能团 -COOH -│ ├── 乙酸的性质 -│ │ ├── 弱酸性 -│ │ └── 酯化反应(与醇反应) -│ └── 常见有机酸 -├── 酯 -│ ├── 酯化反应(可逆、浓 H₂SO₄ 催化) -│ └── 水解反应(酸性 / 碱性条件) -└── 官能团之间的相互转化 - └── 醇 ⇌ 醛 ⇌ 羧酸 → 酯 -``` - -### 17. 生物大分子与合成高分子 - -``` -生物大分子与合成高分子 -├── 糖类 -│ ├── 单糖(葡萄糖 C₆H₁₂O₆、果糖) -│ │ └── 葡萄糖的银镜反应 -│ ├── 二糖(蔗糖、麦芽糖) -│ │ └── 水解产物 -│ └── 多糖(淀粉、纤维素) -│ ├── 淀粉遇碘变蓝 -│ └── 纤维素的水解 -├── 油脂 -│ ├── 高级脂肪酸与甘油的酯 -│ └── 皂化反应 -├── 蛋白质 -│ ├── 氨基酸的结构(氨基 + 羧基) -│ ├── 肽键与肽链 -│ ├── 蛋白质的性质 -│ │ ├── 盐析(可逆) -│ │ ├── 变性(不可逆) -│ │ ├── 颜色反应(双缩脲反应 — 紫色) -│ │ └── 灼烧有烧焦羽毛味 -│ └── 酶(生物催化剂) -├── 核酸(了解) -│ ├── DNA 与 RNA -│ └── 核苷酸 -└── 合成高分子 - ├── 加聚反应(聚乙烯、聚氯乙烯) - ├── 缩聚反应(酚醛树脂、涤纶) - └── 高分子材料(塑料、橡胶、纤维) -``` - ---- - -## 知识网络与学科交叉 - -``` -化学 → AI/ML 关联 -├── 分子结构 → 分子生成模型(GNN、Diffusion) -├── 反应动力学 → 化学反应预测 -├── 元素周期律 → 材料性质预测 -├── 有机合成 → 逆合成分析(AI 辅助药物设计) -└── 化学实验 → 自动化实验室(Lab Automation) -``` diff --git a/docs/high-school/index.md b/docs/high-school/index.md deleted file mode 100644 index 8f03f0ac3..000000000 --- a/docs/high-school/index.md +++ /dev/null @@ -1,34 +0,0 @@ - -# 中学学科知识 - -基于《普通高中课程标准(2017 年版 2020 年修订)》梳理的中学四大理科学科知识树,帮助你建立系统、完整的知识体系。 - -## 学科导航 - -| 学科 | 必修模块 | 选择性必修模块 | 核心知识点数 | -|------|----------|---------------|-------------| -| [数学](/docs/high-school/math) | 必修一、二 | 选必一、二、三 | ~120 | -| [物理](/docs/high-school/physics) | 必修一、二、三 | 选必一、二、三 | ~100 | -| [化学](/docs/high-school/chemistry) | 必修一、二 | 选必一、二、三 | ~90 | -| [生物](/docs/high-school/biology) | 必修一、二 | 选必一、二、三 | ~80 | - -## 为什么需要中学学科知识树? - -- **学习 AI 的前置知识**:线性代数、概率统计、微积分初步等数学基础是机器学习的必备前置 -- **系统化查漏补缺**:对照知识树快速定位自己的薄弱环节 -- **学科交叉理解**:理解物理建模、化学计算、生物信息学等跨学科联系 - -## 知识树结构说明 - -每个学科按以下层级组织: - -``` -学科 -├── 模块(必修 / 选择性必修) -│ ├── 章节主题 -│ │ ├── 核心概念 -│ │ ├── 重要定理 / 公式 -│ │ └── 典型应用 -``` - -> 内容持续完善中,欢迎在 [GitHub](https://github.com/vansin/intern-ai) 提交 Issue 或 PR 参与贡献。 diff --git a/docs/high-school/math.md b/docs/high-school/math.md deleted file mode 100644 index 9d1541472..000000000 --- a/docs/high-school/math.md +++ /dev/null @@ -1,417 +0,0 @@ - -# 中学数学知识树 - -基于人教 A 版新课标教材,涵盖必修与选择性必修全部内容。 - ---- - -## 必修第一册 - -### 1. 集合与常用逻辑用语 - -``` -集合与常用逻辑用语 -├── 集合 -│ ├── 集合的概念与表示(列举法、描述法) -│ ├── 集合间的基本关系(子集、真子集、相等) -│ └── 集合的基本运算(交集、并集、补集) -├── 常用逻辑用语 -│ ├── 充分条件与必要条件 -│ ├── 全称量词与存在量词 -│ └── 逻辑联结词(且、或、非) -``` - -### 2. 一元二次函数、方程和不等式 - -``` -一元二次函数、方程和不等式 -├── 等式与不等式的性质 -├── 一元二次不等式 -│ ├── 与二次函数图像的关系 -│ └── 解法(判别式分类讨论) -└── 基本不等式 a+b ≥ 2√(ab) - ├── 证明(算术-几何平均不等式) - └── 求最值的应用条件(一正二定三相等) -``` - -### 3. 函数的概念与性质 - -``` -函数的概念与性质 -├── 函数的概念 -│ ├── 定义域、值域、对应关系 -│ ├── 函数的表示法(解析式、图像、列表) -│ └── 分段函数 -├── 函数的基本性质 -│ ├── 单调性(定义法证明、导数判断) -│ ├── 奇偶性(定义、图像对称性) -│ └── 周期性 -└── 幂函数 - └── y = xⁿ(n = -1, ½, 1, 2, 3) -``` - -### 4. 指数函数与对数函数 - -``` -指数函数与对数函数 -├── 指数 -│ ├── 指数幂的运算(整数 → 有理数 → 实数指数幂) -│ └── 运算性质(aᵐ·aⁿ = aᵐ⁺ⁿ 等) -├── 指数函数 -│ ├── 定义 y = aˣ (a > 0, a ≠ 1) -│ ├── 图像与性质(单调性、过定点 (0,1)) -│ └── 指数方程与不等式 -├── 对数 -│ ├── 对数的定义(指数的逆运算) -│ ├── 运算性质(积、商、幂的对数) -│ └── 换底公式 -└── 对数函数 - ├── 定义 y = logₐx (a > 0, a ≠ 1) - ├── 图像与性质 - └── 指数函数与对数函数的关系(互为反函数) -``` - -### 5. 三角函数 - -``` -三角函数 -├── 任意角和弧度制 -│ ├── 角的概念推广(正角、负角、零角) -│ └── 弧度与角度的换算 -├── 三角函数的概念 -│ ├── 单位圆定义(sin, cos, tan) -│ ├── 同角三角函数的基本关系 -│ └── 诱导公式("奇变偶不变,符号看象限") -├── 三角函数的图像与性质 -│ ├── y = sin x 的图像(五点作图法) -│ ├── y = Asin(ωx + φ) 的变换 -│ ├── 周期、振幅、频率、相位 -│ └── 单调性与最值 -└── 三角恒等变换 - ├── 两角和与差公式 - ├── 二倍角公式 - ├── 辅助角公式(asinx + bcosx = √(a²+b²)sin(x+φ)) - └── 半角公式 -``` - ---- - -## 必修第二册 - -### 6. 平面向量及其应用 - -``` -平面向量及其应用 -├── 平面向量的概念 -│ ├── 向量的定义(有向线段) -│ ├── 相等向量、零向量、单位向量 -│ └── 共线向量与平行 -├── 向量运算 -│ ├── 加法(三角形法则、平行四边形法则) -│ ├── 减法 -│ ├── 数乘 -│ └── 向量的线性运算 -├── 向量的坐标表示 -│ ├── 平面直角坐标系下的坐标运算 -│ ├── 中点坐标公式 -│ └── 向量平行与垂直的坐标条件 -├── 数量积 -│ ├── 定义 a⃗·b⃗ = |a⃗||b⃗|cosθ -│ ├── 坐标运算 a⃗·b⃗ = x₁x₂ + y₁y₂ -│ ├── 几何意义(投影) -│ └── 应用(求夹角、判断垂直) -└── 向量的应用 - ├── 平面几何中的应用 - └── 物理中的力和速度分解 -``` - -### 7. 复数 - -``` -复数 -├── 复数的概念 -│ ├── 虚数单位 i(i² = -1) -│ ├── 代数形式 a + bi -│ ├── 实部、虚部、共轭复数 -│ └── 复平面与几何意义 -├── 复数的运算 -│ ├── 加法与减法 -│ ├── 乘法 -│ ├── 除法(分母实数化) -│ └── 复数的模 |z| = √(a² + b²) -``` - -### 8. 立体几何初步 - -``` -立体几何初步 -├── 基本立体图形 -│ ├── 棱柱(定义、性质、分类) -│ ├── 棱锥(定义、性质、正棱锥) -│ ├── 棱台 -│ └── 圆柱、圆锥、圆台、球 -├── 立体图形的直观图 -│ └── 斜二测画法 -├── 空间点、直线、平面之间的位置关系 -│ ├── 平面的基本性质(三个公理) -│ ├── 空间中直线与直线的关系(平行、相交、异面) -│ ├── 直线与平面的关系(平行、相交、在平面内) -│ └── 平面与平面的关系(平行、相交) -├── 平行关系 -│ ├── 线面平行判定定理与性质定理 -│ └── 面面平行判定定理与性质定理 -├── 垂直关系 -│ ├── 线面垂直判定定理与性质定理 -│ ├── 面面垂直判定定理与性质定理 -│ └── 三垂线定理 -└── 空间几何体的表面积与体积 - ├── 柱体、锥体、台体的表面积 - ├── 柱体、锥体、台体的体积 - └── 球的表面积与体积(S = 4πR², V = 4πR³/3) -``` - -### 9. 统计 - -``` -统计 -├── 随机抽样 -│ ├── 简单随机抽样 -│ ├── 系统抽样 -│ └── 分层抽样 -├── 用样本估计总体 -│ ├── 频率分布直方图 -│ ├── 频率分布折线图与总体密度曲线 -│ ├── 茎叶图 -│ ├── 样本的数字特征(均值、方差、标准差、中位数、众数) -│ └── 百分位数 -└── 统计案例 - ├── 线性回归方程 - └── 独立性检验(χ² 检验) -``` - -### 10. 概率 - -``` -概率 -├── 随机事件与概率 -│ ├── 事件的分类(确定事件、随机事件) -│ ├── 概率的定义与性质 -│ └── 概率的加法公式 -├── 古典概型 -│ ├── 等可能事件 -│ └── P(A) = n(A)/n(Ω) -├── 频率与概率 -│ └── 大量重复实验下频率的稳定性 -└── 事件的相互独立性 - └── P(AB) = P(A)P(B) -``` - ---- - -## 选择性必修第一册 - -### 11. 空间向量与立体几何 - -``` -空间向量与立体几何 -├── 空间向量及其运算 -│ ├── 空间向量的概念 -│ ├── 空间向量的加法、减法、数乘 -│ ├── 空间向量的数量积 -│ ├── 空间向量的坐标表示 -│ └── 空间向量的坐标运算 -├── 空间向量的应用 -│ ├── 用向量证明平行与垂直 -│ ├── 空间角的计算 -│ │ ├── 异面直线所成的角 -│ │ ├── 线面角(直线与平面所成的角) -│ │ └── 二面角 -│ └── 空间距离的计算 -│ ├── 点到平面的距离 -│ └── 异面直线间的距离 -└── 法向量方法 - └── 平面的法向量求法与应用 -``` - -### 12. 直线和圆的方程 - -``` -直线和圆的方程 -├── 直线的方程 -│ ├── 直线的倾斜角与斜率 -│ ├── 直线方程的五种形式 -│ │ ├── 点斜式 -│ │ ├── 斜截式 -│ │ ├── 两点式 -│ │ ├── 截距式 -│ │ └── 一般式 Ax + By + C = 0 -│ ├── 两条直线的位置关系(平行、垂直、相交) -│ └── 点到直线的距离公式 -└── 圆的方程 - ├── 圆的标准方程 (x-a)² + (y-b)² = r² - ├── 圆的一般方程 - ├── 直线与圆的位置关系 - ├── 圆与圆的位置关系 - └── 直线与圆的综合应用 -``` - -### 13. 圆锥曲线的方程 - -``` -圆锥曲线的方程 -├── 椭圆 -│ ├── 定义(到两焦点距离之和为定值) -│ ├── 标准方程 x²/a² + y²/b² = 1 -│ ├── 几何性质(焦点、顶点、长轴、短轴、离心率) -│ └── 焦点三角形 -├── 双曲线 -│ ├── 定义(到两焦点距离之差的绝对值为定值) -│ ├── 标准方程 x²/a² - y²/b² = 1 -│ ├── 几何性质(焦点、顶点、实轴、虚轴、渐近线、离心率) -│ └── 等轴双曲线 -├── 抛物线 -│ ├── 定义(到焦点和准线距离相等) -│ ├── 标准方程 y² = 2px -│ ├── 几何性质(焦点、准线、通径) -│ └── 焦点弦 -└── 圆锥曲线综合 - ├── 直线与圆锥曲线的位置关系(韦达定理法) - ├── 弦长公式 - ├── 面积问题 - └── 定点、定值、存在性问题 -``` - ---- - -## 选择性必修第二册 - -### 14. 数列 - -``` -数列 -├── 数列的概念与表示 -│ ├── 数列的定义 -│ ├── 通项公式 aₙ -│ ├── 递推公式 -│ └── 前 n 项和 Sₙ 与 aₙ 的关系 -├── 等差数列 -│ ├── 定义与通项公式 aₙ = a₁ + (n-1)d -│ ├── 前 n 项和 Sₙ = na₁ + n(n-1)d/2 -│ ├── 等差中项 -│ └── 性质(若 m+n = p+q,则 aₘ+aₙ = aₚ+aₐ) -├── 等比数列 -│ ├── 定义与通项公式 aₙ = a₁·qⁿ⁻¹ -│ ├── 前 n 项和(q ≠ 1 与 q = 1 分类) -│ ├── 等比中项 -│ └── 性质 -└── 数列求和方法 - ├── 公式法 - ├── 分组求和 - ├── 裂项相消 - ├── 错位相减 - └── 倒序相加 -``` - -### 15. 一元函数的导数及其应用 - -``` -一元函数的导数及其应用 -├── 导数的概念 -│ ├── 变化率与导数(极限定义) -│ ├── 导数的几何意义(切线斜率) -│ └── 导函数 -├── 导数的运算 -│ ├── 基本初等函数的导数公式 -│ │ ├── (xⁿ)' = nxⁿ⁻¹ -│ │ ├── (sin x)' = cos x -│ │ ├── (cos x)' = -sin x -│ │ ├── (eˣ)' = eˣ -│ │ ├── (aˣ)' = aˣ ln a -│ │ ├── (ln x)' = 1/x -│ │ └── (logₐx)' = 1/(x ln a) -│ └── 导数的运算法则(和、差、积、商、复合函数) -├── 导数的应用 -│ ├── 函数的单调性(f'(x) > 0 递增,f'(x) < 0 递减) -│ ├── 函数的极值(极大值、极小值) -│ ├── 函数的最值(闭区间上) -│ └── 导数与函数图像 -└── 综合应用 - ├── 含参数的函数讨论 - ├── 不等式证明 - └── 零点问题 -``` - ---- - -## 选择性必修第三册 - -### 16. 计数原理 - -``` -计数原理 -├── 分类加法计数原理 -├── 分步乘法计数原理 -├── 排列 -│ ├── 排列数公式 A(n,m) = n!/(n-m)! -│ └── 全排列 n! -├── 组合 -│ ├── 组合数公式 C(n,m) = n!/[m!(n-m)!] -│ └── 组合数的性质(C(n,m) = C(n,n-m) 等) -└── 二项式定理 - ├── (a+b)ⁿ 的展开式 - ├── 二项式系数的性质 - └── 通项公式 T(r+1) = C(n,r)·aⁿ⁻ʳ·bʳ -``` - -### 17. 概率与统计(进阶) - -``` -概率与统计(进阶) -├── 条件概率与全概率公式 -│ ├── 条件概率 P(B|A) -│ ├── 乘法公式 P(AB) = P(A)·P(B|A) -│ └── 全概率公式 -├── 离散型随机变量 -│ ├── 随机变量及其分布列 -│ ├── 数学期望 E(X) -│ ├── 方差 D(X) -│ ├── 二项分布 B(n, p) -│ └── 超几何分布 -├── 正态分布 -│ ├── 正态分布曲线的特征 -│ ├── 标准正态分布 -│ └── 3σ 原则 -└── 回归分析与独立性检验 - ├── 线性回归 - ├── 非线性回归 - └── 独立性检验 -``` - -### 18. 解三角形 - -``` -解三角形 -├── 正弦定理 -│ ├── a/sinA = b/sinB = c/sinC = 2R -│ └── 应用(已知两角一边、两边一角) -├── 余弦定理 -│ ├── a² = b² + c² - 2bc·cosA -│ └── 应用(已知三边、两边一夹角) -└── 解三角形的综合应用 - ├── 三角形面积公式 S = ½ab·sinC - ├── 判断三角形形状 - └── 实际测量问题(测高、测距) -``` - ---- - -## 知识网络与学科交叉 - -``` -数学 → AI/ML 关联 -├── 函数与导数 → 损失函数、梯度下降 -├── 向量与矩阵 → 线性代数、特征向量 -├── 概率与统计 → 贝叶斯推断、假设检验 -├── 数列与递推 → 递归算法、动态规划 -└── 解析几何 → 高维空间、决策边界 -``` diff --git a/docs/high-school/physics.md b/docs/high-school/physics.md deleted file mode 100644 index 113efb026..000000000 --- a/docs/high-school/physics.md +++ /dev/null @@ -1,456 +0,0 @@ - -# 中学物理知识树 - -基于人教版新课标教材,涵盖必修与选择性必修全部内容。 - ---- - -## 必修第一册 - -### 1. 运动的描述 - -``` -运动的描述 -├── 质点 -│ └── 质点模型的适用条件 -├── 参考系与坐标系 -├── 时刻与时间间隔 -├── 位移与路程 -│ ├── 位移是矢量,路程是标量 -│ └── 位移—时间图像(x-t 图) -├── 速度 -│ ├── 平均速度与瞬时速度 -│ ├── 速率 -│ └── 速度—时间图像(v-t 图) -└── 加速度 - ├── 定义 a = Δv/Δt - └── 加速度的方向与运动状态变化的关系 -``` - -### 2. 匀变速直线运动 - -``` -匀变速直线运动 -├── 匀变速直线运动的规律 -│ ├── 速度公式 v = v₀ + at -│ ├── 位移公式 x = v₀t + ½at² -│ ├── 速度位移关系 v² - v₀² = 2ax -│ └── 平均速度 v̄ = (v₀ + v)/2 -├── 自由落体运动 -│ ├── 初速度为零,加速度为 g -│ └── g ≈ 9.8 m/s² -├── 竖直上抛运动 -│ ├── 对称性 -│ └── 最高点速度为零 -└── 实验:探究匀变速直线运动 - ├── 打点计时器 - └── 逐差法求加速度 -``` - -### 3. 相互作用——力 - -``` -相互作用——力 -├── 重力 -│ ├── G = mg -│ └── 重心 -├── 弹力 -│ ├── 产生条件(接触 + 弹性形变) -│ ├── 胡克定律 F = kx -│ └── 弹簧的串联与并联 -├── 摩擦力 -│ ├── 静摩擦力(0 ≤ f ≤ fₘₐₓ) -│ ├── 滑动摩擦力 f = μN -│ └── 摩擦力方向的判断 -├── 力的合成与分解 -│ ├── 平行四边形定则 -│ ├── 三角形定则 -│ └── 正交分解法 -└── 共点力的平衡 - └── ΣF = 0 -``` - -### 4. 牛顿运动定律 - -``` -牛顿运动定律 -├── 牛顿第一定律(惯性定律) -│ ├── 惯性的概念 -│ └── 力不是维持运动的原因 -├── 牛顿第二定律 -│ ├── F = ma(合力方向 = 加速度方向) -│ ├── 单位:1 N = 1 kg·m/s² -│ └── 应用:整体法与隔离法 -├── 牛顿第三定律 -│ ├── 作用力与反作用力 -│ └── 与平衡力的区别 -└── 牛顿定律的应用 - ├── 超重与失重 - ├── 连接体问题 - └── 传送带问题 -``` - ---- - -## 必修第二册 - -### 5. 曲线运动 - -``` -曲线运动 -├── 曲线运动的条件 -│ └── 合力方向与速度方向不在同一直线上 -├── 运动的合成与分解 -│ └── 独立性原理 -├── 抛体运动 -│ ├── 平抛运动 -│ │ ├── 水平方向匀速,竖直方向自由落体 -│ │ ├── x = v₀t, y = ½gt² -│ │ └── 轨迹方程 y = gx²/(2v₀²) -│ └── 斜抛运动(了解) -└── 圆周运动 - ├── 描述量:线速度 v、角速度 ω、周期 T、频率 f - ├── 关系:v = ωr, ω = 2π/T - ├── 向心加速度 a = v²/r = ω²r - ├── 向心力 F = mv²/r = mω²r - └── 应用(竖直面圆周运动、离心现象) -``` - -### 6. 万有引力与宇宙航行 - -``` -万有引力与宇宙航行 -├── 开普勒三定律 -│ ├── 椭圆轨道 -│ ├── 面积定律 -│ └── T²/a³ = k(周期定律) -├── 万有引力定律 -│ ├── F = GMm/r² -│ └── 引力常量 G 的测量(卡文迪许扭秤) -├── 万有引力的应用 -│ ├── 计算天体质量 -│ ├── 第一宇宙速度 v₁ = √(gR) ≈ 7.9 km/s -│ ├── 第二宇宙速度 ≈ 11.2 km/s -│ └── 第三宇宙速度 ≈ 16.7 km/s -└── 宇宙航行 - ├── 卫星的轨道参数(GMm/r² = mv²/r) - ├── 同步卫星的特征 - └── 变轨问题 -``` - -### 7. 机械能守恒定律 - -``` -机械能守恒定律 -├── 功 -│ ├── 定义 W = Fs·cosθ -│ ├── 正功、负功、不做功的条件 -│ └── 合力的功 -├── 功率 -│ ├── 平均功率 P = W/t -│ ├── 瞬时功率 P = Fv·cosθ -│ └── 额定功率与实际功率 -├── 重力势能 -│ ├── Eₚ = mgh(势能零点的选取) -│ └── 重力做功与重力势能变化 Wg = -ΔEₚ -├── 弹性势能 -├── 动能与动能定理 -│ ├── Eₖ = ½mv² -│ └── 动能定理 W合 = ΔEₖ -├── 机械能守恒定律 -│ ├── 条件:只有重力(或弹力)做功 -│ └── Eₖ₁ + Eₚ₁ = Eₖ₂ + Eₚ₂ -└── 功能关系 - ├── 除重力外其他力做的功 = 机械能的变化 - └── 摩擦力做的功 = 内能的增加 -``` - ---- - -## 必修第三册 - -### 8. 静电场及其应用 - -``` -静电场及其应用 -├── 电荷 -│ ├── 电荷守恒定律 -│ ├── 元电荷 e = 1.6 × 10⁻¹⁹ C -│ └── 起电方式(摩擦、接触、感应) -├── 库仑定律 -│ ├── F = kq₁q₂/r² -│ └── 适用条件(真空中点电荷) -├── 电场强度 -│ ├── 定义 E = F/q -│ ├── 点电荷的电场 E = kQ/r² -│ ├── 匀强电场 -│ └── 电场线 -├── 电势与电势能 -│ ├── 电势 φ -│ ├── 电势差 U = φₐ - φᵦ -│ ├── 等势面 -│ └── 电势能 Eₚ = qφ -├── 电势差与电场强度的关系 -│ └── U = Ed(匀强电场) -└── 电容器 - ├── 电容 C = Q/U - ├── 平行板电容器 C = εS/(4πkd) - └── 电容器的充放电 -``` - -### 9. 电路及其应用 - -``` -电路及其应用 -├── 电流与电阻 -│ ├── 电流 I = q/t -│ ├── 电阻 R = ρL/S -│ └── 电阻率与温度的关系 -├── 欧姆定律 -│ ├── I = U/R -│ └── I-U 特性曲线 -├── 串并联电路 -│ ├── 串联:电流相等,电压分配 -│ └── 并联:电压相等,电流分配 -├── 电功与电功率 -│ ├── W = UIt -│ ├── P = UI -│ └── 焦耳定律 Q = I²Rt -└── 闭合电路欧姆定律 - ├── I = ε/(R + r) - ├── 路端电压 U = ε - Ir - └── 电源的效率 η = U/ε -``` - -### 10. 磁场 - -``` -磁场 -├── 磁场的描述 -│ ├── 磁感应强度 B -│ ├── 磁感线 -│ └── 地磁场 -├── 几种常见磁场 -│ ├── 条形磁铁 -│ ├── 通电直导线(安培定则) -│ └── 通电螺线管(右手螺旋定则) -├── 磁场对通电导线的力(安培力) -│ ├── F = BIL·sinθ -│ └── 左手定则 -├── 磁场对运动电荷的力(洛伦兹力) -│ ├── F = qvB·sinθ -│ ├── 洛伦兹力不做功 -│ └── 带电粒子在匀强磁场中的圆周运动 -│ ├── 半径 r = mv/(qB) -│ └── 周期 T = 2πm/(qB) -└── 应用 - ├── 速度选择器 - ├── 质谱仪 - └── 回旋加速器 -``` - ---- - -## 选择性必修第一册 - -### 11. 动量守恒定律 - -``` -动量守恒定律 -├── 动量 -│ ├── 定义 p = mv(矢量) -│ └── 动量的变化 Δp -├── 冲量 -│ └── I = FΔt -├── 动量定理 -│ └── FΔt = Δp = mv' - mv -├── 动量守恒定律 -│ ├── 条件:系统所受合外力为零 -│ └── m₁v₁ + m₂v₂ = m₁v₁' + m₂v₂' -└── 碰撞 - ├── 弹性碰撞(动量守恒 + 动能守恒) - ├── 完全非弹性碰撞(动量守恒,粘合) - └── 碰撞的可行性判断 -``` - -### 12. 机械振动与机械波 - -``` -机械振动与机械波 -├── 简谐运动 -│ ├── 回复力 F = -kx -│ ├── 振幅、周期、频率 -│ ├── x-t 图像(正弦曲线) -│ └── 弹簧振子 T = 2π√(m/k) -├── 单摆 -│ ├── T = 2π√(L/g) -│ └── 测量重力加速度 -├── 受迫振动与共振 -│ └── 固有频率 = 驱动频率时振幅最大 -├── 机械波 -│ ├── 横波与纵波 -│ ├── 波长、频率、波速 v = λf -│ └── 波的图像 -└── 波的现象 - ├── 波的干涉 - ├── 波的衍射 - └── 多普勒效应 -``` - -### 13. 光 - -``` -光 -├── 光的折射 -│ ├── 折射定律 n₁sinθ₁ = n₂sinθ₂ -│ ├── 折射率 n = c/v -│ └── 全反射(临界角 sinC = 1/n) -├── 光的干涉 -│ ├── 杨氏双缝干涉 -│ ├── 条纹间距 Δy = λL/d -│ └── 薄膜干涉 -├── 光的衍射 -│ └── 单缝衍射 -├── 光的偏振 -│ └── 自然光与偏振光 -└── 激光的特性 - └── 单色性、方向性、相干性 -``` - ---- - -## 选择性必修第二册 - -### 14. 电磁感应 - -``` -电磁感应 -├── 电磁感应现象 -│ ├── 法拉第电磁感应定律 ε = ΔΦ/Δt = NΔΦ/Δt -│ └── 楞次定律(感应电流的方向——阻碍磁通量的变化) -├── 感应电动势 -│ ├── ε = BLv(导体棒切割磁力线) -│ └── ε = NΔΦ/Δt(线圈中磁通量变化) -├── 自感 -│ ├── 自感电动势 -│ └── 通电自感与断电自感 -├── 涡流 -│ └── 电磁阻尼与电磁驱动 -└── 电磁感应综合问题 - ├── 导体棒在磁场中的运动(力学 + 电路) - ├── 能量转化分析 - └── 感应电路中的图像问题 -``` - -### 15. 交变电流 - -``` -交变电流 -├── 交变电流的产生 -│ ├── 正弦交变电流 e = NBSω·sin(ωt) -│ └── 峰值、有效值、平均值的关系 -├── 描述交变电流的物理量 -│ ├── 峰值 Eₘ = NBSω -│ ├── 有效值(等效热量) -│ ├── 周期与频率 -│ └── 我国市电:220V / 50Hz -├── 变压器 -│ ├── 原理(互感) -│ ├── U₁/U₂ = n₁/n₂ -│ └── 理想变压器 P₁ = P₂ -└── 远距离输电 - ├── 输电损耗 P损 = I²R线 - └── 高压输电减小损耗 -``` - -### 16. 电磁振荡与电磁波 - -``` -电磁振荡与电磁波 -├── LC 振荡电路 -│ ├── 电场能与磁场能的相互转化 -│ └── 振荡周期 T = 2π√(LC) -├── 电磁波 -│ ├── 麦克斯韦电磁场理论 -│ ├── 电磁波的产生与传播 -│ ├── 电磁波谱(无线电波 → γ 射线) -│ └── c = λf -└── 电磁波的应用 - ├── 无线电通信 - └── 雷达 -``` - ---- - -## 选择性必修第三册 - -### 17. 热学 - -``` -热学 -├── 分子动理论 -│ ├── 物质的分子模型 -│ ├── 分子热运动(布朗运动、扩散现象) -│ ├── 分子间作用力(引力 + 斥力) -│ └── 分子动能与分子势能 -├── 气体 -│ ├── 气体实验定律 -│ │ ├── 玻意耳定律(等温 pV = C) -│ │ ├── 查理定律(等容 p/T = C) -│ │ └── 盖-吕萨克定律(等压 V/T = C) -│ ├── 理想气体状态方程 pV/T = C -│ └── 气体压强的微观解释 -├── 热力学定律 -│ ├── 热力学第一定律 ΔU = W + Q -│ ├── 热力学第二定律 -│ │ ├── 克劳修斯表述(热量传递方向性) -│ │ └── 开尔文表述(热机效率不可能为 100%) -│ └── 熵的概念(了解) -└── 物态变化 - ├── 固体(晶体与非晶体) - ├── 液体(表面张力、毛细现象) - └── 气液相变(饱和蒸汽压、沸点与气压) -``` - -### 18. 原子物理与原子核 - -``` -原子物理与原子核 -├── 原子结构 -│ ├── 汤姆孙模型("枣糕模型") -│ ├── 卢瑟福散射实验 -│ ├── 核式结构模型 -│ └── 玻尔模型(能级、跃迁) -│ ├── 氢原子能级 Eₙ = E₁/n² -│ └── 光子能量 hν = Eₘ - Eₙ -├── 光的粒子性 -│ ├── 黑体辐射与普朗克量子假说 -│ ├── 光电效应 -│ │ ├── 爱因斯坦光电效应方程 Eₖ = hν - W₀ -│ │ ├── 截止频率 -│ │ └── 遏止电压 -│ └── 光的波粒二象性 -├── 原子核 -│ ├── 天然放射性(α、β、γ 射线) -│ ├── 半衰期 -│ ├── 核力与核能 -│ ├── 质能方程 E = mc² -│ ├── 核裂变(链式反应) -│ └── 核聚变 -└── 粒子物理(了解) - ├── 基本粒子 - └── 夸克模型 -``` - ---- - -## 知识网络与学科交叉 - -``` -物理 → AI/ML 关联 -├── 力学分析 → 物理仿真、机器人运动学 -├── 电磁学 → 传感器原理、信号处理 -├── 波与光学 → 计算机视觉、光学神经网络 -├── 热力学 → 模拟退火算法、统计力学与深度学习 -└── 原子物理 → 量子计算、量子机器学习 -``` From 207972c73f7c36e83702a1379e1c3e16870131a6 Mon Sep 17 00:00:00 2001 From: vansin Date: Wed, 8 Apr 2026 10:00:42 +0800 Subject: [PATCH 4/6] =?UTF-8?q?docs:=20=E5=88=A0=E9=99=A4=20ai-intro=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ai-intro/ai-ethics.md | 145 ------------------- docs/ai-intro/ai-productivity.md | 173 ----------------------- docs/ai-intro/ai-tools-landscape.md | 88 ------------ docs/ai-intro/capabilities-and-limits.md | 128 ----------------- docs/ai-intro/how-ai-learns.md | 165 --------------------- docs/ai-intro/how-llm-works.md | 136 ------------------ docs/ai-intro/index.md | 66 --------- docs/ai-intro/prompting-for-everyone.md | 155 -------------------- docs/ai-intro/what-is-ai.md | 110 -------------- 9 files changed, 1166 deletions(-) delete mode 100644 docs/ai-intro/ai-ethics.md delete mode 100644 docs/ai-intro/ai-productivity.md delete mode 100644 docs/ai-intro/ai-tools-landscape.md delete mode 100644 docs/ai-intro/capabilities-and-limits.md delete mode 100644 docs/ai-intro/how-ai-learns.md delete mode 100644 docs/ai-intro/how-llm-works.md delete mode 100644 docs/ai-intro/index.md delete mode 100644 docs/ai-intro/prompting-for-everyone.md delete mode 100644 docs/ai-intro/what-is-ai.md diff --git a/docs/ai-intro/ai-ethics.md b/docs/ai-intro/ai-ethics.md deleted file mode 100644 index 24b1be63e..000000000 --- a/docs/ai-intro/ai-ethics.md +++ /dev/null @@ -1,145 +0,0 @@ - -# AI 伦理与社会影响 - -AI 不仅是技术问题,更是社会问题。了解这些议题,能帮你更理性地看待 AI。 - -## 一、AI 偏见 - -### 什么是 AI 偏见? - -AI 从数据中学习,如果数据本身有偏见,AI 就会"学会"这些偏见。 - -``` -例子: -如果训练数据中"CEO"的图片大多是男性 -→ AI 生成"CEO 的照片"时,大概率生成男性形象 -→ 这不是 AI "故意"歧视,而是数据反映了社会现状的偏见 -``` - -### 现实影响 - -| 场景 | 偏见风险 | -|------|---------| -| AI 简历筛选 | 可能不公平地偏向某些群体 | -| AI 信贷审批 | 可能对某些地区或群体不利 | -| AI 新闻推荐 | 可能制造信息茧房 | -| AI 人脸识别 | 对不同肤色的准确率可能不同 | - -### 怎么应对? - -- **不盲目信任 AI 的判断**——尤其是涉及人的决策 -- **了解 AI 决策的依据**——要求 AI 解释它的推理过程 -- **保持多元信息来源**——不要只依赖 AI 推荐的内容 - -## 二、隐私问题 - -### 你发给 AI 的内容去哪了? - -当你在 ChatGPT、Claude 等平台上输入内容时: - -``` -你输入的内容 → 发送到服务商的服务器 → AI 处理后返回结果 -``` - -**关键问题**: -- 你的输入可能被用于模型训练(取决于平台政策) -- 你的对话记录存储在服务商那里 -- 包含个人信息的内容可能存在泄露风险 - -### 保护建议 - -| 做法 | 说明 | -|------|------| -| 不发敏感信息 | 身份证号、密码、公司机密不要发给 AI | -| 阅读隐私政策 | 了解平台如何使用你的数据 | -| 使用本地模型 | 开源模型可以在自己电脑上运行,数据不出门 | -| 关闭训练选项 | 很多平台允许你选择不参与模型训练 | - -## 三、就业影响 - -### AI 会取代我的工作吗? - -这是最常被问到的问题。比较客观的回答是: - -**AI 不会直接取代大多数工作,但会改变几乎所有工作的方式。** - -``` -以前:会计手动核对账目 -现在:Excel 帮你算,你负责分析和决策 - -以前:翻译逐字逐句翻译 -现在:AI 翻译初稿,翻译师负责校对和润色 - -以前:设计师从零画稿 -现在:AI 生成初稿,设计师负责调整和创意 -``` - -### 哪些工作受影响最大? - -| 影响程度 | 工作类型 | 原因 | -|---------|---------|------| -| 高 | 数据录入、简单翻译、基础客服 | 重复性强、规则明确 | -| 中 | 写作、编程、数据分析、设计 | AI 能辅助但需要人类判断 | -| 低 | 医生、律师、教师、管理者 | 需要深度判断、人际交流、责任承担 | -| 极低 | 护理、心理咨询、手工艺 | 需要人类的情感和触感 | - -### 怎么应对? - -1. **学会和 AI 协作**:把 AI 当工具,提升自己的效率 -2. **发展 AI 不擅长的能力**:创造力、共情力、批判性思维、人际沟通 -3. **保持学习**:AI 在进步,你也要持续学习新技能 - -## 四、版权与原创性 - -### AI 生成的内容有版权吗? - -目前各国法律还在制定中,但大致趋势: - -| 问题 | 现状 | -|------|------| -| AI 生成的文章/图片有版权吗? | 多数国家认为纯 AI 生成的内容不受版权保护 | -| 用 AI 辅助创作的作品呢? | 如果人类有足够的创意贡献,可以享有版权 | -| AI 的训练数据涉及版权吗? | 争议最大的问题,多起诉讼正在进行 | - -### 使用建议 - -- **AI 辅助写作**:可以用 AI 帮忙起草,但最终需要你的修改和判断 -- **AI 生成图片**:商业使用需谨慎,注意平台的使用条款 -- **学术场景**:多数学校要求标注使用了 AI 辅助 - -## 五、信息真伪 - -### AI 让假信息更容易传播 - -``` -以前:制造假新闻需要专业技能(PS 图片、编造文章) -现在:AI 可以一键生成以假乱真的文章、图片甚至视频 -``` - -### Deepfake(深度伪造) - -AI 可以生成非常逼真的假视频——让某个人"说出"他从未说过的话。 - -### 如何辨别? - -- **检查来源**:信息来自官方媒体还是不知名渠道? -- **交叉验证**:同一条消息,多个可靠来源是否都报道了? -- **注意细节**:AI 生成的图片常有细节破绽(手指数量、文字扭曲等) -- **保持怀疑**:越是耸动的消息,越需要核实 - -## 写在最后 - -AI 是一面镜子——它反映的是我们社会的数据和价值观。 - -- 如果训练数据有偏见,AI 就有偏见 -- 如果我们用 AI 做善事,AI 就是善的工具 -- 如果我们滥用 AI,AI 就成为害人的帮凶 - -**技术本身没有善恶,关键在于使用它的人。** - -作为 AI 的使用者,我们有责任: -- 理性看待 AI 的能力和局限 -- 在使用中保持道德底线 -- 为建设负责任的 AI 生态贡献一份力量 - -> 恭喜你完成了 AI 通识系列!如果想继续深入学习技术细节,推荐前往 [AI 基础知识](/zh/docs/learn)。 diff --git a/docs/ai-intro/ai-productivity.md b/docs/ai-intro/ai-productivity.md deleted file mode 100644 index 213125f5d..000000000 --- a/docs/ai-intro/ai-productivity.md +++ /dev/null @@ -1,173 +0,0 @@ - -# 用 AI 提升工作效率 - -理论够了,来看看 AI 到底怎么在日常工作中帮到你。 - -## 场景一:写作 - -### 从零起草 - -``` -提示词: -"请帮我写一份项目总结报告的初稿。 - 项目名称:2025 年公司数字化转型 - 关键成果:上线了 CRM 系统、完成了数据中台建设、 - 培训了 200 名员工 - 篇幅:约 1000 字 - 语气:正式但不枯燥" -``` - -AI 会给你一份结构清晰的初稿。你再在这个基础上修改——比从白纸开始快 5 倍。 - -### 润色优化 - -``` -提示词: -"请润色以下段落,让它更加流畅、专业。 - 保持原意不变,不要添加新内容。 - - [粘贴你的原文]" -``` - -### 换风格 - -``` -"请把以下学术论文摘要改写成科普文章的风格, - 让没有专业背景的读者也能看懂。 - - [粘贴摘要]" -``` - -## 场景二:翻译 - -### 不只是翻译,还能"本地化" - -``` -提示词: -"请将以下中文翻译成英文。 - 这是一封发给美国客户的商务邮件。 - 请使用地道的商务英文,注意礼貌用语。 - 如果有中国特有的表达方式,请调整为西方读者易理解的说法。 - - [粘贴邮件内容]" -``` - -### 对照翻译 - -``` -"请逐段翻译以下内容,每段中文后面紧跟英文翻译。 - 保持原文的段落结构。" -``` - -## 场景三:数据分析 - -### 解读数据 - -``` -提示词: -"以下是我们公司上季度的销售数据: - 1 月:120 万 2 月:95 万 3 月:180 万 - 4 月:150 万 5 月:130 万 6 月:200 万 - - 请帮我分析: - 1. 整体趋势是什么? - 2. 哪个月增长最快? - 3. 可能的原因是什么? - 4. 下季度预测?" -``` - -### 生成图表代码 - -``` -"请用 Python 帮我画一张折线图, - 展示上述 6 个月的销售趋势。 - 图表要求:中文标题、标注每个数据点的值、 - 整体风格简洁专业。" -``` - -## 场景四:PPT 和汇报 - -### 生成大纲 - -``` -提示词: -"我要做一个关于'AI 在教育中的应用'的 PPT。 - 时间 15 分钟,面向学校管理层。 - 请帮我设计 PPT 大纲,包括每页的标题和要点。 - 控制在 12 页以内。" -``` - -### 写演讲稿 - -``` -"基于上面的 PPT 大纲,请帮我写一份演讲稿。 - 每页对应 1-2 分钟的讲解。 - 语气自信但不傲慢,可以适当加入 1-2 个案例。" -``` - -## 场景五:学习 - -### 解释复杂概念 - -``` -"请用一个 10 岁小朋友能理解的方式, - 解释什么是'通货膨胀'。可以用生活中的例子。" -``` - -### 制定学习计划 - -``` -"我想在 3 个月内考过 PMP 证书。 - 每天能学 1-2 小时。 - 请帮我制定一个详细的学习计划, - 包括每周的学习主题、推荐资料和练习安排。" -``` - -### 模拟面试 - -``` -"请扮演一位面试官,面试我产品经理的岗位。 - 每次问一个问题,等我回答后再问下一个。 - 面试结束后给我整体反馈和改进建议。" -``` - -## 场景六:日常效率 - -### 邮件回复 - -``` -"以下是客户的邮件。请帮我起草一份礼貌的回复, - 表达:感谢反馈 + 问题已知晓 + 预计 3 个工作日内解决。 - - [粘贴客户邮件]" -``` - -### 会议纪要 - -``` -"以下是会议的语音转文字记录(比较乱)。 - 请帮我整理成结构化的会议纪要, - 包括:主要议题、讨论要点、结论和待办事项。 - - [粘贴转录文字]" -``` - -## 使用原则 - -1. **AI 出初稿,你做终稿**:AI 解决从 0 到 60 分的问题,你负责从 60 分到 90 分 -2. **重要内容一定要检查**:AI 可能编造数据或引用,务必核实 -3. **迭代优化**:第一次回答不满意?追问、修改、给反馈——几轮对话后通常能得到满意结果 -4. **保护隐私**:不要把公司机密、个人敏感信息直接发给公共 AI 服务 - -## 小结 - -| 工作场景 | AI 能帮你 | 节省时间 | -|---------|----------|---------| -| 写作 | 起草 → 润色 → 改风格 | 50-70% | -| 翻译 | 翻译 + 本地化 + 对照 | 60-80% | -| 数据分析 | 解读趋势 + 生成图表 | 30-50% | -| PPT | 大纲 + 内容 + 演讲稿 | 40-60% | -| 学习 | 解释 + 计划 + 模拟 | 不可量化但显著 | -| 日常 | 邮件 + 会议纪要 + 整理 | 30-50% | - -> **下一篇**:[AI 是怎么训练出来的](/zh/docs/ai-intro/how-ai-learns) —— 用"教小孩"的比喻,讲清楚 AI 训练的全过程。 diff --git a/docs/ai-intro/ai-tools-landscape.md b/docs/ai-intro/ai-tools-landscape.md deleted file mode 100644 index 6df2dbc24..000000000 --- a/docs/ai-intro/ai-tools-landscape.md +++ /dev/null @@ -1,88 +0,0 @@ - -# AI 工具全景图 - -AI 工具越来越多,让人眼花缭乱。这篇帮你理清主流工具的定位和差异,找到最适合你的。 - -## 对话类 AI(大语言模型) - -这是目前最火的 AI 应用类型——你输入文字,AI 回复文字。 - -| 工具 | 开发者 | 特点 | 适合场景 | -|------|--------|------|---------| -| ChatGPT | OpenAI(美国) | 综合能力强,生态最丰富 | 日常对话、写作、编程 | -| Claude | Anthropic(美国) | 长文本理解强,风格自然 | 长文分析、学术写作 | -| 文心一言 | 百度(中国) | 中文理解好,支持联网 | 中文写作、百度生态 | -| 通义千问 | 阿里(中国) | 多模态能力,集成阿里云 | 企业应用、电商场景 | -| 书生 InternLM | 上海AI实验室(中国) | 开源、科研导向、工具链完整 | 学习研究、开源开发 | -| Gemini | Google(美国) | 多模态原生,集成 Google 服务 | 搜索增强、数据分析 | -| DeepSeek | 深度求索(中国) | 开源、推理能力强 | 数学推理、代码生成 | - -### 怎么选? - -- **日常使用**:ChatGPT 或 Claude 体验最好 -- **中文优先**:文心一言、通义千问中文理解更好 -- **学习和研究**:书生 InternLM(开源可深入了解原理) -- **编程**:ChatGPT、Claude、DeepSeek 都很强 - -## AI 绘画工具 - -| 工具 | 特点 | 适合场景 | -|------|------|---------| -| Midjourney | 艺术质感最好 | 插画、概念设计 | -| DALL·E 3 | 集成在 ChatGPT 中,方便 | 快速生成配图 | -| Stable Diffusion | 开源、可本地部署 | 批量生成、定制化 | -| 即梦 | 字节跳动,中文友好 | 国内用户、视频生成 | - -## AI 音视频工具 - -| 工具 | 功能 | 适合场景 | -|------|------|---------| -| Suno | AI 作曲 + 歌唱 | 音乐创作 | -| ElevenLabs | 语音克隆、文字转语音 | 有声读物、配音 | -| Runway | AI 视频生成和编辑 | 短视频创作 | -| 剪映 | AI 字幕、AI 剪辑 | 视频后期 | - -## AI 办公工具 - -| 工具 | 功能 | 适合场景 | -|------|------|---------| -| Notion AI | 写作、总结、表格 | 知识管理 | -| Microsoft Copilot | 集成 Office 全家桶 | 办公场景 | -| 飞书智能伙伴 | 集成飞书生态 | 团队协作 | -| WPS AI | WPS 内置 AI 助手 | 文档处理 | - -## 开源 vs 闭源:你需要知道的 - -| 维度 | 开源模型 | 闭源模型 | -|------|---------|---------| -| 代表 | InternLM、LLaMA、Qwen、DeepSeek | ChatGPT、Claude、Gemini | -| 费用 | 免费使用(需自己部署) | 按量付费或订阅 | -| 隐私 | 可本地运行,数据不出门 | 数据发送到服务商 | -| 定制 | 可以微调和修改 | 只能通过 API 调用 | -| 上手难度 | 需要一定技术能力 | 即开即用 | - -**对普通用户**:直接用闭源产品即可。 -**对有技术追求的用户**:开源模型让你了解 AI 的底层原理,还能定制适合自己的模型。 - -## 书生(InternLM)生态一览 - -作为本站主打的开源大模型生态,书生系列包括: - -| 项目 | 功能 | -|------|------| -| InternLM | 大语言模型(对话、写作、推理) | -| InternVL | 视觉语言模型(图文理解) | -| Intern-S1 | 科学多模态模型(六大科学领域) | -| XTuner | 模型微调工具 | -| LMDeploy | 模型部署和推理加速 | -| OpenCompass | 模型评测平台 | - -> 想深入了解?查看 [模型文档](/zh/docs/models) 和 [API 文档](/zh/docs/api)。 - -## 小结 - -- **不需要每个工具都会用**——找到 1-2 个适合自己的,用熟就好 -- **工具在快速迭代**——今天的排名明天可能就变了,保持开放心态 -- **重要的不是工具,是你的需求**——先想清楚要解决什么问题,再选工具 - -> **下一篇**:[用 AI 提升工作效率](/zh/docs/ai-intro/ai-productivity) —— 具体的实战场景:写作、翻译、数据分析、PPT。 diff --git a/docs/ai-intro/capabilities-and-limits.md b/docs/ai-intro/capabilities-and-limits.md deleted file mode 100644 index 319aba801..000000000 --- a/docs/ai-intro/capabilities-and-limits.md +++ /dev/null @@ -1,128 +0,0 @@ - -# AI 能做什么,不能做什么 - -AI 很强大,但它不是万能的。理解它的能力边界,是用好 AI 的前提。 - -## AI 擅长做的事 - -### 语言处理 - -| 任务 | AI 表现 | 例子 | -|------|--------|------| -| 翻译 | 接近专业译员 | 中英互译、小语种翻译 | -| 总结 | 非常出色 | 把一篇万字报告压缩成 500 字摘要 | -| 写作辅助 | 很好 | 起草邮件、润色文章、扩写大纲 | -| 问答 | 大多数问题回答准确 | 百科知识、概念解释 | -| 代码生成 | 实用级别 | 写函数、Debug、代码解释 | - -### 数据处理 - -| 任务 | AI 表现 | 例子 | -|------|--------|------| -| 信息提取 | 优秀 | 从合同中提取关键条款 | -| 分类整理 | 优秀 | 把客户反馈分为正面/负面/建议 | -| 格式转换 | 可靠 | 把自然语言描述转成表格/JSON | - -### 创意辅助 - -| 任务 | AI 表现 | 例子 | -|------|--------|------| -| 头脑风暴 | 优秀 | 给你 20 个营销方案的创意 | -| 图像生成 | 惊人 | 根据文字描述生成图片 | -| 文案创作 | 很好 | 广告语、社交媒体帖子 | - -## AI 不擅长的事 - -### 精确的数学计算 - -``` -问:1847 × 293 = ? -AI 可能算错(它是在"猜"答案,不是在"算") -计算器一定算对 -``` - -**原因**:大模型是"预测下一个词",不是真的在做算术。复杂计算应该交给计算器或代码。 - -### 实时信息 - -``` -问:今天的股票收盘价是多少? -AI:我的知识截止到 2025 年 X 月,无法获取实时数据。 -``` - -**原因**:大模型的知识来自训练数据,有"截止日期"。除非接入了搜索引擎。 - -### 需要"真正理解"的推理 - -大模型在很多推理任务上表现不错,但在某些需要深层因果推理的场景下仍会出错: - -``` -问:一个猎人朝南走了 1 公里,又朝东走了 1 公里, - 又朝北走了 1 公里,回到了原点。他看到了一只熊, - 熊是什么颜色的? - -好的 AI:白色(因为只有在北极点才能满足这个条件, - 北极有北极熊,是白色的) -差的 AI:可能给出错误答案或"无法判断" -``` - -### 个人化记忆 - -``` -你上周跟 AI 说了你的生日 -→ 这周再问,它可能不记得了 -(除非平台有记忆功能) -``` - -## 最需要警惕的:AI 幻觉 - -**"幻觉"是指 AI 非常自信地说出完全错误的信息。** - -``` -你:鲁迅的代表作《活着》讲了什么? -AI:鲁迅的《活着》讲述了一个名叫福贵的人…… - -(错误!《活着》是余华的作品,不是鲁迅的。 - 但 AI 可能会"一本正经"地分析这本"鲁迅的书"。) -``` - -### 为什么会产生幻觉? - -1. **训练数据中有错误信息**:互联网上的错误内容也被模型学习了 -2. **模式匹配出错**:模型倾向于"编出看起来合理的答案" -3. **没有"我不知道"的本能**:模型总是会生成回答,即使它"不确定" - -### 怎么应对? - -- **重要信息一定要验证**:AI 说的话,去搜索引擎或权威来源核实 -- **注意措辞**:如果 AI 说"可能"、"我认为",更要谨慎 -- **多问细节**:追问来源、要求给出参考文献,看它是否前后一致 - -## 一张图判断:该不该用 AI? - -``` -这件事需要…… → 用 AI 吗? - -100% 精确的数字? → 不用,用计算器/Excel -最新的实时数据? → 不用(或用联网版) -法律/医疗的正式决策? → 不能单独依赖 AI -创意灵感和初稿? → 非常适合 -信息整理和总结? → 非常适合 -翻译和语言润色? → 很适合 -学习新概念? → 很适合(但要交叉验证) -``` - -## 小结 - -| 维度 | AI 的表现 | -|------|----------| -| 语言能力 | 接近甚至超过大多数人 | -| 知识广度 | 非常广,但有截止日期 | -| 精确计算 | 不可靠,需要工具辅助 | -| 因果推理 | 在进步,但仍有盲区 | -| 创造力 | 擅长组合和变体,弱于真正原创 | -| 可信度 | 需要人类核查,存在"幻觉" | - -**记住这个原则:AI 是你的高效助手,但不是你的替代品。最终的判断和决策,永远由你来做。** - -> **下一篇**:[和 AI 对话的艺术](/zh/docs/ai-intro/prompting-for-everyone) —— 学会写好提示词,让 AI 给出更好的回答。 diff --git a/docs/ai-intro/how-ai-learns.md b/docs/ai-intro/how-ai-learns.md deleted file mode 100644 index 5d8dc3874..000000000 --- a/docs/ai-intro/how-ai-learns.md +++ /dev/null @@ -1,165 +0,0 @@ - -# AI 是怎么训练出来的 - -一个能回答各种问题的 AI,不是写几行代码就能造出来的。它需要经历漫长的"培训"过程——就像培养一个人从婴儿到职场精英。 - -## 三个阶段总览 - -``` -阶段一:预训练 → 相当于"上学读书" -阶段二:微调 → 相当于"岗前培训" -阶段三:人类对齐 → 相当于"带教和纠错" -``` - -## 阶段一:预训练——"读遍天下书" - -### 做了什么? - -让模型阅读互联网上几乎所有的文本:网页、书籍、论文、代码、新闻…… - -### 怎么学? - -通过一个简单但强大的练习:**给一段话,猜下一个词。** - -``` -训练数据:"今天的天气___" -正确答案:"真好" - -模型第一次猜:"苹果"(错了,调整参数) -模型第二次猜:"可以"(接近了,继续调整) -模型第 N 次猜:"真好"(对了!记住这个规律) -``` - -这个过程重复**几万亿次**。慢慢地,模型就学会了: - -- "今天天气"后面大概率跟"真好"而不是"苹果" -- "根据最新研究"后面大概率跟学术性的表述 -- Python 代码的 `for` 后面大概率跟 `i in range` - -### 类比 - -就像让一个小孩从幼儿园到大学,读了 12 年的书。他不是为了某个具体任务读书,而是在积累**通用知识**。 - -### 需要多少资源? - -| 资源 | 规模 | -|------|------| -| 训练数据 | 几万亿个词(约等于上亿本书) | -| GPU(显卡) | 数千到数万张 | -| 训练时间 | 几周到几个月 | -| 电费 | 几百万到上千万美元 | - -## 阶段二:微调——"岗前培训" - -### 为什么需要微调? - -预训练完的模型很"博学",但它不知道怎么"好好说话"。 - -``` -你问:"什么是光合作用?" - -预训练模型可能回复: -"光合作用是植物利用光能将——光合作用的研究始于—— - 在 2003 年 Nature 上发表——" -(东拉西扯,像背书一样) - -微调后的模型回复: -"光合作用是植物利用阳光、水和二氧化碳, - 制造葡萄糖和氧气的过程。简单来说, - 就是植物'吃阳光、喝水、呼出氧气'的过程。" -(条理清晰,像老师在回答学生) -``` - -### 怎么微调? - -准备大量「问题 → 高质量回答」的例子,让模型模仿学习。 - -``` -示例 1: - 问:"帮我写一封请假邮件" - 答:"尊敬的 XX 经理,因个人原因……" - -示例 2: - 问:"把这段英文翻译成中文" - 答:"[准确的翻译内容]" - -……几万到几十万个这样的例子 -``` - -### 类比 - -大学毕业后入职一家公司。公司不需要从头教你知识,而是教你"在这个岗位上怎么做事"——怎么回答客户、怎么写报告、什么话该说什么话不该说。 - -## 阶段三:人类对齐——"带教和纠错" - -### 为什么需要对齐? - -微调后的模型已经"会说话"了,但它可能: - -- 回答有害内容(教人做坏事) -- 回答带有偏见(歧视某个群体) -- 明明不知道还硬答(编造信息) -- 过于啰嗦或重复 - -### 怎么对齐? - -最常用的方法叫 **RLHF**(基于人类反馈的强化学习): - -``` -步骤 1:让模型对同一个问题生成两个回答 -步骤 2:人类标注员选出"哪个回答更好" -步骤 3:模型根据人类偏好调整自己 - -问题:"如何减肥?" - -回答 A:"你太胖了,去绝食吧。" -回答 B:"建议通过均衡饮食和适量运动来管理体重。 - 具体来说……" - -人类选择 B → 模型学到"应该给出安全、有帮助的建议" -``` - -### 类比 - -就像新员工有一位带教师傅。师傅不会替你做事,而是看你做完后给反馈:"这个处理得好"、"那个地方需要改"。慢慢地,你就知道什么是"好的"工作方式了。 - -## 整个过程一览 - -``` -阶段 时间 类比 学到了什么 -───────────────────────────────────────────────────── -预训练 数月 上学读书 世界知识和语言规律 - ↓ -微调 数天 岗前培训 如何好好回答问题 - ↓ -人类对齐 数天 带教纠错 什么该说什么不该说 - ↓ -上线部署 持续 正式上岗 为用户服务 -``` - -## 为什么训练 AI 这么贵? - -| 成本项 | 原因 | -|--------|------| -| GPU 硬件 | 一张高端 GPU 几十万元,需要数千张 | -| 电费 | 数千台服务器 24 小时运转 | -| 数据 | 收集、清洗、标注高质量数据需要大量人工 | -| 人才 | AI 研究员是最稀缺的人才之一 | - -> 训练一个顶级大模型的成本在**几千万到上亿美元**——这就是为什么只有大公司和研究机构才能做。 - -## 开源的意义 - -训练大模型虽然昂贵,但一旦训练好,就可以**开源共享**——这就是书生(InternLM)等开源模型的价值。 - -就像教育的本质是**让知识普及**,开源 AI 的本质是**让 AI 能力普及**。 - -## 小结 - -| 阶段 | 一句话总结 | -|------|-----------| -| 预训练 | 读了海量文本,学会了语言规律 | -| 微调 | 学会了如何好好回答问题 | -| 人类对齐 | 学会了什么该说、什么不该说 | - -> **下一篇**:[AI 伦理与社会影响](/zh/docs/ai-intro/ai-ethics) —— 偏见、隐私、就业、版权——每个人都该思考的问题。 diff --git a/docs/ai-intro/how-llm-works.md b/docs/ai-intro/how-llm-works.md deleted file mode 100644 index c0f863c0a..000000000 --- a/docs/ai-intro/how-llm-works.md +++ /dev/null @@ -1,136 +0,0 @@ - -# 大模型如何"理解"文字 - -ChatGPT、Claude、书生——这些大模型看起来好像真的"理解"了你说的话。它到底是怎么做到的? - -## 核心原理:超级自动补全 - -**大模型的本质就是一个超级强大的"下一个字预测器"。** - -当你在手机输入法打"今天天气"的时候: - -``` -输入法预测:→ 真好 / 不错 -大模型预测:→ 真好,非常适合户外活动。下午可能会有阵雨, - 建议带上雨伞。气温在 22-28°C 之间…… -``` - -两者原理相同,但大模型的"词汇量"和"联想力"远超输入法。 - -## 第一步:把文字切成"Token" - -大模型不认识汉字或英文字母。它要先把文字切成小块——叫做 **Token**(令牌)。 - -``` -"我喜欢学习人工智能" -→ ["我", "喜欢", "学习", "人工", "智能"] - -"I love artificial intelligence" -→ ["I", " love", " artificial", " intelligence"] -``` - -每个 Token 都有一个编号。对大模型来说,处理文字就是处理一串数字。 - -> **类比**:就像把一本书拆成一个个词条,每个词条有自己的索引号。 - -## 第二步:理解词语之间的关系 - -光知道每个词是什么还不够。"苹果"这个词,可以是水果,也可以是手机品牌。大模型怎么区分? - -**靠上下文。** - -``` -"我吃了一个苹果" → 苹果 = 水果 -"我买了一台苹果" → 苹果 = 电子设备 -``` - -大模型通过一种叫"**注意力机制**"的方法,让每个词"看到"句子里的其他词,从而理解自己在当前语境中的含义。 - -> **类比**:就像你阅读的时候,看到一个词会自动联系前后文来理解它的意思。大模型做的事情类似,只是它是用数学方法实现的。 - -## 第三步:一个字一个字地生成回答 - -当你问大模型一个问题时,它是这样工作的: - -``` -你的问题:"北京的首都是哪里?"(是,这个问题有bug) - -模型思考过程: -1. 看到"北京的首都",觉得问题有点怪 -2. 最可能的下一个词是:"北京" -3. 然后是:"本身" -4. 然后是:"就是" -5. 然后是:"中国" -6. …… - -最终输出:"北京本身就是中国的首都,而不是某个地方的首都。 - 您可能想问的是'中国的首都是哪里?'答案是北京。" -``` - -**关键**:它不是"想好了整句话再输出",而是一个词一个词地预测。每次预测时,都会参考前面已经产生的所有文字。 - -## 为什么大模型"好像什么都知道"? - -因为它**读过**的内容实在太多了: - -| 训练数据 | 大概规模 | -|---------|---------| -| 网页文章 | 几十亿网页 | -| 书籍 | 几百万本 | -| 论文 | 几千万篇 | -| 代码 | GitHub 上的大部分开源代码 | -| 对话 | 各种论坛、问答社区 | - -想象一个人读完了图书馆里所有的书、所有的网页、所有的论文——它的知识面当然广。 - -但要注意:**它"读过"不等于"理解了"**。它学到的是"文字之间的统计规律",而不是真正的因果推理。 - -## 大模型的"记忆"是怎样的? - -大模型有两种"记忆": - -### 训练记忆(长期) - -训练时读过的所有内容,被"压缩"存在了模型的参数里。 - -``` -就像你学过的知识记在了脑子里 -(但不是逐字记住,而是记住了"规律"和"模式") -``` - -### 上下文记忆(短期) - -每次对话中,你前面说过的话。大模型可以"看到"整个对话记录。 - -``` -你:"我叫小明" -AI:"你好小明!" -你:"我的名字是什么?" -AI:"你叫小明。" ← 它看到了前面的对话 -``` - -但有个限制——**上下文窗口**。大模型能"看到"的对话长度有上限(目前通常是几千到几十万字)。超出这个长度,早期的对话就"看不到"了。 - -## 常见误解 - -| 误解 | 事实 | -|------|------| -| "AI 有自己的想法" | 它只是在预测最可能的下一个词 | -| "AI 真的理解了问题" | 它识别了文字模式,但不一定真正"理解" | -| "AI 的回答一定是对的" | 它可能一本正经地说错话("幻觉") | -| "AI 会记住所有对话" | 每次新对话重新开始,除非有特殊设计 | -| "AI 在联网搜索" | 大多数情况下,它只用训练时学到的知识 | - -## 小结 - -``` -大模型工作流程: - -输入文字 → 切成 Token → 理解上下文关系 → 预测下一个词 → 重复 - ↑ - "注意力机制"在这里发挥作用 -``` - -**核心本质**:大模型不是"思考",而是"超级模式匹配"——它读了海量文本,学会了"什么词大概率跟在什么词后面",做到极致后,就涌现出了令人惊叹的语言能力。 - -> **下一篇**:[AI 能做什么,不能做什么](/zh/docs/ai-intro/capabilities-and-limits) —— 了解 AI 的真实能力边界,不高估也不低估。 diff --git a/docs/ai-intro/index.md b/docs/ai-intro/index.md deleted file mode 100644 index ee0255c80..000000000 --- a/docs/ai-intro/index.md +++ /dev/null @@ -1,66 +0,0 @@ - -# AI 通识 - -**零基础也能学懂的人工智能入门课。** - -这个系列专为**非计算机专业**、**文科背景**或**对 AI 好奇但不知从哪开始**的同学设计。我们不会一上来就甩公式和代码,而是用你熟悉的生活场景来解释 AI 的核心概念。 - -## 为什么要学 AI 通识? - -不管你是学文学、历史、法律、经济还是艺术——AI 正在改变每一个行业: - -- **新闻传播**:AI 写稿、智能审核、个性化推荐 -- **法律**:合同审查、案例检索、法律问答 -- **教育**:智能辅导、自适应学习、自动批改 -- **金融**:风控模型、智能投顾、欺诈检测 -- **医疗**:辅助诊断、药物发现、病历分析 -- **艺术设计**:AI 绘画、音乐生成、视频创作 - -**学懂 AI 不是为了转行做程序员,而是为了在你自己的领域用好 AI。** - -## 学习路线 - -按顺序阅读,每篇 10-20 分钟,总计约 2 小时即可建立完整的 AI 认知框架。 - -### 第一步:理解 AI 是什么 - -| 顺序 | 教程 | 说明 | 预计时间 | -|------|------|------|---------| -| 1 | [AI 是什么:从计算器到 ChatGPT](/zh/docs/ai-intro/what-is-ai) | AI 的前世今生,三次浪潮,为什么现在爆发 | 15 分钟 | -| 2 | [大模型如何"理解"文字](/zh/docs/ai-intro/how-llm-works) | 不用公式讲清楚 Token、概率预测、上下文 | 15 分钟 | -| 3 | [AI 能做什么,不能做什么](/zh/docs/ai-intro/capabilities-and-limits) | AI 的能力边界、幻觉问题、常见误解 | 15 分钟 | - -### 第二步:学会使用 AI - -| 顺序 | 教程 | 说明 | 预计时间 | -|------|------|------|---------| -| 4 | [和 AI 对话的艺术](/zh/docs/ai-intro/prompting-for-everyone) | 提示词技巧、角色设定、让 AI 输出更好 | 15 分钟 | -| 5 | [AI 工具全景图](/zh/docs/ai-intro/ai-tools-landscape) | ChatGPT / Claude / 文心一言 / 书生,如何选择 | 15 分钟 | -| 6 | [用 AI 提升工作效率](/zh/docs/ai-intro/ai-productivity) | 写作、翻译、数据分析、PPT——实战场景 | 20 分钟 | - -### 第三步:理解 AI 背后的逻辑 - -| 顺序 | 教程 | 说明 | 预计时间 | -|------|------|------|---------| -| 7 | [AI 是怎么训练出来的](/zh/docs/ai-intro/how-ai-learns) | 用"教小孩"的比喻讲清预训练、微调、对齐 | 15 分钟 | -| 8 | [AI 伦理与社会影响](/zh/docs/ai-intro/ai-ethics) | 偏见、隐私、就业、版权——每个人都该思考的问题 | 15 分钟 | - -## 适合谁? - -- **文科生**:想理解 AI 但害怕数学和代码 -- **职场人士**:想用 AI 提效但不知道从哪下手 -- **管理者**:需要理解 AI 能力边界来做决策 -- **学生**:任何专业,想给自己加一项 AI 素养 -- **好奇的人**:单纯想搞懂 AI 到底是什么 - -## 学完之后 - -完成 AI 通识系列后,你将能够: - -- 向朋友清楚解释 AI 和大模型是什么 -- 独立判断一个 AI 产品/新闻是否靠谱 -- 在工作中熟练使用 AI 工具提升效率 -- 理解 AI 的能力边界,不会被"AI 焦虑"裹挟 -- 如果有兴趣深入,可以继续学习 [AI 基础知识](/zh/docs/learn)(技术向) - -> 本系列持续完善中,欢迎在 [GitHub](https://github.com/vansin/intern-ai) 提出建议。 diff --git a/docs/ai-intro/prompting-for-everyone.md b/docs/ai-intro/prompting-for-everyone.md deleted file mode 100644 index e08c33859..000000000 --- a/docs/ai-intro/prompting-for-everyone.md +++ /dev/null @@ -1,155 +0,0 @@ - -# 和 AI 对话的艺术 - -同一个 AI,不同的问法,回答质量天差地别。学会"提示词"(Prompt),是用好 AI 最重要的技能。 - -## 核心原则:像给实习生布置任务 - -把 AI 想象成一个**知识丰富但不了解你具体需求的实习生**。你给的信息越明确,它干得越好。 - -### 差的提问 vs 好的提问 - -``` -❌ 差:"帮我写个方案" -✅ 好:"我是一名高中语文老师,需要为家长会准备一份发言稿。 - 主题是'如何培养孩子的阅读习惯'。时长 10 分钟。 - 语气亲切、不要太正式。请列出大纲后再写全文。" -``` - -**区别在哪?**好的提问说清了:你是谁、要做什么、具体要求、输出格式。 - -## 五个让回答变好的技巧 - -### 1. 给 AI 一个角色 - -``` -"你是一位有 10 年经验的小学数学老师, - 请用小学生能听懂的语言解释什么是分数。" -``` - -**为什么有效**:角色限定了 AI 的"说话方式"和"知识深度",避免过于专业或过于笼统。 - -### 2. 提供背景信息 - -``` -"我经营一家奶茶店,位于大学城附近, - 主要客户是 18-25 岁的学生。 - 请帮我策划一个开学季营销方案。" -``` - -**为什么有效**:AI 不了解你的具体情况,给背景信息相当于给它"上下文"。 - -### 3. 明确输出格式 - -``` -"请用表格对比以下三款手机的优缺点: - iPhone 16、华为 Mate 70、小米 15。 - 列包括:价格、拍照、续航、系统流畅度。" -``` - -**为什么有效**:不指定格式,AI 可能给你一大段文字;指定表格就一目了然。 - -### 4. 分步提问(而不是一次问完) - -``` -第一轮:"帮我列出一篇关于'远程办公'的文章大纲" -第二轮:"不错,请把第二章展开写详细" -第三轮:"语气太正式了,改得更轻松一些" -``` - -**为什么有效**:复杂任务分步完成,每一步你都可以调整方向。 - -### 5. 给例子 - -``` -"请帮我给产品写一段介绍文案,风格参考: - '轻轻一涂,妆效持久一整天。不挑肤质,新手也能秒上手。' - 产品是一款保温杯。" -``` - -**为什么有效**:例子比任何描述都直观。AI 会模仿例子的风格和结构。 - -## 常用提示词模板 - -### 写作类 - -``` -请帮我写一篇 [类型] 文章。 -主题:[主题] -目标读者:[谁会看] -字数:[大约多少字] -语气:[正式/轻松/幽默/学术] -要求:[其他具体要求] -``` - -### 分析类 - -``` -请分析以下 [内容类型],并从 [角度1]、[角度2]、[角度3] 三个维度给出你的判断。 -用表格呈现对比,最后给出总结建议。 - -[粘贴你的内容] -``` - -### 学习类 - -``` -我是 [背景],想学习 [主题]。 -请用 [比喻/例子/图表] 的方式解释。 -先给整体概览,再逐步深入。 -如果我有不懂的地方,我会继续追问。 -``` - -### 翻译/润色类 - -``` -请把以下中文翻译成英文。 -要求:[正式商务 / 口语化 / 学术风格] -保持原文的语气和结构。 -如有文化差异需要调整的地方,请标注说明。 - -[粘贴原文] -``` - -## 高级技巧:让 AI "思考"后再回答 - -当问题比较复杂时,可以要求 AI 先分析再回答: - -``` -"请先列出思考过程,再给出最终答案。" -``` - -或者: - -``` -"请从正反两面分析这个问题,然后给出你的综合判断。" -``` - -这样 AI 的回答会更全面、更有逻辑。 - -## 如果回答不满意怎么办? - -| 问题 | 解决方法 | -|------|---------| -| 回答太笼统 | 追问"请更具体",或给更多上下文 | -| 回答太长 | 要求"用 3 句话总结" | -| 回答方向错了 | 纠正它:"不是这个意思,我想问的是……" | -| 风格不对 | 给例子:"请参考这个风格……" | -| 信息不准确 | 要求给出来源,或换一种方式验证 | - -## 小结 - -``` -好的提示词 = 角色 + 背景 + 任务 + 格式 + 约束 - -例子: -"你是一位资深HR(角色), - 我们公司是 50 人的互联网创业公司(背景), - 请帮我写一份前端工程师的招聘 JD(任务), - 用 Markdown 格式(格式), - 要求突出团队氛围和成长空间,不要太死板(约束)。" -``` - -**提示词不是一次写完的**——对话就是迭代。先给一个大概的方向,看到回答后再调整,几轮下来就能得到满意的结果。 - -> **下一篇**:[AI 工具全景图](/zh/docs/ai-intro/ai-tools-landscape) —— ChatGPT、Claude、文心一言、书生……这么多 AI 工具怎么选? diff --git a/docs/ai-intro/what-is-ai.md b/docs/ai-intro/what-is-ai.md deleted file mode 100644 index 73b9a9fd9..000000000 --- a/docs/ai-intro/what-is-ai.md +++ /dev/null @@ -1,110 +0,0 @@ - -# AI 是什么:从计算器到 ChatGPT - -## 一句话定义 - -**人工智能(AI)就是让机器模仿人类智能行为的技术。** - -听起来很抽象?让我们从你每天都在用的东西说起。 - -## 你已经在用 AI 了 - -可能你没意识到,这些都是 AI: - -| 场景 | AI 在做什么 | -|------|-----------| -| 手机人脸解锁 | 识别你的脸和别人不同 | -| 淘宝"猜你喜欢" | 根据你的行为预测你想买什么 | -| 微信语音转文字 | 把声音变成文字 | -| 导航软件推荐路线 | 预测哪条路最快 | -| 邮件自动过滤垃圾邮件 | 判断一封邮件是不是垃圾 | - -这些 AI 各有各的专长,但都有一个共同点:**从数据中学习规律,然后做出判断**。 - -## AI 的三次浪潮 - -AI 不是突然出现的。它经历了 70 多年的发展: - -### 第一次浪潮(1950-1970 年代):规则时代 - -科学家们认为,只要给机器足够多的规则,它就能像人一样思考。 - -``` -规则:如果 温度 > 38°C 且 咳嗽 = 是 → 可能感冒 -``` - -**问题**:现实世界太复杂了,规则写不完。一个感冒可能有几百种表现。 - -### 第二次浪潮(1980-2010 年代):统计学习时代 - -让机器从大量数据中自己"发现"规律,而不是人类一条条写规则。 - -``` -给机器看 10000 张猫的照片和 10000 张狗的照片 -→ 机器自己学会区分猫和狗 -``` - -**进展**:垃圾邮件过滤、语音识别开始可用。但理解力有限。 - -### 第三次浪潮(2017 年至今):大模型时代 - -关键突破:**Transformer 架构**(2017)+ **海量数据** + **强大算力**。 - -``` -让模型阅读互联网上几乎所有的文本 -→ 模型学会了"语言的规律" -→ 它能写文章、回答问题、翻译、写代码…… -``` - -这就是 ChatGPT、Claude、书生(InternLM)等大模型的来历。 - -## 为什么 AI 现在突然爆发? - -三个条件同时满足了: - -| 条件 | 以前 | 现在 | -|------|------|------| -| **数据** | 数据量少 | 互联网产生了海量文本、图像、视频 | -| **算力** | 计算机太慢 | GPU 并行计算能力突飞猛进 | -| **算法** | 模型太简单 | Transformer 架构让模型能处理超长文本 | - -打个比方:数据是**食材**,算力是**灶火**,算法是**菜谱**。以前食材不够、火不旺、菜谱也不好——现在三样都齐了,自然能做出好菜。 - -## AI、机器学习、深度学习、大模型——它们是什么关系? - -``` -人工智能(AI) -├── 机器学习(ML) ← 让机器从数据中学习 -│ ├── 深度学习(DL) ← 用"神经网络"来学习 -│ │ └── 大语言模型(LLM) ← 专门处理语言的超大神经网络 -│ └── 传统机器学习 ← 决策树、支持向量机等 -└── 其他 AI 方法 ← 专家系统、搜索算法等 -``` - -**大语言模型(LLM)是深度学习的一种,深度学习是机器学习的一种,机器学习是 AI 的一种。** - -就像:**金毛是犬类的一种,犬类是哺乳动物的一种,哺乳动物是动物的一种。** - -## "智能"到底是什么? - -这其实是个哲学问题。AI 研究者通常把智能拆解为这些能力: - -- **感知**:看(图像识别)、听(语音识别) -- **理解**:读懂文字的含义 -- **推理**:根据已知信息得出新结论 -- **生成**:创造文字、图像、音乐 -- **学习**:从经验中不断改进 - -目前的 AI 在"感知"和"生成"上已经接近甚至超过人类,但在"推理"和真正的"理解"上还有很大差距。 - -## 小结 - -| 概念 | 一句话解释 | -|------|-----------| -| AI | 让机器模仿人类智能的技术 | -| 机器学习 | 让机器从数据中自动学习规律 | -| 深度学习 | 用神经网络(模拟大脑结构)来学习 | -| 大语言模型 | 读了海量文本,学会"说话"的超大模型 | -| Transformer | 2017 年发明的核心架构,大模型的基石 | - -> **下一篇**:[大模型如何"理解"文字](/zh/docs/ai-intro/how-llm-works) —— 不用公式,讲清楚 ChatGPT 到底是怎么回答你问题的。 From 8cafe56fbccf9d9e73f2feca62d148ee66f2070c Mon Sep 17 00:00:00 2001 From: vansin Date: Wed, 8 Apr 2026 10:21:57 +0800 Subject: [PATCH 5/6] =?UTF-8?q?docs:=20OpenCode=20=E6=8E=A5=E5=85=A5?= =?UTF-8?q?=E6=8C=87=E5=8D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/api/opencode.md | 119 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 docs/api/opencode.md diff --git a/docs/api/opencode.md b/docs/api/opencode.md new file mode 100644 index 000000000..cd03522cb --- /dev/null +++ b/docs/api/opencode.md @@ -0,0 +1,119 @@ +# OpenCode 接入指南 + +OpenCode 是开源的 AI 编程终端工具(GitHub 139K Stars),支持 75+ LLM 提供商,100% 开源且不锁定任何单一模型。通过配置 OpenAI 兼容端点,可以接入 Intern-S1-Pro 作为编程助手。 + +## 安装 + +```bash +# 一键安装 +curl -fsSL https://opencode.ai/install | bash + +# 或通过包管理器 +npm i -g opencode-ai@latest +brew install anomalyco/tap/opencode +``` + +验证安装: + +```bash +opencode --version +``` + +## 配置 Intern-S1-Pro + +在项目根目录创建 `opencode.json`: + +```json +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "intern": { + "npm": "@ai-sdk/openai-compatible", + "name": "Intern-S1-Pro", + "options": { + "baseURL": "https://chat.intern-ai.org.cn/v1", + "apiKey": "your-api-key" + }, + "models": { + "intern-s1-pro": { + "name": "Intern-S1-Pro", + "limit": { + "context": 128000, + "output": 8192 + } + } + } + } + }, + "model": "intern/intern-s1-pro" +} +``` + +也可以放在全局配置目录 `~/.config/opencode/opencode.json`,对所有项目生效。 + +## 获取 API Key + +前往 [书生大模型平台](https://internlm.intern-ai.org.cn/api/document) 注册获取 API Key。 + +## 使用 + +```bash +# 启动交互式终端 +opencode + +# 非交互模式(脚本友好) +opencode -p "用 Python 实现一个快速排序算法" +``` + +## 内置 Agent + +OpenCode 提供两个内置 Agent: + +| Agent | 权限 | 用途 | +|-------|------|------| +| build | 完全访问(读写文件、执行命令) | 日常开发、代码生成、调试 | +| plan | 只读(不修改文件) | 代码探索、架构分析、方案设计 | + +## 常用命令 + +| 命令 | 说明 | +|------|------| +| `/models` | 切换模型 | +| `/connect` | 配置新的模型提供商 | +| `/compact` | 压缩上下文(接近 token 上限时使用) | +| `/plan` | 切换到 plan Agent(只读模式) | + +## MCP Server 支持 + +OpenCode 支持 MCP Server,可以扩展 AI 的能力: + +```json +{ + "mcp": { + "servers": { + "my-tools": { + "type": "stdio", + "command": "npx", + "args": ["-y", "my-mcp-server"] + } + } + } +} +``` + +## 与 Claude Code 的对比 + +| 特性 | OpenCode | Claude Code | +|------|----------|-------------| +| 开源 | MIT 开源 | 闭源 | +| 模型支持 | 75+ 提供商 | Anthropic 系列 | +| MCP 支持 | 支持 | 支持 | +| 桌面应用 | 有(Beta) | 有 | +| 架构 | Client/Server | 单进程 | + +两者均可接入 Intern-S1-Pro,选择取决于个人偏好。 + +## 参考 + +- [OpenCode 官网](https://opencode.ai) +- [GitHub 仓库](https://github.com/anomalyco/opencode) From 83169766be0baf017b1dcbb9a855bb303546d60a Mon Sep 17 00:00:00 2001 From: vansin Date: Wed, 8 Apr 2026 11:57:26 +0800 Subject: [PATCH 6/6] =?UTF-8?q?docs:=20=E6=89=80=E6=9C=89=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=BC=80=E5=A4=B4=E6=A0=87=E6=B3=A8=E3=80=8C=E6=9C=AC?= =?UTF-8?q?=E6=96=87=E6=A1=A3=20AI=20+=20=E7=A4=BE=E5=8C=BA=E5=85=B1?= =?UTF-8?q?=E5=BB=BA=E4=B8=AD=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/api/authentication.md | 2 ++ docs/api/claude-code.md | 2 ++ docs/api/coding-tools.md | 2 ++ docs/api/index.md | 2 ++ docs/api/models/index.md | 2 ++ docs/api/models/internlm3.md | 2 ++ docs/api/models/internvl3.md | 2 ++ docs/api/openclaw.md | 2 ++ docs/api/opencode.md | 2 ++ docs/api/quickstart.md | 2 ++ docs/contribute/index.md | 2 ++ docs/learn/concepts/attention-mechanism.md | 2 ++ docs/learn/concepts/embedding.md | 2 ++ docs/learn/concepts/index.md | 2 ++ docs/learn/concepts/tokenization.md | 2 ++ docs/learn/concepts/transformer.md | 2 ++ docs/learn/concepts/what-is-llm.md | 2 ++ docs/learn/core/agent2agent.md | 2 ++ docs/learn/core/ai-agent.md | 2 ++ docs/learn/core/evaluation-benchmarks.md | 2 ++ docs/learn/core/function-calling.md | 2 ++ docs/learn/core/index.md | 2 ++ docs/learn/core/mcp-protocol.md | 2 ++ docs/learn/core/model-safety.md | 2 ++ docs/learn/core/prompt-engineering.md | 2 ++ docs/learn/core/rag-basics.md | 2 ++ docs/learn/index.md | 2 ++ docs/learn/multimodal/image-editing.md | 2 ++ docs/learn/multimodal/index.md | 2 ++ docs/learn/multimodal/internsvg.md | 2 ++ docs/learn/multimodal/text-to-image.md | 2 ++ docs/learn/multimodal/text-to-video.md | 2 ++ docs/learn/multimodal/vlm.md | 2 ++ docs/learn/training/index.md | 2 ++ docs/learn/training/lora.md | 2 ++ docs/learn/training/model-quantization.md | 2 ++ docs/learn/training/pretraining.md | 2 ++ docs/learn/training/rlhf.md | 2 ++ docs/learn/training/sft.md | 2 ++ docs/learn/tutorials/a100-internvl-u.md | 2 ++ docs/learn/tutorials/ascend-internvl-u.md | 2 ++ docs/learn/tutorials/index.md | 2 ++ docs/learn/tutorials/metax-internvl-u.md | 2 ++ docs/models/index.md | 2 ++ docs/models/internlm/index.md | 2 ++ docs/models/internlm/quickstart.md | 2 ++ docs/models/internvl/index.md | 2 ++ docs/models/lmdeploy/index.md | 2 ++ docs/models/opencompass/index.md | 2 ++ docs/models/timeline.md | 2 ++ docs/models/xtuner/index.md | 2 ++ 51 files changed, 102 insertions(+) diff --git a/docs/api/authentication.md b/docs/api/authentication.md index a0b105364..3a3fd3c38 100644 --- a/docs/api/authentication.md +++ b/docs/api/authentication.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 认证鉴权 所有 书生大模型 API 请求都需要通过 API Key 进行身份认证。 diff --git a/docs/api/claude-code.md b/docs/api/claude-code.md index 7f21da715..85d54d602 100644 --- a/docs/api/claude-code.md +++ b/docs/api/claude-code.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # Claude Code 接入 Intern-S1-Pro [Claude Code](https://github.com/anthropics/claude-code) 是 Anthropic 官方的 AI 编程终端助手,支持通过 Anthropic 兼容 API 接入第三方模型。本指南将教你如何在 Claude Code 中使用 Intern-S1-Pro 模型。 diff --git a/docs/api/coding-tools.md b/docs/api/coding-tools.md index deae0c978..e5e6d31f2 100644 --- a/docs/api/coding-tools.md +++ b/docs/api/coding-tools.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # AI 编程工具接入 书生大模型 API 兼容 OpenAI 接口,可以接入主流 AI 编程工具。 diff --git a/docs/api/index.md b/docs/api/index.md index 313984d96..859816dd1 100644 --- a/docs/api/index.md +++ b/docs/api/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 书生系列大模型 API 文档 欢迎使用书生大模型 API!通过 API 你可以快速将书生大模型的能力集成到你的应用中。 diff --git a/docs/api/models/index.md b/docs/api/models/index.md index 8eed7e39a..46d29da8b 100644 --- a/docs/api/models/index.md +++ b/docs/api/models/index.md @@ -1,5 +1,7 @@ # 模型列表 +> 本文档 AI + 社区共建中 + 书生系列大模型 API 支持以下模型: | 模型 | 模型 ID | 说明 | diff --git a/docs/api/models/internlm3.md b/docs/api/models/internlm3.md index da05fb2e0..c420e3acd 100644 --- a/docs/api/models/internlm3.md +++ b/docs/api/models/internlm3.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # InternLM3 模型 InternLM3 是书生大模型系列的第三代语言模型,仅使用 4T 高质量数据训练的 8B 模型即超越同量级模型,训练成本节约 75% 以上。 diff --git a/docs/api/models/internvl3.md b/docs/api/models/internvl3.md index 4c2a674c5..5efaac6d7 100644 --- a/docs/api/models/internvl3.md +++ b/docs/api/models/internvl3.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # InternVL3 多模态模型 InternVL3(书生·万象 3.0)是通用多模态大模型,10 亿至 780 亿全量级开源第一,支持图像理解、文档分析、GUI 智能体等多种视觉任务。 diff --git a/docs/api/openclaw.md b/docs/api/openclaw.md index 1f7f3f06f..7c5ab38a5 100644 --- a/docs/api/openclaw.md +++ b/docs/api/openclaw.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # OpenClaw 接入 Intern-S1-Pro [OpenClaw](https://github.com/openclaw/openclaw) 是一款开源的个人 AI 助手,运行在你自己的设备上,数据完全私有。它支持通过 WhatsApp、Telegram、微信等消息平台作为交互入口,并具备浏览网页、读写文件、执行代码等能力。 diff --git a/docs/api/opencode.md b/docs/api/opencode.md index cd03522cb..be9cb3b32 100644 --- a/docs/api/opencode.md +++ b/docs/api/opencode.md @@ -1,5 +1,7 @@ # OpenCode 接入指南 +> 本文档 AI + 社区共建中 + OpenCode 是开源的 AI 编程终端工具(GitHub 139K Stars),支持 75+ LLM 提供商,100% 开源且不锁定任何单一模型。通过配置 OpenAI 兼容端点,可以接入 Intern-S1-Pro 作为编程助手。 ## 安装 diff --git a/docs/api/quickstart.md b/docs/api/quickstart.md index 6524e68b2..ca3e592f5 100644 --- a/docs/api/quickstart.md +++ b/docs/api/quickstart.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 快速开始 本指南帮助你在 5 分钟内完成第一次 书生大模型 API 调用。 diff --git a/docs/contribute/index.md b/docs/contribute/index.md index e32203101..d3586a68d 100644 --- a/docs/contribute/index.md +++ b/docs/contribute/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 如何参与贡献 **书生社区是一个由社区成员共同建设的项目。无论你的背景和技能如何,都能找到适合自己的贡献方式。** diff --git a/docs/learn/concepts/attention-mechanism.md b/docs/learn/concepts/attention-mechanism.md index 52158a4e3..16f977539 100644 --- a/docs/learn/concepts/attention-mechanism.md +++ b/docs/learn/concepts/attention-mechanism.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 注意力机制详解 注意力机制(Attention)是 Transformer 架构的核心。它让模型在处理每个词时,能够"关注"到输入中所有相关的词,而不是只看附近的几个。 diff --git a/docs/learn/concepts/embedding.md b/docs/learn/concepts/embedding.md index c660eb971..03d0e9bfc 100644 --- a/docs/learn/concepts/embedding.md +++ b/docs/learn/concepts/embedding.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # Embedding 与词向量 Token 只是文本切分后的编号,模型还需要将它们变成**有含义的数字向量**,才能进行计算和理解。这些向量就叫 Embedding。 diff --git a/docs/learn/concepts/index.md b/docs/learn/concepts/index.md index 9eb0475d1..8457fbe9c 100644 --- a/docs/learn/concepts/index.md +++ b/docs/learn/concepts/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 基础概念 LLM、Tokenization、Embedding、Transformer、注意力机制 diff --git a/docs/learn/concepts/tokenization.md b/docs/learn/concepts/tokenization.md index 593a10854..b4fd0862a 100644 --- a/docs/learn/concepts/tokenization.md +++ b/docs/learn/concepts/tokenization.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # Tokenization:模型如何理解文字 大语言模型不能直接读懂"你好"这两个字。它需要先把文本切成一个个小片段——Token,然后用数字表示它们。这个过程就是 Tokenization。 diff --git a/docs/learn/concepts/transformer.md b/docs/learn/concepts/transformer.md index 2e25c1540..339d98144 100644 --- a/docs/learn/concepts/transformer.md +++ b/docs/learn/concepts/transformer.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # Transformer 架构 Transformer 是现代大语言模型的基础架构,由 Google 在 2017 年的论文 "Attention Is All You Need" 中提出。 diff --git a/docs/learn/concepts/what-is-llm.md b/docs/learn/concepts/what-is-llm.md index 8cf095ed9..0696fc8ca 100644 --- a/docs/learn/concepts/what-is-llm.md +++ b/docs/learn/concepts/what-is-llm.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 什么是大语言模型 (LLM) 大语言模型(Large Language Model,简称 LLM)是一种基于深度学习的人工智能模型,能够理解和生成人类语言。 diff --git a/docs/learn/core/agent2agent.md b/docs/learn/core/agent2agent.md index 7906ff001..02a027ff7 100644 --- a/docs/learn/core/agent2agent.md +++ b/docs/learn/core/agent2agent.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # Agent2Agent (A2A) 协议 > **前置知识**:建议先学习 [AI Agent 原理与架构](/zh/docs/learn/core/ai-agent) 和 [MCP 协议](/zh/docs/learn/core/mcp-protocol) diff --git a/docs/learn/core/ai-agent.md b/docs/learn/core/ai-agent.md index 93a6d68ad..29c6cb15e 100644 --- a/docs/learn/core/ai-agent.md +++ b/docs/learn/core/ai-agent.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # AI Agent 原理与架构 如果说大语言模型是一个"超级大脑",那 AI Agent 就是给这个大脑装上了眼睛、手脚和工具箱——它不仅能思考,还能感知环境、做出决策并采取行动。 diff --git a/docs/learn/core/evaluation-benchmarks.md b/docs/learn/core/evaluation-benchmarks.md index 8953ff75f..07e6cbd33 100644 --- a/docs/learn/core/evaluation-benchmarks.md +++ b/docs/learn/core/evaluation-benchmarks.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 评测基准:MMLU、GSM8K、HumanEval 等 买手机看跑分,选大模型看什么?答案是 Benchmark(评测基准)。评测基准就是给大模型出的"标准化考试",通过统一的题目和评分标准来衡量不同模型的能力。 diff --git a/docs/learn/core/function-calling.md b/docs/learn/core/function-calling.md index 6d9003013..0881d9785 100644 --- a/docs/learn/core/function-calling.md +++ b/docs/learn/core/function-calling.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # Function Calling 与 Tool Use 当你问 LLM "今天上海天气怎样",它无法真正查天气——因为它只是一个语言模型。Function Calling 就是给 LLM 装上"遥控器",让它能够按下按钮调用外部工具获取真实信息。 diff --git a/docs/learn/core/index.md b/docs/learn/core/index.md index 2fb6ad07c..fe489b359 100644 --- a/docs/learn/core/index.md +++ b/docs/learn/core/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 核心技术 Prompt Engineering、RAG、Agent、Function Calling、评测、安全 diff --git a/docs/learn/core/mcp-protocol.md b/docs/learn/core/mcp-protocol.md index 96cff00ce..4929de019 100644 --- a/docs/learn/core/mcp-protocol.md +++ b/docs/learn/core/mcp-protocol.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # MCP 协议详解 > **配套视频**:[MCP:AI 世界的 USB 接口](https://c.vansin.top/video/v3/knowledge-mcp-v3.mp4) diff --git a/docs/learn/core/model-safety.md b/docs/learn/core/model-safety.md index c1c2758af..16cf3bad1 100644 --- a/docs/learn/core/model-safety.md +++ b/docs/learn/core/model-safety.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 模型安全:幻觉、对齐与 Red Teaming 大模型能写诗、写代码、做翻译,但它也可能一本正经地胡说八道,或者被诱导生成有害内容。模型安全就是确保 AI 系统**既好用又可靠**的技术领域。 diff --git a/docs/learn/core/prompt-engineering.md b/docs/learn/core/prompt-engineering.md index 80cd6ec04..ab10db30f 100644 --- a/docs/learn/core/prompt-engineering.md +++ b/docs/learn/core/prompt-engineering.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # Prompt Engineering Prompt Engineering(提示工程)是与大语言模型高效交互的核心技能。好的 Prompt 能让模型输出质量提升数倍。 diff --git a/docs/learn/core/rag-basics.md b/docs/learn/core/rag-basics.md index 43f87bb07..c1b461c46 100644 --- a/docs/learn/core/rag-basics.md +++ b/docs/learn/core/rag-basics.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # RAG 基础 RAG(Retrieval-Augmented Generation,检索增强生成)是解决大语言模型知识局限性的核心技术。 diff --git a/docs/learn/index.md b/docs/learn/index.md index e6fed292e..91757e3c1 100644 --- a/docs/learn/index.md +++ b/docs/learn/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # AI 技术基础 从零开始系统学习 AI,为使用和开发大语言模型打下坚实基础。涵盖基础概念、核心技术、进阶应用和工程实践四大层次,当前中文 17 篇核心教程(双语共 35 篇)。 diff --git a/docs/learn/multimodal/image-editing.md b/docs/learn/multimodal/image-editing.md index 394b5d905..a0cf5d07b 100644 --- a/docs/learn/multimodal/image-editing.md +++ b/docs/learn/multimodal/image-editing.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 图片编辑:AI 编辑图像基础 上传一张图片,用一句话描述你想要的改动,AI 就能帮你完成——这是 AI 图像编辑(Image Editing)的核心能力。 diff --git a/docs/learn/multimodal/index.md b/docs/learn/multimodal/index.md index e076a5499..e398a911e 100644 --- a/docs/learn/multimodal/index.md +++ b/docs/learn/multimodal/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 多模态 视觉语言模型、文生图、图片编辑、文生视频 diff --git a/docs/learn/multimodal/internsvg.md b/docs/learn/multimodal/internsvg.md index 7f13a374b..b6bb9d269 100644 --- a/docs/learn/multimodal/internsvg.md +++ b/docs/learn/multimodal/internsvg.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # InternSVG:AI 矢量图形生成 > **前置知识**:建议先学习 [视觉语言模型 (VLM)](/zh/docs/learn/multimodal/vlm) 和 [文生图基础](/zh/docs/learn/multimodal/text-to-image) diff --git a/docs/learn/multimodal/text-to-image.md b/docs/learn/multimodal/text-to-image.md index 258817002..2eca97b0e 100644 --- a/docs/learn/multimodal/text-to-image.md +++ b/docs/learn/multimodal/text-to-image.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 文生图:AI 图像生成基础 用一句话描述就能生成一张图片——这是 AI 图像生成(Text-to-Image)的核心能力。本教程带你从原理到实战,系统掌握文生图技术。 diff --git a/docs/learn/multimodal/text-to-video.md b/docs/learn/multimodal/text-to-video.md index fdac1ca75..84546a6c0 100644 --- a/docs/learn/multimodal/text-to-video.md +++ b/docs/learn/multimodal/text-to-video.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 文生视频:AI 视频生成基础 用一段文字描述就能生成一段视频——这是 AI 视频生成(Text-to-Video)的核心能力。本教程带你了解文生视频的原理、主流技术路线和实际应用。 diff --git a/docs/learn/multimodal/vlm.md b/docs/learn/multimodal/vlm.md index 3e3cc7f5f..fef25539e 100644 --- a/docs/learn/multimodal/vlm.md +++ b/docs/learn/multimodal/vlm.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 视觉语言模型 (VLM) 视觉语言模型(Vision-Language Model,VLM)是能够同时理解**图像和文本**的 AI 模型。它不仅能看图说话,还能根据图片回答问题、理解文档、甚至分析视频。 diff --git a/docs/learn/training/index.md b/docs/learn/training/index.md index efdd57db7..6c3237c2f 100644 --- a/docs/learn/training/index.md +++ b/docs/learn/training/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 训练方法 预训练、SFT、RLHF、LoRA、量化 diff --git a/docs/learn/training/lora.md b/docs/learn/training/lora.md index ada02600d..6a8435726 100644 --- a/docs/learn/training/lora.md +++ b/docs/learn/training/lora.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # LoRA 与参数高效微调 全量微调一个 8B 模型需要 80GB+ 显存,一张消费级 GPU 根本跑不动。**LoRA(Low-Rank Adaptation)** 让你用不到 1% 的参数就能微调大模型,效果接近全量微调。 diff --git a/docs/learn/training/model-quantization.md b/docs/learn/training/model-quantization.md index af4c9713e..e4ed2b441 100644 --- a/docs/learn/training/model-quantization.md +++ b/docs/learn/training/model-quantization.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 模型量化:GPTQ/AWQ/GGUF 一个 70B 参数的大模型,以 FP16 精度加载需要约 140GB 显存——这超过了绝大多数消费级显卡的容量。量化就像是给模型"瘦身",用更低的精度表示权重,让大模型可以跑在普通 GPU 甚至 CPU 上。 diff --git a/docs/learn/training/pretraining.md b/docs/learn/training/pretraining.md index 49c397892..7334d0155 100644 --- a/docs/learn/training/pretraining.md +++ b/docs/learn/training/pretraining.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 预训练:从零训练大模型 预训练是大语言模型诞生的第一步。一个模型从"一无所知"到"博览群书",靠的就是在海量文本上进行预训练。 diff --git a/docs/learn/training/rlhf.md b/docs/learn/training/rlhf.md index c9fa997c5..7ff3a9138 100644 --- a/docs/learn/training/rlhf.md +++ b/docs/learn/training/rlhf.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # RLHF 与 DPO:人类偏好对齐 经过预训练和 SFT,模型已经能对话了。但它有时会"胡说八道"、给出不安全的内容、或者用一堆正确但无用的废话敷衍你。**对齐(Alignment)** 技术就是教模型"什么样的回答才是好的"。 diff --git a/docs/learn/training/sft.md b/docs/learn/training/sft.md index 6d8b06240..c2f12ff5e 100644 --- a/docs/learn/training/sft.md +++ b/docs/learn/training/sft.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # SFT 有监督微调 SFT(Supervised Fine-Tuning,有监督微调)是将预训练的基座模型"教会"对话和遵循指令的关键步骤。 diff --git a/docs/learn/tutorials/a100-internvl-u.md b/docs/learn/tutorials/a100-internvl-u.md index 75f86573e..f79503e18 100644 --- a/docs/learn/tutorials/a100-internvl-u.md +++ b/docs/learn/tutorials/a100-internvl-u.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 在 A100 GPU 上部署 InternVL-U 本教程基于 InternStudio 开发机实战,手把手带你在 NVIDIA A100 GPU 上完成 InternVL-U 4B 模型的全能力部署,包括文本对话、文生图、图片编辑三大功能。 diff --git a/docs/learn/tutorials/ascend-internvl-u.md b/docs/learn/tutorials/ascend-internvl-u.md index c8b25e752..cff2d3fd0 100644 --- a/docs/learn/tutorials/ascend-internvl-u.md +++ b/docs/learn/tutorials/ascend-internvl-u.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 在昇腾 NPU 上部署 InternVL-U 本教程基于 InternStudio 开发机实战,手把手带你在华为昇腾 NPU 上完成 InternVL-U 4B 模型的全能力部署,包括文本对话、文生图、图片编辑三大功能。 diff --git a/docs/learn/tutorials/index.md b/docs/learn/tutorials/index.md index ac7040c7f..40a7a32f3 100644 --- a/docs/learn/tutorials/index.md +++ b/docs/learn/tutorials/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 部署教程 A100、昇腾 NPU、沐曦 MetaX 部署 InternVL-U diff --git a/docs/learn/tutorials/metax-internvl-u.md b/docs/learn/tutorials/metax-internvl-u.md index 7997308bf..e7d2187db 100644 --- a/docs/learn/tutorials/metax-internvl-u.md +++ b/docs/learn/tutorials/metax-internvl-u.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 在沐曦 C500 GPU 上部署 InternVL-U 本教程手把手带你在沐曦 MetaX C500 GPU 上完成 InternVL-U 4B 模型的全能力部署,包括文本对话、文生图、图片编辑三大功能。 diff --git a/docs/models/index.md b/docs/models/index.md index cb093bb27..8b57f8497 100644 --- a/docs/models/index.md +++ b/docs/models/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 模型与工具链文档 书生大模型生态提供了从模型到部署、微调、评测的全链路开源工具链。 diff --git a/docs/models/internlm/index.md b/docs/models/internlm/index.md index 91ee9498f..66e5f4e20 100644 --- a/docs/models/internlm/index.md +++ b/docs/models/internlm/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # InternLM 书生·浦语 InternLM 是书生大模型系列的核心语言模型产品线,经历了三代迭代,从 InternLM 到 InternLM3,持续推进大语言模型的开源创新。 diff --git a/docs/models/internlm/quickstart.md b/docs/models/internlm/quickstart.md index 36ea51cfd..a7b8cfadf 100644 --- a/docs/models/internlm/quickstart.md +++ b/docs/models/internlm/quickstart.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # InternLM 快速上手 本指南帮助你在本地环境中运行 InternLM3 模型。 diff --git a/docs/models/internvl/index.md b/docs/models/internvl/index.md index ec9693078..7e6e31827 100644 --- a/docs/models/internvl/index.md +++ b/docs/models/internvl/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # InternVL 书生·万象 InternVL 是书生系列的多模态大模型产品线,支持图像理解、视频理解、文档分析等视觉语言任务。InternVL3 在 10 亿至 780 亿全量级上均为开源第一。 diff --git a/docs/models/lmdeploy/index.md b/docs/models/lmdeploy/index.md index c7a029918..a97c9980b 100644 --- a/docs/models/lmdeploy/index.md +++ b/docs/models/lmdeploy/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # LMDeploy LMDeploy 是书生生态中的大模型部署工具,提供高效的推理引擎和便捷的部署方案。支持 LLM 和 VLM 的推理、量化和 API 服务。 diff --git a/docs/models/opencompass/index.md b/docs/models/opencompass/index.md index 5cd4e44dd..600f80d1e 100644 --- a/docs/models/opencompass/index.md +++ b/docs/models/opencompass/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # OpenCompass OpenCompass 是书生生态中的一站式大模型评测平台,支持 100+ 评测基准、50+ 模型架构,提供全面客观的模型能力评估。 diff --git a/docs/models/timeline.md b/docs/models/timeline.md index 8e61b957e..c9b6164dc 100644 --- a/docs/models/timeline.md +++ b/docs/models/timeline.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # 产品模型时间线 书生大模型家族自 2023 年以来持续演进,涵盖语言模型、多模态模型、工具链和数据四大产品线。 diff --git a/docs/models/xtuner/index.md b/docs/models/xtuner/index.md index c67838500..41d646f47 100644 --- a/docs/models/xtuner/index.md +++ b/docs/models/xtuner/index.md @@ -1,4 +1,6 @@ + +> 本文档 AI + 社区共建中 # XTuner XTuner 是书生生态中的大模型微调框架,支持 LoRA / QLoRA / Full 微调,以及 RLHF / GRPO 强化学习训练。