dalager commited on
Commit
d78d25b
·
1 Parent(s): 54fb37d

HF endpoints dokumentation

Browse files
Files changed (2) hide show
  1. README.md +8 -1
  2. huggingface_endpoint.md +117 -0
README.md CHANGED
@@ -60,4 +60,11 @@ For at teste hastighed, er der kørt på følgende længder lyd, hvor CER og WER
60
  - 10 minutter
61
  - 30 minutter
62
 
63
- ![Hastighed](./duration_plot.png)
 
 
 
 
 
 
 
 
60
  - 10 minutter
61
  - 30 minutter
62
 
63
+ ![Hastighed](./duration_plot.png)
64
+
65
+
66
+ ## Deployment
67
+
68
+ Hviske-tiske kan deployes som andre faster-whisper modeller, men en hurtig måde at komme i luften på er at lave et lille Hugging Face Inference Endpoint med en lille GPU T4 instans og pege den denne model.
69
+
70
+ Se hvordan her: [huggingface_endpoint.md](huggingface_endpoint.md)
huggingface_endpoint.md ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Deploy til Hugging Face Inference Endpoints
2
+
3
+ For at deploye til Huggingface [Inference Endpoints](https://endpoints.huggingface.co/) er der lavet en `handler.py` der kalder ned i modellen.
4
+
5
+ Den er skræddersyet til at håndtere et subset af Faster Whisper parametre, der føres videre ned i modellens `transcribe()` funktion.
6
+
7
+ ## Tilføj Environment variable
8
+
9
+ For at de installerede `ctranslate2` og `faster-whisper` moduler kan resolve de rigtige NVidia CUBLASS og CUDNN libraries, skal man på sit inference endpoint justere en path:
10
+
11
+ **`LD_LIBRARY_PATH`** skal pege på den rigtige placering af cudnn og cublass pakkerne, ellers får man underlige fejl
12
+
13
+ **`CUDA_VISIBLE_DEVICES`** skal pege på GPUens device id, pt `0`
14
+
15
+ **`LOG_DIAGNOSTICS`** hvis man gerne vil have dumpet sine environment diagnostics
16
+
17
+ I handlerens `init()` logges der således installerede pip-pakker og environmentvariable i containeren, som man kan bruge til at fejlfinde, hvis der sker ændringer til Huggingface inference endpoint containers, der får ting til at gå i stykker.
18
+
19
+ I env format:
20
+
21
+ ```env file=.env
22
+ LD_LIBRARY_PATH=/usr/local/lib/python3.11/dist-packages/nvidia/cublas/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cudnn/lib
23
+ CUDA_VISIBLE_DEVICES=0
24
+ LOG_DIAGNOSTICS=true
25
+ ```
26
+
27
+ ## Test mod deployet endpoint
28
+
29
+ Der er et par test scripts man kan bruge til hurtigt at teste sit endpoint med.
30
+
31
+ Du skal bruge
32
+
33
+ - Et hugging face access token med read access til dine ressourcer (put det i `HF_TOKEN` environment variabel)
34
+ - En endpoint url (put den i `HF_ENDPOINT` environment variabel)
35
+
36
+ ### `hf_endpoint_client.py` (Python)
37
+
38
+ Du kan teste mod det deployede endpoint ved at bruge `hf_endpoint_client.py` scriptet i `/tests/` folderen.
39
+
40
+ Kopier `.env.example` til `.env` og juster hf endpoint og token.
41
+
42
+ Placer en 16kz mono wav fil i folderen.
43
+
44
+ Så kan du køre den.
45
+
46
+ ```bash
47
+ python -m venv venv
48
+
49
+ # hvis windows
50
+ ./venv/scripts/activate
51
+ # ellers
52
+ source ./venv/scripts/activate.sh
53
+
54
+
55
+ pip install -r requirements.
56
+
57
+ # hvis du ikkke er i 16000 hz
58
+ python hf_endpoint_client.py convert ./myfile.wav
59
+
60
+ # transcribe
61
+ python hf_endpoint_client.py transcribe ./my16khzfile.wav
62
+
63
+ ```
64
+
65
+ ### `hf_endpoint_client.js` (Javascript/Node)
66
+
67
+ Ovenstående er også konverteret til et javacript script, der har den fordel at du kun skal have NodeJS installeret.
68
+
69
+ Hvis du har dine environment variable på plads kan du køre
70
+
71
+ ```bash
72
+ node.exe .\hf_endpoint_client.js transcribe .\graakrkagen_16k.wav
73
+ ```
74
+
75
+ Og få et resultat i stil med
76
+
77
+ ```text
78
+ Også indbyrdes forskelle mellem gråkravers og sortkravers stemmer blev registreret i den italienske overgangszone.
79
+ ```
80
+
81
+ Og desuden et logdump til en txt-fil der indeholder noget i stil med dette:
82
+
83
+ ```text
84
+ ----- PARAMETERS -----
85
+ {
86
+ "word_timestamps": false,
87
+ "temperature": [
88
+ 0,
89
+ 0.1,
90
+ 0.3,
91
+ 0.5,
92
+ 0.7,
93
+ 0.9,
94
+ 1
95
+ ],
96
+ "repetition_penalty": 1.2,
97
+ "log_prob_threshold": -1
98
+ }
99
+ ----- RESULT -----
100
+ {
101
+ "text": " Også indbyrdes forskelle mellem gråkravers og sortkravers stemmer blev registreret i den italienske overgangszone.",
102
+ "segments": [
103
+ {
104
+ "id": 1,
105
+ "text": " Også indbyrdes forskelle mellem gråkravers og sortkravers stemmer blev registreret i den italienske overgangszone.",
106
+ "start": 0,
107
+ "end": 9.56,
108
+ "temperature": 0,
109
+ "avg_logprob": -0.11523437630385161,
110
+ "compression_ratio": 1.1717171717171717,
111
+ "no_speech_prob": 0.0006575584411621094
112
+ }
113
+ ],
114
+ "language": "da",
115
+ "language_probability": 1
116
+ }
117
+ ```