internlm-chatbode-20b-gguf
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