本周DBRX等八款大模型开源项目

有趣的项目、工具和库

1、SWE-agent
SWE-agent 将 LM(例如 GPT-4)转变为软件工程代理,可以修复真实 GitHub 存储库中的错误和问题。
SWE-bench上,SWE-agent 解决了12.29%的问题,在整个测试集上实现了最先进的性能。

代理计算机接口 (ACI)

我们通过设计简单的以 LM 为中心的命令和反馈格式来实现这些结果,使 LM 更容易浏览存储库、查看、编辑和执行代码文件。我们将其称为代理计算机接口(ACI),并构建 SWE 代理存储库,以便轻松迭代存储库级编码代理的 ACI 设计。

就像典型的语言模型需要良好的提示工程一样,良好的 ACI 设计在使用代理时会带来更好的结果。正如我们在论文中所示,没有经过良好调整的 ACI 的基线代理的表现比 SWE 代理差得多。

SWE-agent 包含我们发现在代理-计算机界面设计过程中非常有用的功能:

  1. 我们添加了一个在发出编辑命令时运行的 linter,并且如果代码语法不正确,则不会让编辑命令通过。
  2. 我们为代理提供了一个专门构建的文件查看器,而不仅仅是cat文件。我们发现此文件查看器在每轮仅显示 100 行时效果最佳。我们构建的文件编辑器具有用于上下滚动以及在文件中执行搜索的命令。
  3. 我们为代理提供了专门构建的全目录字符串搜索命令。我们发现该工具简洁地列出匹配项非常重要 - 我们只需列出至少有一个匹配项的每个文件。事实证明,向模型显示有关每场比赛的更多上下文对于模型来说太混乱了。
  4. 当命令的输出为空时,我们会返回一条消息,指出“您的命令已成功运行,但未产生任何输出”。

用法:
SWE-agent 管道有两个步骤

  • 第一个 SWE 代理接受输入 GitHub 问题并返回尝试修复它的拉取请求。我们称该步骤为推理。
  • 第二步(目前仅适用于 SWE-bench 基准测试中的问题)是评估拉取请求以验证它确实解决了问题。


2、DBRX
databricks DBRX 是一个混合专家 (MoE) 模型,具有 132B 总参数和 36B 实时参数。我们使用 16 名专家,其中 4 名在训练或推理过程中处于活跃状态。 DBRX 针对 12T 文本标记进行了预训练。 DBRX 的上下文长度为 32K 个令牌。

  • 根据我们的测量,它超越了GPT-3.5,并且与Gemini 1.0 Pro具有竞争力。它是一个特别强大的代码模型,除了作为通用 LLM 的优势外,在编程方面超越了 CodeLLaMA-70B 等专业模型。
  • 这种最先进的质量伴随着训练和推理性能的显着改进。 DBRX 凭借其细粒度的专家混合 (MoE) 架构,在开放模型中提高了最先进的效率。
  • 推理速度比 LLaMA2-70B 快 2 倍,而且就总参数计数和活动参数计数而言,DBRX 的大小约为 Grok-1 的 40%。

DBRX 是一种基于 Transformer 的仅解码器大语言模型 (LLM),使用下一个令牌预测进行训练。与 Mixtral 和 Grok-1 等其他开放 MoE 模型相比,DBRX 是细粒度的,这意味着它使用了更多数量的小型专家。

该模型使用我们的开源库ComposerLLM FoundryMegaBlocksStreaming的优化版本进行训练。
训练混合专家模型很困难。我们必须克服各种科学和性能挑战,才能构建足够强大的管道,以有效的方式重复训练 DBRX 级模型。现在我们已经做到了这一点,我们拥有了一个独一无二的训练堆栈,允许任何企业从头开始训练世界一流的 MoE 基础模型。

TensorRT-LLM 和 vLLM 均可用于通过 DBRX 运行优化推理。我们已在 NVIDIA A100 和 H100 系统上测试了这两个库。要以 16 位精度运行推理,至少需要 4 x 80GB 多 GPU 系统。


3、thepipe
使用一行代码将任何文件、文件夹、网站或存储库导出到 GPT-4-Vision。

该管道是一种多模式优先的工具,用于将非结构化文件、目录和网站扁平化为可立即使用的格式,以便与大型语言模型一起使用。它建立在数十种精心设计的启发式之上,可以从文件、目录、网页、论文、github 存储库等创建合理的文本和图像提示。

特点

  • 准备来自数十种复杂文件类型的提示
  • 复杂 PDF、Markdown 等的可视化文档提取 
  • 针对多模式 LLM 优化的输出 
  • 超过您设置的令牌限制时自动压缩提示 
  • 适用于丢失的文件扩展名、内存中的数据流
  • 适用于目录、URL、git 存储库等 
  • 多线程


4、Sparrow
使用 ML 和 LLM 进行数据处理。

  • Sparrow 是一种创新的开源解决方案,可从各种文档和图像中高效提取和处理数据。它能无缝处理表单、发票、收据和其他非结构化数据源。
  • Sparrow 以其模块化架构脱颖而出,提供独立的服务和管道,所有服务和管道均经过优化,性能强劲。
  • Sparrow 的关键功能之一是可插拔架构。您可以使用 LlamaIndex、Haystack 或 Unstructured 等工具和框架轻松集成和运行数据提取管道。
  • Sparrow 可通过 Ollama 或 Apple MLX 实现本地 LLM 数据提取管道。
  • 有了 Sparrow 解决方案,您就可以获得 API,它有助于将数据处理和转换为结构化输出,并可随时与自定义工作流集成。

Sparrow 代理--使用 Sparrow,您可以构建独立的 LLM 代理,并使用 API 从您的系统中调用它们。


5、Nava
在 Python 中播放声音。

  • Nava 是一个 Python 库,允许用户在 Python 中播放声音,而无需任何依赖项或平台限制。
  • 它是一个跨平台解决方案,可以在任何操作系统上运行,包括 Windows、macOS 和 Linux。
  • 其轻量级且易于使用的设计使 Nava 成为希望向 Python 程序添加声音功能的开发人员的理想选择。


6、IPEX-LLM
一个 PyTorch 库,用于在 Intel CPU 和 GPU(例如,具有 iGPU 的本地 PC、Arc、Flex 和 Max 等独立 GPU)上运行 LLM,延迟非常低。

  • 它建立在 Intel Extension for PyTorch (IPEX) 以及 llama.cpp、bitsandbytes、vLLM、qlora、AutoGPTQ、AutoAWQ 等优秀成果之上。
  • 它提供了与 llama.cpp、Text-Generation-WebUI、HuggingFace 转换器、HuggingFace PEFT、LangChain、LlamaIndex、DeepSpeed-AutoTP、vLLM、FastChat、HuggingFace TRL、AutoGen、ModeScope 等的无缝集成。
  • 50 多种模型已在 ipex-llm 上优化/验证(包括 LLaMA2、Mistral、Mixtral、Gemma、LLaVA、Whisper、ChatGLM、Baichuan、Qwen、RWKV 等);请在此处查看完整列表。


7、RAGFlow
RAGFlow 是一个基于深度文档理解的开源 RAG(检索增强生成)引擎。

它为任何规模的企业提供简化的 RAG 工作流程,结合 LLM(大型语言模型)来提供真实的问答功能,并以来自各种复杂格式数据的有根据的引用为后盾。

  • 基于深度文档理解,从复杂格式的非结构化数据中提取知识。
  • 找到几乎无限的令牌的“数据大海捞针”。

基于模板的分块
  • 智能且可解释。
  • 有大量模板选项可供选择。

减少幻觉的有根据的引用
  • 文本分块的可视化以允许人工干预。
  • 快速查看关键参考文献和可追溯的引文,以支持有根据的答案。

兼容异构数据源
  • 支持Word、幻灯片、Excel、txt、图像、扫描件、结构化数据、网页等。

自动化、轻松的 RAG 工作流程
  • 简化的 RAG 编排可满足个人和大型企业的需求。
  • 可配置的法学硕士以及嵌入模型。
  • 多重召回与融合重新排名相结合。
  • 直观的 API,可与业务无缝集成。

8、plandex
用于复杂任务的人工智能编码引擎

Plandex 使用长时间运行的代理来完成跨多个文件且需要多个步骤的任务。它将大任务分解为更小的子任务,然后实现每一个子任务,一直持续到完成工作为止。它可以帮助您处理积压的工作,使用不熟悉的技术,摆脱困境,并花更少的时间在无聊的事情上。

  • Plandex 依赖于 OpenAI API,需要OPENAI_API_KEY环境变量。对开源模型、Google Gemini 和 Anthropic Claude 的支持即将推出。
  • Plandex 支持 Mac、Linux、FreeBSD 和 Windows。它从没有依赖关系的单个二进制文件运行。

优点:

  • 超越自动完成功能,利用人工智能构建复杂的功能。
  • 使用 ChatGPT 停止以鼠标为中心、复制粘贴的疯狂编码。
  •  在终端中有效管理上下文。
  •  确保 AI 模型始终在上下文中拥有最新版本的文件。
  •  保持对上下文内容以及您使用的令牌数量的精细控制。
  •  在应用更改之前,在受保护的沙箱中进行实验、修改和审查。
  •  根据需要倒回并重试。
  •  探索分支的多种方法。
  •  在后台运行任务或并行处理多个任务。
  • 尝试不同的模型和模型设置,然后比较结果。