AI 见闻
精选· 重要性 5/5

Hugging Face Transformers:统一模型定义框架,支持文本、视觉、音频与多模态

GitHub Trending (AI repos)··huggingface·约 6 分钟阅读
Hacker News 161481
中文导读

Transformers 是 Hugging Face 推出的模型定义框架,为文本、视觉、音频和多模态任务提供统一的推理与训练接口,支持超过100万个预训练检查点,降低了AI模型的使用门槛。

English | 简体中文 | 繁體中文 | 한국어 | Español | 日本語 | हिन्दी | Русский | Português | తెలుగు | Français | Deutsch | Italiano | Tiếng Việt | العرب

ية | اردو | বাংলা | فارسی |Transformers 作为最先进的机器学习模型定义框架,支持文本、计算机视觉、音频、视频和多模态模型的推理与训练。它集中了模型定义,使得整个生态系统对该定义达成一致。

Transformers 是跨框架的枢纽:如果一个模型定义被支持,它将兼容大多数训练框架(Axolotl、Unsloth、DeepSpeed、FSDP、PyTorch-Lightning 等)、推理引擎(vLLM、SGLang、

TGI 等)以及利用 Transformers 模型定义的相邻建模库(llama.cpp、mlx 等)。我们承诺帮助支持新的最先进模型,并通过使模型定义简单、可定制且高效来使其使用民主化。

Hugging Face Hub 上有超过 100 万个 Transformers 模型检查点可供使用。立即浏览 Hub 查找模型,并使用 Transformers 快速上手。Transformers 支持 Python 3.10+ 和 PyTorch 2.4+。

使用 venv 或 uv(一个基于 Rust 的快速 Python 包和项目管理器)创建并激活虚拟环境。

# venvpython -m venv .my-envsource .my-env/bin/activate# uvuv venv .my-envsource .my-env/bin/activate在虚拟环境中安装 Transformers。

# pippip install "transformers[torch]"# uvuv pip install "transformers[torch]"如果您想要库中的最新更改或有兴趣贡献,请从源码安装 Transformers。

不过,最新版本可能不稳定。如果遇到错误,请随时提交 issue。git clone https:

//github.com/huggingface/transformers.gitcd transformers# pippip install '.[torch]'# uvuv pip install '.[torch]'通过 Pipeline API 立即开始使用 T

ransformers。Pipeline 是一个高级推理类,支持文本、音频、视觉和多模态任务。它负责预处理输入并返回适当的输出。实例化一个 pipeline 并指定用于文本生成的模型。模型会被下载并缓存,方便重复使用。

最后,传入一些文本来提示模型。from transformers import pipelinepipeline = pipeline(task="text-generation",

model="Qwen/Qwen2.5-1.5B")pipeline("the secret to baking a really good cake is ")[{'generated_text':

'the secret to baking a really good cake is 1) to use the right ingredients and 2) to follow the recipe exactly. the recipe for the cake

is as follows:

1 cup of sugar,1 cup of flour,1 cup of milk,1 cup of butter,1 cup of eggs,1 cup of chocolate chips. if you want to make 2 cakes,

how much sugar do you need?To make 2 cakes, you will need 2 cups of sugar. '}]与模型聊天时,使用模式相同。

唯一的区别是您需要构建您与系统之间的聊天历史(Pipeline 的输入)。提示:您也可以直接从命令行与模型聊天,只要 transformers serve 正在运行。

transformers chat Qwen/Qwen2.5-0.5B-Instructimport torchfrom transformers import pipelinechat = [{"role":"system","content":

"You are a sassy,wise-cracking robot as imagined by Hollywood circa 1986."},{"role":"user","content":"Hey,

can you tell me any fun things to do in New York?

"}]pipeline = pipeline(task="text-generation",model="meta-llama/Meta-Llama-3-8B-Instruct",dtype=torch.bfloat16,

device_map="auto")response = pipeline(chat,

max_new_tokens=512)print(response[0]["generated_text"][-1]["content"])展开下面的示例,了解 Pipeline 如何适用于不同的模态和任务。

自动语音识别from transformers import pipelinepipeline = pipeline(task="automatic-speech-recognition",

model="openai/whisper-large-v3")pipeline("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac"){'text':

' I have a dream that one day this nation will rise up and live out the true meaning of its creed. '}图像分类from transformers import pipeli

nepipeline = pipeline(task="image-classification",model="facebook/dinov2-small-imagenet1k-1-layer")pipeline("https:

//huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png")[{'label':'macaw','score':0.

997848391532898},{'label':'sulphur-crested cockatoo,Kakatoe galerita,Cacatua galerita','score':0.0016551691805943847},{'label':

'lorikeet',

'score':0.00018523589824326336},{'label':'African grey,African gray,Psittacus erithacus','score':7.85409429227002e-05},{'label':'quail',

'score':5.502637941390276e-05}]视觉问答from transformers import pipelinepipeline = pipeline(task="visual-question-answering",

model="Salesforce/blip-vqa-base")pipeline(image="https:

//huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/idefics-few-shot.jpg",

question="What is in the image?",)[{'answer': 'statue of liberty'}]-易于使用的最先进模型:- 在自然语言理解与生成、计算机视觉、音频、视频和多模态任务上表现优异。

- 研究人员、工程师和开发者的入门门槛低。- 只需学习三个类,面向用户的抽象极少。- 统一的 API 用于使用所有预训练模型。-更低的计算成本、更小的碳足迹:- 共享训练好的模型,而不是从头开始训练。

- 减少计算时间和生产成本。- 数百种模型架构,所有模态共有超过 100 万个预训练检查点。-为模型生命周期的每个部分选择合适的框架:- 用 3 行代码训练最先进的模型。- 在 PyTorch/JAX/TF2.0 框架之间随意移动单个模型。

- 为训练、评估和生产选择合适的框架。-根据您的需求轻松定制模型或示例:- 我们为每个架构提供示例,以重现原作者发布的结果。- 模型内部尽可能一致地暴露。- 模型文件可以独立于库使用,用于快速实验。

- 该库不是神经网络构建模块的模块化工具箱。模型文件中的代码没有故意用额外的抽象进行重构,以便研究人员可以快速迭代每个模型,而无需深入研究额外的抽象/文件。- 训练 API 经过优化,可与 Transformers 提供的 PyTorch 模型配合使用。

对于通用的机器学习循环,您应该使用另一个库,如 Accelerate。- 示例脚本只是示例。它们可能不一定在您的特定用例中开箱即用,您需要调整代码才能使其工作。

Transformers 不仅仅是使用预训练模型的工具包,它还是一个围绕它和 Hugging Face Hub 构建的项目社区。我们希望 Transformers 能够赋能开发者、研究人员、学生、教授、工程师以及任何其他人构建他们的梦想项目。

为了庆祝 Transformers 获得 100,000 颗星,我们通过 awesome-transformers 页面聚焦社区,该页面列出了 100 个使用 Transformers 构建的令人难以置信的项目。

如果您拥有或使用您认为应该列入列表的项目,请提交 PR 添加它!您可以直接在 Hub 模型页面上测试我们的大多数模型。展开下面的每个模态,查看各种用例的一些示例模型。

音频计算机视觉- 使用 SAM 自动生成掩码- 使用 DepthPro 进行深度估计- 使用 DINO v2 进行图像分类- 使用 SuperPoint 进行关键点检测- 使用 SuperGlue 进行关键点匹配- 使用 RT-DETRv2 进行目标检测- 使用 VitP

ose 进行姿态估计- 使用 OneFormer 进行通用分割- 使用 VideoMAE 进行视频分类多模态- 使用 Voxtral、

Audio Flamingo 进行音频或文本到文本- 使用 LayoutLMv3 进行文档问答- 使用 Qwen-VL 进行图像或文本到文本- Imag

相关阅读