mlops-course

GitHub
3.3k 593 简单 1 次阅读 昨天MIT开发框架数据工具其他语言模型插件
AI 解读 由 AI 自动生成,仅供参考

mlops-course 是一门专注于将机器学习与软件工程深度融合的实战课程,旨在帮助学习者掌握从模型实验到生产级应用部署的全流程技能。它解决了传统机器学习教学中“重算法、轻工程”的痛点,填补了学术理论与工业界实际需求之间的鸿沟,让用户能够构建可靠、可扩展且易于维护的 ML 系统。

无论是软件工程师、数据科学家,还是希望建立技术认知的产品负责人或应届毕业生,都能从中获益。课程不要求用户切换编程语言,而是基于 Python 生态,引导大家运用软件工程的最佳实践来管理数据、训练、调优及服务化模型。

其独特亮点在于坚持“第一性原理”教学,先厘清概念本质再动手编码;同时涵盖完整的 MLOps 组件串联,包括实验追踪、自动化测试、模型服务、工作流编排以及成熟的 CI/CD 流水线。通过该课程,开发者可以在不改变代码架构的前提下,平滑地将项目从开发环境迁移至生产环境,甚至利用 Anyscale 集群轻松实现算力扩展。这是一套帮助各类技术人员系统化提升工程落地能力的优质资源。

使用场景

某电商初创公司的算法团队正试图将实验室中准确率高达 92% 的商品推荐模型上线,以支撑即将到来的大促活动。

没有 mlops-course 时

  • 实验与生产脱节:数据科学家在本地 Jupyter Notebook 中完成的模型代码,因缺乏软件工程规范,无法直接由后端工程师部署,导致反复重构和沟通成本高昂。
  • 迭代过程黑盒化:每次调整超参数或更换数据集后,缺乏系统的追踪机制,团队难以复现最佳结果,甚至出现过误用旧版本模型上线的事故。
  • 扩展性瓶颈:面对大促期间激增的数据量和并发请求,团队不知如何在 Python 生态内平滑扩展计算资源,只能临时学习陌生的分布式框架,延误了上线窗口。
  • 缺乏自动化流程:模型更新完全依赖人工手动操作,没有建立 CI/CD 流水线,导致新模型从训练到部署周期长达数周,无法快速响应市场变化。

使用 mlops-course 后

  • 端到端工程化落地:团队遵循课程中的最佳实践,将模型开发纳入标准软件工程流程,实现了从实验代码到生产级 API 的无缝衔接,部署效率提升 300%。
  • 全链路可观测性:利用课程教授的组件构建了完整的追踪系统,每一次实验的参数、指标和产物均自动记录,确保模型迭代过程透明且可复现。
  • 弹性伸缩能力:基于课程指导的架构,团队在不切换编程语言的前提下,轻松将训练和推理任务扩展至集群环境,从容应对大促流量洪峰。
  • 自动化持续交付:建立了成熟的 CI/CD 工作流,一旦新模型通过测试即可自动触发部署,将模型更新周期从数周缩短至小时级,显著提升了业务响应速度。

mlops-course 帮助团队打破了算法与工程的壁垒,构建了一套可靠、可扩展且自动化的生产级机器学习系统。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

非必需(本地运行可配置为 0),若使用需支持 CUDA 的 NVIDIA GPU,具体型号和显存未说明

内存

未说明

依赖
notes支持在本地笔记本、Anyscale 集群、AWS/GCP、Kubernetes 或本地服务器上运行。本地运行时建议将 GPU 数量设为 0。实验跟踪使用 MLflow,也可集成 Weights & Biases 或 Comet。建议使用 pyenv 管理 Python 版本。
python3.10 (推荐)
未明确列出具体库名及版本 (需安装 requirements.txt)
mlops-course hero image

快速开始

MLOps 课程

学习如何将机器学习与软件工程相结合,以设计、开发、部署并迭代生产级的机器学习应用。

lessons

概述

在本课程中,我们将从实验阶段(模型设计 + 开发)过渡到生产阶段(模型部署 + 迭代)。我们将通过逐步构建能够支持我们打造一个可靠生产系统的各个组件来实现这一目标。

  请务必观看下方视频,快速了解我们将要构建的内容。
课程概述视频

  • 💡 第一性原理:在直接进入代码之前,我们会对每一个机器学习概念建立基于第一性原理的理解。
  • 💻 最佳实践:在开发和部署机器学习模型的过程中,我们将践行软件工程的最佳实践。
  • 📈 扩展性:无需学习全新的编程语言,即可在 Python 中轻松扩展机器学习工作负载(数据处理、训练、调参、服务等)。
  • ⚙️ MLOps:在构建端到端机器学习系统的过程中,我们将连接 MLOps 的各个组件(跟踪、测试、服务、编排等)。
  • 🚀 从开发到生产:学习如何在不更改代码或基础设施管理的情况下,快速且可靠地从开发阶段过渡到生产阶段。
  • 🐙 CI/CD:学习如何创建成熟的 CI/CD 流水线,以模块化的方式持续训练和部署更优秀的模型,并与任何技术栈无缝集成。

目标受众

机器学习并不是一个独立的行业,而是一种强大的数据思维模式,它并不局限于某一类人群。

  • 👩‍💻 所有开发者:无论是软件/基础设施工程师还是数据科学家,机器学习正日益成为您所开发产品中的关键组成部分。
  • 👩‍🎓 大学毕业生:学习行业所需的实用技能,弥合大学课程与行业期望之间的差距。
  • 👩‍💼 产品/管理层:希望打下坚实的技术基础,从而能够构建出令人惊叹且可靠的机器学习驱动产品的人士。

环境搭建

请务必访问课程页面,以获取关于本仓库内容更为详细的介绍。对于以下各部分,我们将提供本地笔记本电脑和 Anyscale 集群两种环境的说明,请根据您使用的环境切换 ► 下拉菜单(默认会显示 Anyscale 的说明)。如果您希望通过 Anyscale 来运行本课程——我们将为您提供架构计算资源(GPU)以及社区支持,让您在一个周末内掌握所有知识——欢迎加入我们即将开启的直播班级 → 在此报名

集群

我们首先将设置集群的环境和计算配置。

本地
您的个人笔记本电脑(单机)将充当集群的角色,其中一台 CPU 将作为主节点,其余 CPU 则作为工作节点。本课程中的所有代码均可在任何个人笔记本电脑上运行,不过其执行速度会比在更大规模的集群上慢。
Anyscale

我们可以使用网页界面创建一个Anyscale 工作空间

- 工作空间名称:`madewithml`
- 项目:`madewithml`
- 集群环境名称:`madewithml-cluster-env`
# 切换“从已保存配置中选择”
- 计算配置:`madewithml-cluster-compute`

或者,我们也可以使用命令行工具通过 anyscale workspace create ... 创建工作空间。

其他(云平台、K8s、本地部署)

如果您不想在本地或通过 Anyscale 运行本课程,您可以选择以下方式:

Git 设置

按照以下步骤创建一个仓库:创建新仓库 → 命名为 Made-With-ML → 勾选 添加 README 文件非常重要,因为这会创建一个 main 分支)→ 点击 创建仓库(向下滚动)

现在我们可以克隆包含所有代码的仓库:

git clone https://github.com/GokuMohandas/Made-With-ML.git .
git remote set-url origin https://github.com/GITHUB_USERNAME/Made-With-ML.git  # <-- 将此处替换为您的用户名
git checkout -b dev

虚拟环境

本地
export PYTHONPATH=$PYTHONPATH:$PWD
python3 -m venv venv  # 推荐使用 Python 3.10
source venv/bin/activate  # Windows 上:venv\Scripts\activate
python3 -m pip install --upgrade pip setuptools wheel
python3 -m pip install -r requirements.txt
pre-commit install
pre-commit autoupdate

强烈建议使用 Python 3.10,并搭配 pyenv(macOS)或 pyenv-win(Windows)。

Anyscale

我们在设置 Anyscale 工作空间时所使用的集群环境已经为我们配置好了合适的 Python 版本和相关库。因此,我们只需运行以下命令:

export PYTHONPATH=$PYTHONPATH:$PWD
pre-commit install
pre-commit autoupdate

笔记本

首先,探索 jupyter notebook,以交互式的方式逐步了解核心机器学习工作负载。

本地
# 启动笔记本
jupyter lab notebooks/madewithml.ipynb
Anyscale

点击我们 Anyscale Workspace 页面右上角的 Jupyter 图标    ,这将在新标签页中打开我们的 JupyterLab 实例。然后导航到 notebooks 目录,并打开 madewithml.ipynb 笔记本。

脚本

现在,我们将使用遵循软件工程最佳实践(测试、文档、日志记录、服务化、版本控制等)的整洁 Python 脚本执行相同的工作负载。我们在笔记本中实现的代码将被重构为以下脚本:

madewithml
├── config.py
├── data.py
├── evaluate.py
├── models.py
├── predict.py
├── serve.py
├── train.py
├── tune.py
└── utils.py

注意:请根据您系统的资源调整下面的 --num-workers--cpu-per-worker--gpu-per-worker 输入参数值。例如,如果您在本地笔记本电脑上运行,合理的配置可能是 --num-workers 6 --cpu-per-worker 1 --gpu-per-worker 0

训练

export EXPERIMENT_NAME="llm"
export DATASET_LOC="https://raw.githubusercontent.com/GokuMohandas/Made-With-ML/main/datasets/dataset.csv"
export TRAIN_LOOP_CONFIG='{"dropout_p": 0.5, "lr": 1e-4, "lr_factor": 0.8, "lr_patience": 3}'
python madewithml/train.py \
    --experiment-name "$EXPERIMENT_NAME" \
    --dataset-loc "$DATASET_LOC" \
    --train-loop-config "$TRAIN_LOOP_CONFIG" \
    --num-workers 1 \
    --cpu-per-worker 3 \
    --gpu-per-worker 1 \
    --num-epochs 10 \
    --batch-size 256 \
    --results-fp results/training_results.json

调参

export EXPERIMENT_NAME="llm"
export DATASET_LOC="https://raw.githubusercontent.com/GokuMohandas/Made-With-ML/main/datasets/dataset.csv"
export TRAIN_LOOP_CONFIG='{"dropout_p": 0.5, "lr": 1e-4, "lr_factor": 0.8, "lr_patience": 3}'
export INITIAL_PARAMS="[{\"train_loop_config\": $TRAIN_LOOP_CONFIG}]"
python madewithml/tune.py \
    --experiment-name "$EXPERIMENT_NAME" \
    --dataset-loc "$DATASET_LOC" \
    --initial-params "$INITIAL_PARAMS" \
    --num-runs 2 \
    --num-workers 1 \
    --cpu-per-worker 3 \
    --gpu-per-worker 1 \
    --num-epochs 10 \
    --batch-size 256 \
    --results-fp results/tuning_results.json

实验跟踪

我们将使用 MLflow 来跟踪我们的实验并存储模型,同时使用 MLflow Tracking UI 查看我们的实验。我们一直将实验保存到本地目录,但请注意,在实际生产环境中,我们会有一个集中位置来存储所有实验。为团队成员搭建一个自己的 MLflow 服务器以跟踪他们的实验非常简单且成本低廉,或者也可以使用托管解决方案,如 Weights & BiasesComet 等。

export MODEL_REGISTRY=$(python -c "from madewithml import config; print(config.MODEL_REGISTRY)")
mlflow server -h 0.0.0.0 -p 8080 --backend-store-uri $MODEL_REGISTRY
本地

如果您在本地笔记本电脑上运行此笔记本,请访问 http://localhost:8080/ 查看您的 MLflow 仪表板。

Anyscale

如果您在 Anyscale Workspaces 上,我们需要先暴露 MLflow 服务器的端口。在您的 Anyscale Workspace 终端上运行以下命令,以生成 MLflow 服务器的公共 URL。

APP_PORT=8080
echo https://$APP_PORT-port-$ANYSCALE_SESSION_DOMAIN

评估

export EXPERIMENT_NAME="llm"
export RUN_ID=$(python madewithml/predict.py get-best-run-id --experiment-name $EXPERIMENT_NAME --metric val_loss --mode ASC)
export HOLDOUT_LOC="https://raw.githubusercontent.com/GokuMohandas/Made-With-ML/main/datasets/holdout.csv"
python madewithml/evaluate.py \
    --run-id $RUN_ID \
    --dataset-loc $HOLDOUT_LOC \
    --results-fp results/evaluation_results.json
{
  "timestamp": "2023年6月9日 上午9:26:18",
  "run_id": "6149e3fec8d24f1492d4a4cabd5c06f6",
  "overall": {
    "precision": 0.9076136428670714,
    "recall": 0.9057591623036649,
    "f1": 0.9046792827719773,
    "num_samples": 191.0
  },
...

推理

# 获取运行 ID
export EXPERIMENT_NAME="llm"
export RUN_ID=$(python madewithml/predict.py get-best-run-id --experiment-name $EXPERIMENT_NAME --metric val_loss --mode ASC)
python madewithml/predict.py predict \
    --run-id $RUN_ID \
    --title "使用 Transformer 进行迁移学习" \
    --description "在文本分类任务中使用 Transformer 进行迁移学习。"
[{
  "prediction": [
    "自然语言处理"
  ],
  "probabilities": {
    "计算机视觉": 0.0009767753,
    "MLOps": 0.0008223939,
    "自然语言处理": 0.99762577,
    "其他": 0.000575123
  }
}]

服务

本地
# 启动
ray start --head
# 设置
export EXPERIMENT_NAME="llm"
export RUN_ID=$(python madewithml/predict.py get-best-run-id --experiment-name $EXPERIMENT_NAME --metric val_loss --mode ASC)
python madewithml/serve.py --run_id $RUN_ID

在应用运行期间,我们可以通过 cURL、Python 等方式使用它:

# 通过 cURL
curl -X POST -H "Content-Type: application/json" -d '{
  "title": "使用 Transformer 进行迁移学习",
  "description": "在文本分类任务上使用 Transformer 进行迁移学习。"
}' http://127.0.0.1:8000/predict
# 通过 Python
import json
import requests
title = "使用 Transformer 进行迁移学习"
description = "在文本分类任务上使用 Transformer 进行迁移学习。"
json_data = json.dumps({"title": title, "description": description})
requests.post("http://127.0.0.1:8000/predict", data=json_data).json()
ray stop  # 关闭
export HOLDOUT_LOC="https://raw.githubusercontent.com/GokuMohandas/Made-With-ML/main/datasets/holdout.csv"
curl -X POST -H "Content-Type: application/json" -d '{
    "dataset_loc": "https://raw.githubusercontent.com/GokuMohandas/Made-With-ML/main/datasets/holdout.csv"
  }' http://127.0.0.1:8000/evaluate
Anyscale
在 Anyscale Workspaces 中,Ray 已经在运行,因此我们无需像在本地那样手动启动或关闭。

```bash
# 设置
export EXPERIMENT_NAME="llm"
export RUN_ID=$(python madewithml/predict.py get-best-run-id --experiment-name $EXPERIMENT_NAME --metric val_loss --mode ASC)
python madewithml/serve.py --run_id $RUN_ID
```

在应用运行期间,我们可以通过 cURL、Python 等方式使用它:

```bash
# 通过 cURL
curl -X POST -H "Content-Type: application/json" -d '{
    "title": "使用 Transformer 进行迁移学习",
    "description": "在文本分类任务上使用 Transformer 进行迁移学习。"
  }' http://127.0.0.1:8000/predict
```

```python
# 通过 Python
import json
import requests
title = "使用 Transformer 进行迁移学习"
description = "在文本分类任务上使用 Transformer 进行迁移学习。"
json_data = json.dumps({"title": title, "description": description})
requests.post("http://127.0.0.1:8000/predict", data=json_data).json()
```

测试

# 代码
python3 -m pytest tests/code --verbose --disable-warnings

# 数据
export DATASET_LOC="https://raw.githubusercontent.com/GokuMohandas/Made-With-ML/main/datasets/dataset.csv"
pytest --dataset-loc=$DATASET_LOC tests/data --verbose --disable-warnings

# 模型
export EXPERIMENT_NAME="llm"
export RUN_ID=$(python madewithml/predict.py get-best-run-id --experiment-name $EXPERIMENT_NAME --metric val_loss --mode ASC)
pytest --run-id=$RUN_ID tests/model --verbose --disable-warnings

# 覆盖率
python3 -m pytest --cov madewithml --cov-report html

生产环境

从这一点开始,为了将我们的应用程序部署到生产环境,我们需要使用 Anyscale 平台,或者在一个由您自己管理的 云虚拟机本地集群 上运行(使用 Ray)。如果不使用 Anyscale,相关命令会略有不同(参见 Ray 文档),但基本概念是相同的。

如果您不想自己搭建所有这些环境,我们强烈建议您加入我们的即将开课的直播班{:target="_blank"},我们将为您准备好包含所有基础设施的环境,让您专注于机器学习本身。

认证

如果我们使用 Anyscale Workspaces,以下凭据会自动为我们设置。在 Workspaces 中,我们不需要显式设置这些凭据;但在本地或在其他未配置 Anyscale Jobs 和 Services 的集群上运行时,则需要设置。

export ANYSCALE_HOST=https://console.anyscale.com
export ANYSCALE_CLI_TOKEN=$YOUR_CLI_TOKEN  # 从 Anyscale 凭据页面获取

集群环境

集群环境决定了我们的工作负载将在哪里执行(操作系统、依赖项等)。我们已经为我们创建了这个集群环境,但您也可以自行创建或更新一个。

export CLUSTER_ENV_NAME="madewithml-cluster-env"
anyscale cluster-env build deploy/cluster_env.yaml --name $CLUSTER_ENV_NAME

计算配置

计算配置决定了我们的工作负载将在哪些资源上执行。我们已经为我们创建了这个计算配置,但您也可以自行创建。

export CLUSTER_COMPUTE_NAME="madewithml-cluster-compute"
anyscale cluster-compute create deploy/cluster_compute.yaml --name $CLUSTER_COMPUTE_NAME

Anyscale 作业

现在我们可以开始执行我们的机器学习工作负载了。我们决定将所有工作负载合并为一个作业,当然也可以为每个工作负载(训练、评估等)分别创建单独的作业。首先,我们需要编辑 workloads.yaml 文件中的 $GITHUB_USERNAME 占位符:

runtime_env:
  working_dir: .
  upload_path: s3://madewithml/$GITHUB_USERNAME/jobs  # <--- 更改用户名(区分大小写)
  env_vars:
    GITHUB_USERNAME: $GITHUB_USERNAME  # <--- 更改用户名(区分大小写)

这里的 runtime_env 指定了我们将当前的工作目录上传到 S3 存储桶,以便在执行 Anyscale 作业时,所有工作节点都能访问所需的代码。GITHUB_USERNAME 用于稍后将工作负载的结果保存到 S3,以便后续检索(例如用于服务部署)。

现在我们可以提交作业来执行我们的机器学习工作负载:

anyscale job submit deploy/jobs/workloads.yaml

Anyscale 服务

在机器学习工作负载执行完毕后,我们可以将模型部署到生产环境中进行服务提供。与 Anyscale 作业配置类似,务必在 serve_model.yaml 中更改 $GITHUB_USERNAME

ray_serve_config:
  import_path: deploy.services.serve_model:entrypoint
  runtime_env:
    working_dir: .
    upload_path: s3://madewithml/$GITHUB_USERNAME/services  # <--- 更改用户名(区分大小写)
    env_vars:
      GITHUB_USERNAME: $GITHUB_USERNAME  # <--- 更改用户名(区分大小写)

现在我们可以启动服务:

anyscale service deploy deploy/services/serve_model.yaml

部署服务

anyscale service rollout -f deploy/services/serve_model.yaml

查询

curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $SECRET_TOKEN" -d '{ "title": "使用 Transformer 进行迁移学习", "description": "在文本分类任务上利用 Transformer 进行迁移学习。" }' $SERVICE_ENDPOINT/predict/

回滚(回退到服务的上一版本)

anyscale service rollback -f $SERVICE_CONFIG --name $SERVICE_NAME

终止

anyscale service terminate --name $SERVICE_NAME


### CI/CD

我们不会每次代码变更时都手动部署应用。相反,我们将使用 GitHub Actions 自动化这一流程!

<div align="center">
  <img src="https://oss.gittoolsai.com/images/GokuMohandas_mlops-course_readme_298a6c8e97a7.png">
</div>

1. 首先,我们需要将必要的凭据添加到 GitHub 仓库的 [`/settings/secrets/actions`](https://github.com/GokuMohandas/Made-With-ML/settings/secrets/actions) 页面中。

``` bash
export ANYSCALE_HOST=https://console.anyscale.com
export ANYSCALE_CLI_TOKEN=$YOUR_CLI_TOKEN  # 从 https://console.anyscale.com/o/madewithml/credentials 获取
  1. 现在我们可以对代码进行修改(不在 main 分支上),并将其推送到 GitHub。不过,在将代码推送到仓库之前,我们需要先使用凭据进行身份验证:
git config --global user.name "你的名字"  # <-- 替换为你的姓名
git config --global user.email you@example.com  # <-- 替换为你的邮箱
git add .
git commit -m ""  # <-- 替换为你的提交信息
git push origin dev

此时系统会提示你输入用户名和密码(个人访问令牌)。请按照以下步骤获取个人访问令牌:新建 GitHub 个人访问令牌 → 添加名称 → 启用 repoworkflow 权限 → 点击“生成令牌”(向下滚动)→ 复制令牌并在提示输入密码时粘贴。

  1. 接下来,我们可以从该分支创建一个 Pull Request 到 main 分支,这将触发 workloads 工作流。如果工作流(Anyscale Jobs)成功完成,它会在 PR 上直接生成包含训练和评估结果的评论。
  1. 如果我们对结果满意,就可以将 PR 合并到 main 分支。这将触发 serve 工作流,从而将我们的新服务部署到生产环境!

持续学习

有了 CI/CD 流程来部署应用,我们现在可以专注于持续改进模型。基于此基础,我们可以轻松扩展以连接定时任务(cron)、数据管道、通过监控检测到的数据漂移、在线评估等。此外,我们还可以轻松添加更多上下文,例如直接在 PR 中将任何实验与当前生产中的模型进行对比等。

常见问题解答

Jupyter Notebook 内核

在配置 Jupyter Notebook 的内核时遇到问题吗?默认情况下,Jupyter 会使用我们虚拟环境中的内核,但我们也可以手动将其添加到 Jupyter 中:

python3 -m ipykernel install --user --name=venv

现在我们可以打开笔记本 → 内核(顶部菜单栏)→ 更改内核 → venv。如果需要删除此内核,可以执行以下操作:

jupyter kernelspec list
jupyter kernelspec uninstall venv

常见问题

相似工具推荐

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 真正成长为懂上

142.7k|★★☆☆☆|今天
开发框架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