开源 LLM 工具框架盘点
汇总当前热门的开源 LLM 工具和框架,涵盖不同场景的工程选择。社区讨论活跃,适合快速了解生态现状。
汇总当前热门的开源 LLM 工具和框架,涵盖不同场景的工程选择。社区讨论活跃,适合快速了解生态现状。
"刚才我还在决定用哪套LLM工具来构建我公司即将推出的客户支持聊天机器人,这是我人生中最轻松的决定!" - 没人这样说过 🚩🚩🚩
自从GPT-4发布以来已有一段时间了,但看起来每周都有一个新的开源LLM框架面世,每个都做着与其他50多个竞争对手相同的事情,同时拼命解释它如何比前代产品更好。说到底,像你这样的开发者真正想要的是一些快速的个人经验来权衡每个工具的优缺点。👨🏻💻
所以,作为一个玩过十多个开源LLM工具的人,我会告诉你我的首选,这样你就不必做这无聊的工作了。😌
DeepEval是一个LLM工具,它能帮你量化你的LLM应用(比如客户支持聊天机器人)的性能表现 🎉
它排名首位有两个简单的原因:
对于那些不太熟悉的人来说,LLM测试之所以困难是因为LLM的输出响应有无限的可能性。😟 DeepEval通过以下方式使LLM应用(比如用LlamaIndex或LangChain构建的)的测试变得极其容易:
测试后,只需回到你用来构建应用的LLM工具(我稍后会透露我的选择)上迭代改进需要优化的地方。这是一个快速示例,用来测试你的LLM聊天机器人响应的相关性:
from deepeval import evaluate
from deepeval.metrics import AnswerRelevancyMetric
from deepeval.test_case import LLMTestCase
test_case = LLMTestCase(
input="How many evaluation metrics does DeepEval offers?",
actual_output="14+ evaluation metrics"
)
metric = AnswerRelevancyMetric()
evaluate(test_cases=[test_case], metrics=[metric])
🌟 在GitHub上为DeepEval点赞
(DeepEval谦虚的吉祥物想要一个star)
在DeepEval评估的同时,LlamaIndex在构建。LlamaIndex是一个专门为将大语言模型(LLM)与各种数据源集成而设计的数据框架,特别适用于涉及检索增强生成(RAG)的应用。
对于那些没有听说过RAG的人,它在编程上相当于将一些文本粘贴到ChatGPT中并对其提出问题。RAG通过检索过程帮助你的LLM应用感知它不知道的上下文,而LlamaIndex使这一切变得极其容易。
你看,RAG中的一个大问题是连接数据源和从它们中解析非结构化数据(比如PDF中的表格)。这不难,但非常繁琐。
这是一个使用LlamaIndex构建客户支持聊天机器人来回答关于你私有数据问题的示例:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query("Some question about the data should go here")
print(response)
评估和构建很重要,但数据隐私呢?
Ollama很有意思,因为它让LLM能够在本地使用。它允许用户直接在自己的硬件上运行、自定义和交互LLM,这可以改进隐私、减少对云提供商的依赖,并为某些用例优化延迟。Ollama简化了开源LLM的使用,使它们对个人和组织来说更易获取和管理,无需广泛的机器学习专业知识或云基础设施。
例如,使用Ollama,你可以加载一个在公司服务器上本地运行的客户支持自动化模型。这种设置保持了客户数据的隐私,与基于云的设置相比可能还能降低响应延迟。Ollama也适合用于开源LLM的实验,比如为特定任务微调模型,或将它们集成到更大的应用中,而无需依赖外部云服务。
# List available models
ollama list
# Run a model with a prompt (for example, running a GPT-4-like model named `gpt4-all`)
ollama run gpt4-all -p "Explain the benefits of using DSPy."
Guidance是一个框架,旨在帮助开发者为大语言模型(LLM)构建动态、高效的提示词。与通常依赖固定模板的传统提示词工程不同,Guidance允许动态构造提示词,直接在提示词中利用循环和条件语句等控制结构。这种灵活性使它特别适用于生成需要复杂逻辑或自定义输出的响应。
一个简单的例子是,客户支持机器人:使用条件语句创建根据客户问题自适应的提示词,提供个性化响应,同时保持语气和风格的一致性,而不是手动提示。
import guidance
# Initialize the Guidance model (e.g., OpenAI or another model API)
gpt = guidance("gpt-3.5-turbo") # You can specify another model if available
# Define the dynamic prompt with Guidance
prompt = guidance("""
{{#if summary}}
Please provide a brief summary of the topic: {{topic}}.
{{else}}
Provide a detailed explanation of the topic: {{topic}}, covering all relevant details.
{{/if}}
""")
# Set up input parameters
params = {
"topic": "Machine Learning",
"summary": True # Toggle between True for summary or False for detailed response
}
# Run the prompt
response = prompt(params)
print(response)
DSPy旨在简化构建使用LLM的应用的过程,比如来自OpenAI或Hugging Face的那些。它使得更容易管理这些模型如何对输入做出响应,而无需不断手动调整提示词或设置。
DSPy的优势在于通过将逻辑与提示词分离、自动化提示词调优和支持灵活的模型切换,简化并加快了大语言模型应用的开发。这意味着开发者可以专注于定义任务而不是技术细节,从而更容易实现可靠和一致的结果。
不过,我个人发现DSPy很难上手,所以它在列表中排名比其他工具要低。
好的,就是这样,这就是你在GitHub上应该肯定使用的顶级LLM开源趋势工具和框架的列表,用来构建你下一个LLM应用。觉得我遗漏了什么?在下面评论让我知道!
感谢阅读,下次再见 😊
关于进一步的操作,你可以考虑屏蔽这个人和/或举报滥用行为