Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O ONNX Runtime fornecido com o Windows ML permite que os aplicativos executem inferência em modelos ONNX localmente.
Se você estiver usando modelos de IA generativos, como LLMs (Modelos de Linguagem Grande) e conversão de fala em texto, consulte Executar LLMs e outros modelos generativos.
Criar uma sessão de inferência
As APIs são as mesmas que ao usar o ONNX Runtime diretamente. Por exemplo, para criar uma sessão de inferência:
// Create inference session using compiled model
using InferenceSession session = new(compiledModelPath, sessionOptions);
Sugerimos ler os documentos do ONNX Runtime para obter mais informações sobre como usar as APIs do ONNX Runtime no Windows ML. O código de inferência do modelo será diferente para cada modelo.
Comportamento de processamento de threads
Por padrão, o ONNX Runtime no Windows ML desabilita a rotação de threads, o que normalmente resulta em uma melhor duração da bateria.
Você pode habilitar a rotação de thread definindo as entradas de configuração de sessão "session.intra_op.allow_spinning" e "session.inter_op.allow_spinning" para "1". Recomendamos testar seu aplicativo com e sem thread girando para determinar quais configurações produzem o melhor desempenho e duração da bateria para seu modelo, caso de uso e clientes.
// Create session options and enable thread spinning
var sessionOptions = new SessionOptions();
sessionOptions.AddSessionConfigEntry("session.intra_op.allow_spinning", "1");
sessionOptions.AddSessionConfigEntry("session.inter_op.allow_spinning", "1");
// Create inference session using our session options
using InferenceSession session = new(modelPath, sessionOptions);
Compilar modelos
Antes de usar um modelo ONNX em uma sessão de inferência, ele geralmente deve ser compilado em uma representação otimizada que pode ser executada com eficiência no hardware subjacente do dispositivo.
A partir do ONNX Runtime 1.22, há novas APIs que encapsulam melhor as etapas de compilação. Mais detalhes estão disponíveis na documentação de compilação do ONNX Runtime (consulte OrtCompileApi struct).
// Prepare compilation options
OrtModelCompilationOptions compileOptions = new(sessionOptions);
compileOptions.SetInputModelPath(modelPath);
compileOptions.SetOutputModelPath(compiledModelPath);
// Compile the model
compileOptions.CompileModel();
Note
A compilação pode levar vários minutos para ser concluída. Para que qualquer interface do usuário permaneça responsiva, considere fazer isso como uma operação em segundo plano em seu aplicativo.
Dica
Para obter um desempenho ideal, compile seus modelos uma vez e reutilize a versão compilada. Armazene modelos compilados na pasta de dados local do aplicativo para execuções subsequentes. Note que as atualizações para os EPs ou tempo de execução podem exigir recompilação.