当前位置:   article > 正文

ollama 使用自定义大模型_ollama 自定义模型

ollama 自定义模型

目录

前言

一、下载源码

1.下载ollama源码

2.下载llama.cpp源码

3.复制项目文件

二、安装python依赖

三、合并模型文件

1.以Chinese-Mistral-7B-Instruct-v0.1为例,将4个safetensors文件合并为一个模型文件

2.下载Chinese-Mistral-7B-Instruct-v0.1模型

2.1下载模型

2.2合并文件

2.3合并过程

四、量化模型

1.安装cmake和编译器

2.开始编译

3.量化模型

五、制作ollama使用的模型

1.创建Modelfile 文件

2.创建模型

3.运行模型


前言

使用ollama+open-webui可以轻松部署本地大模型,但是通过ollama下载的模型都是别人制作好的。我的模型部署思路是大模型为底座+lora微调,实现真正的个人大模型,后续将分享自己的lora微调经验和ollama调用lora。本文主要介绍如何在windows系统下将Safetensors 模型制作成ollama使用的自定义模型,linux系统自定义模型制作方法可直接按照官方文档执行。ollama官方文档提供了如何将GGUF,Pytorch或Safetensors 文件制作为自定义模型的方法。官方文档https://github.com/ollama/ollama/blob/main/docs/import.md

一、下载源码

1.下载ollama源码

https://github.com/ollama/ollama/tree/main

2.下载llama.cpp源码

https://github.com/ggerganov/llama.cpp

下载解压缩后,形成2个项目的文件

3.复制项目文件

3.1以ollama为主项目,用pycharm打开ollama文件夹,显示如下:

3.2将之前下载的llama.cpp项目文件夹复制到图上的llama.cpp位置。鼠标选中llm文件夹,按ctral+v即粘贴至llama.cpp文件夹。效果如下所示:

二、安装python依赖

打开终端,确保自己的路径如下所示。养成良好习惯,创建一个虚拟环境,然后再执行pip安装命令,确保不与电脑上的其他项目环境发生冲突。

pip install ./llm/llama.cpp/requirements.txt

三、合并模型文件

1.以Chinese-Mistral-7B-Instruct-v0.1为例,将4个safetensors文件合并为一个模型文件

2.下载Chinese-Mistral-7B-Instruct-v0.1模型

2.1下载模型

模型可以在https://huggingface.co/,或者huggingface镜像网站https://hf-mirror.com/,或者魔搭社区进行下载,我用魔搭社区的python脚本进行下载,下载速度直接拉满,执行前需要先运行pip install modelscope 。

  1. from modelscope import snapshot_download
  2. #模型存放路径
  3. model_path = r'D:\huggingface'
  4. #模型名字
  5. name = 'itpossible/Chinese-Mistral-7B-Instruct-v0.1'
  6. model_dir = snapshot_download(name, cache_dir=model_path, revision='master')

2.2合并文件

  1. # python llm/llama.cpp/convert.py 刚才下载好的模型文件地址 --outtype f16 --outfile 保存的文件名.bin
  2. python llm/llama.cpp/convert.py D:\huggingface\itpossible\Chinese-Mistral-7B-Instruct-v0___1 --outtype f16 --outfile D:\huggingface\itpossible\converted.bin

2.3合并过程

合并后产生的文件converted.bin大小约14G

四、量化模型

1.安装cmake和编译器

接下来,需要将14G的bin文件量化为4G左右。这个步骤需要编译文件,使用cmake工具来编译。传送门——cmake安装教程。同时,还需要安装编译器,我用visual studio安装的C++编译器。传送门——vs使用教程

验证cmake是否安装成功,下图表示安装成功。

2.开始编译

在 llm/llama.cpp文件夹下开始编译

  1. # 进入到llm/llama.cpp目录
  2. cd llm/llama.cpp
  3. #创建build文件夹
  4. mkdir build
  5. #进入build
  6. cd build
  7. # 构建
  8. cmake ..
  9. cmake --build . --config Release

编译过程需要一些,耐心等待一下。编译后生成的quantization.exe就是我们需要用到的工具。

3.量化模型

  1. # bin/Release/quantize.exe 之前合并的14G大小文件.bin 量化后的文件.bin 量化大小
  2. bin/Release/quantize.exe D:\huggingface\itpossible\converted.bin D:\huggingface\itpossible\quantized.bin q4_0

官方文档提供了多种量化格式,常用的就是q4_0。

量化过程如下:

压缩量化完成后,生成一个新的文件quantized.bin,大约4G。之前14G的源文件可以删除了。

五、制作ollama使用的模型

需要将quantized.bin文件制作为ollama可以使用的模型

1.创建Modelfile 文件

创建一个test.Modelfile 文件,添加的内容如下

  1. FROM D:\huggingface\itpossible\quantized.bin
  2. TEMPLATE "[INST] {{ .Prompt }} [/INST]"

2.创建模型

2.1指定生成的模型路径

设置模型文件保存位置,打开系统环境变量配置,添加一个环境变量OLLAMA_MODELS=D:\huggingface\ollama(自己指定任意一个文件夹路径),然后点确定。

2.2打开一个CMD终端

  1. # ollama create 模型名字 -f Modelfile文件路径
  2. ollama create panda -f C:\Users\Administrator\Desktop\ollama\test.Modelfile

2.3创建过程

2.4生成的模型

3.运行模型

ollama run panda

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/985261
推荐阅读
相关标签
  

闽ICP备14008679号