phpaiola commited on
Commit
6faece0
·
verified ·
1 Parent(s): 71b2355

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +105 -3
README.md CHANGED
@@ -1,3 +1,105 @@
1
- ---
2
- license: mit
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ ---
4
+ # internlm-chatbode-20b-gguf
5
+
6
+ <!--- PROJECT LOGO -->
7
+ <p align="center">
8
+ <img src="https://huggingface.co/recogna-nlp/internlm-chatbode-7b/resolve/main/_1add1e52-f428-4c7c-bab2-3c6958e029fa.jpeg" alt="ChatBode Logo" width="400" style="margin-left:'auto' margin-right:'auto' display:'block'"/>
9
+ </p>
10
+
11
+ O InternLm-ChatBode é um modelo de linguagem ajustado para o idioma português, desenvolvido a partir do modelo [InternLM2](https://huggingface.co/internlm/internlm2-chat-20b). Este modelo foi refinado através do processo de fine-tuning utilizando o dataset UltraAlpaca.
12
+
13
+ O modelo internlm-chatbode-20b-gguf no formato GGUF pode ser utilizado pelo llama.cpp, um framework de código aberto altamente popular para inferência de LLMs, em várias plataformas de hardware, tanto localmente quanto na nuvem.
14
+ Este repositório oferece o internlm-chatbode-20b no formato GGUF em meia precisão e várias versões quantizadas incluindo q5_0, q5_k_m, q6_k, e q8_0.
15
+
16
+ Nas seções seguintes, apresentamos o procedimento de instalação, seguido por uma explicação do processo de download do modelo. E, finalmente, ilustramos os métodos para inferência do modelo e implantação do serviço por meio de exemplos específicos.
17
+
18
+ ## Instalação
19
+
20
+ Recomendamos construir o `llama.cpp` a partir do código-fonte. O snippet de código a seguir fornece um exemplo para a plataforma Linux CUDA. Para instruções em outras plataformas, consulte o [guia oficial](https://github.com/ggerganov/llama.cpp?tab=readme-ov-file#build).
21
+
22
+ - Passo 1: criar um ambiente conda e instalar cmake
23
+
24
+ ```shell
25
+ conda create --name internlm2 python=3.10 -y
26
+ conda activate internlm2
27
+ pip install cmake
28
+ ```
29
+
30
+ - Passo 2: clonar o código-fonte e construir o projeto
31
+
32
+ ```shell
33
+ git clone --depth=1 https://github.com/ggerganov/llama.cpp.git
34
+ cd llama.cpp
35
+ cmake -B build -DGGML_CUDA=ON
36
+ cmake --build build --config Release -j
37
+ ```
38
+
39
+ Todos os alvos construídos podem ser encontrados no subdiretório `build/bin`
40
+
41
+ Nas seções seguintes, assumimos que o diretório de trabalho está no diretório raiz do `llama.cpp`.
42
+
43
+ ## Download de Modelos
44
+
45
+ Na [introdução](#internlm-chatbode-20b-gguf), mencionamos que este repositório inclui vários modelos com diferentes níveis de precisão computacional. Você pode baixar o modelo apropriado com base nas suas necessidades.
46
+ Por exemplo, `internlm-chatbode-20b-f16.gguf` pode ser baixado como abaixo:
47
+
48
+ ```shell
49
+ pip install huggingface-hub
50
+ huggingface-cli download recogna-nlp/internlm-chatbode-20b-gguf internlm-chatbode-20b-f16.gguf --local-dir . --local-dir-use-symlinks False
51
+ ```
52
+
53
+ ## Inferência
54
+
55
+ Você pode usar o `llama-cli` para realizar inferências. Para uma explicação detalhada do `llama-cli`, consulte [este guia](https://github.com/ggerganov/llama.cpp/blob/master/examples/main/README.md)
56
+
57
+ ```shell
58
+ build/bin/llama-cli \
59
+ --model internlm-chatbode-20b-f16.gguf \
60
+ --predict 512 \
61
+ --ctx-size 4096 \
62
+ --gpu-layers 49 \
63
+ --temp 0.8 \
64
+ --top-p 0.8 \
65
+ --top-k 50 \
66
+ --seed 1024 \
67
+ --color \
68
+ --prompt "<|im_start|>system\nVocê é assistente de IA chamado ChatBode.\n- O ChatBode é um modelo de língua conversacional projetado para ser prestativo, honesto e inofensivo.\n- O ChatBode pode entender e se comunicar fluentemente na linguagem escolhida pelo usuário, em especial o Português, o Inglês e o 中文.<|im_end|>\n" \
69
+ --interactive \
70
+ --multiline-input \
71
+ --conversation \
72
+ --verbose \
73
+ --logdir workdir/logdir \
74
+ --in-prefix "<|im_start|>user\n" \
75
+ --in-suffix "<|im_end|>\n<|im_start|>assistant\n"
76
+ ```
77
+
78
+ ## Servindo
79
+
80
+ `llama.cpp` fornece um servidor compatível com a API OpenAI - `llama-server`. Você pode implantar `internlm-chatbode-20b-f16.gguf` em um serviço assim:
81
+
82
+ ```shell
83
+ ./build/bin/llama-server -m ./internlm-chatbode-20b-f16.gguf -ngl 49
84
+ ```
85
+
86
+ No lado do cliente, você pode acessar o serviço através da API OpenAI:
87
+
88
+ ```python
89
+ from openai import OpenAI
90
+ client = OpenAI(
91
+ api_key='YOUR_API_KEY', #Como não setamos chaves válidas, qualquer uma é aceita, inclusive da forma que está aqui
92
+ base_url='http://localhost:8080/v1'
93
+ )
94
+ model_name = client.models.list().data[0].id
95
+ response = client.chat.completions.create(
96
+ model=model_name,
97
+ messages=[
98
+ {"role": "system", "content": "Você é assistente de IA chamado ChatBode.\n- O ChatBode é um modelo de língua conversacional projetado para ser prestativo, honesto e inofensivo.\n- O ChatBode pode entender e se comunicar fluentemente na linguagem escolhida pelo usuário, em especial o Português, o Inglês e o 中文."},
99
+ {"role": "user", "content": "Olá, tudo bem? Estou precisando de ajuda em uma tarefa! Me explique o que é o teorema de Pitágoras e dê um exercício resolvido como exemplo."},
100
+ ],
101
+ temperature=0.8,
102
+ top_p=0.8
103
+ )
104
+ print(response)
105
+ ```