当前位置: 首页 > news >正文

南通建设工程造价信息网站网站开发需要解决难题

南通建设工程造价信息网站,网站开发需要解决难题,做网站的带宽多少钱,aso推广方案本期学习易错点: 改文件后缀 改了models的存储地址后,把下载和新建的文件存储在什么地方 注册hugging face,找到token. 课程思路整理: 这是一个关于 Ollama 的教程,Ollama 看起来是一个用于运行和管理语言模型的工具。这部分内…

本期学习易错点:

改文件后缀

改了models的存储地址后,把下载和新建的文件存储在什么地方

注册hugging face,找到token.


课程思路整理:

这是一个关于 Ollama 的教程,Ollama 看起来是一个用于运行和管理语言模型的工具。这部分内容的核心主题是“自定义导入模型”,也就是怎么把不同的模型格式(比如 GGUF、PyTorch、Safetensors)导入到 Ollama 里面。

第一部分是从 GGUF 文件导入模型。GGUF 这个词看起来是文件格式的名字,得记住它是干什么用的——是为了方便共享和导入模型。这样看来,第一步的重点就是下载一个 GGUF 文件,然后用 Ollama 的工具把它导入。可是为什么是从 GGUF 文件开始呢?是因为这个格式可能是 Ollama 最直接支持的方式,所以作为一个示例,一开始就讲这个会比较容易理解。

然后,下载 GGUF 文件之后,接下来是创建 Modelfile。Modelfile 是什么呢?是用来告诉 Ollama 怎么处理这个模型文件的。相当于一份“说明书”,说明这个模型文件是从哪里来的,接下来要用什么格式来处理。所以,Modelfile 的作用就是连接 GGUF 文件和 Ollama 的工具,让它们能协同工作。

再往后是用 ollama create 命令创建模型。这个命令的作用应该是把 GGUF 文件和 Modelfile 整合成一个可以在 Ollama 里使用的模型。这一步是把前面的准备工作落实到具体的操作上,让模型变成可以直接运行的状态

最后一步是运行模型,用 ollama run 命令。就是让模型开始工作,用户可以跟它对话或者让它生成文本。

第二部分,从 PyTorch 或 Safetensors 导入模型。这里好像稍微复杂一点,因为 PyTorch 和 Safetensors 是另一种文件格式,不直接被 Ollama 支持。原文里提到 Safetensors 是一种用于存储模型权重的文件格式,那这部分的重点应该是“如何把这种格式的模型转换成 Ollama 能用的东西”。
但是这里的内容好像有点模糊……文档里提到“目前这部分功能还有待社区成员开发”,说明这可能是个不太成熟的流程。觉得用户可能会不小心掉进这个坑里,因为有些人可能会觉得 PyTorch 和 Safetensors 格式的模型应该可以直接用,但其实可能需要额外的处理步骤。所以这里的关键是提醒用户,这种格式的模型可能需要用其他工具先转换成 GGUF,或者依赖 Ollama 的某些还没完全稳定的功能。

第三部分是从模型直接导入,涉及从 HuggingFace 下载模型、用 llama.cpp 转换和量化模型,然后再导入到 Ollama。这一部分看起来最长,应该也最复杂。首先是从 HuggingFace 下载模型,这一步没什么问题,就是普通的下载操作。然后是用 llama.cpp 把模型转换成 GGUF 格式。这里的逻辑是:HuggingFace 上的模型是各种格式的,而 Ollama 主要支持 GGUF,所以需要一个工具(llama.cpp)来完成格式转换。这个过程挺重要的,因为它是把通用的模型转换成 Ollama 可以用的格式的关键步骤。
接下来是模型量化。量化听起来像是减少模型大小、节省资源的操作。原文里提到量化可以“减少模型文件的大小和计算成本”,这让我想到,如果用户想把模型运行在资源有限的设备上(比如普通笔记本电脑),量化可能会是个必要的步骤。所以,用户如果觉得自己电脑的性能不够,就可以考虑进行量化。

最后一部分是自定义 Prompt。可以通过修改 Prompt 来让模型生成更符合自己需求的文本。比如,文件里举了个例子,把模型的输出从正常的回答变成了“马里奥风格”的回答。这种个性化配置挺有吸引力的,尤其是想让模型更有趣或者更符合某种特定风格。

总结:
“导入模型就像安装一个程序”,“Modelfile 就是程序的说明书”,“运行模型就像启动程序”。


目录

课程思路整理:

一、从 GGUF 导入

二、从 Pytorch 或 Safetensors 导入

三、由模型直接导入

3.1 从 HuggingFace 下载 Model

3.2 使用 llama.cpp 进行转换

3.3 使用llama.cpp进行模型量化

3.4 运行并上传模型

四、自定义 Prompt 

参考链接

学习手册:https://datawhalechina.github.io/handy-ollama/#/ 

第 3 章 自定义导入模型https://datawhalechina.github.io/handy-ollama/#/C3/1.%20%E8%87%AA%E5%AE%9A%E4%B9%89%E5%AF%BC%E5%85%A5%E6%A8%A1%E5%9E%8B

本节学习如何使用 Modelfile 来自定义导入模型,主要分为以下几个部分:

  1. 从 GGUF 导入
  2. 从 Pytorch 或 Safetensors 导入
  3. 由模型直接导入
  4. 自定义 Prompt

一、从 GGUF 导入

GGUF (GPT-Generated Unified Format) 是一种文件格式,用于保存经过微调的语言模型。这种格式旨在帮助用户方便地在不同的平台和环境之间共享和导入模型。它支持多种量化格式,可以有效减少模型文件的大小。

它的前身是 GGML(GPT-Generated Model Language),是专门为了机器学习而设计的 Tensor 库,目的是为了有一个单文件的格式,并且易在不同架构的 CPU 以及 GPU 上可以推理,但后续由于开发遇到了灵活性不足、相容性及难以维护的问题。

Ollama 支持从 GGUF 文件导入模型,通过以下步骤来实现:

  1. 下载 .gguf 文件

下载链接:https://huggingface.co/RichardErkhov/Qwen_-_Qwen2-0.5B-gguf/resolve/main/Qwen2-0.5B.Q3_K_M.gguf?download=true

为了演示的方便,我们选用了 Qwen2-0.5B 模型。下载后复制到第一作业的models文件夹下面,例如:D:\AI\Ollama\models

      2.在同一个目录下,例如:D:\AI\Ollama\models,新建创建 Modelfile 文件

FROM ./Qwen2-0.5B.Q3_K_M.gguf

这里一定记得改后缀,去掉.txt后缀。

 不会改后缀看这里:

在文件夹位置:查看-详细信息-文件扩展名 这里打勾。

        3. 在 Ollama 中创建模型

终端也改到在同一个目录下,例如:D:\AI\Ollama\models,运行下面:

ollama run mymodel

结果如下:

二、从 Pytorch 或 Safetensors 导入

Safetensors 是一种用于存储深度学习模型权重的文件格式,它旨在解决安全性、效率和易用性方面的问题。目前这部分功能还有待社区成员开发,目前文档资源有限。

如果正在导入的模型是以下架构之一,则可以通过 Modelfile 直接导入 Ollama。当然,你也可以将 safetensors 文件转换为 gguf 文件,再进行处理,转换过程可以参考第三部分。

有关 safetensors 以及 GGUF 更详细的信息可以参考这个链接进行学习 https://www.linkedin.com/pulse/llama-3-safetensors-vs-gguf-talles-carvalho-jjcqf

  • LlamaForCausalLM
  • MistralForCausalLM
  • GemmaForCausalLM

由于这部分内容社区还在不断优化中,因此,这里提供的示例代码和流程仅供参考,并不保证能成功运行。详情请参考官方文档。

  1. 下载 llama-3 模型,在终端输入:
!pip install huggingface_hub

然后显示如下:

 2. 去hugging face注册。头像--Access Tokens--Create new token--Read

下载模型:

# 下载模型
from huggingface_hub import snapshot_downloadmodel_id = "unsloth/llama-3-8b-bnb-4bit"
snapshot_download(repo_id=model_id, local_dir="llama-3-8b-bnb-4bit",local_dir_use_symlinks=False,revision="main",# 怎么获取<YOUR_ACCESS_TOKEN>,请参照部分3use_auth_token="<YOUR_ACCESS_TOKEN>")

根目录下创建 Modelfile 文件,内容如下:

FROM ./llama-3-8b-bnb-4bit

在 Ollama 中创建模型

ollama create mymodel2 -f Modelfile

 运行模型

ollama run mymodel2

那个,一开始觉得这里挺迷惑的,目的是装Qwen2-0.5B,它怎么去装 llama-3 模型了?

三、由模型直接导入

正常来说,我们在 HuggingFace 接触到的模型文件非常之多,庆幸的是,hf 提供了非常便捷的 API 来下载和处理这些模型,像上面那样直接下载受限于网络环境,速度非常慢,这一小段我们来使用脚本以及 hf 来完成。

llama.cpp 是 GGUF 的开源项目,提供 CLI 和 Server 功能。

对于不能通过 Ollama 直接转换的架构,我们可以使用 llama.cpp 进行量化,并将其转换为 GGUF 格式,再按照第一种方式进行导入。 我们整个转换的过程分为以下几步:

  1. 从 huggingface 上下载 model;
  2. 使用 llama.cpp 来进行转化;
  3. 使用 llama.cpp 来进行模型量化;
  4. 运行并上传模型。

3.1 从 HuggingFace 下载 Model

最直觉的下载方式是通过git clone或者链接来下载,但是因为llm每部分都按GB计算,避免出现 OOM Error(Out of memory),我们可以使用 Python 写一个简单的 download.py。

首先应该去hf拿到用户个人的 ACCESS_TOKEN,打开 huggingface 个人设置页面。

!pip install huggingface_hub
from huggingface_hub import snapshot_downloadmodel_id = "Qwen/Qwen1.5-0.5B" # hugginFace's model name
snapshot_download(repo_id=model_id, local_dir="Qwen-0.5b",local_dir_use_symlinks=False,revision="main",use_auth_token="<YOUR_ACCESS_TOKEN>")

3.2 使用 llama.cpp 进行转换

llama.cpp 是 GGML 主要作者基于最早的 llama 的 c/c++ 版本开发的,目的就是希望用 CPU 来推理各种 LLM,在社群的不断努力下现在已经支持大多数主流模型,甚至包括多模态模型。

首先我们克隆 llama.cpp 库到本地,与下载的模型放在同一目录下:

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

 由于使用 llama.cpp 转换模型的流程基于 python 开发,需要安装相关的库,推荐使用 conda 或 venv 新建一个环境。

cd llama.cpp
pip install -r requirements.txt
python convert_hf_to_gguf.py -h

 如果显示以下内容,说明转换程序已经准备好了。

 

接下来,我们把刚刚从 HuggingFace 下载的模型转换为 GGUF 格式,具体使用以下脚本

python convert_hf_to_gguf.py ../Qwen-0.5b --outfile Qwen_instruct_0.5b.gguf --outtype f16

可以看到 llama.cpp 目录下多了一个 Qwen_instruct_0.5b.gguf 文件,这个过程只需要几秒钟。

为了节省推理时的开销,我们将模型量化,接下来我们开始量化实操。

3.3 使用llama.cpp进行模型量化

模型量化是一种技术,将高精度的浮点数模型转换为低精度模型,模型量化的主要目的是减少模型的大小和计算成本,尽可能保持模型的准确性,其目标是使模型能够在资源有限的设备上运行,例如CPU或者移动设备。

同样的,我们先创建 Modelfile 文件,再使 用 ollama create 命令来从 gguf 文件中创建我们的模型,不过与第一步稍有不同的是,我们添加了量化逻辑,只需要在执行 ollama create 是添加一个参数即可。

首先把上一步拿到的 Qwen_instruct_0.5b.gguf 移动至第三部分的根目录下,再创建 Modelfile 文件编写以下内容.

FROM ./Qwen_instruct_0.5b.gguf

 终端运行创建和量化脚本。

# 第三部分根目录下
ollama create -q Q4_K_M mymodel3 -f ./Modelfile

 到此,我们的模型就量化并创建完成了,接下来我们就可以运行模型了。

3.4 运行并上传模型

 使用 gguf 运行模型的步骤详见第一部分,这里不再赘述。

果本地保存的模型文件太占用空间,可以上传 gguf 模型到 huggingface 的自己的 repo 中,同步骤一的思想,我们可以写一个 upload 的逻辑。

Tip

如果想完成上传,你的 HF_ACCESS_TOKEN 权限必须要为 write,并且要修改你的 model_id,your_hf_name 指的是你 huggingface 账号名称。

from huggingface_hub import HfApi
import osapi = HfApi()
HF_ACCESS_TOKEN = "<YOUR_HF_WRITE_ACCESS_TOKEN>"
#TODO 这里需要设置你的model_id
#例如 model_id = "little1d/QWEN-0.5b"
model_id = "your_hf_name/QWEN-0.5b"api.create_repo(model_id,exist_ok=True,repo_type="model", # 上傳格式為模型use_auth_token=HF_ACCESS_TOKEN,
)
# upload the model to the hub
# upload model name includes the Bailong-instruct-7B in same folder
for file in os.listdir():if file.endswith(".gguf"):model_name = file.lower()api.upload_file(repo_id=model_id,path_in_repo=model_name,path_or_fileobj=f"{os.getcwd()}/{file}",repo_type="model", # 上傳格式為模型use_auth_token=HF_ACCESS_TOKE)

上传完成后就可以在自己的 hf 仓库中看到啦!

四、自定义 Prompt

Ollama 支持自定 义Prompt,可以让模型生成更符合用户需求的文本。

自定义 Prompt 的步骤如下:

  1. 根目录下创建一个 Modelfile 文件
FROM llama3.1
# sets the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1
# sets the context window size to 4096, this controls how many tokens the LLM can use as context to generate the next token
PARAMETER num_ctx 4096# sets a custom system message to specify the behavior of the chat assistant
SYSTEM You are Mario from super mario bros, acting as an assistant.

    2.创建模型

ollama create mymodel -f ./Modelfile

alt text

创建模型的时间可能稍微会久一点,和 pull 一个模型的时间差不多,请耐心等待。

alt text

再次运行 ollama list 查看已有的模型,可以看到 mymodel 已经正确创建了。

alt text

  1. 运行模型
ollama run mymodel

alt text

可以看到,我们的小羊驼 🦙 已经变成了 Mario!自定义 Prompt 成功!😘😘

参考链接

  • https://www.linkedin.com/pulse/llama-3-safetensors-vs-gguf-talles-carvalho-jjcqf
  • Ollama on Windows:本地运行大语言模型的利器 - 系统极客
  • OpenAI compatibility · Ollama Blog

 上一章节

http://www.dtcms.com/a/491843.html

相关文章:

  • 摄影网站开发的意义企业网站搭建步骤
  • 做网站的好处和坏处厦网站建设培训学校
  • CS50ai: week2 Uncertainty我的笔记B版:一口气从“爬山”到“退火”, 优化与CSP超好懂入门
  • 第十章:技术路线:成为“技术扫地僧”(3)
  • cocos creator学习之typeScript常见语法问题
  • 公司网站突然打不开了品牌网站建设 蝌蚪6小
  • 网站 没有备案 访问不了工商联网站建设方案
  • 存在即合理?数字化转型需破除“流程惯性“思维、重构底层逻辑
  • 南阳企业网站制作做网站推广和网络推广
  • 专业网站建站费用wordpress当前网址参数
  • 天猫网站是用什么技术做的东莞响应式网站哪家强
  • 茶文化网站建设内容网络管理软件免费
  • RocketMQ基础知识
  • 天气预报:基于python天气分析预测系统 气象数据分析 机器学习 爬虫 多元线性回归预测算法 中国天气网 Flask框架(建议收藏)✅
  • React 18 的核心设计理念:并发渲染
  • 昆明 网站建设兼职北京石景山网站建设
  • 中小型网站建设资讯网站及数据库怎么做后门
  • 建设网站财务分析wordpress中修改链接
  • 网站模板 实验室西安国际网站设计
  • 建设实验室网站的意义湖南长沙房价
  • 行业热点丨仿真驱动设计:兼顾性能、可持续性与效益
  • 番禺建设网站策划南充房产管理网
  • 网站建设xywlcn网站云主机
  • 网站建设静态部分报告总结长沙旅游必去的八个景点
  • 5种方法解决:安装一个或多个角色、角色服务或功能失败。找不到源文件
  • 虚幻引擎5 GAS开发俯视角RPG游戏 P05-11 消息小部件
  • 网站seo综合诊断福田服务商app软件安装
  • 无缝开发通道:IT-Tools+CPolar让远程协作像坐在一起编码
  • 网站普查建设背景网页qq属于
  • 网站建设 局部放大镜功能wordpress建英文网站