localai, xinference, ollama 这些本地大模型部署工具的优缺点是什么?
10 个回答
23 种在本地运行大型语言模型(LLMs)的工具,涵盖了从初学者友好的图形界面工具到高级用户专用的高性能推理引擎的各个层面。
文章参考:https://medium.com/@stigkorsholm/23-ways-to-run-llms-locally-906278b55902
新手友好工具
1. LM Studio
LM Studio 是一款桌面应用程序,用于本地运行大型语言模型(LLMs),提供用户友好的图形用户界面(GUI),非常适合初学者。它支持多个操作系统,专注于易用性,非常适合希望在自有设备上运行如GPT和LLaMA等模型的非技术用户。虽然它非常适合初学者,但在高级用户的定制和灵活性方面存在限制。这个工具是跨平台的,可在Windows、macOS和Linux上运行,主要支持NVIDIA GPU。
https://lmstudio.ai/
2. Jan.ai
Jan.ai 是一个注重隐私的开源解决方案,允许用户本地运行LLMs。它专为重视数据安全并希望避免将信息发送到外部服务器的个人或组织设计。这个工具设置和使用简单,具有简单直观的界面。尽管它缺乏一些高级功能并且社区较小,但Jan.ai的本地优先方法确保所有数据处理发生在您的设备上。它可在Windows和macOS上使用,对GPU的支持有限,主要侧重于基于CPU的推理。
https://jan.ai/
3. GPT4All
GPT4All 是一款桌面应用程序,简化了本地运行LLMs的过程。它支持多种模型,允许用户处理本地文档作为上下文的一部分,提高了生成内容的相关性。这个工具注重隐私,设计了直观的GUI,使非技术用户也能轻松使用。然而,它可能资源密集,没有强大硬件的系统上可能无法最佳性能运行,特别是在RAM和CPU/GPU资源方面。
https://gpt4all.io/
4. Ava PLS
Ava PLS 是一款开源桌面应用程序,旨在本地运行LLMs进行文本生成和摘要等各种任务。它为希望利用LLMs而不依赖外部云服务的个人提供了简单的设置和用户友好的体验。虽然它可能不支持所有最新模型并且更新不频繁,但对于注重隐私和本地处理的人来说,它是一个可靠的工具。Ava PLS 支持基本功能,可以是轻量级AI任务的好选择。
Home
5. Ollama
Ollama 允许用户本地运行开源LLMs,如LLaMA 2和Code LLaMA。它通过捆绑模型权重和其他基本设置简化了配置过程,为可能不想处理复杂设置的用户提供了更流畅的体验。尽管其命令行界面对初学者来说可能不太容易接近,但Ollama是跨平台的,设计用于在不同的操作系统上工作。它支持多种开源模型,是开发者和AI爱好者的多功能工具。
https://ollama.ai/
6. Oobabooga 文本生成 Web UI
Oobabooga 文本生成 Web UI 是为本地运行LLMs而设计的基于Web的界面,提供了灵活且可定制的环境。它建立在Gradio上,允许用户使用用户友好的Web界面运行各种模型,类似于Stable Diffusion的图像生成UI。该平台支持扩展和插件,使高级用户能够定制他们的体验。然而,它需要安装和设置,这可能是资源密集型的,特别是在低端系统上。Oobabooga正在积极开发中,并有一个强大的社区支持。
https://github.com/oobabooga/text-generation-webui
7. KoboldCpp
KoboldCpp 通过提供易于使用的GUI简化了本地运行基于LLaMA模型的过程。它的设计是为了使运行这些模型高效且易于访问,提供了简化的界面,而不会让用户感到技术复杂性的压力。虽然它主要支持LLaMA模型,但KoboldCpp在性能上高度优化,是那些寻求高效LLM操作的好选择。然而,它对其他模型的支持有所限制,跨平台的兼容性可能会有所不同。
https://github.com/LostRuins/koboldcpp
8. Llamafile
由Mozilla开发的Llamafile是一个用户友好的本地运行LLMs的解决方案。它强调便携性,允许用户创建可在各种系统上运行的单文件可执行文件,无需复杂的安装。这个工具特别适合希望在多个平台上分发基于LLM的应用程序的开发者。虽然它提供了简单的设置过程,但与其它解决方案相比,文档和社区支持有所限制,对于需要广泛技术支持的人来说不太理想。
https://github.com/mozilla/llamafile
中级工具
9. Hugging Face Transformers
Hugging Face Transformers 是访问和本地运行预训练LLMs的最全面的库之一。有数千个模型可供选择,用户可以轻松找到适合各种任务的模型,从文本生成到问答。它需要基本了解Python和机器学习框架,非常适合中级用户。该库提供广泛的社区支持,用户可以在本地或云端运行模型。虽然它是可定制的,但设置本地环境可能需要管理依赖关系。
https://huggingface.co/
10. LangChain
LangChain 是一个框架,帮助开发者构建由LLMs提供支持的应用程序,集成了多个模型和工具。它提供了模块化组件来简化开发过程,使得创建高级应用程序而不必从头开始。LangChain经常更新,并支持各种后端,使其适合自定义部署。然而,它需要编程知识,特别是Python,对于初学者来说可能涉及陡峭的学习曲线。它最适合希望将LLMs集成到更复杂系统中的开发者。
https://python.langchain.com/
11. Simon Willison的llm
llm 是一个命令行工具,允许用户下载并本地运行开源LLMs。它具有简单的界面,适合那些更喜欢从命令行工作而不需要完整GUI的用户。这个工具轻量级,支持不同模型的各种插件,对于开发者来说是一个多功能的选择。然而,它需要基本了解Python和命令行,限制了没有技术专长的用户的可访问性。尽管它简单,llm为本地模型推理提供了相当大的灵活性。
GitHub - simonw/llm: Access large language models from the command-line
12. LocalAI
LocalAI是一个OpenAI兼容的REST API,便于本地运行LLMs、图像生成和音频处理,无需外部云服务。它旨在作为OpenAI API的替代品,使开发者更容易从基于云的系统过渡到本地推理。它适合需要API兼容解决方案进行本地部署的用户。然而,LocalAI需要设置REST API,对于非技术用户来说可能涉及一些配置挑战。
GitHub - mudler/LocalAI: :robot: The free, Open Source alternative to OpenAI, Claude and others. Self-hosted and local-first. Drop-in replacement for OpenAI, running on consumer-grade hardware. No GPU required. Runs gguf, transformers, diffusers and many more models architectures. Features: Generate Text, Audio, Video, Images, Voice Cloning, Distributed inference
13. Exllama
Exllama是为在GPU上本地运行LLaMA模型而特别设计的优化推理引擎。它在性能方面表现出色,提供了快速的推理速度和更有效的内存管理,与许多替代品相比。Exllama适合希望运行更大的LLaMA模型(例如,13B,30B)而不影响性能的用户。然而,它确实需要GPU支持和技术知识来设置。文档可能也有所限制,但随着更多用户采用该工具,社区正在增长。
GitHub - turboderp/exllama: A more memory-efficient rewrite of the HF transformers implementation of Llama for use with quantized weights.
14. MLC LLM
MLC LLM旨在在各种硬件后端上本地部署语言模型,使其非常通用。它允许用户在不同的设备上高效运行LLMs,包括桌面系统、边缘设备和移动平台。该工具针对性能进行了优化,使得在CPU和GPU上都能顺畅执行。尽管它在硬件支持方面提供了灵活性,但设置和配置需要更高水平的技术专长。MLC LLM适合从事跨平台AI部署的开发者。
https://mlc.ai/mlc-llm/
15. LMQL
LMQL(语言模型查询语言)是一个创新工具,结合了自然语言提示和约束,允许用户为LLMs编写更有效、针对性更强的查询。这种方法提高了生成响应的准确性,并减少了不必要的计算成本。LMQL是开源的,并与各种后端模型集成,包括Hugging Face和OpenAI。然而,它需要了解Python和对独特查询语言的熟悉,以充分利用其能力。对于寻求对模型输出更精确控制的开发者来说,它是一个强大的工具。
GitHub - eth-sri/lmql: A language for constraint-guided and efficient LLM programming.
16. LocalLLM
由Google Cloud Platform开发的LocalLLM使用户能够本地运行LLMs,并支持各种预训练模型。它旨在无缝集成到现有基础设施中,对于企业和开发大型系统的开发者来说,这是一个可扩展的选项。LocalLLM支持多种机器学习框架,允许灵活的AI开发环境。然而,它面向技术熟练的用户和开发者,需要很好地理解模型部署和基础设施管理。
Build software better, together
17. txtai
txtai是一个多功能平台,用于构建可以本地运行LLMs的AI驱动的语义搜索应用程序。它支持一系列AI功能,包括搜索、文档检索和问答,适合需要自然语言理解的应用程序。txtai旨在处理大规模数据集,为企业环境提供可扩展的解决方案。虽然它需要一些技术知识来设置,但它功能丰富且正在积极开发中,定期更新以提高性能和功能。
GitHub - neuml/txtai: All-in-one open-source embeddings database for semantic search, LLM orchestration and language model workflows
高级工具
18. Llama.cpp
Llama.cpp是Meta的LLaMA模型的C++实现,针对CPU推理进行了优化,使其能够在消费级硬件上运行大型模型。它非常高效,可以集成到各种应用程序中,为开发者提供灵活的解决方案。Llama.cpp不需要GPU,这使得它对于没有高端硬件的用户来说是一个更易访问的选择。然而,
设置它需要技术知识,熟悉从源代码编译,以及了解C++环境。<br/>https://github.com/ggerganov/llama.cpp
19. vLLM
vLLM是一个高吞吐量、内存高效的推理库,设计用于本地运行LLMs。它优化了速度和内存使用,非常适合处理大规模部署。vLLM提供动态批处理,并且可以同时处理多个请求,确保硬件资源的有效使用。它最适合具有强大技术专长的高级用户,因为设置过程可能很复杂。这个工具针对强大的系统进行了优化,可能需要高端硬件,包括GPU加速,才能有效地运行模型。
<br/>GitHub - vllm-project/vllm: A high-throughput and memory-efficient inference and serving engine for LLMs
20. CTranslate2
CTranslate2是一个高效的推理库,用于Transformer模型,用C++和Python编写。它支持CPU和GPU推理,为用户提供了一个高度优化的环境来运行LLMs。CTranslate2旨在跨不同平台工作,特别适合希望以更少的内存资源实现更快推理时间的开发者。它需要一些技术专长来设置,包括从PyTorch和TensorFlow等框架转换模型。它能够高效处理大型模型,是高级AI任务的不错选择。<br/>GitHub - OpenNMT/CTranslate2: Fast inference engine for Transformer models
21. h2oGPT
h2oGPT是一个企业级解决方案,简化了私有LLMs的部署,包括用于文档嵌入的语言模型和数据库。它提供了一个全面的软件包,允许用户在单一环境中管理LLMs的推理和存储组件。这使得它非常适合寻求一站式AI平台以处理大规模语言任务的组织。然而,它的设置很复杂,需要大量的硬件资源,包括GPU支持,才能高效运行。
<br/>GitHub - h2oai/h2ogpt: Private chat with local GPT with document, images, video, etc. 100% private, Apache 2.0. Supports oLLaMa, Mixtral, llama.cpp, and more. Demo: https://gpt.h2o.ai/ https://gpt-docs.h2o.ai/
22. PowerInfer
PowerInfer是一个高性能推理引擎,设计用于在CPU和GPU上运行LLMs。它利用激活局部性等先进技术来改善内存管理和推理速度,适合大规模模型。PowerInfer支持广泛的硬件配置,允许用户即使在消费级系统上也能高效运行LLMs。虽然它面向研究人员和开发者,但由于文档有限,设置过程可能具有挑战性。然而,对于那些能够正确配置它的人来说,它提供了令人印象深刻的性能。<br/>GitHub - SJTU-IPADS/PowerInfer: High-speed Large Language Model Serving on PCs with Consumer-grade GPUs
23. LLamaSharp
LLamaSharp是llama.cpp的C#/.NET绑定,允许开发者将LLaMA模型集成到.NET应用程序中。它提供了更高层次的API,使得在.NET生态系统中使用LLaMA模型变得更加容易,而不需要深入了解底层的C++代码。这个工具是跨平台的,支持Windows、macOS和Linux,不需要GPU,使得它对于使用仅限CPU环境的开发者来说是可访问的。LLamaSharp适合那些已经在.NET生态系统中工作并希望将LLMs集成到他们的应用程序中的人。<br/>GitHub - SciSharp/LLamaSharp: A C#/.NET library to run LLM ( LLaMA/LLaVA) on your local device efficiently.