--- 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 XML tags: {{- range .Tools }} {"type": "function", "function": {{ .Function }}} {{- end }} For each function call, return a json object with function name and arguments within XML tags: {"name": , "arguments": } {{- 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 }} {{- range .ToolCalls }} {"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}} {{- end }} {{- end }}<|im_end|> {{- else if eq .Role "tool" }}<|im_start|>user {{ .Content }} <|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 ```