ollama本地部署大模型(纯CPU推理)实践

说明

  • 本文旨在分享在linux(centos8)平台使用docker部署轻量化大模型,仅供学习和体验,无法适用于生产环境
  • 运维面板使用飞致云的开源面板1panel,使用ollamadocker方案快速部署大模型,总共需要两个dcoker环境:ollama 容器环境和ollama WebUI容器环境

Ollama和Ollama WebUI简介

  • Ollama :一个开源的大型语言模型服务提供类似 OpenAI 的 API 接口和聊天界面,可以非常方便地部署最新版本的 GPT 模型并通过接口使用。支持热加载模型文件,无需重新启动即可切换不同的模型。
  • Open WebUI:针对 LLM 用户友好的 WebUI,支持的 LLM 运行程序包括 Ollama、OpenAI 兼容的 API。

Ollama模型硬件要求

内存要求

  • 注意:运行 7B 型号至少需要 8 GB 可用 RAM (内存),运行 13B 型号至少需要16 GB可用 RAM (内存) ,运行 33B 型号至少需要32 GB 可用 RAM (内存)。
  • 示例模型
Model Parameters Size Download
Llama 2 7B 3.8GB ollama run llama2
Mistral 7B 4.1GB ollama run mistral
Dolphin Phi 2.7B 1.6GB ollama run dolphin-phi
Phi-2 2.7B 1.7GB ollama run phi
Neural Chat 7B 4.1GB ollama run neural-chat
Starling 7B 4.1GB ollama run starling-lm
Code Llama 7B 3.8GB ollama run codellama
Llama 2 Uncensored 7B 3.8GB ollama run llama2-uncensored
Llama 2 13B 13B 7.3GB ollama run llama2:13b
Llama 2 70B 70B 39GB ollama run llama2:70b
Orca Mini 3B 1.9GB ollama run orca-mini
Vicuna 7B 3.8GB ollama run vicuna
LLaVA 7B 4.5GB ollama run llava
Gemma 2B 1.4GB ollama run gemma:2b
Gemma 7B 4.8GB ollama run gemma:7b

Ollama容器部署

  1. 在1Panel应用商店中选择Ollama进行安装
    在这里插入图片描述
  2. 配置容器的启动配置:容器名称、端口,最后,点击启动即可
    在这里插入图片描述

Ollama容器内模型下载和对话

  1. 根据机器内存和CPU性能可以进入容器,下载示例模型
Model Parameters Size Download
Llama 2 7B 3.8GB ollama run llama2
Mistral 7B 4.1GB ollama run mistral
Dolphin Phi 2.7B 1.6GB ollama run dolphin-phi
Phi-2 2.7B 1.7GB ollama run phi
Neural Chat 7B 4.1GB ollama run neural-chat
Starling 7B 4.1GB ollama run starling-lm
Code Llama 7B 3.8GB ollama run codellama
Llama 2 Uncensored 7B 3.8GB ollama run llama2-uncensored
Llama 2 13B 13B 7.3GB ollama run llama2:13b
Llama 2 70B 70B 39GB ollama run llama2:70b
Orca Mini 3B 1.9GB ollama run orca-mini
Vicuna 7B 3.8GB ollama run vicuna
LLaVA 7B 4.5GB ollama run llava
Gemma 2B 1.4GB ollama run gemma:2b
Gemma 7B 4.8GB ollama run gemma:7b
  1. 按照操作,进入容器终端
    在这里插入图片描述
  2. 点击连接进入容器内部,输入ollama run qwen:0.5b下载模型,下载成功后,自动启动对话
    在这里插入图片描述
    在这里插入图片描述
  • 存在的缺点:需要进入容器进行对话,只能在终端进行,不方便,不优雅

Ollama WebUI部署

Ollama WebUI下载模型和对话

  1. 选择模型进行下载,然后刷新页面
    在这里插入图片描述
  2. 然后,选择模型进行对话,这效果(只能图一乐)🤣😂🤣
    在这里插入图片描述

轻量模型推荐

机器硬件信息概览

在这里插入图片描述

  • linxu系统内核和cpu信息如下(CPU确实垃圾)
[root@yang ~]# uname -a
Linux yang 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@yang ~]# cat /proc/cpuinfo
processor   : 0
vendor_id   : AuthenticAMD
cpu family  : 21
model       : 96
model name  : AMD A10-8780P Radeon R8, 12 Compute Cores 4C+8G
stepping    : 1
microcode   : 0x600610b
cpu MHz     : 2000.000
cache size  : 1024 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 16
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good acc_power nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb bpext ptsc mwaitx cpb hw_pstate ssbd vmmcall fsgsbase bmi1 avx2 smep bmi2 xsaveopt arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov
bugs        : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass
bogomips    : 3992.38
TLB size    : 1536 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro acc_power [13]
  • 如果你的机器CPU不同、也没有较好的显卡,这里推荐使用通义千问 开源Qwen的轻量化模型,ollama qwen模型以来指导
    # 推理的最低内存要求小于 2GB
    ollama run qwen:0.5b
    ollama run qwen:1.8b
    ollama run qwen:4b
    # 推理的最低内存要求8GB
    ollama run qwen:7b
    
  • 参数越大,回答普遍会越智能,当然对CPU和内存的要求也会越高,性能较低的机器体验也会很差

qwen:0.5b推理体验

  • qwen:0.5b对机器要求最低,推理很快,体验还算可以,先不说代码对不对,就这个速度还是可以的,简单的问题体验还可以,复杂的不想了
    在这里插入图片描述
  • 推理过程系统负载如下:
    在这里插入图片描述

gemma:7b推理体验

  • 参数越多的模型,对机器的运行要求较高,例如:gemma:7b (4.8GB)的推理下我的机器就无法承受了😭😭😭真就一个一个字算出来的
    在这里插入图片描述

相关推荐

  1. Ollama+AnythingLLM搭建部署本地模型AI知识库

    2024-03-31 18:46:05       44 阅读
  2. ollama集成open-webui本地部署模型应用

    2024-03-31 18:46:05       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-31 18:46:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-31 18:46:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-31 18:46:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-31 18:46:05       20 阅读

热门阅读

  1. 提升学术水平,ChatGPT助你一臂之力

    2024-03-31 18:46:05       19 阅读
  2. android 快速实现 图片获取并裁剪(更换头像)

    2024-03-31 18:46:05       21 阅读
  3. python项目练习——7.网站访问日志分析器

    2024-03-31 18:46:05       19 阅读
  4. 数据可视化之多表显示

    2024-03-31 18:46:05       19 阅读
  5. 软件之禅(十一) 消息

    2024-03-31 18:46:05       18 阅读
  6. vim的缓冲区管理技能

    2024-03-31 18:46:05       16 阅读
  7. ChatGPT:学术界必备的写作利器

    2024-03-31 18:46:05       17 阅读
  8. C 语言练习分享

    2024-03-31 18:46:05       16 阅读
  9. leetcode 64.最小路径和

    2024-03-31 18:46:05       14 阅读
  10. vue组件的select怎么赋值?

    2024-03-31 18:46:05       15 阅读
  11. Leetcode-2952-需要添加的硬币的最小数量-c++

    2024-03-31 18:46:05       21 阅读
  12. C++多线程:unique_lock源码分析与使用详解(六)

    2024-03-31 18:46:05       16 阅读
  13. 为什么Redis设计成单线程

    2024-03-31 18:46:05       19 阅读