Awesome-Rust-MachineLearning
Awesome-Rust-MachineLearning 是一个专为 Rust 语言打造的机器学习资源宝库。它系统性地整理了用 Rust 编写的各类机器学习库、算法实现,并涵盖了相关的博客、书籍、论文及技术讨论。
在 Python 主导的机器学习领域,许多开发者渴望利用 Rust 的高性能与内存安全特性来优化生产环境,却往往面临生态分散、优质库难寻的痛点。Awesome-Rust-MachineLearning 正是为了解决这一难题而生,它充当了从 Python 迁移至 Rust 的桥梁,帮助用户快速定位成熟可靠的工具链。
这份清单特别适合正在探索 Rust 在 AI 领域应用的开发者、研究人员以及系统架构师。无论是需要基础的数据处理(如 DataFrame、向量运算),还是进阶的深度学习、自然语言处理、强化学习及自动机器学习(AutoML)方案,这里都提供了详尽的分类索引。
其独特亮点在于不仅收录了活跃维护的主流项目,也包含了一些虽已停止更新但具有参考价值的代码库,并对每个类别中的优秀库进行了特别标注和代码点评。此外,它还覆盖了 Jupyter Notebook 支持、GPU 加速及可视化绘图等配套工具,为用户构建完整的 Rust 机器学习工作流提供了全方位指引,让开发者能更高效地发现并利用 Rust 在机器学习领域的最佳实践。
使用场景
某金融科技团队正试图将核心风控模型从 Python 迁移至 Rust,以利用其内存安全特性降低生产环境延迟并减少运维成本。
没有 Awesome-Rust-MachineLearning 时
- 选型迷茫:开发者在 GitHub 上盲目搜索,难以区分哪些机器学习库是活跃维护的,哪些已被废弃,极易踩坑。
- 生态割裂:缺乏统一指引,找不到与 Rust 原生数据结构(如 DataFrame、Vector)完美配套的预处理和绘图工具,导致数据流水线断裂。
- 迁移成本高:从 Python 转来的工程师不熟悉 Rust 生态,无法快速找到类似 Scikit-learn 的综合库或对应的最佳实践代码注释。
- 性能优化困难:不清楚哪些库支持 GPU 加速或针对特定算法(如梯度提升、NLP)有高性能实现,只能重复造轮子。
使用 Awesome-Rust-MachineLearning 后
- 精准选型:直接查阅分类清晰的清单,快速锁定如
linfa等高质量、持续维护的核心库,避开过时项目。 - 全链路打通:依据"Support Tools"章节,迅速整合 Jupyter 内核、数据处理及可视化组件,构建完整的 Rust 机器学习工作流。
- 平滑过渡:参考针对 Python 迁移者的特别标注和代码评论,团队能迅速理解库的用法,大幅缩短学习曲线。
- 性能最大化:通过"GPU"和"Deep Neural Network"等分类,直接采用经过验证的高性能方案,确保风控系统低延迟运行。
Awesome-Rust-MachineLearning 充当了 Rust 机器学习生态的“导航图”,让团队从混乱的探索者变为高效的构建者,显著加速了高性能 AI 系统的落地。
运行环境要求
未说明
未说明

快速开始

这个仓库是一个用 Rust 编写的机器学习库列表。 它汇集了 GitHub 仓库、博客、书籍、电影、讨论和论文等内容。 该仓库面向那些考虑从 Python 迁移到 Rust 的开发者。🦀🐍
仓库按基础库和算法类别进行了划分。 此外,还包含一些已停止维护的库以及小型库。 对代码中实用的部分进行了注释说明, 并对每个类别中的优秀库进行了点评。
通过这些资源,我们可以找到更优的 Rust 在机器学习领域的使用方式。
目录
- 支持工具
- 综合类(类似 sklearn)
- 综合类(统计学)
- 梯度提升
- 深度神经网络
- 图模型
- 自然语言处理(模型)
- 推荐系统
- 信息检索
- 强化学习
- 监督学习
- 无监督学习与聚类模型
- 统计模型
- 进化算法
- 参考资料
- 致谢
支持工具
Jupyter Notebook
evcxr 可以作为 Jupyter 内核或 REPL 使用,非常有助于学习和验证。
- google/evcxr - Rust 的评估上下文。
- emakryo/rustdef - Rust 的 Jupyter 扩展。
- murarth/rusti - Rust 编程语言的 REPL。
图表绘制
目前可以尝试使用 plotters。
- 38/plotters - 一个用于高质量数据可视化的 Rust 绘图库,支持 WASM 和原生环境,可静态生成也可实时绘制 🦀 📈🚀
- igiagkiozis/plotly - Rust 版的 Plotly
- milliams/plotlib - Rust 数据绘图库
- tiby312/poloto - 一个简单的 2D 绘图库,可将图表输出为 SVG 格式,并可通过 CSS 进行样式定制。
- askanium/rustplotlib - 受 D3.js 启发的纯 Rust 可视化库
- SiegeLord/RustGnuplot - 基于 Gnuplot 的 Rust 绘图库。
- saona-raimundo/preexplorer - 轻松将 Rust 中的绘图过程外部化到 Gnuplot。
- procyon-rs/vega_lite_4.rs - Vega-Lite v4 的 Rust API
- procyon-rs/showata - 一个用于在浏览器或 evcxr_jupyter 中以表格、图表等形式展示数据的库。
- coder543/dataplotlib - Rust 科学绘图库
- shahinrostami/chord_rs - 用于创建精美交互式弦图的 Rust crate。专业版可在 https://m8.fyi/chord 获取。
ASCII 线形图:
- loony-bean/textplots-rs - Rust 终端绘图库
- orhanbalci/rasciigraph - 无依赖的 Rust crate,用于在命令行应用中轻松绘制轻量级 ASCII 线形图 ╭┈╯。
- jakobhellermann/piechart - 一个在终端中绘制精美饼图的 Rust crate
- milliams/plot - 用 Rust 编写的命令行绘图工具
示例:
- Plotters 开发者指南 - 绘图开发者指南 https://plotters-rs.github.io/book/intro/introduction.html
- Plotly.rs - Plotly.rs 书籍 https://igiagkiozis.github.io/plotly/content/plotly_rs.html
- petgraph_review https://timothy.hobbs.cz/rust-play/petgraph_review.html
- evcxr-jupyter 集成 https://plotters-rs.github.io/plotters-doc-data/evcxr-jupyter-integration.html
- Rust 数据科学教程 1 - DEV 社区 https://dev.to/davidedelpapa/rust-for-data-science-tutorial-1-4g5j
- 序言 | Data Crayon https://datacrayon.com/posts/programming/rust-notebooks/preface/
- 使用 Rust 绘制 SVG 图表 [https://cetra3.github.io/blog/drawing-svg-graphs-rust/](使用 Rust 绘制 SVG 图表 https://cetra3.github.io/blog/drawing-svg-graphs-rust/)
向量
大多数情况下会使用 ndarray 或 std::vec。
此外,也可以关注 nalgebra。当矩阵的大小已知时,它是一个不错的选择。
参见:ndarray 与 nalgebra 的比较 - Reddit
- dimforge/nalgebra - Rust 的线性代数库。
- rust-ndarray/ndarray - ndarray:具有数组视图、多维切片和高效操作的 N 维数组
- AtheMathmo/rulinalg - 用 Rust 编写的线性代数库
- arrayfire/arrayfire-rust - ArrayFire 的 Rust 封装
- bluss/arrayvec - 固定容量的向量。(Rust)
- vbarrielle/sprs - Rust 的稀疏线性代数库
- liborty/rstats - Rust 统计与向量代数库
- PyO3/rust-numpy - 基于 PyO3 的 NumPy C-API Rust 绑定
数据框
目前可以尝试使用 polars。datafusion 也是一个不错的选择。
- ritchie46/polars - Rust 数据框库
- apache/arrow - 内存中的列式格式,基于 Rust 实现。
- apache/arrow-datafusion - Apache Arrow 的 DataFusion 和 Ballista 查询引擎
- milesgranger/black-jack - 在 Rust 中进行 DataFrame / Series 数据处理
- nevi-me/rust-dataframe - 基于 Apache Arrow 构建的 Rust 数据框实现
- kernelmachine/utah - Rust 中的数据框结构及操作
- sinhrks/brassfibre - 提供多类型列存储,类似于 pandas/R 中的 DataFrame
图像处理
目前可以尝试使用 image-rs。其他库中也实现了诸如线性变换之类的算法。
- image-rs/image - Rust 中的图像编码与解码
- image-rs/imageproc - 图像处理操作
- rust-cv/ndarray-image - 允许在 ndarray 类型和图像类型之间进行转换
- rust-cv/cv - Rust CV 单体仓库。包含纯 Rust 依赖项,旨在将 OpenCV、OpenMVG 和 vSLAM 框架的功能封装在一个统一的 API 集合中。
- twistedfall/opencv-rust - OpenCV 3 和 4 的 Rust 绑定
- rustgd/cgmath - 用于计算机图形学的线性代数和数学库。
- atomashpolskiy/rustface - Rust 编程语言中的人脸检测库
自然语言处理(预处理)
- google-research/deduplicate-text-datasets - 该仓库包含用于去重语言模型数据集的代码,如凯瑟琳·李、达芙妮·伊波利托、安德鲁·尼斯特罗姆、张驰远、道格拉斯·埃克、克里斯·卡利森-伯奇和尼古拉斯·卡林尼在论文《Deduplicating Training Data Makes Language Models Better》中所述。此仓库既包含了用 Rust 编写的 ExactSubstr 去重实现,也包含了我们在论文中用来执行去重并检查结果的 Python 脚本。在即将发布的更新中,我们将添加文件以复现 C4、RealNews、LM1B 和 Wiki-40B-en 数据集的 NearDup 去重版本。
- pemistahl/lingua-rs - 👄 Rust 生态系统中最准确的自然语言检测库,适用于长短文本。
- usamec/cntk-rs - Microsoft CNTK 库的封装。
- stickeritis/sticker - 一种基于 LSTM/Transformer/扩张卷积的序列标注器。
- tensordot/syntaxdot - 神经语法标注器,支持序列标注、词形还原和依存句法分析。
- christophertrml/rs-natural - Rust 的自然语言处理工具。
- bminixhofer/nnsplit - 语义文本分割。用于句子边界检测、复合句拆分等。
- greyblake/whatlang-rs - Rust 的自然语言检测库。
- finalfusion/finalfrontier - 基于子词的上下文敏感词嵌入。使用 Rust 实现。
- bminixhofer/nlprule - 一个用 Rust 编写的快速、低资源消耗的自然语言处理与错误纠正库。
- rth/vtext - 使用 Python 绑定的简单 Rust NLP 工具。
- tamuhey/tokenizations - 强健且快速的 Rust 和 Python 令牌对齐库。
- vgel/treebender - 一款受 HDPSG 启发、用 Rust 编写的符号化自然语言解析器。
- reinfer/blingfire-rs - BlingFire 分词库的 Rust 封装。
- CurrySoftware/rust-stemmers - 多种语言中的常用停用词。
- cmccomb/rust-stop-words - 多种语言中的常用停用词。
- Freyskeyd/nlp - Rust-nlp 是一个使用 Rust 进行自然语言处理算法的库。
- Daniel-Liu-c0deb0t/uwu - 西方最快的文本 uwu 化工具。
图模型
- alibaba/GraphScope - GraphScope:阿里巴巴的一站式大规模图计算系统。
- petgraph/petgraph - Rust 的图数据结构库。
- rs-graph/rs-graph - rs-graph 是一个用于图算法和组合优化的库。
- metamolecular/gamma - Rust 的图库。
- purpleprotocol/graphlib - 简单但功能强大的 Rust 图库。
- yamafaktory/hypergraph - 超图是一种用于生成有向超图的数据结构库。
接口、流水线与 AutoML
- modelfoxdotdev/modelfox - Modelfox 是一个一体化的自动化机器学习框架。https://github.com/modelfoxdotdev/modelfox
- datafuselabs/datafuse - 采用云原生架构的现代实时数据处理与分析 DBMS,使用 Rust 编写。
- mstallmo/tensorrt-rs - 用于运行 TensorRT 加速深度学习模型的 Rust 库。
- pipehappy1/tensorboard-rs - 用 Rust 编写 TensorBoard 事件。
- ehsanmok/tvm-rust - TVM 运行时的 Rust 绑定。
- vertexclique/orkhon - Orkhon:ML 推理框架及服务器运行时。
- xaynetwork/xaynet - Xaynet 是一个通用的联邦机器学习框架,用于构建保护隐私的人工智能应用。
- webonnx/wonnx - 100% 用 Rust 编写的 GPU 加速 ONNX 推理运行时,专为 Web 构建。
- sonos/tract - 精巧、简洁、自包含的 TensorFlow 和 ONNX 推理引擎。
- MegEngine/MegFlow - 针对长尾需求的高效 ML 解决方案。
工作流
- substantic/rain - 大型分布式流水线框架。
- timberio/vector - 高性能、高可靠性的可观测性数据流水线。
GPU
- Rust-GPU/Rust-CUDA - 一个完全用 Rust 编写并执行极速 GPU 代码的库与工具生态系统。
- EmbarkStudios/rust-gpu - 🐉 让 Rust 成为 GPU 代码的一流语言与生态体系 🚧
- termoshtt/accel - Rust 的 GPGPU 框架。
- kmcallister/glassful - OpenGL 着色语言的 Rust 风格语法。
- MaikKlein/rlsl - Rust 到 SPIR-V 的编译器。
- japaric-archived/nvptx - 如何在 NVIDIA GPU 上运行 Rust 代码。
- msiglreith/inspirv-rust - Rust (MIR) → SPIR-V (着色器) 编译器。
综合类(类似 scikit-learn)
所有库都支持以下算法。
- 线性回归
- 逻辑回归
- K 均值聚类
- 神经网络
- 高斯过程回归
- 支持向量机
- 高斯混合模型
- 朴素贝叶斯分类器
- DBSCAN
- k 近邻分类器
- 主成分分析
- 决策树
- 支持向量机
- 朴素贝叶斯
- 弹性网络
目前可以尝试使用 smartcore 或 linfa。
- smartcorelib/smartcore - SmartCore 是一个用于机器学习和数值计算的综合性库。该库提供了一系列线性代数、数值计算、优化等方面的工具,能够实现通用、强大且高效的机器学习方法。
- LASSO、Ridge、随机森林、LU 分解、QR 分解、奇异值分解、特征值分解等多种算法及指标
- https://smartcorelib.org/user_guide/quick_start.html
- rust-ml/linfa - Rust 机器学习框架。
- 高斯混合模型聚类、凝聚层次聚类、独立成分分析
- https://github.com/rust-ml/linfa#current-state
- maciejkula/rustlearn - Rust 的机器学习 crate
- 因子分解机、k 折交叉验证、ndcg
- https://github.com/maciejkula/rustlearn#features
- AtheMathmo/rusty-machine - Rust 的机器学习库
- 混淆矩阵、交叉验证、准确率、F1 分数、均方误差
- https://github.com/AtheMathmo/rusty-machine#machine-learning
- benjarison/eval-metrics - 用于机器学习的评估指标
- 多种评估函数
- blue-yonder/vikos - 用于有监督训练参数化模型的机器学习库
- mbillingr/openml-rust - Rust 对 http://openml.org 的接口
综合类(统计学)
- statrs-dev/statrs - Rust 的统计计算库
- rust-ndarray/ndarray-stats - ndarray 的统计函数库
- Axect/Peroxide - 具有 R、MATLAB 和 Python 语法的 Rust 数值库
- 线性代数、函数式编程、自动微分、数值分析、统计学、特殊函数、绘图、数据框
- tarcieri/micromath - 嵌入式 Rust 的算术、2D/3D 向量和统计学库
梯度提升
- mesalock-linux/gbdt-rs - MesaTEE GBDT-RS:一个快速且安全的 GBDT 库,支持 Intel SGX 和 ARM TrustZone 等可信执行环境。
- davechallis/rust-xgboost - XGBoost 的 Rust 绑定。
- vaaaaanquish/lightgbm-rs - LightGBM 的 Rust 绑定
- catboost/catboost - 一个快速、可扩展、高性能的基于决策树的梯度提升库,用于排序、分类、回归及其他机器学习任务(仅预测)。
- Entscheider/stamm - Rust 的通用决策树
深度神经网络
最常用的有 TensorFlow 绑定 和 PyTorch 绑定。tch-rs 还提供了 torch vision,非常实用。
- tensorflow/rust - TensorFlow 的 Rust 语言绑定
- LaurentMazare/tch-rs - PyTorch C++ API 的 Rust 绑定。
- VasanthakumarV/einops - 用于深度学习张量操作的简化 API
- spearow/juice - 黑客的机器学习引擎
- neuronika/neuronika - 纯 Rust 中的张量和动态神经网络。
- bilal2vec/L2 - l2 是一个用 Rust 编写的、具有 PyTorch 风格的快速张量+自动微分库
- raskr/rust-autograd - Rust 中的张量和可微分操作(类似于 TensorFlow)
- charles-r-earp/autograph - Rust 的机器学习库
- patricksongzy/corgi - 一个用于 Rust 的神经网络及张量动态自动微分实现。
- JonathanWoollett-Light/cogent - 用 Rust 编写的简单分类神经网络库。
- oliverfunk/darknet-rs - Darknet 的 Rust 绑定
- jakelee8/mxnet-rs - MXNet 的 Rust 版本
- jramapuram/hal - 基于 Rust 的跨 GPU 机器学习
- primitiv/primitiv-rust - Primitiv 的 Rust 绑定
- chantera/dynet-rs - DyNet 的 Rust 语言绑定
- millardjn/alumina - 一个用于 Rust 的深度学习库
- jramapuram/hal - 基于 Rust 的跨 GPU 机器学习
- afck/fann-rs - 快速人工神经网络库的 Rust 封装
- autumnai/leaf - 黑客的开放机器智能框架。(GPU/CPU)
- c0dearm/mushin - 编译时创建神经网络
- tedsta/deeplearn-rs - Rust 中的神经网络
- sakex/neat-gru-rust - neat-gru
- nerosnm/n2 - (正在进行中)前馈、反向传播人工神经网络的库实现
- Wuelle/deep_thought - Rust 中的神经网络
- MikhailKravets/NeuroFlow - 令人惊叹的深度学习 crate
- dvigneshwer/deeprust - Rust 中的机器学习 crate
- millardjn/rusty_sr - 纯 Rust 中的深度学习超分辨率
- coreylowman/dfdx - Rust 中强类型的深度学习
图模型
- Synerise/cleora - Cleora AI 是一种通用模型,用于高效、可扩展地学习异构关系数据中的稳定且归纳性的实体嵌入。
- Pardoxa/net_ensembles - 用于随机图集合的 Rust 库
自然语言处理(模型)
- huggingface/tokenizers - 由 Rust 编写的分词器核心库。提供了当前最常用的多种分词算法实现,注重性能与通用性。
- guillaume-be/rust-tokenizers - Rust 分词器为现代语言模型提供高性能的分词工具,支持 WordPiece、字节对编码(BPE)和 Unigram(SentencePiece)等模型。
- guillaume-be/rust-bert - 基于 Rust 的原生 NLP 流程及基于 Transformer 的预训练模型(如 BERT、DistilBERT、GPT2 等)。
- sno2/bertml - 在 Deno 中使用常见的预训练机器学习模型!
- cpcdoy/rust-sbert - 句子嵌入模型(sentence-transformers,https://github.com/UKPLab/sentence-transformers)的 Rust 移植版本。
- vongaisberg/gpt3_macro - 使用 GPT3 Codex 在编译时生成代码的 Rust 宏。
- proycon/deepfrog - 基于深度学习的 NLP 工具集。
- ferristseng/rust-tfidf - 用于计算 TF-IDF 的库。
- messense/fasttext-rs - fastText 的 Rust 绑定。
- mklf/word2vec-rs - 纯 Rust 实现的 Word2Vec。
- DimaKudosh/word2vec - Word2Vec 的 Rust 接口。
- lloydmeta/sloword2vec-rs - 一个朴素(即速度较慢)的 Word2Vec 实现。内部使用 BLAS 加速计算。
推荐系统
- PersiaML/PERSIA - 基于 PyTorch 的高性能分布式深度学习推荐系统训练框架。
- jackgerrits/vowpalwabbit-rs - 🦀🐇 Rust 版本的 VowpalWabbit。
- outbrain/fwumious_wabbit - Fwumious Wabbit,用 Rust 编写的快速在线机器学习工具包。
- hja22/rucommender - 基于用户的协同过滤算法的 Rust 实现。
- maciejkula/sbr-rs - 面向 Rust 的深度推荐系统。
- chrisvittal/quackin - Rust 平台上的推荐系统框架。
- snd/onmf - 快速的 Rust 实现,在线非负矩阵分解,遵循论文“通过在线非负矩阵分解检测并追踪潜在因子”的方法。
- rhysnewell/nymph - Rust 版本的非负矩阵分解。
信息检索
全文检索
- quickwit-inc/quickwit - Quickwit 是一款大数据搜索引擎。
- bayard-search/bayard - 用 Rust 编写的全文搜索与索引服务器。
- neuml/txtai.rs - 基于 AI 的 Rust 搜索引擎。
- meilisearch/MeiliSearch - 极速、高度相关且容错性强的搜索引擎。
- toshi-search/Toshi - 用 Rust 编写的全文搜索引擎。
- BurntSushi/fst - 使用有限状态转换器紧凑地表示大型集合和映射。
- tantivy-search/tantivy - Tantivy 是受 Apache Lucene 启发、用 Rust 编写的全文搜索引擎库。
- tinysearch/tinysearch - 🔍 用 Rust 和 WebAssembly 构建的轻量级静态网站全文搜索引擎。
- quantleaf/probly-search - 一个轻量级的全文搜索库,允许完全控制评分计算。
- https://github.com/andylokandy/simsearch-rs - 一个简单轻量的模糊搜索引擎,可在内存中运行,用于查找相似字符串。
- jameslittle230/stork - 🔎 专为静态网站设计的超高速网页搜索。
- elastic/elasticsearch-rs - Elasticsearch 的官方 Rust 客户端。
最近邻搜索
- Enet4/faiss-rs - Faiss 的 Rust 语言绑定。
- rust-cv/hnsw - HNSW 近似最近邻算法,源自论文“利用分层可导航小世界图高效稳健地进行近似最近邻搜索”。
- hora-search/hora - 🚀 用 Rust 🦀 实现的高效近似最近邻搜索算法库。horasearch.com。
- InstantDomain/instant-distance - 基于 HNSW 索引的 Rust 高速近似最近邻搜索。
- lerouxrgd/ngt-rs - NGT 近似最近邻搜索的 Rust 封装。
- granne/granne - 基于图的近似最近邻搜索。
- u1roh/kd-tree - Rust 实现的 k 维树。速度快、简单易用。
- qdrant/qdrant - Qdrant 是一款支持扩展过滤功能的向量相似度搜索引擎。
- rust-cv/hwt - 来自论文“在汉明空间中进行在线最近邻搜索”的汉明权重树。
- fulara/kdtree-rust - Rust 版本的 k-d 树实现。
- mrhooray/kdtree-rs - 用于快速地理空间索引和查询的 Rust k 维树。
- kornelski/vpsearch - 用于在集合中查找最近(最相似)元素的 C 库。
- petabi/petal-neighbors - 包括球树和视点树在内的最近邻搜索算法。
- ritchie46/lsh-rs - Rust 实现的局部敏感哈希,并带有 Python 绑定。
- kampersanda/mih-rs - Rust 实现的多索引哈希算法,用于在汉明空间中对 64 位编码进行近邻搜索。
强化学习
- taku-y/border - Border 是一个用 Rust 编写的强化学习库。
- NivenT/REnforce - 用 Rust 编写的强化学习库
- edlanglois/relearn - 使用 Rust 进行强化学习
- tspooner/rsrl - 一个快速、安全且易于使用的 Rust 强化学习框架。
- milanboers/rurel - 灵活、可重用的 Rust 强化学习(Q 学习)实现
- Ragnaroek/bandit - Rust 中的多臂老虎机算法
- MrRobb/gym-rs - Rust 的 OpenAI Gym 绑定
监督学习模型
- tomtung/omikuji - 用于极端多标签分类的分区标签树及其变体的高效实现
- shadeMe/liblinear-rs - LIBLINEAR C/C++ 库的 Rust 语言绑定。
- messense/crfsuite-rs - crfsuite 的 Rust 绑定
- ralfbiedert/ffsvm-rust - FFSVM 代表“非常快速的支持向量机”
- zenoxygen/bayespam - 用 Rust 编写的简单贝叶斯垃圾邮件分类器。
- Rui_Vieira/naive-bayesnaive-bayes - 用 Rust 编写的朴素贝叶斯分类器。
- Rui_Vieira/random-forests - 用于随机森林的 Rust 库。
- sile/randomforest - Rust 中的随机森林实现
- tomtung/craftml-rs - CRAFTML 的 Rust 实现,一种高效的基于聚类的随机森林,用于极端多标签学习
- nkaush/naive-bayes-rs - 一个包含自制机器学习模型的 Rust 库,用于对 MNIST 数据集进行分类。该库的构建旨在熟悉 Rust 的高级概念。
非监督学习与聚类模型
- frjnn/bhtsne - 用 Rust 编写的 Barnes-Hut t-SNE 实现。
- vaaaaanquish/label-propagation-rs - 用 Rust 实现的标签传播算法。标签传播(LP)是一种基于图的半监督学习(SSL)。已实现了 LGC 和 CAMLP。
- nmandery/extended-isolation-forest - 用于异常检测的扩展孤立森林算法的 Rust 移植
- avinashshenoy97/RusticSOM - 用于自组织映射(SOM)的 Rust 库。
- diffeo/kodama - Rust 中的快速层次聚类
- kno10/rust-kmedoids - 使用 FasterPAM 算法的 Rust k-Medoids 聚类
- petabi/petal-clustering - DBSCAN 和 OPTICS 聚类算法。
- savish/dbscan - Rust 中的朴素 DBSCAN 实现
- gu18168/DBSCANSD - DBSCANSD 的 Rust 实现,这是一种轨迹聚类算法。
- lazear/dbscan - Rust 中无依赖的 DBSCAN 聚类实现
- whizsid/kddbscan-rs - 受 kDDBSCAN 聚类算法启发的 Rust 库
- Sauro98/appr_dbscan_rust - 实现 Gan 和 Tao 提出的 DBSCAN 近似版本的程序
- quietlychris/density_clusters - 用 Rust 编写的朴素密度聚类算法
- milesgranger/gap_statistic - 动态获取非监督学习中数据的建议聚类数。
- genbattle/rkm - 用 Rust 编写的通用 k-means 实现
- selforgmap/som-rust - 自组织映射(SOM)是一种人工神经网络(ANN),通过无监督的竞争性学习训练,以生成高维数据的低维离散表示(特征图)。
统计模型
- Redpoll/changepoint - 包含以下变点检测算法:Bocpd -- 在线贝叶斯变点检测参考。BocpdTruncated -- 与 Bocpd 相同,但在运行长度分布不太可能时将其截断。
- krfricke/arima - 用于 Rust 的 ARIMA 建模
- Daingun/automatica - 自动控制系统库
- rbagd/rust-linearkalman - Rust 中的卡尔曼滤波与平滑
- sanity/pair_adjacent_violators - Rust 中等秩回归的相邻违规者算法实现
进化算法
- martinus/differential-evolution-rs - 用于 Rust 的通用差分进化
- innoave/genevo - 以可定制和可扩展的方式执行遗传算法(GA)模拟。
- Jeffail/spiril - 用于遗传算法的 Rust 库
- sotrh/rust-genetic-algorithm - Rust 和 Python 中的遗传算法示例
- willi-kappler/darwin-rs - darwin-rs,使用 Rust 的进化算法
参考
周边项目
- Are we learning yet?,一项正在进行中的工作,旨在编目 Rust 中机器学习的发展状况
- e-tony/best-of-ml-rust,一个精选的优秀机器学习 Rust 库列表
- 最佳 51 个 Rust 机器学习库,RustRepo
- rust-unofficial/awesome-rust,一个精心整理的 Rust 代码和资源列表
- 前 16 名 Rust 机器学习项目,被归类为机器学习的开源 Rust 项目
- 39+ 最佳 Rust 机器学习框架、库、软件和资源,ReposHub
博客
引言
- 关于 Rust 的机器学习社区,Medium,2016年1月6日,Autumn Engineering
- Rust 与 Python:技术与业务对比,2021年3月4日,Miłosz Kaczorowski
- 我编写了最快的 DataFrame 库之一,2021年2月28日,Ritchie Vink
- Polars:你从未听说过的最快 DataFrame 库,2021年1月19日,Analytics Vidhya
- 数据操作:Polars 与 Rust 对比,2021年3月13日,Xavier Tao
- Rust 中的机器学习现状——Ehsan 的博客,2019年5月13日,由 Ehsan 发布
- 机器学习工程师 Ritchie Vink 编写了 Polars,这是 Python 和 Rust 中最快的 DataFrame 库之一,Xomnia,2021年5月11日
- Quickwit:一款高性价比的 Rust 搜索引擎,2021年7月13日,quickwit,PAUL MASUREL
- 数据操作:Polars 与 Rust 对比,2021年3月13日,Xavier Tao
- 看看 Rust 在生产环境中的应用,2021年8月10日,Qovery,@serokell
- 为什么我选择 Rust 而不是继续使用 Python,2021年9月26日,Medium,Geek Culture,Marshal SHI
教程
- Rust 机器学习书籍,包含使用 linfa-clustering 的 KMeans 和 DBSCAN 示例
- 人工智能与机器学习——实用 Rust 项目:构建游戏、物理计算和机器学习应用——Dev Guis,2021年5月19日
- 使用 Linfa 在 Rust 中进行机器学习,LogRocket 博客,2021年4月30日,Timeular,Mario Zupan,包含 LogisticRegression 示例
- Rust 中的机器学习,Smartcore,Medium,The Startup,2021年1月15日,Vlad Orlov,包含 LinerRegression、Random Forest Regressor 和 K-Fold 示例
- Rust 中的机器学习,逻辑回归,Medium,The Startup,2021年1月6日,Vlad Orlov
- Rust 中的机器学习,线性回归,Medium,The Startup,2020年12月16日,Vlad Orlov
- Rust 中的机器学习,2016年3月7日,James,包含 LogisticRegressor 示例
- 机器学习与 Rust(第 1 部分):入门!,Level Up Coding,2021年1月9日,Stefano Bosisio
- 机器学习与 Rust(第 2 部分):线性回归,Level Up Coding,2021年6月15日,Stefano Bosisio
- 机器学习与 Rust(第 3 部分):Smartcore、DataFrame 和线性回归,Level Up Coding,2021年7月1日,Stefano Bosisio
- TensorFlow Rust 实战 第 1 部分,程序员之求,2018年
- ndarray 的机器学习简介,RustFest 2019,2019年11月12日,Luca Palmieri
- 用 Rust 从零开始实现简单线性回归,Web 开发、软件架构、算法等领域,2018年12月13日,philipp
- 使用 EVCXR 在 REPL 和 Jupyter Notebook 中进行交互式 Rust 编程,Depth-First,2020年9月21日,Richard L. Apodaca
- 面向数据科学的 Rust:教程 1,dev,2021年8月25日,Davide Del Papa
- petgraph_review,2019年10月11日,Timothy Hobbs
- 用于机器学习的 Rust。Rust,Medium,Tempus Ex,2021年8月1日,Michael Naquin
- 使用 Rust 和机器学习进行无人机摄影测量的冒险之旅(使用 linfa 和 DBSCAN 进行图像分割),2021年11月14日,CHRISTOPHER MORAN
应用
- Rust中的深度学习:迈出第一步,Medium,2016年2月2日,Theodore DeRego
- Rust版SentencePiece实现,Rust NLP tales,2020年5月30日
- 使用Rust加速文本生成,Rust NLP tales,2020年11月21日
- 用Rust编写的简单文本摘要器,Towards Data Science,2020年11月24日,Charles Chan,文本句子向量、余弦距离和PageRank示例
- 在Rust中提取深度学习图像嵌入,RecoAI,2021年6月1日,Paweł Jankiewic,ONNX示例
- 使用GPU的Rust深度学习,2021年7月30日,Xavier Tao
- tch-rs预训练示例 - 用于PyTorch Rust绑定tch-rs的Docker。预训练模型示例,2021年8月15日,vaaaaanquish
- Rust ANN搜索示例 - 使用近似最近邻库在Rust中进行图像搜索的示例,2021年8月15日,vaaaaanquish
- dzamkov/deep-learning-test - 仅使用线性代数库(nalgebra)在Rust中实现深度学习,2021年8月30日,dzamkov
- vaaaaanquish/rust-machine-learning-api-example - 使用resnet224对以base64格式接收的图像进行推理并返回结果的axum示例,2021年9月7日,vaaaaanquish
- Rust用于机器学习:一次性性能基准测试 - 用于一次性图像识别的暹罗神经网络的Rust实现,用于基准测试性能和结果,多伦多大学机器智能学生团队
- 为什么Wallaroo从Pony迁移到Rust,2021年8月19日,Wallaroo.ai
- epwalsh/rust-dl-webserver - 使用批处理预测在Rust中服务深度学习模型的示例,2021年11月16日,epwalsh
案例研究
- 生产环境用户 - Rust编程语言,由rust-lang.org提供
- 使用Rust将机器学习投入生产:速度提升25倍,A LEARNING JOURNAL,2019年12月1日,@algo_luca
- 9家在生产环境中使用Rust的公司,serokell,2020年11月18日,Gints Dreimanis
- Wasm上的掩码语言模型,前端BERT示例,optim-corp/masked-lm-wasm,2021年8月27日,Optim
- 使用Actix-Web服务TensorFlow,kykosic/actix-tensorflow-example
- 使用Actix-Web服务PyTorch,kykosic/actix-pytorch-example
讨论
- Rust中的自然语言处理:rust,2016年12月6日
- Rust编程语言中机器学习的未来前景:MachineLearning,2017年11月11日
- 对Rust中NLP的兴趣? - Rust编程语言论坛,2018年1月19日
- Rust适合深度学习和人工智能吗? - Rust编程语言论坛,2018年11月18日
- ndarray与nalgebra:rust,2019年5月28日
- 使用Rust将ML投入生产 | Hacker News,2019年12月2日
- 谁在生产/研究中使用Rust进行机器学习?:rust,2020年4月5日
- Rust中的深度学习,2020年8月26日
- SmartCore,适用于Rust的快速且全面的机器学习库!:rust,2020年9月29日
- 使用ONNX的GPU版Rust深度学习,2021年7月31日
- Rust与C++:这些流行编程语言之间的主要区别,2021年8月25日
- 我想分享作为深度学习研究人员使用Rust的经验,2021年9月2日
- Rust的ML生态系统目前发展到什么程度了?,2021年9月15日
图书
- 使用Rust进行实用机器学习:用Rust创建智能应用(英文版),2019年12月10日,Joydeep Bhattacharjee
- 用Rust编写机器学习算法
- 使用Rust库完成机器学习中的不同任务
- 为你的机器学习应用创建简洁的Rust包
- 在Rust中实现NLP和计算机视觉
- 将代码部署到云端和裸机服务器上
- 源代码:Apress/practical-machine-learning-w-rust
- 使用Rust笔记本进行数据分析,2021年9月3日,Shahin Rostami
- 使用Plotters和Plotly进行绘图
- 使用ndarray进行操作
- 描述性统计
- 交互式图表
- 共现类型的可视化
- 下载源代码和数据集
- 完整文本:
影片
- The /r/playrust 分类器:现实世界中的 Rust 数据科学,RustConf 2016,2016年10月5日,Suchin Gururangan 和 Colin O'Brien
- 在 Rust 中构建 AI 单元,FOSSASIA 2018,2018年3月25日,Vigneshwer Dhinakaran
- Python 与 Rust 在仿真中的对比,EuroPython 2019,2019年7月10日,Alisa Dammer
- 机器学习正在变革——Rust 是合适的工具吗?,RustLab 2019,2019年10月31日,Luca Palmieri
- 在嵌入式 Rust 中使用 TensorFlow,2020年9月29日,Ferrous Systems GmbH,Richard Meadows
- 用 Rust 编写最快的 GBDT 库,2021年9月16日,RustConf 2021,Isabella Tromba
播客
- DATA SCIENCE AT HOME
- Rust 与机器学习 #1(第107集)
- Rust 与机器学习 #2 与 Luca Palmieri(第108集)
- Rust 与机器学习 #3 与 Alec Mocatta(第109集)
- Rust 与机器学习 #4:实用工具(第110集)
- Rust 中的机器学习:与 Alec Mocatta 的 Amadeus 对谈(第127集)
- Rust 与深度学习:与 Daniel McKenna 对谈(第135集)
- Rust 是否足够灵活以支持灵活的数据模型?(第137集)
- Pandas 与 Rust 对比(第144集)
- Apache Arrow、Ballista 与大数据在 Rust 中的应用:与 Andy Grove 对谈(第145集)
- Polars:Rust 中最快的 DataFrame crate(第146集)
- Apache Arrow、Ballista 与大数据在 Rust 中的应用:与 Andy Grove 对谈 RB 版本(第160集)
论文
- Rust 中的端到端 NLP 流程,第二届 NLP 开源软件研讨会(NLP-OSS)论文集,第20–25页,虚拟会议,2020年11月19日,Guillaume Becquin
如何贡献
请直接更新 README.md 文件。
一旦您更新了此 README.md 文件,CI 将会自动执行, 同时网站内容也会相应更新。
感谢
感谢所有相关项目。
https://github.com/vaaaaanquish/Awesome-Rust-MachineLearning
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
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 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备