5090D-deepseek-Anythingllm-Ollama运行测试

news/2025/2/24 9:10:47/文章来源:https://www.cnblogs.com/supermao12/p/18733332

ollama

ollama配置环境变量

ollama地址与镜像

C:\Users\DK>curl http://10.208.10.240:11434
Ollama is running
C:\Users\DK>ollama list
NAME                        ID              SIZE      MODIFIED
bge-m3:latest               790764642607    1.2 GB    28 hours ago
deepseek-coder-v2:latest    63fb193b3a9b    8.9 GB    2 days ago
gemma:latest                a72c7f4d0a15    5.0 GB    2 days ago
qwen:14b                    80362ced6553    8.2 GB    2 days ago
llama3:latest               365c0bd3c000    4.7 GB    2 days ago
deepseek-r1:70b             0c1615a8ca32    42 GB     2 days ago
nomic-embed-text:latest     0a109f422b47    274 MB    3 days ago
deepseek-r1:32b             38056bbcbb2d    19 GB     3 days ago
deepseek-r1:14b             ea35dfe18182    9.0 GB    3 days agoC:\Users\DK>

参数的基本概念

大模型中的token

token 是模型输入和输出的基本单位。它通常代表一段文本的某个小部分,例如单词、字符或子词(subword)。在自然语言处理(NLP)中,token化(tokenization)是将文本分解为这些基本单元的过程。在许多现代语言模型(如GPT系列)中,一个token可能是一个词、部分单词、标点符号或一个字母。1. 本地AI大模型的token设置
在本地部署AI大模型时,token的设置通常由模型的架构和训练配置决定。设置token数量时的一个关键考虑是显存(GPU memory)和推理性能之间的平衡:
token数量越高,处理的上下文越多:增加token数量可以使模型能够考虑更长的文本上下文,可能有助于提高模型的表现,尤其在处理长文档或复杂推理任务时。
显存需求增加:然而,token数量越高,需要的计算资源(尤其是显存)就越多。GPU显存有限,因此增加token数量可能导致内存不足,特别是在本地部署时。1. token设置的影响
通常,token的设置并不是越高越好,而是需要根据任务的性质和硬件资源来优化:
对于短文本或较简单的任务,较低的token数量可能已经足够,甚至有助于提高处理速度。
对于长文本或需要复杂推理的任务,增加token数量可能会提升模型的表现,但需要确保有足够的硬件资源来支撑。

每个模型定义的token不一样,有的可以扩容有的不行

本地大模型附带RAG

RAG(检索增强生成)是一种结合了外部知识库的生成模型。它通过从知识库中检索相关信息,并基于这些信息生成回答。这种方式通常提高了生成模型的知识范围和准确性。在这种情况下,token设置可能受到以下因素的影响:输入token的限制:RAG模型的输入通常包含两部分:一个是查询文本,另一个是从知识库中检索到的文档。在设置token数量时,必须同时考虑查询文本和检索的文档的总token数。过多的token可能会导致超出模型的最大上下文长度限制,尤其是当知识库中包含较大文档时。
知识库大小和文档长度:如果知识库中的文档非常长,需要确保有足够的token来处理这些内容,同时也要平衡查询和检索信息的token数量。
因此,对于包含RAG知识库的大模型,token的设置应根据以下考虑:查询文本的长度:查询通常是问题或请求,需要设置足够的token来表示查询信息。
文档的上下文:从知识库检索到的文档也会占用token,确保模型能处理这些信息。
硬件资源的限制:提高token数量虽然可以提高生成的上下文,但也会增加内存使用,可能导致性能下降或显存溢出。

token数量的设置是一个平衡:需要根据任务复杂度、硬件资源和模型能力来合理选择。对于包含RAG知识库的模型,还需考虑文档检索和查询文本的合适token配比。

显存的计算

每个token的显存占用:每个token的显存占用通常在 0.5MB到1MB 左右,具体取决于实现和优化。
以0.7MB每个token计算,10240token的显存需求大约为: 10240tokens x 0.7MB/token = 7168MB 约7GB
14B模型 的显存需求已经达到 10GB到20GB 左右
大约27GB的显卡可以带动 10240token + 14B模型 
RAG,文件上传的越多。大模型的token就必须设置的越大

Max Embedding Chunk Length

文本的平均长度与分块策略
文本长度:如果大多数文本都较短,设置更小的 Max Embedding Chunk Length(比如1024或2048)可以提高处理效率。这有助于在不需要处理整个长文本的情况下,快速完成嵌入计算。
长文本:如果你的文本普遍较长,设置 4096 或更大的 Max Embedding Chunk Length 可以减少不必要的切割,避免频繁分块带来的额外计算开销。计算效率与内存消耗
每个token占用的内存是固定的,但文本切割成多个块时,内存和计算消耗会成倍增加。因此,在设置时需要平衡 计算效率 和 内存消耗。
较小的块大小(如1024 token) 可以提高计算的并行性,但需要更多的计算和内存资源来处理多个块。
较大的块大小(如4096 token) 减少了块的数量,可能会提高效率,但也会增加每个块的处理负担,特别是在GPU显存有限的情况下。对于一个 1000字的中文文档,确实不需要将其分成 4096 tokens 大块。如果希望减少GPU功耗和显存消耗,使用较小的块(如 512 token 或 1024 token)是一个更优的选择。这样做可以在保证计算效率的同时降低资源消耗,尤其是在需要处理大量文档时效果更为明显。

配置Anythingllm

docker运行

export STORAGE_LOCATION="$HOME/anythingllm" \
&& mkdir -p "$STORAGE_LOCATION" \
&& touch "$STORAGE_LOCATION/.env" \
&& docker run -d -p 3001:3001 \--cap-add SYS_ADMIN \-v "$STORAGE_LOCATION:/app/server/storage" \-v "$STORAGE_LOCATION/.env:/app/server/.env" \-e STORAGE_DIR="/app/server/storage" \--privileged \--restart unless-stopped \--memory 64g --cpus 32 \mintplexlabs/anythingllm

进入anythingllm配置模型全局选项

要做rag这里的token可以高一点

嵌入数据库可以将上传的文件变为向量存在向量数据库里,向量数据库为默认LanceDB

最大切块为2048降低GPU效率,我上传的简历没有特别大的文件


预指令必须设置。且把聊天模式改为查询增加查询文档精确度


增加向量数据库准确性


增加文件到rag

deepseek7b对话测试

大体方向不会错,会有小错误且嘴硬
张亮英语流利是7B编的
王芳不是中专
张伟编了工作经验
以文档出现的腾讯工作经验对峙,仍然嘴硬
deepseek:14b的失误更少,非常不错,14B适合rag

token在rag中的设置非常重要,过小的token,会让deepseek胡言乱语

其他事项

RAG 检索出来的东西会变成上下文context
大模型会各具特色注意大模型自身token大小和与中文适配度
嵌入式模型不一样会导致嵌入质量不一样
小图钉,固定文档,增加优先级
聊天提示词非常重要,下定义:

你是一位核电的资料员,曾就职于漳州核电,现从事核电资料管理工作。使用知识库回答问题,并用中文回答,必须中文。如果你不知道答案,就直说不知道。不要尝试编造答案。

温度越高,创新度越高。越低越简洁、简短,越接近事实

最大上下文片段。上下文片段是指在数据向量化过程中,将文本拆分成多大。建议将片段数量保持在4-6,以壁面信息过载和干扰。片段的大小和数量会影响模型的理解和生成能力。过多片段可能导致模型混淆,而过少的片段可能无法提供足够的信息。例子百个菜谱要3个高热菜谱会被拒绝

开启精确优化
文档相似性阈值考虑设置为高,排除低质量文本片段
分块大小

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/888885.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web课程

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>这是一个标题</title> </head> &…

解密ZAB协议:Zookeeper一致性的核心实现

一致性问题 设计一个分布式系统必定会遇到一个问题—— 因为分区容忍性(partition tolerance)的存在,就必定要求我们需要在系统可用性(availability)和数据一致性(consistency)中做出权衡 。这就是著名的 CAP 定理。 ZooKeeper 的处理方式,保证了 CP(数据一致性) 一致…

解密prompt系列49. 回顾R1之前的思维链发展路线

我先按照自己的思路来梳理下R1之前整个模型思维链的发展过程,可以分成3个阶段:大模型能思考,外生慢思考,内生慢思考在所有人都在谈论R1的今天,作为算法也是有些千头万绪无从抓起。所以这一章先复盘,我先按照自己的思路来梳理下R1之前整个模型思维链的发展过程。下一章再展…

CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比

CSnakes 是一个用于在.NET项目中嵌入Python代码的工具,由.NET源生成器和运行时组成,能够实现高效的跨语言调用,Github:https://github.com/tonybaloney/CSnakes。以下是关键信息整理:核心特性跨版本支持:兼容.NET 8-9、Python 3.9-3.13,支持Windows/macOS/Linux系统高性…

Plotly.NET 一个为 .NET 打造的强大开源交互式图表库

前言 今天大姚给大家分享一个 .NET 强大、免费、开源的交互式图表库:Plotly.NET。 项目介绍 Plotly.NET 一个为 .NET 打造的强大、免费、开源的交互式图表库,支持 C# 和 F#编程语言,它构建在 plotly.js 之上并提供多个 API 层,用于创建、样式化和渲染美观的数据可视化图表。…

Apple Store 无法更新 App 解决方案 All In One

Apple Store 无法更新 App 解决方案 All In One Apple store 中可以查看新版 App, 但是无法更新新版 App, 会一直在转圈加载, 然后更新失败 ❌ 新版 Apps 与当前操作系统版本不匹配,需要先更新系统,才能安装新版的 Apps 更新 iOS 系统 ✅Apple Store 无法更新 App 解决方案 A…

合宙 ESP32C3 首个ardunio程序

https://blog.csdn.net/dpjcn1990/article/details/136085443 #define LED_BUILTIN1 12 #define LED_BUILTIN2 13//使用USB转串口即可 #define RS485_RX_PIN 1 #define RS485_TX_PIN 0 #define RS485_ENABLE_PIN 18 #define RS485 Serial1 void setup() { Serial.begin(9…

全网仅存方案,跟限速说拜拜!

关注A梦的小伙伴们都知道,A梦资源分享主要夸克网盘。有很多小伙伴也留言过想要其它网盘的链接,这方面确实众口难调,每个人的偏好和需求不同;另一个原因是夸克提供了较大的存储空间,能够更好地满足A梦的资源分享需求。 但网盘严重的限速也是很多小伙伴吐槽的点,考虑到A梦粉…

uniapp+h5---进行混合开发

uniapp和h5进行混合开发,最近在接手开发微信小程序,在技术选型的时候,拟采用uniapp+h5进行混合开发。 想必为啥要使用uniapp开发,就不用多说了?就是为了进行跨平台开发。如果使用微信小程序的开发方式,开发出来的应用就只能在微信小程序使用,但是使用uniapp就可以多端开…

dokcer-compose方式部署 mongo集群

声明:本人在单台机器上部署的mongo机器, mongo版本为8.0, 这玩意居然部署了一天,终于搞好了, 希望对后面想要部署的人有帮助 先创建一个mongodb目录, 后续的配置,数据都存放在这个目录中: 1. 创建mongo-secrets目录,mkdir mongo-secrets 2. 创建keyfile文件, openssl…

两个终端小玩具:Yazi和elinks

1. 终端文件管理器yazi 可以很方便地查找文件,跳转,并且很容易看出文件 1.1 下载安装 参考官方地址:鸭子官方安装手册安装rust编译环境curl --proto =https --tlsv1.2 -sSf https://sh.rustup.rs | sh rustup update编译yazigit clone https://github.com/sxyazi/yazi.git c…

两个终端小玩具

1. 终端浏览器 1.1 m3w 1.2 elinks 2. 终端文件管理器yazi 可以很方便地查找文件,跳转,并且很容易看出文件 2.1 下载安装 参考官方地址:鸭子官方安装手册安装rust编译环境curl --proto =https --tlsv1.2 -sSf https://sh.rustup.rs | sh rustup update编译yazigit clone htt…