Edit model card

internlm-chatbode-20b-gguf

ChatBode Logo

O InternLm-ChatBode é um modelo de linguagem ajustado para o idioma português, desenvolvido a partir do modelo InternLM2. Este modelo foi refinado através do processo de fine-tuning utilizando o dataset UltraAlpaca.

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. 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.

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.

Instalação

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.

  • Passo 1: criar um ambiente conda e instalar cmake
conda create --name internlm2 python=3.10 -y
conda activate internlm2
pip install cmake
  • Passo 2: clonar o código-fonte e construir o projeto
git clone --depth=1 https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j

Todos os alvos construídos podem ser encontrados no subdiretório build/bin

Nas seções seguintes, assumimos que o diretório de trabalho está no diretório raiz do llama.cpp.

Download de Modelos

Na introdução, 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. Por exemplo, internlm-chatbode-20b-f16.gguf pode ser baixado como abaixo:

pip install huggingface-hub
huggingface-cli download recogna-nlp/internlm-chatbode-20b-gguf internlm-chatbode-20b-f16.gguf --local-dir . --local-dir-use-symlinks False

Inferência

Você pode usar o llama-cli para realizar inferências. Para uma explicação detalhada do llama-cli, consulte este guia

build/bin/llama-cli \
    --model internlm-chatbode-20b-f16.gguf   \
    --predict 512 \
    --ctx-size 4096 \
    --gpu-layers 49 \
    --temp 0.8 \
    --top-p 0.8 \
    --top-k 50 \
    --seed 1024 \
    --color \
    --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" \
    --interactive \
    --multiline-input \
    --conversation \
    --verbose \
    --logdir workdir/logdir \
    --in-prefix "<|im_start|>user\n" \
    --in-suffix "<|im_end|>\n<|im_start|>assistant\n"

Servindo

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:

./build/bin/llama-server -m ./internlm-chatbode-20b-f16.gguf -ngl 49

No lado do cliente, você pode acessar o serviço através da API OpenAI:

from openai import OpenAI
client = OpenAI(
    api_key='YOUR_API_KEY', #Como não setamos chaves válidas, qualquer uma é aceita, inclusive da forma que está aqui
    base_url='http://localhost:8080/v1'
)
model_name = client.models.list().data[0].id
response = client.chat.completions.create(
  model=model_name,
  messages=[
    {"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 中文."},
    {"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."},
  ],
  temperature=0.8,
  top_p=0.8
)
print(response)
Downloads last month
165
GGUF
Model size
19.9B params
Architecture
internlm2

2-bit

3-bit

4-bit

5-bit

6-bit

8-bit

16-bit

Inference API
Unable to determine this model's library. Check the docs .