"就在前几天,我在决定要用哪一套LLM工具来构建我公司即将推出的客户支持聊天机器人时,这成了我一生中最容易做出的决定!" - 从来没有人这么说过这样的话 🚩 🚩 🚩
自gpt-4发布以来,已经有一段时间了,但似乎每周都会有一个新的开源LLM框架问世,每个新框架都做着与它的50多个竞争对手相同的事情,同时却努力地解释它比前一个更好。归根结底,像你这样的开发者真正想要的是一些个人经历,来权衡每个框架的优缺点。 👨🏻💻
所以,作为一名尝试了十多个开源大型语言模型工具的人,我想告诉你我的一些推荐,这样你就不用自己去做那些无聊的活了。😊
开始吧!
(星号表示此处省略内容)
🎉 DeepEval 是一款能帮助你量化你的 LLM 应用表现得如何的工具,比如客户支持聊天机器人。
它排名第一,原因很简单:就是两个。
对于不太熟悉的人来说,你知道,LLM测试相当难,因为LLM的回答可能性几乎是无限的。👇 DeepEval可以让测试像使用LlamaIndex或LangChain构建的LLM应用程序变得极其简单。
测试之后,只需返回你用于构建应用程序的LLM工具(我稍后会告诉你我的选择),来改进需要提升的部分。这里有一个快速示例,用于测试你LLM聊天机器人的回复是否相关。
从deepeval导入evaluate 函数 从deepeval.metrics 导入 AnswerRelevancyMetric 类 从deepeval.test_case 导入 LLMTestCase 类 test_case = LLMTestCase( input="DeepEval 提供多少评估指标?", actual_output="14+ 个评估指标" ) metric = AnswerRelevancyMetric() evaluate(test_cases=[test_case], metrics=[metric])
全屏(开启/关闭)
[🌟] 星深度评估工具在GitHub上 (https://github.com/confident-ai/deepeval)
(嘿,DeepEval的小吉祥物想要一颗星星)
此处省略内容
当 DeepEval 在评估时,LlamaIndex 正忙于构建。LlamaIndex 是一个专门设计用于集成大型语言模型(LLMs)与各种数据源进行集成的数据框架,特别是针对那些涉及检索增强生成(RAG)的应用。
如果你还不知道 RAG 是什么,RAG 就像你把一些文本粘贴到 ChatGPT 上并询问相关问题的自动化版本。RAG 帮助你的 LLM 应用程序了解它原本不了解的上下文,而 LlamaIndex 让这个过程变得非常简单。
你知道,在RAG中,一个大问题在于连接数据源并解析非结构化数据(例如PDF中的表格)。虽然这不难,但构建这部分工作极其繁重。
这里有一个使用LlamaIndex构建的客服聊天机器人来回答您私人数据相关问题的例子。
从 llama_index.core 引入 VectorStoreIndex 和 SimpleDirectoryReader documents = SimpleDirectoryReader("data").load_data() index = VectorStoreIndex.from_documents(documents) query_engine = index.as_query_engine() response = query_engine.query("此处应输入关于数据的问题") # 打印响应结果 print(response)
进入全屏模式 退出全屏
🌟 在 GitHub 上给 run-llama/llama_index 加星
略
评估和建设确实很重要,但数据隐私又如何呢?
Ollama 可谓是一个有趣的应用,因为它让大型语言模型可以本地运行。它允许用户在其硬件上直接运行、自定义和与大型语言模型互动,这可以提升隐私保护,减少对云服务提供商的依赖性,并优化某些应用场景的延迟。Ollama 让开源大型语言模型的使用变得更容易,使其更易于个人和组织使用和管理,而无需深入的机器学习知识或云端支持。
例如,使用 Ollama,你可以加载一个用于客户支持的自动化模型,在公司服务器上本地运行。这种设置可以保持客户数据的私密性,并且相比基于云的设置,可能减少响应延迟。Ollama 同样适合进行大规模语言模型的实验,比如对模型进行微调以适应特定任务,或者将它们集成到更大的应用中,而不依赖外部云服务。
# 列出可用的模型 ollama list # 运行带有提示的模型(例如,运行一个像 GPT-4 一样的模型名为 `gpt4-all`) ollama run gpt4-all -p "解释使用 DSPy 的好处。"
进入全屏,退出全屏
🌟 GitHub上的星
指导是一种框架,旨在帮助开发者为大型语言模型(LLM)创建动态且高效的提示。与传统的提示工程往往依赖固定模板不同,指导允许提示动态生成,直接在提示中使用循环和条件等控制结构。这种灵活性使其特别适合生成需要复杂逻辑或定制输出的回复。
一个简单的例子是,客户支持聊天机器人:利用条件语句来创建根据客户问题调整的提示,提供个性化的回复,同时保持一致的语气和风格,而不是手动编写提示。
import guidance # 初始化或加载 Guidance 模型(例如,OpenAI 或其他模型 API) gpt = guidance("gpt-3.5-turbo") # 如果有其他可用的模型,可以指定其他模型 # 使用 Guidance 定义动态提示 prompt = guidance(""" {{#if summary}} 请提供主题 {{topic}} 的简短摘要。 {{else}} 请提供主题 {{topic}} 的详细解释,涵盖所有相关信息。 {{/if}} """) # 设置输入参数 params = { "topic": "机器学习", "summary": True # 设置为 True 以生成摘要,设置为 False 以生成详细响应 } # 执行提示 response = prompt(params) 打印(response)
全屏模式,退出全屏
🌟 GitHub 上给 guidance-ai/guidance 星标
DSPy旨在简化使用如OpenAI或Hugging Face等平台的大型语言模型来构建应用程序的过程。它使得管理这些模型如何响应输入更加轻松,无需频繁手动调整提示或设置。
DSPy 的好处在于它通过将逻辑与提示分离,自动化提示调优,支持灵活的模型切换,简化并加速了基于大型语言模型的应用开发。这意味着开发人员可以专注于任务定义,而不是纠结于技术细节,从而更容易实现可靠且一致的结果。
不过,我却发现DSPy这种工具不太好上手,所以它的排名在列表中比较靠后。
🌟 在 GitHub 上星标 StanfordNLP/dspy
所以这就介绍完了,这是你可以用来构建下一个LLM应用程序的GitHub上最热门的LLM开源工具和框架列表。如果你觉得我漏掉了什么?在下面留言告诉我哦!
感谢您的关注,下回见😊