• 使用ollama分别在我的window、mac、小米手机上部署体验llama3-8b


    1、ollama到底是个什么玩意

    一句话来说, Ollama 是一个基于 Go 语言开发的简单易用的本地大模型运行框架。可以将其类比为 docker(有类似docker中的一些常规命令list,pull,push,run 等等),事实上确实也制定了类似 docker 的一种模型应用标准,在后边的内容中,你能更加真切体会到这一点。

    在管理模型的同时,它还基于 Go 语言中的 Web 框架 gin 提供了一些 Api 接口,让你能够像跟 OpenAI 提供的接口那样进行交互。

    2、来看看ollama的几个命令

    ollama 安装之后,其同时还是一个命令,与模型交互就是通过命令来进行的。

    • ollama list:显示模型列表
    • ollama show:显示模型的信息
    • ollama pull:拉取模型
    • ollama push:推送模型
    • ollama cp:拷贝一个模型
    • ollama rm:删除一个模型
    • ollama run:运行一个模型

    通过在命令行运行 ollama即可查看到相关命令

    89805f908c29784f7d7a0f9100c80a3

    如果你用过 docker 的话,那简直就是so easy。
    接下来我就在我的window、mac、以及小米手机上分别体验一下。

    3、window上下载及体验

    • https://ollama.com/
      官网首页一进来就可以看到下载按钮,客户端可以在window、mac、linux等进行安装,跨平台的,真的nice啊。

    并且上面已经把llama3集成进来了,这速度是真的快。
    我这里下载的是window版本,目前213MB,很快就下载下来了。下载完毕即可安装

    安装完毕之后你可以在命令行中输入查看版本

    image

    我们可以查看文档:https://github.com/ollama/ollama/blob/main/README.md#quickstart

    image

    如上图所示,可以用最简单的方式就可以来启动llama3-8b,不过它可能还要等一会儿,因为模型大小有4.7G左右,需要下载一会儿哟。
    甚至你的配置够高,也可以使用70b的模型来尝试,不过我的电脑配置一般估计跑起来太慢。
    image
    看这里下载速度还算可以,四分钟下载完毕,好了,那就先来测试一下吧。

    动画
    整个体验下来,这可能是我本机测试感觉速度上最快的离线大模型了,真的表现非常棒。按照目前应该很快会有优化版本出来的,到时候继续进行评测一下。

    破除了之前有人说没有上下文的问题,中文语料可能确实有点少。但是写代码的体验还算不错的,虽然上面的代码可能是不对的。

    image
    上下文长度过长时确实有幻觉的问题。

    这个回答速度真的再优化一下,很多小公司自己来部署大模型并进行创造就很近了。
    但是它毕竟是小模型,参数相对较少,运行时所需要的资源就少很多。就像我本地运行的,其实我的电脑配置可以看一下如下图所示

    image
    从开发的角度来看还算不错了。另外对翻译的要求不高的话,效果也还过得去的。

    同样的你也可以直接进行调用API

    image

    4、mac 上安装以及体验

    同样还是在官网首页可以点击直接下载即可,下载下来会是一个压缩包

    5038fd4c5fc4fe2ca719fd7f23078c7

    解压然后安装就可以使用了,然后在命令行中可以查看是否安装成功

    b7a6417698460d4d517478ffb0a6235

    通过 ollama -v 来查看安装的版本,如果打印出来也就说明安装成功了
    然后再通过 ollama serve 开启 ollama 的服务,注意当前这个命令行窗口暂时不要关闭,关闭了则代表 ollama 服务也暂时停止了,可以打开另外一个命令行窗口进行下载和使用大模型
    同样的命令

    4a985e90e1e5b3471aae674672f5d2c

    哇塞,这会的下载速度简直起飞了
    跑起来之后,测试就可以跟上面window类似了,这个就不在此多说了

    5、小米手机再来体验一波

    android手机要想体验一波,就需要先按照依稀Termux,这里我之前有写过一篇手把手来教你在手机上安装大模型llama2,这篇文章中我主要使用的是 huggingface 来运行大模型,那么现在用到的是ollama。

    于是我在Termux中执行如下命令进行安装ollama
    ···
    curl -fsSL https://ollama.com/install.sh | sh
    ···
    发现我的手机没有root,ollama是使用不起来的,必须要先root。

    简单搜索发现一个不错的方法:
    https://gitlab.com/st42/termux-sudo

    6ba6dbd6d9b597c744663c0b62ea92f

    但是点进去发现是五年前的,不知道能不能用,于是我就又搜索了一下

    https://github.com/termux/proot-distro

    proot-distro 是一个用于在 Termux 应用程序中管理和使用 Linux 发行版的项目。Termux 是一个 Android 终端模拟器和 Linux 环境应用,它不需要设备的 root 权限就可以运行。
    proot-distro 允许用户在 Termux 中安装、卸载和运行各种 Linux 发行版,包括 Ubuntu、Debian、Arch Linux 等。这样,用户就可以在他们的 Android 设备上使用完整的 Linux 环境,包括安装和运行 Linux 软件包。

    接下来要先在手机上打开termux

    // 先来安装proot-distro
    pkg install proot-distro
    
    //使用proot-distro安装一个debian
    proot-distro install debian
    
    // 安装成功后通过login命令就直接进入debian
    proot-distro login debian
    
    //进入之后再来安装ollama
    curl -fsSL https://ollama.com/install.sh | sh
    
    // 安装完毕可以查看ollama版本进行验证
    ollama -v
    
    // 出现版本号之后就可以使用ollama
    // 开启ollama服务
    ollama serve
    // 此时这个命令行的窗口不要关闭,关闭之后ollama服务就停止了
    

    然后再termux左上角向右滑动

    23dec3e012ccd1b72faf78b4cdd3cd9

    点击NEW SESSION,这样就新开了一个命令行,在这里命令行中就可以使用ollama其他命令了

    // 这是一个新的命令行,,记得要先进入debian
    proot-distro login debian
    
    //下载并运行大模型
    ollama run llama3
    

    进行测试就跟上面一样了,这里相当于单独安装了一个模拟运行环境debian,会有一部分性能的消耗吧。有兴趣或者手机性能不错的到时候可以玩玩,感觉小模型在未来的某个时刻还是会有更广泛的应用场景,参数不用那么多,那么大,但是针对特定领域进行微调训练的。

    6、总结

    应该说llama3给与了开源模型更广阔的思考空间,期待开源模型更大的进步让我们拭目以待。同时希望Meta在接下来的时候能将llama3-400的发布。

    就在实验此文章的过程中也发现了:

    高通与Meta宣布合作,优化Meta新推出的Llama 3大语言模型在骁龙终端上的运行。Llama 3有两种版本,分别为80亿和700亿参数,旨在为智能手机、PC、VR/AR头显和汽车等设备提供强大的开源语言模型支持。合作将使开发者能够利用高通AI Hub的资源和工具,优化Llama 3在骁龙平台上的执行,以缩短产品上市时间,并提升终端侧AI的性能,包括响应能力、隐私性、可靠性和个性化体验。

    这才几天过去,在huggingface平台就发现了8个中文微调模型,不得不说社区的力量真的太强大了,全民共享大模型。

    f9038b109618b5dbb5bba41943c2318

    从 Llama 3 的发布能看到,好而全的数据,对模型训练的重要性! HuggingFaceFW 开源的 FineWeb,有 15T tokens 的高质量网络数据,以英文为主,由 CommonCrawl 获取的 2013-2024 年数据。

    image

    ollama和huggingface 给与了像我这样的普通人,就能很方便的了解AI大模型,并且在本地运行大模型,真的太高兴了,接下来有机会会继续尝试其他的可能性。

  • 相关阅读:
    「优选算法刷题」:删除字符串中的所有相邻重复项
    一幅长文细学JavaScript(四)——一幅长文系列
    WebSocket通信安全概览
    如何对服务器进行速度的测试
    2022年QS排名TOP院校对IB要求盘点
    public,private,protected,default的区别
    Linux系统自动化安装
    《MongoDB》在docker中用得到关于MongoDB一行命令
    基于Java的在线考试系统(附:源码和课件)
    基于Xception-TD的中华传统刺绣分类模型构建
  • 原文地址:https://www.cnblogs.com/aehyok/p/18149902