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

Datawhale Ollama教程笔记2

本期学习易错点:

改文件后缀

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

注册hugging face,找到token.

学习手册: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

待续-----------------------


http://www.kler.cn/a/544197.html

相关文章:

  • 【C#零基础从入门到精通】(二)——C#注释和命名法详解
  • 【Java并发编程之如何在线程中安全地访问一个全局Boolean类型的静态变量?】
  • 网络安全检测思路
  • Spring基于文心一言API使用的大模型
  • Spring:Spring实现AOP的通俗理解(有源码跟踪)
  • RabbitMQ 如何设置限流?
  • JVM的类加载器
  • Unity中Timeline和Cinemachine制作2D动画:镜头篇
  • 幂等性解决方案(消息队列例子)
  • Python爬虫:高效获取1688商品详情的实战指南
  • vue3: const一个function怎么写呢?
  • Mysql优化的查询语句(1)
  • 路由过滤方法与常用工具
  • DeepSeek是如何通过“蒸馏”技术打造自己的AI模型
  • React中PureComponent的用法
  • 图书管理项目(spring boot + Vue)
  • KOA优化最近邻分类预测matlab
  • flask和django的对比
  • Unity中实现动态图集算法
  • 分布式锁有哪些
  • 安科瑞光伏发电防逆流解决方案--守护电网安全,提升能源效率
  • Rust 文件读取:实现我们的 “迷你 grep”
  • 迅为RK3568开发板篇OpenHarmony实操HDF驱动配置LED-LED测试
  • React(6)
  • WordPress 角标插件:20 种渐变色彩搭配,打造专属菜单标识
  • zyNo.23