合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
作者 | 崔皓
审核 | 重楼
本文探讨了大模型在本地部署的实践方法,重点介绍了OpenAI的多模态、Function call 和 AI assistance 功能给AI开发者带来的便利。文中着重讨论了使用开源大模型,如Llama2和ChatGLM,来应对成本和数据安全性挑战的策略。
文章以LocalGPT为例,详细阐述了其安装、使用及代码实现,为读者提供了关于如何将大模型成功集成到自己的应用系统中的宝贵经验。
近年来,大模型的发展可谓日新月异,尤其是OpenAI发布的多模态、Function call以及AI assistance功能,为广大AI开发者带来了前所未有的便捷和创新空间。这些功能提升了模型的智能性和多样性。然而,随之而来的是一些企业对数据安全性的担忧,以及调用GPT模型所需成本的问题。
面对这些挑战,部分企业开始转向开源的大模型,如Llama2和ChatGLM,在控制成本的同时,也保障了数据的私密性和安全性。然而,采用开源模型同样面临着新的问题:如何有效搭建这些模型,并将其顺利接入到自己的应用系统中呢?这一过程中的技术挑战和实际操作,将是我们接下来探讨的重点。
本文将以开源架构LocalGPT为例,为您揭开本地部署大模型的神秘面纱,带您深入了解其背后的具体技术和实施步骤。
谈到大模型本地化部署,市面上有很多流行的工具和架构,例如:Ollama、Chatchat和LocalGPT。Ollama是一种支持运行开源大型语言模型的工具,如Llama 2,它通过一个Modelfile将模型权重、配置和数据打包成单一程序包。这种方式优化了设置和配置细节,包括GPU的使用,丰富的模型库,与langchain代码实现无缝对接。本地化运行比较流程化。
Chatchat则是一种基于本地知识库的问答应用,它利用LangChain的理念,旨在建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。它受到了多个项目的启发,通过使用FastChat接入多种模型,并依托于LangChain框架提供API调用服务。Chatchat的特点在于对中文支持的优化,这使得它特别受到中国企业本地化部署的青睐。
LocalGPT则是一个开源项目,允许用户在不妥协隐私的情况下与文档进行对话。它特别注重数据的安全性,确保所有数据都在用户的计算机上处理。LocalGPT支持多种开源模型,包括HF、GPTQ、GGML和GGUF等,并提供多种嵌入选项。它的一个显著特点是一旦下载了LLM,就可以重复使用而无需重复下载。LocalGPT的代码简单,非常适合进行学习和研究。通过对它的学习,我们可以理解如何创建基于RAG的企业知识库。
虽然工具和架构各有特色,但是LocalGPT以简单的代码与清晰的思路成为程序员学习大模型本地部署的首选,后面的内容我们将以LocalGPT的源代码为基础来介绍它的实现与使用。
LocalGPT是一个开源项目,它允许用户在保护隐私的前提下与自己的文档进行对话。这一项目在GitHub上获得了17.5k的星标,所有操作均在本地完成,确保了数据的完全安全。LocalGPT的特点包括绝对隐私保护、支持多种开源模型、多样化的嵌入选择、一次下载后多次使用的大型语言模型、记录聊天历史以及提供用于构建RAG应用程序的API。此外,LocalGPT还提供了两种图形用户界面,支持多平台(包括CUDA、CPU和MPS)。
在技术细节实现方面,LocalGPT通过选择合适的本地模型和利用LangChain的能力,可以在本地运行整个RAG流程,而且性能合理。ingest.py利用LangChain工具解析文档并在本地使用InstructorEmbeddings创建嵌入,然后将结果存储在本地的Chroma向量数据库中。run_localGPT.py使用本地的大型语言模型来理解问题并创建答案,答案的上下文是通过相似性搜索从本地向量存储中提取的。用户可以将此本地大型语言模型替换为HuggingFace中的任何其他模型,只要确保所选模型符合HF格式。
1.环境设置
使用git克隆仓库:
git clone https://github.com/PromtEngineer/localGPT.git
TOP