File size: 1,771 Bytes
8fd6d93
 
860a8fc
 
 
 
 
 
 
 
 
 
 
 
 
104c80a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
---
license: apache-2.0
datasets:
- wikimedia/wikipedia
- SiberiaSoft/SiberianPersonaChat-2
language:
- ru
- en
metrics:
- mse
tags:
- AIFramework 2.2 Open
- .net
- sbert
- C#
---

### Porting [this model](https://huggingface.co/FractalGPT/SbertDistil) for use in C#


* Example of use in C#:

  ```csharp
  using AI.DataPrepaire.DataLoader.NNWBlockLoader;
  using AI.DataStructs.Algebraic;
  using AI.ONNX.NLP.Bert;
  
  
  string path = "SbertDistilAIFr";
  // Загрузка модели Bert
  BertEmbedder embedder = BertEmbedder.FromPretrained(path);
  // Добавление последнего(линейного) слоя
  LinearLayerLoader linearLayer = LinearLayerLoader.LoadFromBinary(@$"{path}\1_Linear\model.aifr");
  embedder.V2VBlocks.Add(linearLayer);
  
  // Векторизация предложений
  Vector vects1 = embedder.ForwardSBert("Kittens love milk");
  Vector vects2 = embedder.ForwardSBert("Visual Studio Code (VS Code) — текстовый редактор, разработанный Microsoft для Windows, Linux и macOS.");
  Vector vects3 = embedder.ForwardSBert("Visual Studio Code, also commonly referred to as VS Code,[12] is a source-code editor developed by Microsoft for Windows, Linux and macOS.");
  Vector vects1_rus = embedder.ForwardSBert("Котята любят молоко");
  
  // Рассчет близости между текстами
  Console.WriteLine(vects1.Cos(vects1_rus));
  Console.WriteLine(vects1.Cos(vects2));
  Console.WriteLine(vects2.Cos(vects3));
  Console.WriteLine(vects1.Cos(vects3));
  Console.ReadKey();
  ```

* Network output

```
0.8312274467817271
0.18402859300814606
0.9556528309990797
0.14738954582438052
```


* [GitHub](https://github.com/AIFramework/AIFrameworkOpen)