Gradio 3.0 发布,推出 Blocks 低层 API
Gradio 发布 3.0 版本,对库进行彻底重设计,前端改用 Svelte 等现代技术,页面加载更快、体积更小,并新增 Gallery 组件和 TabbedInterface 类。
推荐理由:Gradio 3.0 重写前端并推出 Blocks 低层 API,读者可了解它如何让 Python 直接搭建复杂自定义 Web 应用。
Gradio 发布 3.0 版本,对库进行彻底重设计,前端改用 Svelte 等现代技术,页面加载更快、体积更小,并新增 Gallery 组件和 TabbedInterface 类。
推荐理由:Gradio 3.0 重写前端并推出 Blocks 低层 API,读者可了解它如何让 Python 直接搭建复杂自定义 Web 应用。
Hugging Face 发布 Optimum 1.2,新增对 Transformers pipelines 的推理支持,首批接入 ONNX Runtime。用户可将 AutoModelForXxx 替换为对应的 ORTModelForXxx,并配合 ORTQuantizer、ORTOptimizer 完成量化与优化。
fastai 现已集成 Hugging Face Hub,用户只需一行 Python 代码即可上传和共享模型。使用 `push_to_hub_fastai` 上传 Learner,再用 `from_pretrained_fastai` 加载,需安装 fastai>=2.4、fastcore>=1.3.27 和 toml。上传后自动生成模型卡,并支持基于 git 的版本控制。
Hugging Face 将离线强化学习方法 Decision Transformer 集成进 transformers 库和 Hugging Face Hub,并发布九个 Gym 环境连续控制任务的预训练模型 checkpoint,覆盖 Hopper、Walker2D 和 Halfcheetah,Atari 环境 checkpoint 即将推出。
Hugging Face 的 🤗 datasets 现已支持图像特征类型,可结合 sentence_transformers 与 faiss 为图像数据集添加相似度索引,实现图像搜索。文中以英国图书馆数字化书籍插图数据集为例,通过 ImageFolder 加载器直接读取含 image 和 label 特征的 10000 行数据,并演示了提取图像文件名等元数据的方法。
Hugging Face 在 🤗 Transformers 中推出约束束搜索(constrained beam search),通过 model.generate() 的 force_words_ids 参数让用户指定生成结果中必须包含的词。该功能支持强制单个词、多个短语以及析取约束(在候选词列表中至少包含一个),可在生成阶段直接控制输出,无需事后再筛选。
Hugging Face 为 huggingface_hub 库新增 ModelFilter 和 ModelSearchArguments 类,让用户无需离开 Jupyter 或 Python 环境即可编程式搜索 Hub 上的模型和数据集。
Hugging Face 将 PyTorch 深度强化学习库 Stable-Baselines3 集成到 Hugging Face Hub,用户可通过 huggingface_sb3 上传和加载已保存的智能体模型。
🤗 Transformers 现已集成 Kensho Technologies 的 pyctcdecode 库,可将 n-gram 语言模型与微调后的 Wav2Vec2 检查点结合用于语音识别解码。
Hugging Face 的 AutoNLP 与 Explosion 的标注工具 Prodigy 可组合成主动学习流水线:在 BBC News 分类数据集上,AutoNLP 训练 15 个多分类模型,约 15 分钟完成,最佳模型准确率达 98.67%,单模型价格低至 $10。
Hugging Face 收购机器学习初创公司 Gradio,Gradio 联合创始人以第一人称宣布这一消息。Gradio 于 2019 年由斯坦福博士生与三位室友发布,用于让机器学习工程师快速构建和分享模型 demo,目前已有超过 30 万个 demo 基于该库搭建。作者表示加入 Hugging Face 后将继续发展 Gradio,让任何有浏览器和网络的人都能使用机器学习,并提到团队正在招聘。
推荐理由:Gradio 创始人以第一人称讲述被 Hugging Face 收购的经过,并回顾该库从 2019 年起步到 30 万 demo 的历程。
Hugging Face 在 Transformers 库中加入 Perceiver IO,这是首个可处理文本、图像、音频、视频、点云及其组合的 Transformer 类模型,并随附示例 Space 与 notebook。
推荐理由:Hugging Face 把 Perceiver IO 接入 Transformers,读者可了解这套架构如何用 latent 空间统一处理文本、图像、音频与光流。
Hugging Face 发布教程,介绍如何从零训练名为 CodeParrot 的 GPT-2 代码生成模型,用于自动补全 Python 代码。作者从 Google BigQuery 的 GitHub dump 中筛选出 180GB、2000 万个 Python 文件,去重并按 Codex 论文的清洗规则处理后得到 50GB 数据集 codeparrot-clean。
推荐理由:完整拆解了从数据清洗、tokenizer 训练到多卡训练循环的每一步,可迁移到自建代码生成模型的流程。
Hugging Face 发布首个自定义深度强化学习环境 Snowball Fight 1vs1,基于 Unity ML-Agents 构建,玩家可与深度强化学习智能体对战投掷雪球,游戏托管在 Hugging Face Spaces 并可在线游玩。训练环境已开源发布在 Hugging Face Hub,后续将推出使用 MA-POCA 算法的 2vs2 协作版本及更多自定义环境。
Hugging Face 发布开源 Python 库与无代码界面 Data Measurements Tool,基于 Dataset 和 Spaces Hub 及 Streamlit 构建,可在线构建、测量和比较数据集。该工具能自动计算词汇量、标签分布、实例长度、重复项及 Zipf 定律拟合度等指标,帮助数据集创建者和用户进行负责任的数据开发。
Hugging Face 在社区周期间用 10 亿句对训练出 SOTA 句嵌入模型,硬件为 7 块 TPU v3-8,并获 Google Flax、JAX 与 Cloud 团队指导。训练采用对比学习与 in-batch negatives(InfoNCE/NTXentLoss),通过增大 batch、引入 hard negatives 和跨数据集批次提升质量。所有模型与数据集已在模型卡中公开。
一个跨 12 个时区的团队用 RSICD、UCM 和 Sydney 三个遥感数据集微调了 OpenAI 的 CLIP,让模型能按文本描述检索卫星图像。训练采用对比学习,并用 Torchvision 图像增强和 Marian MT 回译文本增强抑制过拟合,评估显示增强后过拟合明显下降。模型已开放下载,并提供在线 demo。
Hugging Face 发布开源库 Optimum,目标是成为 Transformer 生产性能的优化工具包,让模型在特定硬件上训练和推理达到更高效率。Optimum 与硬件伙伴合作构建,首个案例是与 Intel 的 Neural Compressor 配合,演示如何为 Intel Xeon CPU 量化模型。
推荐理由:Hugging Face 官方开源 Optimum,读者可了解它如何把模型加速与硬件适配的复杂度封装起来。
OpenAI 发布 Triton 1.0,这是一门开源的类 Python 编程语言,让没有 CUDA 经验的研究者也能编写高效的 GPU 代码,多数情况下能达到专家水准。
推荐理由:OpenAI 开源 Triton 1.0,让没有 CUDA 经验的研究者也能写出接近专家水平的 GPU 代码。
Hugging Face 博客介绍 DeDLOC 协作分布式训练方法,通过自适应梯度聚合适应参与者的网络与硬件差异,并用 40 名志愿者预训练出孟加拉语模型 sahajBERT。
推荐理由:DeDLOC 用 40 名志愿者在互联网上预训练出孟加拉语模型,为算力受限的社区提供了一条可复现的协作训练路径。
Hugging Face Hub 现已支持托管和分享 spaCy 的 NLP 流水线,用户可通过单条命令上传任意 pipeline 包,并自动生成模型卡和元数据。
Hugging Face Hub 与 Sentence Transformers 完成集成,随 Sentence Transformers v2 发布,Hub 上已有超过 90 个预训练模型、覆盖 100 多种语言。
Hugging Face 发布 Accelerate 库,面向希望保留训练循环控制权的 PyTorch 用户,用统一 API 封装分布式训练(单机或多机多 GPU、TPU)与混合精度所需的样板代码。
推荐理由:原文给出五处代码改动即可跑分布式与混合精度的具体做法,便于对照现有 PyTorch 训练脚本评估迁移成本。
Hugging Face 发布教程,介绍如何用 BERT、GPT2 等预训练检查点热启动编码器-解码器模型,跳过昂贵的预训练阶段。基于 Rothe et al. (2020) 的方法,这类热启动模型在多个序列到序列任务上可达到 T5、Pegasus 等大型预训练编码器-解码器模型的竞争性效果,训练成本仅为后者一小部分。
Hugging Face 博客记录了将 fairseq 的 WMT19 新闻翻译系统移植到 transformers 的过程,作者 Stas Bekman 在 Sam Shleifer 建议下完成移植。
Hugging Face 发布 PyTorch 扩展 pytorch_block_sparse,其 BlockSparseLinear 可直接替换 torch.nn.Linear,让语言模型更小更快。该库基于 NVIDIA CUTLASS 的块稀疏矩阵乘法,75% 稀疏度下矩阵运算约比稠密快 2 倍、内存占用减少 4 倍,但当前整体性能仍比 cuBLAS 稠密实现慢约 2 倍。
OpenAI 发布 Jukebox,一个能生成音乐并以原始音频形式输出、包含初级演唱的神经网络,覆盖多种曲风和艺术家风格。OpenAI 同时公开了模型权重和代码,并提供用于查看生成样本的工具。
推荐理由:OpenAI 公开 Jukebox 的模型权重与代码,读者可据此了解早期音乐生成模型的开源形态。
OpenAI 推出 Microscope,对八个常用于可解释性研究的视觉"模式生物"模型的每一重要层和神经元进行可视化,便于分析神经网络内部形成的特征。该工具面向研究社区,旨在帮助理解这些复杂系统。
OpenAI 发布 Safety Gym,一套用于衡量强化学习智能体在训练中遵守安全约束进展的环境与工具。该套件面向安全约束下的强化学习智能体评测,提供相应环境和工具支持。
OpenAI 发布 GPT-2 分阶段发布的最后一个版本,即参数量 1.5B 的最大版本,并同时开放代码和模型权重,以便检测 GPT-2 模型的输出。OpenAI 表示,尽管自 8 月以来已有更大的语言模型发布,仍按原定分阶段发布计划推进,为社区提供一个完整分阶段发布流程的测试案例。OpenAI 希望该案例对未来的强大模型开发者有用,并继续与 AI 社区就负责任发布展开讨论。
推荐理由:OpenAI 公布 GPT-2 分阶段发布的最后一步,读者可了解其负责任发布流程的完整案例。
OpenAI 发布 774M 参数的 GPT-2 语言模型,此前已先后放出 124M 小模型和 355M 中模型。OpenAI 同时发布一份开源法律协议,便于机构之间建立模型共享合作,并发布技术报告,介绍与更广泛 AI 研究社区协调发布规范的经验。
推荐理由:OpenAI 分阶段放出 GPT-2 最大版本,并公开模型共享法律协议,可观察大模型发布与风险管控的早期做法。
OpenAI 发布 Neural MMO,一个面向强化学习智能体的大规模多智能体游戏环境,支持在持久、开放式任务中容纳数量可变的大量智能体。该平台通过引入众多智能体与物种,带来更好的探索、差异化的生态位形成以及整体能力的提升。
OpenAI 发布训练环境 CoinRun,用于衡量智能体将经验迁移到新情境的泛化能力,并已帮助厘清强化学习领域一个长期存在的难题。该环境在复杂度上取得平衡:比《刺猬索尼克》等传统平台游戏更简单,但仍对当前最先进算法构成值得挑战的泛化考验。
OpenAI 发布深度强化学习教育资源 Spinning Up in Deep RL,旨在让任何人都能学习成为深度强化学习的熟练实践者。该资源包含清晰的 RL 代码示例、教学练习、文档和教程。
OpenAI 推出可逆生成模型 Glow,采用可逆 1x1 卷积,简化了此前可逆生成模型的架构。该模型能生成逼真的高分辨率图像,支持高效采样,并可发现用于操控数据属性的特征。OpenAI 同步开源模型代码并上线在线可视化工具。
OpenAI 发布强化学习游戏研究平台 Gym Retro 的完整版,公开游戏数量从约 70 款 Atari 游戏和 30 款 Sega 游戏扩展到覆盖多种模拟器的 1000 多款游戏。同时发布的还有用于向该平台添加新游戏的工具。
OpenAI 发布八个模拟机器人环境和 Hindsight Experience Replay 的 Baselines 实现,均基于过去一年的研究开发,并已用于训练可运行在实体机器人上的模型。OpenAI 同时发布了一系列机器人研究课题请求。
OpenAI 发布针对块稀疏权重神经网络的高度优化 GPU kernel,按所选稀疏度可比 cuBLAS 或 cuSPARSE 快数个数量级。该 kernel 已被用于文本情感分析和文本、图像生成建模,并取得当时的最优结果。
OpenAI Baselines 发布 ACKTR 和 A2C 两个新实现。A2C 是 A3C 的同步确定性变体,性能与之相当;ACKTR 比 TRPO 和 A2C 更具样本效率,每次更新仅需略多于 A2C 的计算量。
OpenAI 开源了 RL-Teacher,一种通过偶发人类反馈而非手工设计奖励函数来训练 AI 的接口实现。该技术旨在推进安全 AI 系统,也适用于奖励难以明确指定的强化学习问题。