Spaces:
Running
on
L40S
Running
on
L40S
File size: 2,693 Bytes
05d3571 |
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
## LASER Docker Image
This image provides a convenient way to run LASER in a Docker container.
### Building the image
To build the image, run the following command from the root of the LASER directory:
```
docker build --tag laser -f docker/Dockerfile .
```
### Specifying Languages with `langs` Argument
You can pre-download the encoders and tokenizers for specific languages by using the `langs` build argument. This argument accepts a space-separated list of language codes. For example, to build an image with models for English and French, use the following command:
```
docker build --build-arg langs="eng_Latn fra_Latn" -t laser -f docker/Dockerfile .
```
If the `langs` argument is not specified during the build process, the image will default to building with English (`eng_Latn`). It's important to note that in this default case where English is selected, the LASER2 model, which supports 92 languages, is used. For a comprehensive list of LASER2 supported languages, refer to `LASER2_LANGUAGES_LIST` in [`language_list.py`](https://github.com/facebookresearch/LASER/blob/main/laser_encoders/language_list.py).
### Running the Image
Once the image is built, you can run it with the following command:
```
docker run -it laser
```
**Note:** If you want to expose a local port to the REST server on top of the embed task, you can do so by executing the following command instead of the last command:
```
docker run -it -p [CHANGEME_LOCAL_PORT]:80 laser python app.py
```
This will override the command line entrypoint of the Docker container.
Example:
```
docker run -it -p 8081:80 laser python app.py
```
This Flask server will serve a REST Api that can be use by calling your server with this URL :
```
http://127.0.0.1:[CHANGEME_LOCAL_PORT]/vectorize?q=[YOUR_SENTENCE_URL_ENCODED]&lang=[LANGUAGE]
```
Example:
```
http://127.0.0.1:8081/vectorize?q=ki%20lo%20'orukọ%20ẹ&lang=yor
```
Sample response:
```
{
"content": "ki lo 'orukọ ẹ",
"embedding": [
[
-0.10241681337356567,
0.11120740324258804,
-0.26641348004341125,
-0.055699944496154785,
....
....
....
-0.034048307687044144,
0.11005636304616928,
-0.3238321840763092,
-0.060631975531578064,
-0.19269055128097534,
]
}
```
Here is an example of how you can send requests to it with python:
```python
import requests
import numpy as np
url = "http://127.0.0.1:[CHANGEME_LOCAL_PORT]/vectorize"
params = {"q": "Hey, how are you?\nI'm OK and you?", "lang": "en"}
resp = requests.get(url=url, params=params).json()
print(resp["embedding"])
``` |