DocProduct

GitHub
571 157 较难 1 次阅读 1个月前MIT语言模型开发框架
AI 解读 由 AI 自动生成,仅供参考

DocProduct 是一个基于深度语言模型的医疗问答开源项目,旨在探索人工智能在医学信息检索与生成方面的潜力。它主要解决了如何从海量非结构化医疗数据中快速提取相关信息,并生成自然流畅回答的难题。该项目抓取了来自 Reddit、HealthTap 等平台的 70 万条医疗问答数据,通过结合 BERT 和 GPT-2 两大前沿模型,实现了对用户医学问题的智能响应:利用微调后的 BioBERT 精准理解问题语义,再借助 GPT-2 生成针对性的解答。

技术上,DocProduct 的创新之处在于巧妙融合了 Transformer 架构、潜在向量搜索(Faiss)、负采样技术以及生成式预训练,并在 TensorFlow 2.0 框架下完成了从零构建。值得注意的是,该项目曾入围"#PoweredByTF 2.0"挑战赛六强,展示了强大的工程落地能力。

DocProduct 非常适合 NLP 研究人员、AI 开发者以及对医疗大模型应用感兴趣的技术爱好者使用,可作为研究医学文本编码与检索的优质参考案例。但请务必注意,项目明确声明其仅用于学术探索与技术验证,绝不可作为实际的医疗诊断或治疗建议依据。

使用场景

某医疗科技初创团队正在开发一款面向患者的智能预诊助手,需要快速构建一个能理解复杂病症描述并生成专业回复的原型系统。

没有 DocProduct 时

  • 团队需从零收集并清洗海量医疗问答数据,耗时数周才能凑齐训练集,且数据质量参差不齐。
  • 缺乏针对医学领域优化的预训练模型,通用 NLP 模型对“心悸”、“室性早搏”等专业术语理解偏差大,回答常出现常识性错误。
  • 手动编写规则或训练传统检索系统难以覆盖长尾病症问题,用户稍微变换提问方式,系统就无法匹配到相关答案。
  • 在有限算力下微调百亿级参数模型极其困难,团队多次因显存溢出导致实验中断,研发进度严重滞后。

使用 DocProduct 后

  • 直接利用其内置的从 Reddit、WebMD 等渠道爬取并清洗好的 70 万条高质量医疗问答数据集,当天即可启动模型训练。
  • 基于已微调的 BioBERT 和 GPT-2 模型,系统能精准提取病症特征并生成符合医学逻辑的回答,显著降低幻觉率。
  • 结合潜在向量搜索技术,即使用户用口语化描述症状,DocProduct 也能迅速检索到最相关的医学知识并生成针对性建议。
  • 依托 TensorFlow 2.0 的高效架构,团队在单块 GPU 上即可流畅运行微调任务,将原型开发周期从数月缩短至几天。

DocProduct 通过整合领域专用数据与前沿深度学习架构,让中小团队也能低成本构建高可信度的医疗问答系统。

运行环境要求

操作系统
  • Linux
GPU
  • 可选(支持 CPU 和 GPU)
  • 若使用 GPU,需 NVIDIA 显卡以运行 tensorflow-gpu,安装脚本示例中指定了 CUDA 9.0.176
  • 在 Colab 中运行 GPT-2 (117M) 时需注意显存限制以避免 OOM
内存

未说明(但处理超过 1TB 的数据集及运行大型模型建议高内存)

依赖
notes1. 该项目主要基于 TensorFlow 2.0 Alpha 版本构建,且包含需要在 TF 1.X 环境下运行的 GPT-2 组件,推理时需禁用 eager execution 并管理两个独立的会话。2. 安装 FAISS 时提供了针对 CUDA 9.0 的特定二进制文件链接。3. 数据量巨大(超过 1TB),本地运行需准备充足存储空间。4. 明确声明仅用于研究,不可用于实际医疗建议。5. 提供 Google Colab 演示环境,适合资源有限的用户尝试。
python3.7.1
tensorflow==2.0.0-alpha0
faiss-cpu==1.2.1 (或 faiss-gpu)
mkl
BERT (BioBERT weights)
GPT-2 (OpenAI 117M parameters)
DocProduct hero image

快速开始

python tensorflow Open In Colab

文档产品:基于深度语言模型的医疗问答系统

桑托什·古普塔、亚历克斯·盛和叶俊鹏的合作成果

已训练好的模型及嵌入文件可在此下载:点击这里

荣获⚡#PoweredByTF 2.0挑战赛前六名决赛选手!详情请访问:https://devpost.com/software/nlp-doctor。Doc Product将在TensorFlow Connect上向TensorFlow工程团队进行展示,敬请期待后续详情。

我们希望利用TensorFlow 2.0来探索当前最先进的自然语言处理模型,如BERTGPT-2,在检索并基于相关医疗数据进行条件生成的情况下,对医学问题作出响应的能力。这就是我们的成果。

免责声明

本项目旨在探索深度学习语言模型在科学编码与信息检索方面的潜力,但绝不应被用于提供可执行的医疗建议。

我们如何构建Doc Product

作为一群背景各异的朋友——从囊中羞涩的本科生到数据科学家,再到顶尖的自然语言处理研究人员——我们在机器学习的多个领域汲取灵感,设计出了这一方案。通过将Transformer架构潜在向量搜索负采样以及TensorFlow 2.0灵活的深度学习框架中的生成式预训练相结合,我们成功地为一个看似艰巨的任务提供了一种新颖的解决方案。

  • 从Reddit、HealthTap、WebMD等多个网站抓取的70万条医学问答
  • 使用预训练的BioBERT权重对TF 2.0 BERT进行微调,以提取文本表示
  • 使用OpenAI的GPT-2-117M参数对TF 2.0 GPT-2进行微调,用于生成新问题的答案
  • 利用Keras.Model前馈网络构建的网络头部,将问题和答案的嵌入映射到度量空间
  • 超过一太字节的TFRECORDS、CSV和CKPT数据

如果您想了解我们构建Doc Product的完整过程及其架构细节,请查看我们的GitHub自述文件:点击这里

挑战

我们的项目面临了数不胜数的挑战,从压缩天文数字般庞大的数据集,到在TensorFlow 2.0中重新实现整个BERT模型,再到在Colaboratory中运行拥有1.17亿参数的GPT-2,以及在提交截止时间仅剩几小时时赶工完成项目的最后部分。奇怪的是,最大的挑战往往出现在我们对项目发展方向产生分歧的时候。然而,尽管我们有时会就最佳行动方案争执不下,但最终我们都怀着共同的目标——打造一件对许多人有意义且可能具有价值的作品。因此,我们总能坐下来达成一致,并在彼此的支持和深夜Google Hangouts上的鼓励下,携手克服这些挑战。

下一步计划

虽然Doc Product目前尚不具备广泛商业化的条件,但其令人惊喜的良好表现表明,像BERTGPT-2这样的通用语言模型的进步,已经使得以往难以解决的医学信息处理等问题,可以通过深度NLP方法得以实现。因此,我们希望自己的工作能够激励更多人投身于这些问题的研究,并亲自探索这片全新的NLP前沿。

尽管如此,我们仍计划继续推进Doc Product的开发,特别是随着OpenAI按照其分阶段发布计划陆续推出3.45亿、7.62亿和15亿参数版本的GPT-2,我们将进一步扩展该系统以充分利用这些新版本的功能。此外,我们还打算继续训练模型,因为我们仍有大量数据有待处理。

注:我们目前正在从事科学/医学领域的NLP和信息检索研究。如果您有意合作,请发送邮件至Research2Vec@gmail.com

体验一下吧!

通过pip安装

您可以直接从pip安装Doc Product,并在本地机器上运行。以下是安装Doc Product以及TensorFlow 2.0和FAISS的代码:

!wget  https://anaconda.org/pytorch/faiss-cpu/1.2.1/download/linux-64/faiss-cpu-1.2.1-py36_cuda9.0.176_1.tar.bz2
#若需使用GPU FAISS,请使用:
# !wget  https://anaconda.org/pytorch/faiss-gpu/1.2.1/download/linux-64/faiss-gpu-1.2.1-py36_cuda9.0.176_1.tar.bz2
!tar xvjf faiss-cpu-1.2.1-py36_cuda9.0.176_1.tar.bz2
!cp -r lib/python3.6/site-packages/* /usr/local/lib/python3.6/dist-packages/
!pip install mkl

!pip install tensorflow-gpu==2.0.0-alpha0
import tensorflow as tf
!pip install https://github.com/Santosh-Gupta/DocProduct/archive/master.zip

我们的仓库包含用于生成**.tfrecords数据、基于您自己的问答数据训练Doc Product,以及运行Doc Product以获取医学问题答案的脚本。请参阅下方的Google Colaboratory演示**部分,获取加载数据/权重并运行我们模型的代码示例。

Colaboratory 演示

请查看我们的 Colab 演示! 我们计划在后续不断添加更多演示,以便用户能够探索 Doc Product 的更多功能。所有新演示都将被添加到同一个 Google Drive 文件夹中。

这些演示包括通过 pip 安装 Doc Product 的代码、下载/加载预训练权重,以及运行 Doc Product 的检索功能并在您自己的问答数据上进行微调。

运行我们的交互式检索模型,解答您的医学问题

https://colab.research.google.com/drive/11hAr1qo7VCSmIjWREFwyTFblU2LVeh1R

训练您自己的医学问答检索模型

https://colab.research.google.com/drive/1Rz2rzkwWrVEXcjiQqTXhxzLCW5cXi7xA

[实验性] 使用 BERT、FCNN、FAISS 和 GPT-2 运行完整的 Doc Product 流程,让最先进的 AI 回答您的医学问题。

端到端的 Doc Product 演示目前仍处于 实验阶段,但欢迎您尝试! https://colab.research.google.com/drive/1Bv7bpPxIImsMG4YWB_LWjDRgUHvi7pxx

功能简介

我们的 BERT 经过训练,能够对医学问题和医学信息进行编码。用户只需输入一个医学问题,我们的模型便会检索出与该问题最相关的医学信息。

数据

我们从多个医学问答论坛中创建了数据集。这些论坛包括 WebMD、HealthTap、eHealthForums、iClinic、Question Doctors 以及 Reddit.com/r/AskDocs。

架构

该架构由一个经过微调的 bioBert 组成(问题和答案共用同一模型),用于将文本输入转换为嵌入表示。随后,这些嵌入会被输入到 FCNN 中(问题和答案分别使用不同的 FCNN),以生成用于相似度查找的嵌入。最后,GPT-2 会利用检索到的最相似问题和答案来生成最终答案。完整架构如下所示。

让我们更详细地看一下上图的前半部分——BERT 和 FCNN 的训练过程。下图展示了这一部分的详细结构:

在训练过程中,我们会选取一批医学问题及其对应的医学答案,并将其转换为 bioBert 嵌入。问题和答案均使用相同的 Bert 权重。

DoctorBert

这些嵌入随后会被输入到 FCNN 层中。问题和答案的嵌入分别对应不同的 FCNN 层。总结一下,我们在 BERT 层中使用相同的权重,但问题和答案各自拥有独立的 FCNN 层。

DoctorBert

接下来的情况就有点复杂了。通常,嵌入相似度训练会涉及负样本,比如 word2vec 就使用 NCE 损失函数。然而,在我们的场景中无法使用 NCE 损失,因为嵌入是在每一步生成的,而权重也会在每次训练步骤中发生变化。

因此,我们没有采用 NCE 损失,而是计算了批次内所有问题和答案嵌入之间的点积。如下图所示:

DoctorBert

接着,我们对每一行进行 softmax 处理:对于每个问题,其所有可能的答案组合都会被 softmax 化。

DoctorBert

最后,我们使用的损失函数是交叉熵损失。我们将 softmax 后的矩阵与真实标签矩阵进行比较:正确的问题-答案组合标记为“1”,其他组合则标记为“0”。

遇到的技术难题

数据收集与清洗

数据收集的过程颇具挑战,因为不同医学网站的格式差异很大。我们需要针对每个网站进行定制化处理,才能从正确的 HTML 标签部分提取问题和答案。此外,有些网站允许多位医生对同一问题作出回复,因此我们也需要一种方法来收集单个问题的多条回复。为此,我们为每一对问题-答案创建了多行记录。之后,我们需要将数据输入 BERT 模型,并保存其中间层的输出,从而生成可用于全连接神经网络(FFNN)密集层的 BioBERT 嵌入。我们为问题和答案分别存储了 768 维向量,并将其与相应的文本一起保存到 CSV 文件中。尽管我们尝试过多种更紧凑、加载和共享速度更快的格式,但最终发现 CSV 是最简单且最具灵活性的方式。在 BioBERT 嵌入生成并存储完成后,我们进行了相似度训练,进而生成了能够捕捉问题与答案之间相似性的 FFNN 嵌入。这些嵌入也与 BioBERT 嵌入及原始文本一同保存,以便后续可视化和查询。

结合 TF 1.X 和 TF 2.0 构建的模型

嵌入模型是基于 TF 2.0 构建的,充分利用了 TF 2.0 的动态执行特性。然而,我们使用的 GPT-2 模型却是基于 TF 1.X 构建的。幸运的是,我们可以分别训练这两个模型。在推理阶段,我们需要通过 tf.compat.v1.disable_eager_execution 关闭动态执行,并维持两个独立的会话。同时,我们还需要合理管理两个会话的 GPU 内存,以避免出现内存不足(OOM)的情况。

我们的自豪之处

精心设计的鲁棒模型与损失函数

一种常见的基于用户提问检索答案的方法是使用强大的编码器(BERT)对输入问题和数据库中的问题进行编码,然后进行相似度搜索。这种方法无需训练,性能完全依赖于编码器。相比之下,我们分别为问题和答案构建了独立的前馈神经网络,并计算它们之间的余弦相似度。受 word2vec 论文中的负采样启发,我们将同一批次中的其他答案视为负样本,计算交叉熵损失。这种方法使得同一配对中的问题嵌入和答案嵌入在欧几里得距离上尽可能接近。实践证明,这种方式比直接使用 BERT 嵌入向量进行相似度搜索更为稳健。

高性能输入管道

BERT 的预处理过程较为复杂,我们的数据集包含约 33.3 万个问答对和超过 3000 万个词元。考虑到在训练过程中打乱数据顺序非常重要,我们需要一个足够大的打乱缓冲区,以确保模型能够得到充分的随机化训练。在每个 epoch 开始训练之前,数据预处理需要花费超过 10 分钟。因此,我们采用了 tf.data 和 TFRecords 来构建高性能的输入管道。经过优化后,启动训练的时间缩短至约 20 秒,并且 GPU 再也没有出现空闲状态。

BERT 预处理的另一个问题是,它会将所有数据填充到固定长度。对于较短的序列来说,这会导致大量的计算资源和 GPU 显存被浪费。这一点在使用 BERT 等大型模型时尤为重要。为此,我们重写了 BERT 的预处理代码,利用 tf.data.experimental.bucket_by_sequence_length 将不同长度的序列分桶,并动态地进行填充。通过这种方式,我们不仅能够支持更长的最大序列长度,还显著提升了训练速度。

命令式 BERT 模型

经过一些修改后,Keras-Bert 已经可以在 TensorFlow 2.0 环境中运行。然而,当我们尝试将 Keras-Bert 作为嵌入模型中的子模块时,发现了以下两个问题:

  • 它使用的是函数式 API。虽然函数式 API 非常灵活,但它仍然是符号式的。这意味着即使启用了急切执行模式,我们仍然无法在运行时使用传统的 Python 调试方法。为了充分发挥急切执行的优势,我们需要使用 tf.keras.Model 来构建模型。
  • 我们并没有直接使用 Keras-Bert 的输入层,因此遇到了 此问题。如果不改变我们的输入管道,很难避免这个 bug。

基于以上原因,我们决定重新实现一个命令式版本的 BERT。我们复用了 Keras-Bert 中的一些组件(如多头注意力机制、检查点权重加载等),并编写了 Bert 的 call 方法。我们的实现更加易于调试,并且同时兼容灵活的急切执行模式和高性能的静态图模式。

基于辅助输入的答案生成

用户在不同情况下可能会经历多种症状,因此最完美的答案可能是由多个答案组合而成。为了解决这一问题,我们利用强大的 GPT-2 模型,将用户的提问与从数据集中检索出的 Top K 辅助答案一起输入到模型中。GPT-2 将根据问题和这些辅助答案生成一个更优的答案。为了有效地训练 GPT-2 模型,我们按照如下方式创建训练数据:遍历数据集中的每一个问题,通过相似度搜索获取 Top K+1 个答案,将原始答案作为目标答案,其余答案作为辅助输入。这样,我们获得的 GPT-2 训练数据量与嵌入模型的训练数据量相同。

我们的收获

BERT 在编码医学领域的问答方面表现出色,能够为这些问题和答案生成鲁棒的向量表示。

我们训练了一个基于 Naver 的 bioBert 初始化的微调版本模型,同时也训练了一个冻结了 bioBert 权重、仅对问题和答案的两个全连接神经网络进行训练的版本。尽管我们原本预期微调版本的效果会更好,但令人惊讶的是,后者的表现同样非常稳健。这表明 bioBert 具备天然的能力,能够有效编码医学领域的问题和答案。

医学问答信息检索中 BERT 的下一步方向

探索该项目在研究或探索性用途之外是否有实际应用价值。像这样的模型不应被用于公众获取医疗信息的场景。不过,它或许可以被受过专业培训或持有执业资格的医疗专业人士用来收集信息,以供进一步审核。

探索将相同的方法应用于其他领域(例如历史信息检索、工程信息检索等)。

比较近期发布的 sciBert(由 Allen AI 发布)与 Naver 的 bioBert 的表现差异。

感谢!

我们感谢 TensorFlow 团队提供了 #PoweredByTF2.0 挑战赛这一平台,使我们能够与他人分享自己的工作成果。同时,特别感谢 Llion Jones 博士,他的见解和指导对我们项目的方向产生了重要影响。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|昨天
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

143.9k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.9k|★★☆☆☆|昨天
开发框架图像Agent

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|昨天
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|昨天
语言模型图像Agent