/BERT-ML.NET

BERT Model for dotnet ML

Primary LanguageC#MIT LicenseMIT

BERT-ML.NET

Question and Answering (Q&A) BERT model implementation for ML.NET.

An example of BERT model predictions in .NET Core/.NET Standard.

Model

https://github.com/onnx/models/tree/master/text/machine_comprehension/bert-squad

Download the pre-trained BERT ONNX model by running getDependicies.sh. Or download the model to the BERT.WebApi/Model folder.

GPU usage

The project is setup to run on CPU. This allows the sample to run on machines without an Nvidia GPU.

To run on an Nvidia CUDA GPU:

  • Set hasGpu = true in OnnxModelConfigurator.cs
  • Remove NuGet Microsoft.ML.OnnxRuntime.NoOpenMP
  • Add NuGet Microsoft.ML.OnnxRuntime.Gpu

Example queries

When the solution runs, it will start an ASP.NET webservice at localhost:5001.

Context Question Model Reply
(link) Bob is walking through the woods collecting blueberries and strawberries to make a pie. What is his name? {"tokens":["bob"],"probability":0.8884454}
(link) Bob is walking through the woods collecting blueberries and strawberries to make a pie. What will he bring home? {"tokens":["blueberries","and","strawberries"],"probability":0.4070111}
(link) Bob is walking through the woods collecting blueberries and strawberries to make a pie. Where is Bob? {"tokens":["walking","through","the","woods"],"probability":0.6123137}
(link) Bob is walking through the woods collecting blueberries and strawberries to make a pie. What will he bake? {"tokens":["blueberries","and","strawberries"],"probability":0.48385787}