原贴链接

我想和大家分享这个,告诉大家这是可行的。

我有一块3070 8GB显卡,我得到了以下数据:

image

每秒读取1800个令牌,生成33个。

好了,下面是我操作的方法:

  1. 获取你的模型。我使用了LLama-3.1-8B Q5_K_M.gguf和llama.cpp
  2. 获取SillyTavern和SillyTavern extras
  3. 魔法酱汁:将你的文档上传到RAG中,在GPU内运行。这将显著加快导入速度:

python SillyTavern-Extras/server.py --enable-modules=chromadb,embeddings --listen --cuda

(注意末尾的--cuda)

  1. 现在在SillyTavern中创建你的角色,进入魔法棒(扩展),打开数据银行,上传所有文档

  2. 向量化处理:

https://preview.redd.it/qq8ejmx3mthd1.png?width=503&format=png&auto=webp&s=37bb5757324f57203ab7fb55a23730168eabb9cf

我使用这些设置,不确定它们是否是最好的,但对我来说很有效。

这将需要一些时间,GPU应该会非常忙碌

  1. 停止extras,并不带cuda命令运行:

python SillyTavern-Extras/server.py --enable-modules=chromadb,embeddings --listen

这将节省大量的VRAM

  1. 运行llama.cpp

我使用这些设置:

./llama.cpp/build/bin/llama-server -fa -b 512 -ngl 999 -n 1024 -c 24576 -ctk q8_0 -ctv q8_0 --model Llama-3.1-8B Q5_K_M <--- 你的模型在这里

一些解释:

-fa / -b: 闪存注意力和块大小,很好用

-ngl 999(所有层都到GPU,我们不使用CPU)

-n 1024: 我们每次回复最多可以生成1024个令牌

-c 24574: 24K上下文大小

-ctk和v q8_0 : 量化上下文缓存以节省VRAM。q8在质量上几乎与未量化无异。根据一些资料,你可以在vcache上运行q4_1,但需要用很多额外参数重新编译llama.cpp,我发现这不值得。https://github.com/ggerganov/llama.cpp/pull/7412

  • –model: 我使用llama 3.1与Q5_K_M量化,性能非常接近未量化,整体非常好

8. 轰!运行模型

https://preview.redd.it/brqxggm8nthd1.png?width=718&format=png&auto=webp&s=7508da5434ecf1d52e173160487322b221354b7f

可能你可以运行25k、26k或任何上下文(32k不行我试过),但无论如何,24K对我来说足够了。

我在高级格式中使用“llama3 instruct”:

https://preview.redd.it/i3qh0rprnthd1.png?width=498&format=png&auto=webp&s=b3215e21ca6a7ec3c5622fe4d84fb31cf8dae409

以及这个用于“文本完成预设”

https://files.catbox.moe/jqp8lr.json

使用这个启动脚本:

#################SILLYTAVERN远程启动脚本: remoteTavern.sh#######################################

#!/bin/bash

# 导航到项目目录

cd /home/user/SillyTavern

echo "正在安装Node模块..."

export NODE_ENV=production

/home/user/.nvm/versions/node/v20.11.1/bin/npm i --no-audit --no-fund --quiet --omit=dev

echo "进入SillyTavern..."

CONFIG_FILE_PATH="/home/user/SillyTavern/config.yaml"

if [ ! -f "$CONFIG_FILE_PATH" ]; then

echo "在$CONFIG_FILE_PATH未找到配置文件"

exit 1

fi

/home/user/.nvm/versions/node/v20.11.1/bin/node /home/user/SillyTavern/server.js --config $CONFIG_FILE_PATH "$@"

###################################在你的启动脚本中################################################################

nohup ./llama.cpp/build/bin/llama-server -fa -b 512 -ngl 999 -n 1024 -c 24576 -ctk q8_0 -ctv q8_0 --model Llama-3.1-8B Q5_K_M &

nohup ./SillyTavern/remoteTavern.sh &

nohup python SillyTavern-Extras/server.py --enable-modules=chromadb,embeddings --listen &

讨论总结

本次讨论主要集中在如何在8GB GPU上运行Brutal Llama 8B + RAG + 24k上下文模型的技术分享。参与者们不仅分享了具体的配置步骤和优化技巧,还讨论了开源资源的使用、社区支持和不同应用场景下的适用性。整体氛围积极,许多用户对帖主的分享表示感谢和赞赏,同时也提出了一些关于模型应用范围和技术细节的问题。

主要观点

  1. 👍 技术分享的价值
    • 支持理由:帖主详细分享了在8GB GPU上运行大型模型的方法,对社区成员非常有帮助。
    • 反对声音:无
  2. 🔥 开源资源的重要性
    • 正方观点:使用开源模型和工具可以显著提高模型的性能和效率。
    • 反方观点:无
  3. 💡 社区支持的作用
    • 支持理由:许多用户对帖主的分享表示感谢,体现了社区成员之间的互相支持和鼓励。
  4. 👀 应用范围的探讨
    • 支持理由:用户对模型的应用范围感到好奇,希望了解其在不同场景下的适用性。
  5. 🚀 技术细节的优化
    • 支持理由:通过特定的设置和优化,如使用CUDA加速和节省VRAM的方法,可以提高性能。

金句与有趣评论

  1. “😂 You deserve to be validated for all this hard work you’ve done on this documentation.”
    • 亮点:对帖主努力的认可和赞赏。
  2. “🤔 So is this for role playing or is it also for like coding?”
    • 亮点:对模型应用范围的好奇和探讨。
  3. “👀 All hail the tutorial”
    • 亮点:简洁而有力的对教程的尊敬和认可。
  4. “😂 Good job bros 🙌”
    • 亮点:积极正面的社区互动氛围。
  5. “🤔 GitHub guides are the best - if they ever get outdated, it’s easy to see last update date, fork, update and request merge back”
    • 亮点:对GitHub文档管理优势的认可。

情感分析

讨论的总体情感倾向积极,大多数评论者对帖主的技术分享表示赞赏和感谢。主要分歧点在于模型的应用范围和具体的技术细节,但这些分歧更多是出于好奇和探讨的目的,而非负面批评。可能的原因是技术社区成员对新知识和技能的渴望,以及对开源资源和社区支持的重视。

趋势与预测

  • 新兴话题:更多关于如何在有限资源下优化和运行大型模型的讨论可能会出现。
  • 潜在影响:这种技术分享可能会激发更多社区成员尝试和探索类似的技术解决方案,从而推动相关领域的技术进步和创新。

详细内容:

标题:在 8GB GPU 上运行大型语言模型的惊人探索

在 Reddit 上,一则题为“Brutal Llama 8B + RAG + 24k context on mere 8GB GPU Recipe”的帖子引起了广泛关注。该帖子获得了众多点赞和大量评论,主要讨论了如何在仅有 8GB 显存的 GPU 上成功运行大型语言模型。

原帖作者详细介绍了一系列复杂的操作步骤,包括使用特定的模型、软件和设置。帖子引发了多方面的热烈讨论。

讨论的焦点主要集中在以下几个方面:

  1. 对作者所做努力的称赞和肯定,如“[u/zbuhrer] You deserve to be validated for all this hard work you’ve done on this documentation. This is a very cool accomplishment.”
  2. 分享个人的相关使用经验,像“[schlammsuhler] I used ollama for embedding, made it even simpler. Great tutorial! koboldcpp for inference”
  3. 探讨开源 RAG 的性能和应用场景,例如“[BattleNumerous5196] but how good is open source rag right now? can i input a math pdf book and its basically a more advanced search function. what is your usecase?”
  4. 比较 CPU 和 GPU 在运行大型语言模型时的优劣和速度差异。

有用户认为开源 RAG 很棒,具有快速的多语言嵌入模型和广泛的向量数据库。但对于输入数学 PDF 书籍并实现更高级搜索功能的特定情况,其效果不确定。也有用户分享了在不同硬件配置下的运行经验,如在 Steam Deck 上的使用情况。还有用户就构建适合运行大型语言模型的电脑配置进行了深入讨论,包括选择合适的 CPU、GPU、内存等,并提供了具体的建议和相关链接。

在讨论中,大家达成的共识是作者的分享很有价值,为在有限硬件条件下运行大型语言模型提供了宝贵的经验和思路。

特别有见地的观点如“[involviert] Fun fact, if a model runs on 8-12GB vram, you essentially need almost no VRAM at all. Because then it runs fine for most use cases just on CPU. The main thing you very much do want a GPU for is prompt processing (like time to first token) but for that you need barely any VRAM.”,丰富了关于硬件与模型运行关系的讨论。

总的来说,这一讨论为对大型语言模型运行感兴趣的用户提供了丰富的信息和多样的思考角度。