Ollama适配昇腾开源验证任务心得

举报
sunp 发表于 2024/11/29 10:49:28 2024/11/29
【摘要】       由任务计划书(https://bbs.huaweicloud.com/blogs/437834#H20)了解任务内容,主要目的是将Ollama项目适配至华为的Ascend Npu(昇腾)上,确保在昇腾上正常运行,并完成模型推理任务。1       开发过程    也即在服务器上利用ollama部署大模型,并有效完成推理任务。打开Ollama网址:GitHub - ollama/o...

      由任务计划书(https://bbs.huaweicloud.com/blogs/437834#H20)了解任务内容,主要目的是将Ollama项目适配至华为的Ascend Npu(昇腾)上,确保在昇腾上正常运行,并完成模型推理任务。

1       开发过程   

也即在服务器上利用ollama部署大模型,并有效完成推理任务。打开Ollama网址:GitHub - ollama/ollama: Get up and running with Llama 3.2, Mistral, Gemma 2, and other large language models.,根据README文档熟悉ollama部署大模型的操作步骤。

1.1       鲲鹏、OpenEuler

1)在线对话:

       安装ollama: curl -fsSL https://ollama.com/install.sh | sh;

接着拉取在线模型:ollama run llama3.1;

加载后显示succes则为模型加载完成,可进行在线对话。

2)特定角色对话:

拉取想要进行定制的模型:ollama pull llama3.1

创建一个Modefile文件,在其中设置参数和系统消息如:

FROM llama3.1   

PARAMETER temperature 1

SYSTEM """

       你是一名西安交通大学数学专业大四学生,请你以这个身份回答问题。

"""

创建模型并运行:

Ollama create 985 -f ./Modelfile

Ollama run 985

即可让大模型按照指定角色回答问题。

3)文本生成:通过python代码调用ollama库操作生成文本。

import ollama

client = ollama.Client("http://localhost:11434")

model_name = "llama3.1:8b"

prompt = "Once upon a time in a land far ,far away,"

response = client.generate(model_name,prompt)

print(gen_text)

1.2       昇腾、OpenEuler

Ollama基于昇腾部署大模型当前仅支持在Ascend 910B3上,且需要编译安装。

1)第一步,准备环境。使用conda命令在conda环境下安装gogccgo:conda install -c conda-forge go=1.23,安装gcc时一并将g++同时安装升级:conda install -c conda-forge gcc=12.2 gxx=12.2 –update-all;确保go1.22或更高版本、GCC11.4.0或更高版本上。

2)第二步,克隆仓库。使用git将支持昇腾的Ollama版本拉取下来,

git clone https://github.com/zhongTao99/ollama.git

cd ollama//llm/generate

bash gen_linux.sh

如果bash运行报错,切换会ollama目录下使用go编译:

cd ../..

go generate ./...

go build .

在运行go build .时如果出现timeout报错的话,设置go代理:

go env -w GOPROXY=https://goproxy.cn,direct然后重新运行即可完成编译。完成之后会在目录下生成 ollama文件。

3)第三步,拉取服务在线推理。

      在910B服务器上开启两个页面,一个页面运行./ollama serve启动ollama在线服务,然后再另一个页面上同级目录下运行ollama推理任务。拉取模型:./ollama run qwen2.5完成加载即可开启在线对话、自定义提示,并启动服务时在所有ollama cli前面加./,即以./ollama 方式进行推理。

2       验收材料

2.1       验收说明

本文提供的验收材料按照《Ollama开源项目 For Huawei任务规划》任务计划书的要求提供,没有偏离。

2.2       验收材料

  1. 开源软件fork地址:不涉及
  2. 开源软件修改记录(可以有多个修改记录):不涉及
  3. 推送上游社区PR(包括代码、文档、可以有多个):不涉及
  4. 验证DEMO地址:https://gitcode.com/sunpeng024/Ollama/blob/main/README.md
  5. 验证DEMO修改记录(可以有多个修改记录,只包含和本任务验证强相关的提交记录,比如添加依赖、增加配置文件、演示开源软件功能使用的代码等):

2.3       资源清单

2.3.1       Kunpeng CPU

产品名称

CPU架构

实例类型

公共镜像

镜像版本

弹性云服务器

鲲鹏计算

鲲鹏通用计算增强型kc1.xlarge.4

4vCPUs 16GiB

Huawei Cloud EulerOS

Huawei Cloud EulerOS 2.0 Arm 64bit sdi5 for ECS BareMetal With Uniagent

2.3.2       Ascend NPU

产品名称

芯片类型

CANN版本

驱动版本

操作系统

堡垒机

昇腾910B3

CANN 8.0.RC2

23.0.6

Huawei Cloud EulerOS 2.0


2.4       验证截图

2.4.1       Kunpeng CPU

图片1.png

图片2.png

在线对话:

图片3.png

自定义提示:

图片4.png

文本生成:

图片5.png


2.4.2       Ascend NPU

启动服务:

图片6.png

推理状态:

图片1.png

在线对话:

图片2.png

自定义提示:

图片3.png

NPU运行前:

图片4.png

NPU运行后:

图片5.png


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。