在本地运行 LLMs 的 6 种方法

商业人工智能和大型语言模型 (LLM) 有一个很大的缺点:隐私。在处理敏感数据或专有数据时,我们无法从这些工具中获益。因此,我们需要了解如何在本地运行私人 LLM。开源模型提供了一种解决方案,但它们也有自己的挑战和优势。

设定期望值

开源软件种类繁多,有数以千计的模型可供选择,从 Meta 等大型组织提供的模型到个人爱好者开发的模型,各有不同。然而,运行这些模型也面临着一系列挑战:

  • 它们可能需要强大的硬件,须拥有足够的内存和一个 GPU
  • 尽管开源模型在不断改进,但它们的功能通常仍无法与 ChatGPT 等更完善的产品相提并论,因为 ChatGPT 得益于庞大的工程师团队的支持
  • 并非所有模型都能用于商业用途。

不过,正如同谷歌的一份文件所指出的,开源和闭源模型之间的差距正在缩小。

image.png

Hugging Face 和 Transformers

Hugging Face 相当于机器学习和人工智能的 Docker Hub,提供了大量开源模型。并且,Hugging Face 会定期对模型进行基准测试,并提供排行榜,帮助用户选择最佳模型。

Hugging Face 还提供了一个 Python 库 transformers,可以简化本地运行一个 LLM 的过程。下面的示例使用该库运行了一个较旧的 GPT-2 microsoft/DialoGPT-medium 模型。第一次运行时,Transformers 会下载模型,你可以与它进行五次交互。该脚本还需要安装 PyTorch。

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-medium", padding_side='left')
model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-medium")
# source: https://huggingface.co/microsoft/DialoGPT-medium
# Let's chat for 5 lines
for step in range(5):
    # encode the new user input, add the eos_token and return a tensor in Pytorch
    new_user_input_ids = tokenizer.encode(input(">> User:") + tokenizer.eos_token, return_tensors='pt')
    # append the new user input tokens to the chat history
    bot_input_ids = torch.cat([chat_history_ids, new_user_input_ids], dim=-1) if step > 0 else new_user_input_ids
    # generated a response while limiting the total chat history to 1000 tokens, 
    chat_history_ids = model.generate(bot_input_ids, max_length=1000, pad_token_id=tokenizer.eos_token_id)
    # pretty print last output tokens from bot
    print("DialoGPT: {}".format(tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)))

Transformers 优势

  • 自动下载模型
  • 提供代码片段
  • 理想的实验和学习工具

Transformers 劣势

  • 需要对 ML 和 NLP 有扎实的了解
  • 需要具备编码和配置技能

LangChain

我们在本地运行 LLM 的另一种方法是使用 LangChain。LangChain 是一个用于构建人工智能应用程序的 Python 框架。它提供抽象和中间件,以便在其支持的模型之上开发人工智能应用程序。例如,下面的代码向 microsoft/DialoGPT-medium 模型提出了一个问题:

from langchain.llms.huggingface_pipeline import HuggingFacePipeline

hf = HuggingFacePipeline.from_model_id(
    model_id="microsoft/DialoGPT-medium", task="text-generation", pipeline_kwargs={"max_new_tokens": 200, "pad_token_id": 50256},
)
from langchain.prompts import PromptTemplate
template = """Question: {question}
Answer: Let's think step by step."""
prompt = PromptTemplate.from_template(template)
chain = prompt | hf
question = "What is electroencephalography?"
print(chain.invoke({"question": question}))

LangChain 优势

  • 更便捷的模型管理
  • 实用的 AI 应用程序开发工具

**LangChain 劣势 **

  • 速度有限,与 Transformers 相同
  • 仍须编写应用程序的逻辑代码或创建合适的用户界面

Llama.cpp

Llama.cpp 是一个基于 C 和 C++ 的 LLM 推理引擎,针对苹果芯片进行了优化,可运行 Meta 的 Llama2 模型。

一旦我们克隆了资源库并构建了项目,我们就可以使用 Llama.cpp 运行一个模型:

$ ./main -m /path/to/model-file.gguf -p "Hi there!"

Llama.cpp 优势

  • 性能高于基于 Python 的解决方案
  • 在适中的硬件上支持 Llama 7B 等大型模型
  • 提供绑定,以便在通过 Llama.cpp 运行推理的同时使用其他语言构建 AI 应用程序

Llama.cpp 劣势

  • 模型支持有限
  • 需要构建工具

Llamafile

Llamafile 由 Mozilla 开发,为运行 LLM 提供了一个用户友好的替代方案。Llamafile 以其可移植性和创建单文件可执行文件的能力而著称。

下载 llamafile 和任何 GGUF 格式的模型后,我们就可以用以下命令启动本地浏览器会话:

$ ./llamafile -m /path/to/model.gguf

Llamafile 优势

  • 与 Llama.cpp 相同的速度优势
  • 可以创建嵌入模型的单一可执行文件

Llamafile 劣势

  • 该项目仍处于早期阶段
  • 不支持所有模型,只支持 Llama.cpp 支持的模型

Ollama

Ollama 是 Llama.cpp 和 Llamafile 的替代品,对用户更加友好。你可以下载一个可执行文件,在你的机器上安装一个服务。安装完成后,打开终端并运行:

$ ollama run llama2

Ollama 优势

  • 易于安装和使用
  • 可以运行 Ilama 和 vicuña 模型
  • 运行速度极快

Ollama 劣势

  • 提供有限的模型库
  • 自行管理模型,不能重复使用自己的模型
  • 无法调整运行 LLM 的选项
  • 暂无 Windows 版本

GPT4ALL

GPT4ALL 是一款易于使用的桌面应用程序,具有直观的 GUI。它支持本地模型运行,并可通过 API 密钥连接 OpenAI。它的突出特点是能够处理本地文档的上下文,确保隐私。

image.png

GPT4ALL 优势

  • 具有友好UI的替代方案
  • 支持各种策划模型

GPT4ALL 劣势

  • 机型选择有限
  • 部分机型有商业用途限制

结论

选择合适的工具在本地运行 LLM 取决于您的需求和专业知识。从 GPT4ALL 等用户友好型应用程序,到 Llama.cpp 等技术性更强的选项,以及基于 Python 的解决方案,可提供多种选择。可见开源模式正在迎头赶上,提供了对数据和隐私的更多控制。随着这些模型的发展,它们或有望与 ChatGPT 等产品竞争。

零基础如何学习大模型 AI

领取方式在文末

为什么要学习大模型?

学习大模型课程的重要性在于它能够极大地促进个人在人工智能领域的专业发展。大模型技术,如自然语言处理和图像识别,正在推动着人工智能的新发展阶段。通过学习大模型课程,可以掌握设计和实现基于大模型的应用系统所需的基本原理和技术,从而提升自己在数据处理、分析和决策制定方面的能力。此外,大模型技术在多个行业中的应用日益增加,掌握这一技术将有助于提高就业竞争力,并为未来的创新创业提供坚实的基础。

大模型实际应用案例分享

①智能客服:某科技公司员工在学习了大模型课程后,成功开发了一套基于自然语言处理的大模型智能客服系统。该系统不仅提高了客户服务效率,还显著降低了人工成本。
②医疗影像分析:一位医学研究人员通过学习大模型课程,掌握了深度学习技术在医疗影像分析中的应用。他开发的算法能够准确识别肿瘤等病变,为医生提供了有力的诊断辅助。
③金融风险管理:一位金融分析师利用大模型课程中学到的知识,开发了一套信用评分模型。该模型帮助银行更准确地评估贷款申请者的信用风险,降低了不良贷款率。
④智能推荐系统:一位电商平台的工程师在学习大模型课程后,优化了平台的商品推荐算法。新算法提高了用户满意度和购买转化率,为公司带来了显著的增长。

这些案例表明,学习大模型课程不仅能够提升个人技能,还能为企业带来实际效益,推动行业创新发展。

学习资料领取

如果你对大模型感兴趣,可以看看我整合并且整理成了一份AI大模型资料包,需要的小伙伴文末免费领取哦,无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

部分资料展示

一、 AI大模型学习路线图

整个学习分为7个阶段
在这里插入图片描述

二、AI大模型实战案例

涵盖AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,皆可用。
在这里插入图片描述

三、视频和书籍PDF合集

从入门到进阶这里都有,跟着老师学习事半功倍。
在这里插入图片描述

在这里插入图片描述

如果二维码失效,可以点击下方链接,一样的哦
【CSDN大礼包】最新AI大模型资源包,这里全都有!无偿分享!!!

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~
在这里插入图片描述

LLMs的embedding方法可以通过将待分析的文本转化为embedding向量来实现。这可以使用原始的LLMs生成embedding向量,这样可以方便地操作,并在检索过程中保留LLMs的"思维过程"。首先,需要将所有文档中的文本转化为embedding向量,并将这些原始文本的embedding向量和原数据存储在Milvus中。在查询时,可以使用相同的模型将问题转化为embedding向量,然后搜索相似性高的相关问题,并将这些相关问题作为输入,生成答案。这方法可以结合其他推荐系统技术一起使用,以避免一些缺点并获得更好的效果。例如,可以提取基于嵌入的特征用于协同过滤,或与"Two Tower"架构结合使用等等。\[1\]\[2\] #### 引用[.reference_title] - *1* [探索将大语言模型用作推荐系统](https://blog.csdn.net/Baihai_IDP/article/details/130679043)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [LLMs 诸神之战:LangChain ,以【奥德赛】之名](https://blog.csdn.net/weixin_44839084/article/details/130731843)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [使用langchain打造自己的大型语言模型(LLMs)](https://blog.csdn.net/weixin_42608414/article/details/129493302)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值