A2. 大语言模型llama API服务调研

server/2025/1/13 7:58:14/
aidu_pl">

自然语言模型大家听的比较多的是OpenAI,它有聊天(Chat)、补全(Completion)、提取结果信息(Extract Result Information)、模拟聊天(Mock Chat)等功能;还有其它语言模型比如Google公司研发的mBERT (Multilingual BERT)、BERT (Bidirectional Encoder Representations from Transformers)、XLNet、ALBERT (A Lite BERT)、mBERT (Multilingual BERT)和T5 (Text-to-Text Transfer Transformer),Facebook研发的RoBERTa (Robust BERT)和LLaMA (Large Language Model Meta Architecture)等;这些语言模型所提供的能力都差不多,只是训练的侧重点有点区别,我们也可以基于这些模型基础上加强训练。今天介绍的这个模型是llama,它和OpenAI所提供的服务和能力类似,它是一个开源模型可以部署本地离线服务。那么下面我们一步一步跟进自建服务集成llama API应用与实战配置。

llama_1">首页安装Ollama应用与其对应的模型

这步可参考我上一篇写的《A1.本地大模型Ollama 3.2部署》本地先搭建一个llama环境

配置OLLAMA_HOST主机地址

这里安装llama3.2后,如果环境变量未配置OLLAMA_HOST那么其API只能通过127.0.0.1或localhost地址访问(即http://127.0.0.1:11434)。局域网内其它主机均不能通过内网IP方式访问,这是因为默认情况下绑定的地址为listen 127.0.0.1:11434这种回环地址。到这里问题就清楚了我们只要将绑定地址改成0.0.0.0:11434(允许接收所有来源)即可

llama_5">STEP 1 退出Ollama工具盒子

在这里插入图片描述

STEP 2 配置环境变量(这里以Mac为例,其它系统只要配置OLLAMA_HOST也一样的效果)

编辑.zshrc、.base_profile、.zprofile环境文件,将以下命令添加到配置文件最后一行
vim .zprofile

#0.0.0.0表示接收所有来源地址
#11434是llama默认的端口,如果想修改其它端口可在这里直接指定
export OLLAMA_HOST=0.0.0.0:11434

同时要设置应用启动时环境变量,在终端执行以下命令即可

launchctl setenv OLLAMA_HOST "0.0.0.0:11434"

这里我们针对OLLAMA_HOST设置做一下小结,为什么在配置了.zprofile之后还要通过launchctl命令再设置一遍。那是因为如果仅配置了.zprofile在终端只能通过ollama serve <模型名称>来启动,由当前终端shell fork出来一个进程,此时环境变量会继承.zprofile中设置的值,因此设置的值是有效的。而双击Ollama.app应用程序是通过Launch Service管理和启动的,不会读取.zprofile配置的环境变量,需要通过launchctl setenv来设置。因此需要两种方式都设置,这样不论双击启动还是终端启动OLLAMA_HOST绑定的0.0.0.0:11434值都会生效。

llama_22">Ollama服务基础地址

服务基础地址(baseUrl)即是Ollama模型部署在那台机器或容器所对应的主机地址。如部署在本地那么baseUrl=http://127.0.0.1:11434或部署在某一台特定IP上主机那么baseUrl=http://IP:11434。至于端口可查看我前面写的《A1.本地大模型Ollama 3.2部署》文章以具体配置的为准,默认端口为11434。

llama_API_24">官方Ollama API

https://github.com/ollama/ollama/blob/main/docs/api.md

llama_26">REST API 0 查询Ollama工具盒子版本号

请求方式:GET
请求路径:/api/version
响应参数:

字段描述
versionollama大模型工具盒子版本号

响应示例:

{"version": "0.5.1"
}
REST API 1 查询已有(有效)的模型集合

请求方式:GET
请求路径:/api/tags
响应参数(单个模型字段说明):

字段描述
name模型名称
modified_at模型最后修改的时间戳
size模型大小
digest模型的校验和(digest),一个用于验证模型完整性的哈希值
details模型的详细信息
|-- format模型文件的格式
|-- family模型家族
|-- families模型家族列表,空表示没有其他相关家族信息
|-- parameter_size模型参数的大小(能指的是某种量化级别的参数)
|-- quantization_level模型的量化级别

响应示例:

{"models": [{"name": "codellama:13b","modified_at": "2023-11-04T14:56:49.277302595-07:00","size": 7365960935,"digest": "xxxx","details": {"format": "gguf","family": "llama","families": null,"parameter_size": "13B","quantization_level": "Q4_0"}}]
}
REST API 2 查询已加载到内存(正在运行)的模型

请求方式:GET
请求路径:/api/ps
响应参数:参考REST API 1 查询已有(有效)的模型集合
响应示例:参考REST API 1 查询已有(有效)的模型集合

REST API 3 创建一个模型

请求方式:POST
请求路径:/api/create
请求参数:

参数名描述
model指定创建的模型名称
modelfile(可选):模型文件的内容
stream(可选)如果是false,响应将作为单个响应对象返回,而不是对象流
path(可选):模型文件的路径
quantize(可选):创建非量化(例如float16)模型 量化类型:q2_K、q3_K_L、q3_K_M、q3_K_S、q4_0、q4_1、q4_K_M、q4_K_S、q5_0、q5_1、q5_K_M、q5_K_S、q6_K、q8_0

请求示例:

//未指定量化参数quantize
curl baseUrl/api/create -d '{"model": "mario","modelfile": "FROM llama3\nSYSTEM You are mario from Super Mario Bros."
}'//已指定量化参数quantize
curl baseUrl/api/create -d '{"model": "llama3.1:quantized","modelfile": "FROM llama3.1:8b-instruct-fp16","quantize": "q4_K_M"
}'

响应参数:

字段描述
status创建模型过程中响应的状态 每个间段的状态:读取模型元数据、创建系统层、使用已经创建的层、写入层、写入清单、完成

响应示例(返回一个JSON对象流):

//未指定量化参数quantize
{"status":"reading model metadata"}
{

http://www.ppmy.cn/server/157960.html

相关文章

使用 SQL 和表格数据进行问答和 RAG(6)—将指定目录下的 CSV 或 Excel 文件导入 SQLite 数据库

将指定目录下的 CSV 或 Excel 文件导入 SQLite 数据库。以下是详细代码逻辑&#xff1a; 1. 类结构 该类包含三个主要方法&#xff1a; _prepare_db&#xff1a;负责将文件夹中的 CSV 和 XLSX 文件转换为 SQL 表。_validate_db&#xff1a;用于验证 SQL 数据库中创建的表是否…

kotlin项目无法访问Java类的问题

使用IntelliJ创建一个Kotlin项目&#xff0c;然后在src/main/kotlin中创建一个java接口&#xff1a;Animal.java&#xff0c;然后在Main.kt中打印这个java接口&#xff0c;如下&#xff1a; fun main() {println(Animal::class.java) }代码在编辑器中并没有报错&#xff0c;但…

消息队列架构、选型、专有名词解释

私人博客传送门 消息队列专有名词解释 | 魔筝炼药师 MQ选型 | 魔筝炼药师 MQ架构 | 魔筝炼药师 MQ顺序消息 | 魔筝炼药师

实现Android应用开机自启功能

在开发某些类型的Android应用程序时&#xff0c;可能需要在设备启动后自动运行该应用。例如&#xff0c;对于企业级应用、监控软件或特定的工具类应用来说&#xff0c;这一特性尤为重要。本文将详细介绍如何通过修改AndroidManifest.xml文件并编写相应的广播接收器来实现这一目…

运行npm install 时,卡在sill idealTree buildDeps没有反应

运行npm install 时&#xff0c;卡在sill idealTree buildDeps没有反应 原因&#xff1a; 淘宝镜像源的域名早已经过期&#xff0c;所以我们需要绑定新的镜像源。 2021 年&#xff0c;淘宝就发布了消息称&#xff0c;npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 re…

GPU与CPU:架构对比与技术应用解析

1. 引言 1.1 为什么探讨GPU与CPU的对比&#xff1f; 随着计算技术的不断发展&#xff0c;GPU&#xff08;图形处理单元&#xff09;和CPU&#xff08;中央处理单元&#xff09;已经成为现代计算机系统中最重要的两个组成部分。然而&#xff0c;随着应用场景的多样化和对性能需…

超完整Docker学习记录,Docker常用命令详解

前言 关于国内拉取不到docker镜像的问题&#xff0c;可以利用Github Action将需要的镜像转存到阿里云私有仓库&#xff0c;然后再通过阿里云私有仓库去拉取就可以了。 参考项目地址&#xff1a;使用Github Action将国外的Docker镜像转存到阿里云私有仓库 一、Docker简介 Do…

linux下给某个有线网卡配置DHCP服务(笔记)

最近有需求实现linux下配置有线网卡的dhcp服务&#xff0c;让linux电脑当做软路由使用* 简单记录一下具体的步骤和命令 安装必要包 sudo apt-get install isc-dhcp-server 配置网络接口 sudo nano /etc/default/isc-dhcp-server INTERFACE…