Mac 用户的 RAG 交互:通过 Chat-with-MLX 与数据对话

最近,Nvidia 推出了 Chat With RTX 功能,让我这个 Mac 用户感到非常羡慕。

虽然我尝试过多种 RAG(Retrieval-Augmented Generation)方法,但仍然希望能有一个适合 Mac M系列芯片的高效 RAG 解决方案。

这不来了。

https://github.com/qnguyen3/chat-with-mlx


作者推上的简介:

多模态与多语言项目的负责人,在 Ontocord 工作。现在与 NousResearch 有合作关系。此前曾在 OpenAI 工作。

推荐此程序的3个理由:

1. 安装方便

支持添加其他模型,详情请看 Github。

2. 程序使用 MLX

MLX 是苹果公司(Apple)专为其自家的硅片设计的一款机器学习研究框架,它由苹果的机器学习研究团队倾力打造。

MLX的亮点:

1)熟悉的API设计:MLX提供了类似于NumPy的Python API,使用户易于上手。同时,它还支持C++、C和Swift的API,保持与Python API的高度一致性。MLX还包含高级功能包如mlx.nn和mlx.optimizers,其API设计紧跟PyTorch,简化了复杂模型的构建过程。

2)灵活的函数转换能力:MLX支持自动微分、自动向量化和计算图优化,提升模型训练和优化的效率。

3)惰性计算机制:通过采用惰性计算,MLX能够仅在数据真正需要时才进行计算和呈现,有效提高计算效率。

4)动态图构建:MLX能动态构建计算图,即使函数参数的形状变化,也不会导致编译速度变慢,使得调试过程更为简单直观。

5)支持多设备运算:MLX能够在任何支持的设备上顺畅运行,无论是CPU还是GPU。

6)统一内存管理:与其他框架不同,MLX采用统一内存模型,数据存储在共享内存中,无需在不同设备间传输数据,极大提升了运算效率和数据处理速度。

3. 该程序不仅支持与本地文件(doc(x)、 pdf、 txt)的处理,还能够处理来自YouTube链接的内容。

Chat-with-MLX 界面

选中模型后,点击 Load Model,后台会出现下载进程。

有4个高级设置

Temperature

  • 温度控制生成文本的创造性和多样性。
  • 较高的温度会导致更具创造性和多样性的文本,但也可能导致文本不准确或不相关。
  • 较低的温度会导致更准确和相关的文本,但也可能导致文本不那么有趣或引人入胜。

Max Tokens

  • 最大令牌控制生成文本的长度。
  • 较高的最大令牌数允许生成更长的文本,而较低的最大令牌数限制文本长度。

Frequency Penalty

  • 频率惩罚控制重复单词和短语的频率。
  • 较高的频率惩罚会导致生成的文本中重复出现的单词和短语更少,而较低的频率惩罚允许更多的重复。

No. Retrieval Docs

  • 检索文档数控制用于生成响应的文档数量。
  • 较高的检索文档数会导致生成更准确和相关的响应,而较低的检索文档数会导致生成更具创造性和多样性的响应。

设置建议:

  • 对于需要准确性和相关性的任务,例如回答问题或撰写摘要,请使用较低的温度、较高的最大令牌数和较高的检索文档数
  • 对于需要创造性和多样性的任务,例如生成创意文本或编写故事,请使用较高的温度、较低的最大令牌数和较低的检索文档数。

对话体验

这里我选择了 NousResearch/Nous-Hermes-2-Mistral-7B-DPO- (4bit) 模型。

RAG 操作

先上传内容或输入 URL,然后点击“Start Indexing”,“Index Status”显示“Indexing Done”后,即可开始对话。

RAG 对话-上传 PDF 文件

RAG 对话-输入 Youtube URL

举报
评论 0