基于 Llama 3 8B 定制本地 Ollama 模型

第一步: 下载 Llama 3 8B 模型文件

我们第一步是想自己部署尝鲜,因此直接下载压缩后的模型权重,文件为GGUF格式,GGUF格式是为了快速推理和优化内存使用而设计的,相比以前的GGML格式,GGUF支持更复杂的令牌化过程和特殊令牌处理,能更好地应对多样化的语言模型需求。就是因为有GGUF格式,Llama 3大语言模型才可以在笔记本电脑上运行,同时GGUF就一个文件,也简化了模型交换和部署的过程,它对促进模型的普及和应用有着积极作用。

因为 Hugging Face 官网正常无法访问,需要科学上网,因此推荐国内镜像进行下载:

官网地址:https://huggingface.co/QuantFactory/Meta-Llama-3-8B-Instruct-GGUF/tree/main
国内镜像:https://hf-mirror.com/QuantFactory/Meta-Llama-3-8B-Instruct-GGUF/tree/main

如上述列表中,GGUF 模型文件名称有Meta-Llama-3-8B-Instruct.Q4_K_M.gguf和Meta-Llama-3-8B-Instruct.Q5_K_M.gguf等:

  • Instruct 代表本模型是对基线模型进行了微调,用于更好地理解和生成遵循指令(instruction-following)的文本,以提供符合要求的响应

  • Q4/Q5 等代表模型权重的量化位数(其中Q是Quantization的缩小,即量化),是一种模型压缩技术,用于减少模型大小,同时降低对计算资源的需求(特别是内存),但又尽量保持模型的性能;数字4或5则代表量化精度的位数(Q4 是 4 位,Q5 是 5 位等),精度越高模型体积和内存使用也会越大,但仍然远小于未量化的基线模型

  • K_M/K_S代表含义笔者还未明确,K可能是Knowledge的缩写;M应该是Medium缩写(即中等模型),S应该是Small缩小(即小模型);若有明确的朋友,还望不吝告知,共同进步!

阿里巴巴通义千问团队发布了Qwen2系列开源模型,该系列模型包括5个尺寸的预训练和指令微调模型:Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B以及Qwen2-72B。对比当前最优的开源模型,Qwen2-72B在包括自然语言理解、知识、代码、数学及多语言等多项能力上均显著超越当前领先的Llama3-70B等大模型。

下载Qwen2-7B-instruct模型文件
为了简化模型的部署过程,我们直接下载GGUF文件。关于GGUF文件介绍,请详见部署Llama3-8B大模型的文章:玩转AI,笔记本电脑安装属于自己的Llama 3 8B大模型和对话客户端

打开Qwen2-7B-Instruct-GGUF模型文件列表(https://modelscope.cn/models/qwen/Qwen2-7B-Instruct-GGUF/files),我们选择qwen2-7b-instruct-q5_k_m.gguf并下载:

第二步: 基于 GGUF 模型文件创建 Ollama 模型

在我们存放Qwen2-7B的 GGUF 模型文件目录中,创建一个文件名为 Modelfile 的文件,该文件的内容如下:

FROM ./qwen2-7b-instruct-q5_k_m.gguf

TEMPLATE """
{{ if .System }}<|start_header_id|>system<|end_header_id|>
{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
{{ .Response }}<|eot_id|>
"""

PARAMETER stop "<|start_header_id|>"
PARAMETER stop "<|end_header_id|>"
PARAMETER stop "<|eot_id|>"

然后在Terminal终端,使用这个文件创建Ollama模型,这里我把Ollama的模型取名为Qwen2-7B:

$ ollama create Qwen2-7B -f ./Modelfile
transferring model data
using existing layer sha256:258dd2fa1bdf98b85327774e1fd36e2268c2a4b68eb9021d71106449ee4ba9d5
creating new layer sha256:14f4474ef69698bf4dbbc7409828341fbd85923319a801035e651d9fe6a9e9c9
writing manifest
success

最后,通过Ollama启动我们刚创建的大语言模型:

ollama run Qwen2-7B

启动完毕,其实我们已经有了一个和之前差不多的控制台对话界面,也可以与Qwen2-7B对话了。

图片
Ollama启动模型
如果我们不想要这个模型了,也可以通过命令行删除模型文件:ollama rm Qwen2-7B

我们也可以查看本地Ollama管理的模型列表:ollama list

Ollama存放模型文件根目录:~/.ollama

中查找 Embedding 模型的时候,首先看到了 mofanke/dmeta-embedding-zh 模型,这才发现 Ollama 中除了官方模型外还有用户自己上传的其他模型,搜索 dmeta-embedding-zh 找到了抱脸网上的对应模型:

https://huggingface.co/DMetaSoul/Dmeta-embedding-zh

https://liuzh.blog.csdn.net/article/details/137338173

https://github.com/ollama/ollama

作者:Jeebiz  创建时间:2024-07-02 22:54
最后编辑:Jeebiz  更新时间:2024-08-29 20:41