Made-With-ML

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

Made-With-ML 是一个面向实战的开源项目,旨在帮助开发者系统掌握从设计、开发到部署和迭代生产级机器学习应用的完整流程。它解决了许多人在学习机器学习时“会训练模型但不会上线”的痛点,强调将软件工程最佳实践与 ML 技术结合,构建可靠、可维护的端到端系统。

该项目特别适合三类人群:一是希望将模型真正落地的开发者(包括软件工程师、数据科学家);二是刚毕业、想补齐工业界所需技能的学生;三是需要理解技术边界以更好推动产品的技术管理者或产品经理。

Made-With-ML 的亮点在于注重第一性原理讲解,避免盲目调包;同时覆盖 MLOps 关键环节(如实验跟踪、模型测试、服务部署、CI/CD 等),并支持在 Python 生态内平滑扩展训练与推理任务,无需切换语言或复杂基础设施。课程内容结构清晰,配有详细代码示例和视频导览,兼顾理论深度与工程实用性。

使用场景

一家电商公司的数据科学团队正在开发一个商品推荐模型,希望从实验阶段快速推进到线上服务,但缺乏将模型可靠部署和持续迭代的工程经验。

没有 Made-With-ML 时

  • 团队仅关注模型准确率,忽略了数据版本、特征一致性等生产环境关键问题,导致上线后效果大幅下降。
  • 缺乏统一的代码结构和工程规范,模型训练、评估和服务代码耦合严重,难以复用或调试。
  • 部署依赖手动操作,每次更新模型都需要运维介入,发布周期长达数周。
  • 没有集成监控和回滚机制,模型性能退化无法及时发现,影响用户体验。
  • 团队成员对 MLOps 概念模糊,协作效率低,软件工程师与数据科学家沟通成本高。

使用 Made-With-ML 后

  • 借鉴其“设计→开发→部署→迭代”全流程框架,团队在早期就引入数据验证、特征存储等生产级实践,保障线上线下一致性。
  • 采用课程提供的模块化项目结构(如 config、data、models、serve 等目录),代码清晰可维护,新人也能快速上手。
  • 利用其 CI/CD 和模型服务示例,实现自动化训练与一键部署,模型上线周期缩短至1天内。
  • 集成 MLflow 跟踪和 Prometheus 监控方案,实时观测模型表现,异常时自动触发告警或回滚。
  • 团队通过共同学习 Made-With-ML 的最佳实践,建立起统一的技术语言,跨角色协作更加顺畅。

Made-With-ML 帮助团队将学术级模型真正转化为稳定、可迭代的生产系统,大幅降低从实验到落地的工程门槛。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

非必需,但推荐使用 NVIDIA GPU(如在 Anyscale 上使用 g5.4xlarge 实例),显存未明确说明,CUDA 版本未说明

内存

未说明

依赖
notes支持本地运行或通过 Anyscale 平台运行;本地运行时建议使用 Python 3.10 和虚拟环境;项目依赖 Ray 进行分布式计算,MLflow 用于实验跟踪;首次运行需配置 .env 文件并安装依赖。
python3.10(推荐)
torch
transformers
ray
mlflow
jupyter
pre-commit
setuptools
wheel
Made-With-ML hero image

快速开始

 Made With ML

设计 · 开发 · 部署 · 迭代
加入 40,000 多名开发者,学习如何负责任地通过机器学习(ML)交付价值。

     
🔥  GitHub 上顶级 ML 仓库之一


课程内容

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

lessons

概览

在本课程中,我们将从实验阶段(设计 + 开发)过渡到生产阶段(部署 + 迭代)。我们会通过迭代的方式,逐步引入构建一个可靠生产系统所需的各个组件。

  务必观看下方视频,快速了解我们将要构建的内容。
Course overview video

  • 💡 第一性原理(First principles):在直接写代码之前,我们先从第一性原理出发,深入理解每一个机器学习概念。
  • 💻 最佳实践(Best practices):在开发和部署机器学习模型的过程中,贯彻软件工程的最佳实践。
  • 📈 可扩展性(Scale):无需学习全新语言,即可轻松在 Python 中扩展机器学习工作负载(数据处理、训练、调参、服务等)。
  • ⚙️ MLOps:在构建端到端机器学习系统的过程中,集成 MLOps 组件(如实验跟踪、测试、模型服务、任务编排等)。
  • 🚀 从开发到生产(Dev to Prod):学习如何在不更改代码或基础设施管理的前提下,快速且可靠地将模型从开发环境迁移到生产环境。
  • 🐙 CI/CD:学习如何构建成熟的持续集成/持续部署(CI/CD)工作流,以模块化方式持续训练和部署更优模型,并可与任意技术栈集成。

目标受众

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

  • 👩‍💻 所有开发者:无论是软件/基础设施工程师还是数据科学家,机器学习正日益成为你所开发产品中的关键组成部分。
  • 👩‍🎓 应届毕业生:学习业界所需的实用技能,弥合大学课程与行业实际需求之间的差距。
  • 👩‍💼 产品经理/管理者:希望打下技术基础,从而能够构建由机器学习驱动的卓越(且可靠)产品。

环境设置

请务必访问课程网站,以获取对本仓库内容更详细的分步讲解。以下各节均提供本地笔记本电脑和 Anyscale 集群两种操作说明,请根据你的使用环境点击 ► 下拉菜单进行切换(默认显示 Anyscale 的说明)。如果你想通过 Anyscale 学习本课程,我们将为你提供结构化内容计算资源(GPU)社区支持,助你在一天内掌握全部内容。欢迎报名参加我们的下一期实时课程 → 立即注册

集群设置

首先,我们需要配置集群的环境和计算资源。

本地(Local)
你的个人笔记本电脑(单机)将作为集群使用,其中一颗 CPU 作为主节点(head node),其余部分 CPU 作为工作节点(worker nodes)。本课程中的所有代码均可在普通笔记本电脑上运行,但执行速度会比在大型集群上慢。
Anyscale

我们可以通过 Anyscale Workspace网页界面 创建工作区。

- Workspace name: `madewithml`
- Project: `madewithml`
- Cluster environment name: `madewithml-cluster-env`
# 勾选 `Select from saved configurations`
- Compute config: `madewithml-cluster-compute-g5.4xlarge`

或者,也可以使用 CLI 通过命令 anyscale workspace create ... 创建工作区。

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

如果你不想在本地或通过 Anyscale 学习本课程,还可以选择以下方式:

Git 设置

请按以下步骤创建一个新仓库:Create a new repository → 仓库名称设为 Made-With-ML → 勾选 Add a README file非常重要,这会自动创建 main 分支)→ 点击 Create repository(滚动到底部)

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

git clone https://github.com/GokuMohandas/Made-With-ML.git .

凭据配置

touch .env
# Inside .env
GITHUB_USERNAME="CHANGE_THIS_TO_YOUR_USERNAME"  # ← 请修改为你自己的用户名
source .env

虚拟环境(Virtual environment)

本地(Local)
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(mac)或 pyenv-win(Windows)。

Anyscale

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

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

Notebook

首先通过 Jupyter Notebook 进行交互式探索,逐步了解核心的机器学习工作负载(workloads)。

本地(Local)
# 启动 notebook
jupyter lab notebooks/madewithml.ipynb
Anyscale

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

脚本(Scripts)

接下来,我们将使用符合软件工程最佳实践(如测试、文档、日志记录、服务部署、版本控制等)的干净 Python 脚本来执行相同的工作负载。我们在 notebook 中实现的代码将被重构为以下脚本:

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

训练(Training)

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

调优(Tuning)

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

实验跟踪(Experiment tracking)

我们将使用 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
本地(Local)

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

Anyscale

如果你使用的是 Anyscale Workspaces,则需要先暴露 MLflow 服务器的端口。在 Anyscale Workspace 终端中运行以下命令,生成 MLflow 服务器的公开 URL。

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

评估(Evaluation)

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": "June 09, 2023 09:26:18 AM",
  "run_id": "6149e3fec8d24f1492d4a4cabd5c06f6",
  "overall": {
    "precision": 0.9076136428670714,
    "recall": 0.9057591623036649,
    "f1": 0.9046792827719773,
    "num_samples": 191.0
  },
...

推理(Inference)

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 "Transfer learning with transformers" \
    --description "Using transformers for transfer learning on text classification tasks."
[{
  "prediction": [
    "natural-language-processing"
  ],
  "probabilities": {
    "computer-vision": 0.0009767753,
    "mlops": 0.0008223939,
    "natural-language-processing": 0.99762577,
    "other": 0.000575123
  }
}]

部署(Serving)

本地(Local)
# 启动
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 等方式调用它:

# 通过 Python 调用
import json
import requests
title = "Transfer learning with transformers"
description = "Using transformers for transfer learning on text classification tasks."
json_data = json.dumps({"title": title, "description": description})
requests.post("http://127.0.0.1:8000/predict", data=json_data).json()
ray stop  # 关闭
Anyscale

在 Anyscale Workspaces 中,Ray 已经在运行,因此我们不需要像本地那样手动启动或关闭。

# 设置
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 等方式调用它:

# 通过 Python 调用
import json
import requests
title = "Transfer learning with transformers"
description = "Using transformers for transfer learning on text classification tasks."
json_data = json.dumps({"title": title, "description": description})
requests.post("http://127.0.0.1:8000/predict", data=json_data).json()

测试(Testing)

# 代码测试
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 tests/code --cov madewithml --cov-report html --disable-warnings  # HTML 报告
python3 -m pytest tests/code --cov madewithml --cov-report term --disable-warnings  # 终端报告

生产环境(Production)

从这一步开始,若要将我们的应用程序部署到生产环境,我们需要使用 Anyscale,或者使用你自行管理的 云虚拟机(cloud VM) / 本地集群(on-prem cluster)(需配合 Ray)。如果不在 Anyscale 上,命令会略有不同(参见 文档),但核心概念是一致的。

如果你不想自己搭建所有这些基础设施,我们强烈推荐你加入我们即将推出的 实时课程(live cohort){:target="_blank"}。我们将为你提供一个已配置好全部基础设施的环境,让你可以专注于机器学习本身。

认证(Authentication)

如果你使用的是 Anyscale Workspaces,以下凭据会自动为你设置。在 Workspaces 中,你无需显式设置这些凭据;但如果你在本地或 Anyscale Jobs 和 Services 配置范围之外的集群上运行,则需要手动设置。

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

集群环境(Cluster environment)

集群环境决定了我们的工作负载将在何处执行(操作系统、依赖项等)。我们已经为你创建了这个 集群环境,但你也可以按如下方式自行创建或更新:

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

计算配置(Compute configuration)

计算配置决定了我们的工作负载将在何种资源上执行。我们已经为你创建了这个 计算配置,但你也可以按如下方式自行创建:

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

Anyscale Jobs

现在我们已准备好执行机器学习工作负载。我们选择将所有任务合并到一个 Job 中,但也可以为每个任务(训练、评估等)分别创建 Job。首先,编辑 workloads.yaml 文件中的 $GITHUB_USERNAME 占位符:

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

此处的 runtime_env 表示应将当前 working_dir 上传至 S3 存储桶,以便执行 Anyscale Job 时所有工作节点都能访问代码。GITHUB_USERNAME 用于后续将工作负载的结果保存到 S3,以便之后检索(例如用于部署服务)。

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

anyscale job submit deploy/jobs/workloads.yaml

Anyscale Services

在机器学习工作负载执行完成后,我们就可以将模型部署到生产环境了。与 Anyscale Jobs 的配置类似,请确保修改 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  # <--- 修改为你的 GitHub 用户名(区分大小写)
    env_vars:
      GITHUB_USERNAME: $GITHUB_USERNAME  # <--- 修改为你的 GitHub 用户名(区分大小写)

现在我们可以启动服务了:

# 部署服务
anyscale service rollout -f deploy/services/serve_model.yaml

# 查询服务
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $SECRET_TOKEN" -d '{
  "title": "Transfer learning with transformers",
  "description": "Using transformers for transfer learning on text classification tasks."
}' $SERVICE_ENDPOINT/predict/

# 回滚(回退到服务的先前版本)
anyscale service rollback -f $SERVICE_CONFIG --name $SERVICE_NAME

# 终止服务
anyscale service terminate --name $SERVICE_NAME

CI/CD(持续集成/持续部署)

我们不会在每次修改代码后都手动部署应用程序。相反,我们将使用 GitHub Actions 来自动化这一流程!

  1. 创建一个新的 GitHub 分支来保存我们的更改并执行 CI/CD 工作负载:
git remote set-url origin https://github.com/$GITHUB_USERNAME/Made-With-ML.git  # <-- 将此处替换为你的用户名
git checkout -b dev
  1. 我们首先需要将必要的凭据添加到 GitHub 仓库的 /settings/secrets/actions 页面中。
export ANYSCALE_HOST=https://console.anyscale.com
export ANYSCALE_CLI_TOKEN=$YOUR_CLI_TOKEN  # 从 https://console.anyscale.com/o/madewithml/credentials 获取
  1. 现在我们可以修改代码(不要在 main 分支上),并将更改推送到 GitHub。但为了将代码推送到 GitHub,我们需要先使用凭据进行身份验证:
git config --global user.name $GITHUB_USERNAME  # <-- 将此处替换为你的用户名
git config --global user.email you@example.com  # <-- 将此处替换为你的邮箱
git add .
git commit -m ""  # <-- 将此处替换为你的提交信息
git push origin dev

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

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

持续学习(Continual learning)

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

常见问题(FAQ)

Jupyter Notebook 内核(kernels)

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

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

现在我们可以打开一个 Notebook → 点击顶部菜单栏的 Kernel(内核)→ Change Kernel(更换内核)→ 选择 venv。如果以后想删除这个内核,可以执行以下命令:

jupyter kernelspec list
jupyter kernelspec uninstall venv

版本历史

v1.1.02026/03/04

常见问题

相似工具推荐

stable-diffusion-webui

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

162.1k|★★★☆☆|今天
开发框架图像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 真正成长为懂上

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

ComfyUI

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

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

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

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

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

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