Skip to content

Commit

Permalink
Update Oracle documentation (#35)
Browse files Browse the repository at this point in the history
* Fix binary initialization

* Add instructions to run without docker

* Add expected throughtput
  • Loading branch information
hugoabonizio committed Jan 9, 2024
1 parent f65a4e0 commit 9bcd854
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 7 deletions.
41 changes: 35 additions & 6 deletions examples/oracle-cloud.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

Este tutorial mostra como executar o MariTalk Local na Oracle Cloud Infrastructure (OCI). Para isso, utilizaremos Docker em uma instância com a GPU Nvidia A10 (`VM.GPU.A10.1`).

Para adquirir uma licença da MariTalk Local [clique aqui](https://maritaca.ai/#maritalk-local).

1. Crie uma instância na OCI selecionando `NVIDIA GPU Cloud Machine Image` como imagem e `VM.GPU.A10.1` como shape.

![](/.github/imgs/oracle-screenshot.png)
Expand Down Expand Up @@ -31,19 +33,42 @@ $ nvidia-smi
+---------------------------------------------------------------------------------------+
```

3. Você pode instalar as dependências necessárias manualmente, mas neste tutorial vamos usar a imagem Docker da Nvidia com CUDA v12 para iniciar a MariTalk Local. O comando abaixo vai iniciar um terminal interativo para instalarmos as ferramentas necessárias. Em caso de deploy em produção, é recomendado criar um container a partir da imagem `nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04` com os comandos necessários.
Você pode instalar as dependências necessárias diretamente no Sistema Operacional da instância ou usar Docker. Selecione abaixo uma das duas opções:

<details>
<summary>Sistema Operacional</summary>

3. Você pode instalar as dependências necessárias manualmente através do gerenciador de pacotes `apt`. O pacote necessário é o `cuda-toolkit-12`, que irá instalar as bibliotecas (*.so) necessárias para executar o binário da MariTalk Local.

```
$ sudo apt update
$ sudo apt install cuda-toolkit-12
```

4. Instale a biblioteca Python para interagir com o servidor da MariTalk Local.

```
sudo docker run -it --gpus all nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04 /bin/bash
$ python3 -m pip install maritalk
```
</details>

<details>
<summary>Docker</summary>

3. Você pode instalar as dependências necessárias manualmente, mas nesta seção vamos usar a imagem Docker da Nvidia com CUDA v12 para iniciar a MariTalk Local. O comando abaixo vai iniciar um terminal interativo para instalarmos as ferramentas necessárias. Em caso de deploy em produção, é recomendado criar um container a partir da imagem `nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04` com os comandos necessários.

```
$ sudo docker run -it --gpus all nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04 /bin/bash
```

4. Instale as dependências.

```
apt update
apt install python3 python3-pip
python3 -m pip install maritalk
$ apt update
$ apt install python3 python3-pip
$ python3 -m pip install maritalk
```
</details>

5. Inicie um console Python (`$ python3`) para iniciar o servidor da MariTalk Local e comece a testar!

Expand All @@ -65,4 +90,8 @@ Starting MariTalk Local API at http://localhost:9000
{'output': 'nadador, marinho e azul.', 'queue_time': 0, 'prompt_time': 270, 'generation_time': 143}
```

Para adquirir uma licença da MariTalk Local [clique aqui](https://maritaca.ai/#maritalk-local).
## Observações

- Se você estiver executando uma instância com um HDD em vez de um SSD, o carregamento inicial pode levar algum tempo para ser concluído, então o processo pode demorar alguns minutos para começar a responder às requisições.

- Executando em uma GPU Nvidia A10 e considerando uma entrada de ~1.000 tokens e uma saída de ~500 tokens, espera-se um throughput de aproximadamente 17 tokens/s (ou 46 tokens/s processados no total).
3 changes: 2 additions & 1 deletion maritalk/resources/local.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@ def start_server(
cuda_version: Optional[int] = None,
ssl_version: Optional[int] = None,
):
if not os.path.exists(os.path.expanduser(bin_path)):
bin_path = os.path.expanduser(bin_path)
if not os.path.exists(bin_path):
if not cuda_version:
check_gpu()
detected_versions = find_libs()
Expand Down

0 comments on commit 9bcd854

Please sign in to comment.