optimum-furiosa 0.1.0


pip install optimum-furiosa

  Latest version

Released: Jul 25, 2023

Project Links

Meta
Author: HuggingFace Inc. Special Ops Team

Classifiers

Development Status
  • 5 - Production/Stable

License
  • OSI Approved :: Apache Software License

Intended Audience
  • Developers
  • Education
  • Science/Research

Operating System
  • OS Independent

Programming Language
  • Python :: 3.7
  • Python :: 3.8
  • Python :: 3.9

Topic
  • Scientific/Engineering :: Artificial Intelligence

Test

optimum-furiosa

Accelerated inference of 🤗 models using FuriosaAI NPU chips.

Furiosa SDK setup

A Furiosa SDK environment needs to be enabled to use this library. Please refer to Furiosa's Installation guide.

Install

To install the latest release of this package:

pip install optimum[furiosa]

Optimum Furiosa is a fast-moving project, and you may want to install from source.

pip install git+https://github.com/huggingface/optimum-furiosa.git

Installing in developer mode

If you are working on the optimum-furiosa code then you should use an editable install by cloning and installing optimum and optimum-furiosa:

git clone https://github.com/huggingface/optimum
git clone https://github.com/huggingface/optimum-furiosa
pip install -e optimum -e optimum-furiosa

Now whenever you change the code, you'll be able to run with those changes instantly.

How to use it?

To load a model and run inference with Furiosa NPU, you can just replace your AutoModelForXxx class with the corresponding FuriosaAIModelForXxx class.

import requests
from PIL import Image

- from transformers import AutoModelForImageClassification
+ from optimum.furiosa import FuriosaAIModelForImageClassification
from transformers import AutoFeatureExtractor, pipeline

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)

model_id = "microsoft/resnet-50"
- model = AutoModelForImageClassification.from_pretrained(model_id)
+ model = FuriosaAIModelForImageClassification.from_pretrained(model_id, export=True, input_shape_dict={"pixel_values": [1, 3, 224, 224]}, output_shape_dict={"logits": [1, 1000]},)
feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)
cls_pipe = pipeline("image-classification", model=model, feature_extractor=feature_extractor)
outputs = cls_pipe(image)

If you find any issue while using those, please open an issue or a pull request.

Wheel compatibility matrix

Platform Python 3
any

Files in release

Extras:
Dependencies:
optimum (>=1.8.0)
transformers (>=4.20.0)
datasets (>=1.4.0)
furiosa-optimizer
furiosa-quantizer (==0.9.0)
furiosa-quantizer-impl (==0.9.1)
furiosa-sdk
onnx (>=1.12.0)
sentencepiece
scipy