Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Docs] Add supported models & introduction pages #1839

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
5ba73fc
Add initial docusaurus site
yatarkan Feb 13, 2025
71a1420
Add workflow for deploying GH Pages
yatarkan Feb 13, 2025
1b001d7
Downgrade react version
yatarkan Feb 13, 2025
062620e
Enable lfs in actions checkout for deploy page workflow
yatarkan Feb 13, 2025
7b7c210
Fix search bar styles
yatarkan Feb 14, 2025
f97c65a
Fix wording
yatarkan Feb 17, 2025
bfb871e
Fix OV logo alignment
yatarkan Feb 17, 2025
cb50e35
Update section styles
yatarkan Feb 17, 2025
353bceb
Fix installation styles
yatarkan Feb 17, 2025
358cb39
Remove font
yatarkan Feb 17, 2025
6c967e4
Move global styles to separate files
yatarkan Feb 17, 2025
80f79be
Add WIP status to header
yatarkan Feb 17, 2025
e637ea3
Add navbar title, fix styles
yatarkan Feb 18, 2025
bc530c6
Replace image code examples with code blocks in homepage features
yatarkan Feb 18, 2025
29f2ac7
Replace code example component with standard code block
yatarkan Feb 18, 2025
d47d992
Remove redundant dependencies
yatarkan Feb 18, 2025
52fa89c
Fix global section element styles
yatarkan Feb 18, 2025
0687267
Restructure llm use case files
yatarkan Feb 18, 2025
d01c269
Rename section to match file structure
yatarkan Feb 18, 2025
5016f68
Remove unused component
yatarkan Feb 18, 2025
35c1d92
Add new language tabs component
yatarkan Feb 18, 2025
99b9c27
Expose mdx components and language tabs
yatarkan Feb 18, 2025
5fd2b80
Remove old language tabs component, reuse new one
yatarkan Feb 18, 2025
c5c7257
Export theme tabs
yatarkan Feb 18, 2025
35fe676
Reuse language tabs in llm pipeline mdx sections
yatarkan Feb 18, 2025
a4fc781
Fix code block styles in section on home page
yatarkan Feb 18, 2025
5a6dd65
Enable eslint
yatarkan Feb 19, 2025
c755e0a
Fix lint
yatarkan Feb 19, 2025
54a0d76
Reformat with prettier
yatarkan Feb 19, 2025
6ff7544
Update org name
yatarkan Feb 19, 2025
67b3873
Format mdx files
yatarkan Feb 19, 2025
420158c
Add prettier ignore
yatarkan Feb 19, 2025
fae8616
Fix method name in streamer example
yatarkan Feb 20, 2025
6c12ce2
Remove redundant prop
yatarkan Feb 20, 2025
33b7ebb
Remove peer dependencies
yatarkan Feb 20, 2025
8a6240a
Remove usage of clsx dep
yatarkan Feb 20, 2025
b58bfbf
Remove duplicated section column
yatarkan Feb 20, 2025
7268888
Replace footer link to ov docs
yatarkan Feb 20, 2025
8023a39
Remove reference section
yatarkan Feb 20, 2025
0953cb7
Fix indent
yatarkan Feb 20, 2025
60f6115
Fix returning enum from streamer
yatarkan Feb 20, 2025
f337fa3
Fix links
yatarkan Feb 20, 2025
a393692
Move alternating flags closer to command beginning
yatarkan Feb 20, 2025
bcedf7a
Reused text generation code examples
yatarkan Feb 20, 2025
ff5f93b
Fix code example
yatarkan Feb 20, 2025
7e3d722
Add button component
yatarkan Feb 20, 2025
8c3f7f6
Add install buttons with links to selector tool
yatarkan Feb 20, 2025
60dd638
Remove text placeholders
yatarkan Feb 20, 2025
7230430
Fix menu caret styles
yatarkan Feb 21, 2025
a08ce5b
Remove overview category
yatarkan Feb 21, 2025
a48eb5f
Remove getting started pages
yatarkan Feb 21, 2025
2cf583d
Enable install external link in sidebar
yatarkan Feb 21, 2025
ebcc1c8
Configure autogenerated items to ignore categories
yatarkan Feb 21, 2025
1b5add4
Add quick start guide page
yatarkan Feb 21, 2025
dbd542c
Remove redundant installation options text
yatarkan Feb 21, 2025
21fc313
Fix button props
yatarkan Feb 21, 2025
bdee139
Fix primary colors for buttons
yatarkan Feb 21, 2025
74b1b2e
Fix link target
yatarkan Feb 21, 2025
02c0e57
Add get started button
yatarkan Feb 21, 2025
520b96e
Merge branch 'master' into docs-pages
andrei-kochin Feb 25, 2025
42cbfbe
Change home page use cases layout
yatarkan Mar 3, 2025
fe82dac
Merge branch 'master' into docs-pages
yatarkan Mar 3, 2025
a314e93
Fix use cases label
yatarkan Mar 4, 2025
768ffad
Add supported models category
yatarkan Mar 4, 2025
9e383c1
Add base models table
yatarkan Mar 4, 2025
88ce290
Add llm models and table component
yatarkan Mar 4, 2025
cb36ef9
Add image generation models and table component
yatarkan Mar 4, 2025
fc41e50
Add inpainting models and table component
yatarkan Mar 4, 2025
8df7412
Add vlm models and table component
yatarkan Mar 4, 2025
9bc7aba
Add whisper models and table component
yatarkan Mar 4, 2025
b1806fb
Add supported models page with tables and notes
yatarkan Mar 4, 2025
384ee35
Remove breadcrumbs styles overwrides
yatarkan Mar 4, 2025
9cd18b0
Add content to introduction page
yatarkan Mar 4, 2025
789f2f5
Fix GH pages ubuntu runner
yatarkan Mar 4, 2025
2944250
Add download pre converted model info to model preparation step
yatarkan Mar 5, 2025
3fcc5f5
Add note for models sources
yatarkan Mar 6, 2025
2679392
Fix edit url
yatarkan Mar 6, 2025
2196a31
Merge branch 'master' into docs-pages-supported-models
yatarkan Mar 6, 2025
d6452c6
Fix device admonition
yatarkan Mar 6, 2025
b1ac8b3
Center align status cell
yatarkan Mar 6, 2025
b6a3fc6
Add initial content for image generation use case
yatarkan Mar 6, 2025
8e3620f
Fix abbreviation
yatarkan Mar 6, 2025
cc3b83a
Reuse code blocks for image generation on hame page
yatarkan Mar 6, 2025
c13673c
Change link to OV docs
yatarkan Mar 7, 2025
97d2ffb
Use class names in pipeline setup description
yatarkan Mar 7, 2025
f411047
Add explanation for system requirements
yatarkan Mar 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions site/docs/getting-started/introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,58 @@ sidebar_label: Introduction
---

# Introduction to OpenVINO GenAI

## What is OpenVINO GenAI?

OpenVINO™ GenAI is a library of the most popular Generative AI model pipelines, optimized execution methods, and samples that run on top of highly performant [OpenVINO Runtime](https://docs.openvino.ai/).
It provides simplified APIs for running generative models, hiding the complexity of the generation process and enabling developers to easily integrate state-of-the-art generative models into their applications with minimal code.

As a lightweight solution designed for efficient inference, OpenVINO GenAI includes all the core functionality needed for generative model execution (e.g. tokenization via `openvino-tokenizers`) with no external dependencies required.
This library is friendly to PC and laptop execution, and optimized for resource consumption.

## Key Features and Benefits

- **📦 Pre-built Generative AI Pipelines:** Ready-to-use pipelines for text generation (LLMs), image generation (Diffuser-based), speech processing (Whisper), and visual language models (VLMs). See all [supported use cases](/docs/category/use-cases).
- **👣 Minimal Footprint:** Smaller binary size and reduced memory footprint compared to other frameworks.
- **🚀 Performance Optimization:** Hardware-specific optimizations for CPU, GPU, and NPU devices.
- **👨‍💻 Programming Language Support:** Comprehensive APIs in both Python and C++.
- **🗜️ Model Compression:** Support for 8-bit and 4-bit weight compression, including embedding layers.
- **🎓 Advanced Inference Capabilities:** In-place KV-cache, dynamic quantization, speculative sampling, and more.
- **🎨 Wide Model Compatibility:** Support for popular models including Llama, Mistral, Phi, Qwen, Stable Diffusion, Flux, Whisper, and others. Refer to the [Supported Models](/docs/supported-models) for more details.

## Workflow Overview

Using OpenVINO GenAI typically involves three main steps:

1. **Model Preparation:**
- Convert model from other frameworks to the OpenVINO IR format (e.g. using `optimum-intel`), optionally applying weights compression.
- Download pre-converted model in OpenVINO IR format (e.g. from [OpenVINO Toolkit](https://huggingface.co/OpenVINO) organization on Hugging Face).
:::info

You can use models from [Hugging Face](https://huggingface.co/) and [ModelScope](https://modelscope.cn/home)

:::
2. **Pipeline Setup:** Initialize the appropriate pipeline for your task (`LLMPipeline`, `Text2ImagePipeline`, `WhisperPipeline`, `VLMPipeline`, etc.) with the converted model.
3. **Inference:** Run the model with your inputs using the pipeline's simple API.

![OpenVINO GenAI Workflow](/img/openvino-genai-workflow.svg)

## Comparison with Alternatives

Unlike base OpenVINO, which requires manual implementation of generation loops, tokenization, scheduling etc., OpenVINO GenAI provides these components in a ready-to-use package.

Compared to Hugging Face Optimum Intel, OpenVINO GenAI offers a smaller footprint, fewer dependencies, and better performance optimization options, particularly for C++ applications.

| Feature | OpenVINO GenAI | Base OpenVINO | Hugging Face Optimum Intel |
|-|-|-|-|
| Easy-to-use APIs | ✅ | ❌ | ✅ |
| Low footprint | ✅ | ✅ | ❌ |
| C++ support | ✅ | ✅ | ❌ |
| Pre-built pipelines | ✅ | ❌ | ✅ |
| Model variety | Medium | High | High |

## System Requirements

OpenVINO GenAI is built on top of OpenVINO Runtime and shares the same system requirements.

Refer to the [OpenVINO System Requirements](https://docs.openvino.ai/2025/about-openvino/release-notes-openvino/system-requirements.html) for more details.
8 changes: 8 additions & 0 deletions site/docs/supported-models/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"label": "Supported Models",
"position": 4,
"link": {
"type": "doc",
"id": "supported-models/index"
}
}
38 changes: 38 additions & 0 deletions site/docs/supported-models/_components/base-models-table/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import Link from '@docusaurus/Link';
import { Children } from 'react';

type BaseModelsTableProps = {
headers: string[];
rows: React.JSX.Element[];
};

export function BaseModelsTable({ headers, rows }: BaseModelsTableProps): React.JSX.Element {
return (
<table>
<thead>
<tr>
{headers.map((v) => (
<th key={v}>{v}</th>
))}
</tr>
</thead>
<tbody style={{ verticalAlign: 'baseline' }}>{Children.map(rows, (row) => row)}</tbody>
</table>
);
}

export const LinksCell = ({ links }: { links: string[] }) => (
<td>
<ul>
{links.map((link) => (
<li key={link}>
<Link href={link}>{new URL(link).pathname.slice(1)}</Link>
</li>
))}
</ul>
</td>
);

export const StatusCell = ({ value }: { value: boolean }) => (
<td style={{ textAlign: 'center' }}>{value ? '✅' : '❌'}</td>
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import React from 'react';
import { BaseModelsTable, LinksCell, StatusCell } from '../base-models-table';
import { IMAGE_GENERATION_MODELS } from './models';

export default function ImageGenerationModelsTable(): React.JSX.Element {
const headers = [
'Architecture',
'Text to Image',
'Image to Image',
'LoRA Support',
'Example HuggingFace Models',
];

const rows = IMAGE_GENERATION_MODELS.map(
({ architecture, textToImage, imageToImage, loraSupport, links }) => (
<tr key={architecture}>
<td>
<code style={{ whiteSpace: 'pre' }}>{architecture}</code>
</td>
<StatusCell value={textToImage} />
<StatusCell value={imageToImage} />
<StatusCell value={loraSupport} />
<LinksCell links={links} />
</tr>
)
);

return <BaseModelsTable headers={headers} rows={rows} />;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
type ImageGenerationModelType = {
architecture: string;
textToImage: boolean;
imageToImage: boolean;
loraSupport: boolean;
links: string[];
};

export const IMAGE_GENERATION_MODELS: ImageGenerationModelType[] = [
{
architecture: 'Latent Consistency Model',
textToImage: true,
imageToImage: true,
loraSupport: true,
links: ['https://huggingface.co/SimianLuo/LCM_Dreamshaper_v7'],
},
{
architecture: 'Stable Diffusion',
textToImage: true,
imageToImage: true,
loraSupport: true,
links: [
'https://huggingface.co/CompVis/stable-diffusion-v1-1',
'https://huggingface.co/CompVis/stable-diffusion-v1-2',
'https://huggingface.co/CompVis/stable-diffusion-v1-3',
'https://huggingface.co/CompVis/stable-diffusion-v1-4',
'https://huggingface.co/junnyu/stable-diffusion-v1-4-paddle',
'https://huggingface.co/jcplus/stable-diffusion-v1-5',
'https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5',
'https://huggingface.co/botp/stable-diffusion-v1-5',
'https://huggingface.co/dreamlike-art/dreamlike-anime-1.0',
'https://huggingface.co/stabilityai/stable-diffusion-2',
'https://huggingface.co/stabilityai/stable-diffusion-2-base',
'https://huggingface.co/stabilityai/stable-diffusion-2-1',
'https://huggingface.co/bguisard/stable-diffusion-nano-2-1',
'https://huggingface.co/justinpinkney/pokemon-stable-diffusion',
'https://huggingface.co/stablediffusionapi/architecture-tuned-model',
'https://huggingface.co/IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Chinese-EN-v0.1',
'https://huggingface.co/ZeroCool94/stable-diffusion-v1-5',
'https://huggingface.co/pcuenq/stable-diffusion-v1-4',
'https://huggingface.co/rinna/japanese-stable-diffusion',
'https://huggingface.co/benjamin-paine/stable-diffusion-v1-5',
'https://huggingface.co/philschmid/stable-diffusion-v1-4-endpoints',
'https://huggingface.co/naclbit/trinart_stable_diffusion_v2',
'https://huggingface.co/Fictiverse/Stable_Diffusion_PaperCut_Model',
],
},
{
architecture: 'Stable Diffusion XL',
textToImage: true,
imageToImage: true,
loraSupport: true,
links: [
'https://huggingface.co/stabilityai/stable-diffusion-xl-base-0.9',
'https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0',
'https://huggingface.co/stabilityai/sdxl-turbo',
],
},
{
architecture: 'Stable Diffusion 3',
textToImage: true,
imageToImage: false,
loraSupport: false,
links: [
'https://huggingface.co/stabilityai/stable-diffusion-3-medium-diffusers',
'https://huggingface.co/stabilityai/stable-diffusion-3.5-medium',
'https://huggingface.co/stabilityai/stable-diffusion-3.5-large',
'https://huggingface.co/stabilityai/stable-diffusion-3.5-large-turbo',
],
},
{
architecture: 'Flux',
textToImage: true,
imageToImage: false,
loraSupport: false,
links: [
'https://huggingface.co/black-forest-labs/FLUX.1-schnell',
'https://huggingface.co/Freepik/flux.1-lite-8B-alpha',
'https://huggingface.co/black-forest-labs/FLUX.1-dev',
'https://huggingface.co/shuttleai/shuttle-3-diffusion',
'https://huggingface.co/shuttleai/shuttle-3.1-aesthetic',
'https://huggingface.co/Shakker-Labs/AWPortrait-FL',
],
},
];
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import React from 'react';
import { BaseModelsTable, LinksCell, StatusCell } from '../base-models-table';
import { INPAINTING_MODELS } from './models';

export default function InpaintingModelsTable(): React.JSX.Element {
const headers = ['Architecture', 'LoRA Support', 'Example HuggingFace Models'];

const rows = INPAINTING_MODELS.map(({ architecture, loraSupport, links }) => (
<tr key={architecture}>
<td>
<code style={{ whiteSpace: 'pre' }}>{architecture}</code>
</td>
<StatusCell value={loraSupport} />
<LinksCell links={links} />
</tr>
));

return <BaseModelsTable headers={headers} rows={rows} />;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
type InpaintingModelType = {
architecture: string;
loraSupport: boolean;
links: string[];
};

export const INPAINTING_MODELS: InpaintingModelType[] = [
{
architecture: 'Stable Diffusion',
loraSupport: true,
links: [
'https://huggingface.co/stabilityai/stable-diffusion-2-inpainting',
'https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-inpainting',
'https://huggingface.co/botp/stable-diffusion-v1-5-inpainting',
'https://huggingface.co/parlance/dreamlike-diffusion-1.0-inpainting',
],
},
{
architecture: 'Stable Diffusion XL',
loraSupport: true,
links: ['https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1'],
},
];
27 changes: 27 additions & 0 deletions site/docs/supported-models/_components/llm-models-table/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import React from 'react';
import { BaseModelsTable, LinksCell } from '../base-models-table';
import { LLM_MODELS } from './models';

export default function LLMModelsTable(): React.JSX.Element {
const headers = ['Architecture', 'Models', 'Example HuggingFace Models'];

const rows = LLM_MODELS.map(({ architecture, models }) => (
<>
<tr key={architecture}>
<td rowSpan={models.length}>
<code>{architecture}</code>
</td>
<td>{models[0].name}</td>
<LinksCell links={models[0].links} />
</tr>
{models.slice(1).map(({ name, links }) => (
<tr key={name}>
<td>{name}</td>
<LinksCell links={links} />
</tr>
))}
</>
));

return <BaseModelsTable headers={headers} rows={rows} />;
}
Loading
Loading