人工智能学习

???? 五个你不可不知的超火开源大模型工具和框架 ????

本文主要是介绍???? 五个你不可不知的超火开源大模型工具和框架 ????,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
太长没看
TL;DR

"就在前几天,我在决定要用哪一套LLM工具来构建我公司即将推出的客户支持聊天机器人时,这成了我一生中最容易做出的决定!" - 从来没有人这么说过这样的话 🚩 🚩 🚩

自gpt-4发布以来,已经有一段时间了,但似乎每周都会有一个新的开源LLM框架问世,每个新框架都做着与它的50多个竞争对手相同的事情,同时却努力地解释它比前一个更好。归根结底,像你这样的开发者真正想要的是一些个人经历,来权衡每个框架的优缺点。 👨🏻‍💻

所以,作为一名尝试了十多个开源大型语言模型工具的人,我想告诉你我的一些推荐,这样你就不用自己去做那些无聊的活了。😊

开始吧!

(星号表示此处省略内容)

1. DeepEval - 一个用于评估大模型的语言框架。

🎉 DeepEval 是一款能帮助你量化你的 LLM 应用表现得如何的工具,比如客户支持聊天机器人。

它排名第一,原因很简单:就是两个。

  1. 我认为评估和测试LLM性能是构建LLM应用最关键的步骤之一。
  2. 目前最好的LLM评估框架之一是这个,而且它是开源的💯

对于不太熟悉的人来说,你知道,LLM测试相当难,因为LLM的回答可能性几乎是无限的。👇 DeepEval可以让测试像使用LlamaIndex或LangChain构建的LLM应用程序变得极其简单。

  • 提供超过 14 种研究评估指标,用于测试任何框架(例如 LangChain)构建的 LLM 应用程序。
  • 简单易用,文档详尽,易于理解。非常适合初学者,但也足够技术化,让专家能够深入研究。
  • 与 Pytest 集成,可以轻松将其纳入您的 CI/CD 管道以进行部署检查。
  • 合成数据集生成- 帮助您在没有准备好的数据集时开始评估。
  • 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)

Github stars
(嘿,DeepEval的小吉祥物想要一颗星星)

此处省略内容

2. LlamaIndex - 用于大语言模型应用的数据框架工具

当 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 加星

3. Ollama - 快速上手大型语言模型

评估和建设确实很重要,但数据隐私又如何呢?

Ollama 可谓是一个有趣的应用,因为它让大型语言模型可以本地运行。它允许用户在其硬件上直接运行、自定义和与大型语言模型互动,这可以提升隐私保护,减少对云服务提供商的依赖性,并优化某些应用场景的延迟。Ollama 让开源大型语言模型的使用变得更容易,使其更易于个人和组织使用和管理,而无需深入的机器学习知识或云端支持。

例如,使用 Ollama,你可以加载一个用于客户支持的自动化模型,在公司服务器上本地运行。这种设置可以保持客户数据的私密性,并且相比基于云的设置,可能减少响应延迟。Ollama 同样适合进行大规模语言模型的实验,比如对模型进行微调以适应特定任务,或者将它们集成到更大的应用中,而不依赖外部云服务。

# 列出可用的模型
ollama list

# 运行带有提示的模型(例如,运行一个像 GPT-4 一样的模型名为 `gpt4-all`)
ollama run gpt4-all -p "解释使用 DSPy 的好处。"

进入全屏,退出全屏

🌟 GitHub上的星


4. 指导。

指导是一种框架,旨在帮助开发者为大型语言模型(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 星标


5. DSPy- 使用算法优化LM提示和权重

DSPy旨在简化使用如OpenAI或Hugging Face等平台的大型语言模型来构建应用程序的过程。它使得管理这些模型如何响应输入更加轻松,无需频繁手动调整提示或设置。

DSPy 的好处在于它通过将逻辑与提示分离,自动化提示调优,支持灵活的模型切换,简化并加速了基于大型语言模型的应用开发。这意味着开发人员可以专注于任务定义,而不是纠结于技术细节,从而更容易实现可靠且一致的结果。

不过,我却发现DSPy这种工具不太好上手,所以它的排名在列表中比较靠后。

🌟 在 GitHub 上星标 StanfordNLP/dspy


所以这就介绍完了,这是你可以用来构建下一个LLM应用程序的GitHub上最热门的LLM开源工具和框架列表。如果你觉得我漏掉了什么?在下面留言告诉我哦!

感谢您的关注,下回见😊

这篇关于???? 五个你不可不知的超火开源大模型工具和框架 ????的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!