使用Ollama部署非官方仓库模型(Windows)

一、从GitHub拉去llama.cpp项目

git clone https://github.com/ggerganov/llama.cpp

下载完成后在当前目录的路径输入cmd,进入命令行
在这里插入图片描述

二、安装python执行的相关依赖

执行

pip install -r requirements.txt 

在这里插入图片描述

三、下载模型文件

依赖安装成功后开始转换模型这里以魔塔上的Chat2DB为例,按照下载步骤使用git拉去模型到本地
在这里插入图片描述
在这里插入图片描述

四、执行转换gguf命令

python convert-hf-to-gguf.py D:\tool\ollama\models\Chat2DB-SQL-7B

在这里插入图片描述

执行完成后会在模型目录生成一个ggml-model-f16.gguf文件*
在这里插入图片描述

五、接下来是进行量化

到GitHub上下载发布的版本,也可以本地编译
https://github.com/ggerganov/llama.cpp/releases
在这里插入图片描述

我这边在的是llama-b3291-bin-win-noavx-x64,

.\llama-quantize.exe D:\tool\ollama\models\Chat2DB-SQL-7B\ggml-model-f16.gguf D:\tool\ollama\models\Chat2DB-SQL-7B\ggml-model-Q4_K_M.gguf Q4_K_M

在这里插入图片描述

执行完成后在模型目录会生成ggml-model-Q4_K_M.gguf文件
在这里插入图片描述

六、使用Ollama创建模型

在当前文件创建Modelfile文件,里面内容如下

FROM ./ggml-model-Q4_K_M.gguf

在这里插入图片描述
在当前目录进入cmd,输入

ollama create chat2DB:7B -f Modelfile

创建ollama可以运行的模型

ollama run chat2DB:7B

在这里插入图片描述

这样一个自定义的模型就使用Ollama运行起来啦

### 使用Ollama框架和工具部署RAG模型 #### 背景概述 Ollama 是一种轻量级的开源推理引擎,支持多种大型语言模型 (LLMs),并提供了高效的本地运行环境。通过结合检索增强生成 (RAG) 技术,可以显著提升模型的知识更新能力和特定领域问答性能[^4]。 #### 架构设计 为了实现基于 Ollama 的 RAG 模型部署,通常需要以下几个核心组件: 1. **文档存储与索引**:利用 Elasticsearch 或类似的搜索引擎技术来创建结构化数据集索引[^2]。 2. **查询处理模块**:负责解析用户的自然语言输入,并将其转换为可执行的搜索条件。 3. **检索器**:从已建立的数据集中提取最相关的片段作为上下文提供给 LLMs。 4. **生成器**:采用预训练好的大模型(如通过 Ollama 加载),根据检索到的信息生成最终响应。 #### 实现步骤详解 以下是具体的技术实现路径: ##### 安装配置Ollama服务端 首先需下载安装最新版本的 Ollama 平台,在终端命令行界面完成初始化设置后即可加载所需的基础模型文件。例如对于 Meta 开发的 llama 系列产品而言,默认情况下会自动拉取官方仓库中的权重参数至本地缓存目录下供后续调用[^1]。 ```bash ollama pull meta-llama/Llama-2 ``` ##### 整合外部数据库资源 考虑到实际应用场景往往涉及海量非结构化资料整理需求,因此推荐选用功能强大的全文本搜索库——Elasticsearch 来协助管理后台素材池。它不仅能够快速定位目标条目位置,还允许灵活定义匹配策略从而提高召回率表现水平。 ##### 编写自定义脚本逻辑 下面展示了一段 Python 示例代码用于演示整个工作流操作流程: ```python from elasticsearch import Elasticsearch import requests # 初始化ES客户端实例对象 es_client = Elasticsearch(["http://localhost:9200"]) def search_relevant_docs(query_text): """向 ES 发起请求获取关联度最高的若干篇文章摘要""" res = es_client.search( index="my_index", body={"query": {"match": {"content": query_text}}} ) return [hit["_source"]['title'] for hit in res['hits']['hits']] def generate_answer(prompt_with_context): """调用远程 API 获取由指定模型产生的回复内容""" url = 'http://127.0.0.1:11434/api/generate' payload = {'model': 'meta-llama/Llama-2', 'prompt': prompt_with_context} response = requests.post(url, json=payload).json() generated_text = response.get('results')[0].get('response') return generated_text.strip() if __name__ == "__main__": user_input = input("请输入您的问题:") retrieved_titles = search_relevant_docs(user_input) context_string = "\n".join(retrieved_titles[:5]) # 只保留前五个结果作为背景补充说明部分 full_prompt = f"{context_string}\n\nQ:{user_input}\nA:" answer = generate_answer(full_prompt) print(f"\n{answer}") ``` 上述程序片段清晰地展示了如何无缝衔接前后两端不同性质的服务接口,形成闭环解决方案架构体系[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有理想,在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值