159 lines
4.3 KiB
Markdown
159 lines
4.3 KiB
Markdown
---
|
|
base_model: Qwen/Qwen2.5-Coder-7B-Instruct
|
|
language:
|
|
- en
|
|
library_name: transformers
|
|
license: apache-2.0
|
|
license_link: https://huggingface.co/Qwen/Qwen2.5-Coder-7B-Instruct/blob/main/LICENSE
|
|
pipeline_tag: text-generation
|
|
tags:
|
|
- code
|
|
- codeqwen
|
|
- chat
|
|
- qwen
|
|
- qwen-coder
|
|
- llama-cpp
|
|
- gguf-my-repo
|
|
---
|
|
|
|
# smcleod/Qwen2.5-Coder-7B-Instruct-Q8_0-GGUF
|
|
This model was converted to GGUF format from [`Qwen/Qwen2.5-Coder-7B-Instruct`](https://huggingface.co/Qwen/Qwen2.5-Coder-7B-Instruct) using llama.cpp via the ggml.ai's [GGUF-my-repo](https://huggingface.co/spaces/ggml-org/gguf-my-repo) space.
|
|
Refer to the [original model card](https://huggingface.co/Qwen/Qwen2.5-Coder-7B-Instruct) for more details on the model.
|
|
|
|
|
|
## Ollama Modelfile (draft/beta!)
|
|
|
|
```
|
|
|
|
# ollama create qwen2.5-coder-7b-instruct:q8_0 -f modelfiles/Modelfile-qwen2.5-coder
|
|
|
|
FROM ../qwen2.5-coder-7b-instruct-q8_0.gguf
|
|
|
|
# This is Sam's hacked up template 2024-09-19
|
|
TEMPLATE """
|
|
{{- $fim_prefix := .FIMPrefix -}}
|
|
{{- $fim_suffix := .FIMSuffix -}}
|
|
{{- $repo_name := .RepoName -}}
|
|
{{- $files := .Files -}}
|
|
{{- $has_tools := gt (len .Tools) 0 -}}
|
|
{{- if $fim_prefix -}}
|
|
<|fim_prefix|>{{ $fim_prefix }}<|fim_suffix|>{{ $fim_suffix }}<|fim_middle|>
|
|
{{- else if $repo_name -}}
|
|
<|repo_name|>{{ $repo_name }}
|
|
{{- range $files }}
|
|
<|file_sep|>{{ .Path }}
|
|
{{ .Content }}
|
|
{{- end }}
|
|
{{- else -}}
|
|
{{- if or .System $has_tools -}}
|
|
<|im_start|>system
|
|
{{- if .System }}
|
|
{{ .System }}
|
|
{{- end }}
|
|
{{- if $has_tools }}
|
|
|
|
# Tools
|
|
|
|
You may call one or more functions to assist with the user query.
|
|
|
|
You are provided with function signatures within <tools></tools> XML tags:
|
|
<tools>
|
|
{{- range .Tools }}
|
|
{"type": "function", "function": {{ .Function }}}
|
|
{{- end }}
|
|
</tools>
|
|
|
|
For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
|
|
<tool_call>
|
|
{"name": <function-name>, "arguments": <args-json-object>}
|
|
</tool_call>
|
|
{{- end }}
|
|
<|im_end|>
|
|
{{- end }}
|
|
{{- if .Messages }}
|
|
{{- range $i, $message := .Messages }}
|
|
{{- if eq .Role "user" }}<|im_start|>user
|
|
{{ .Content }}<|im_end|>
|
|
{{- else if eq .Role "assistant" }}<|im_start|>assistant
|
|
{{- if .Content }}{{ .Content }}
|
|
{{- else if .ToolCalls }}<tool_call>
|
|
{{- range .ToolCalls }}
|
|
{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}
|
|
{{- end }}
|
|
</tool_call>
|
|
{{- end }}<|im_end|>
|
|
{{- else if eq .Role "tool" }}<|im_start|>user
|
|
<tool_response>
|
|
{{ .Content }}
|
|
</tool_response><|im_end|>
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- else if .Prompt -}}
|
|
<|im_start|>user
|
|
{{ .Prompt }}<|im_end|>
|
|
{{- end -}}
|
|
<|im_start|>assistant
|
|
{{ .Response }}
|
|
{{- end -}}
|
|
"""
|
|
|
|
PARAMETER stop "<|im_start|>"
|
|
PARAMETER stop "<|im_end|>"
|
|
PARAMETER stop "<|fim_prefix|>"
|
|
PARAMETER stop "<|fim_suffix|>"
|
|
PARAMETER stop "<|fim_middle|>"
|
|
PARAMETER stop "<|repo_name|>"
|
|
PARAMETER stop "<|file_sep|>"
|
|
|
|
### Tuning ##
|
|
PARAMETER num_ctx 16384
|
|
PARAMETER temperature 0.3
|
|
PARAMETER top_p 0.8
|
|
|
|
# PARAMETER num_batch 1024
|
|
# PARAMETER num_keep 512
|
|
# PARAMETER presence_penalty 0.2
|
|
# PARAMETER frequency_penalty 0.2
|
|
# PARAMETER repeat_last_n 50
|
|
```
|
|
|
|
## Use with llama.cpp
|
|
Install llama.cpp through brew (works on Mac and Linux)
|
|
|
|
```bash
|
|
brew install llama.cpp
|
|
|
|
```
|
|
Invoke the llama.cpp server or the CLI.
|
|
|
|
### CLI:
|
|
```bash
|
|
llama-cli --hf-repo smcleod/Qwen2.5-Coder-7B-Instruct-Q8_0-GGUF --hf-file qwen2.5-coder-7b-instruct-q8_0.gguf -p "The meaning to life and the universe is"
|
|
```
|
|
|
|
### Server:
|
|
```bash
|
|
llama-server --hf-repo smcleod/Qwen2.5-Coder-7B-Instruct-Q8_0-GGUF --hf-file qwen2.5-coder-7b-instruct-q8_0.gguf -c 2048
|
|
```
|
|
|
|
Note: You can also use this checkpoint directly through the [usage steps](https://github.com/ggerganov/llama.cpp?tab=readme-ov-file#usage) listed in the Llama.cpp repo as well.
|
|
|
|
Step 1: Clone llama.cpp from GitHub.
|
|
```
|
|
git clone https://github.com/ggerganov/llama.cpp
|
|
```
|
|
|
|
Step 2: Move into the llama.cpp folder and build it with `LLAMA_CURL=1` flag along with other hardware-specific flags (for ex: LLAMA_CUDA=1 for Nvidia GPUs on Linux).
|
|
```
|
|
cd llama.cpp && LLAMA_CURL=1 make
|
|
```
|
|
|
|
Step 3: Run inference through the main binary.
|
|
```
|
|
./llama-cli --hf-repo smcleod/Qwen2.5-Coder-7B-Instruct-Q8_0-GGUF --hf-file qwen2.5-coder-7b-instruct-q8_0.gguf -p "The meaning to life and the universe is"
|
|
```
|
|
or
|
|
```
|
|
./llama-server --hf-repo smcleod/Qwen2.5-Coder-7B-Instruct-Q8_0-GGUF --hf-file qwen2.5-coder-7b-instruct-q8_0.gguf -c 2048
|
|
```
|