Deploy til Hugging Face Inference Endpoints
For at deploye til Huggingface Inference Endpoints er der lavet en handler.py der kalder ned i modellen.
Den er skræddersyet til at håndtere et subset af Faster Whisper parametre, der føres videre ned i modellens transcribe() funktion.
Tilføj Environment variable
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:
LD_LIBRARY_PATH skal pege på den rigtige placering af cudnn og cublass pakkerne, ellers får man underlige fejl
CUDA_VISIBLE_DEVICES skal pege på GPUens device id, pt 0
LOG_DIAGNOSTICS hvis man gerne vil have dumpet sine environment diagnostics
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.
I env format:
LD_LIBRARY_PATH=/usr/local/lib/python3.11/dist-packages/nvidia/cublas/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cudnn/lib
CUDA_VISIBLE_DEVICES=0
LOG_DIAGNOSTICS=true
Test mod deployet endpoint
Der er et par test scripts man kan bruge til hurtigt at teste sit endpoint med.
Du skal bruge
- Et hugging face access token med read access til dine ressourcer (put det i
HF_TOKENenvironment variabel) - En endpoint url (put den i
HF_ENDPOINTenvironment variabel)
hf_endpoint_client.py (Python)
Du kan teste mod det deployede endpoint ved at bruge hf_endpoint_client.py scriptet i /tests/ folderen.
Kopier .env.example til .env og juster hf endpoint og token.
Placer en 16kz mono wav fil i folderen.
Så kan du køre den.
python -m venv venv
# hvis windows
./venv/scripts/activate
# ellers
source ./venv/scripts/activate.sh
pip install -r requirements.
# hvis du ikkke er i 16000 hz
python hf_endpoint_client.py convert ./myfile.wav
# transcribe
python hf_endpoint_client.py transcribe ./my16khzfile.wav
hf_endpoint_client.js (Javascript/Node)
Ovenstående er også konverteret til et javacript script, der har den fordel at du kun skal have NodeJS installeret.
Hvis du har dine environment variable på plads kan du køre
node.exe .\hf_endpoint_client.js transcribe .\graakrkagen_16k.wav
Og få et resultat i stil med
Også indbyrdes forskelle mellem gråkravers og sortkravers stemmer blev registreret i den italienske overgangszone.
Og desuden et logdump til en txt-fil der indeholder noget i stil med dette:
----- PARAMETERS -----
{
"word_timestamps": false,
"temperature": [
0,
0.1,
0.3,
0.5,
0.7,
0.9,
1
],
"repetition_penalty": 1.2,
"log_prob_threshold": -1
}
----- RESULT -----
{
"text": " Også indbyrdes forskelle mellem gråkravers og sortkravers stemmer blev registreret i den italienske overgangszone.",
"segments": [
{
"id": 1,
"text": " Også indbyrdes forskelle mellem gråkravers og sortkravers stemmer blev registreret i den italienske overgangszone.",
"start": 0,
"end": 9.56,
"temperature": 0,
"avg_logprob": -0.11523437630385161,
"compression_ratio": 1.1717171717171717,
"no_speech_prob": 0.0006575584411621094
}
],
"language": "da",
"language_probability": 1
}