hviske-tiske / huggingface_endpoint.md
dalager's picture
HF endpoints dokumentation
d78d25b
|
raw
history blame
3.48 kB

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_TOKEN environment variabel)
  • En endpoint url (put den i HF_ENDPOINT environment 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
}