一个在Apple Silicon Mac上使用Apple MLX的全能聊天平台。
特点
- 隐私增强型AI:安全地与您喜欢的模型和数据聊天。
- MLX游乐场:您的Apple MLX一站式LLM聊天界面
- 轻松集成:轻松集成任何HuggingFace和MLX兼容的开源模型。
- 默认模型:Llama-3、Phi-3、Yi、Qwen、Mistral、Codestral、Mixtral、StableLM(以及Dolphin和Hermes变体)
安装和使用
简易安装
- 安装Pip
- 安装:
pip install chat-with-mlx
手动Pip安装
git clone https://github.com/qnguyen3/chat-with-mlx.git
cd chat-with-mlx
python -m venv .venv
source .venv/bin/activate
pip install -e .
手动Conda安装
git clone https://github.com/qnguyen3/chat-with-mlx.git
cd chat-with-mlx
conda create -n mlx-chat python=3.11
conda activate mlx-chat
pip install -e .
使用
- 启动应用:
chat-with-mlx
添加您的模型
请查看此处的指南
已知问题
- 当模型通过解决方案1下载时,唯一停止它的方法是在终端按下
control + C
。 - 如果您想切换文件,必须手动点击停止索引。否则,向量数据库会将第二个文档添加到当前数据库。
- 您必须选择数据集模式(文档或YouTube)才能使其工作。
- Phi-3-small在完成时无法进行流式传输
为什么选择MLX?
MLX是一个用于Apple silicon上机器学习研究的数组框架,由Apple机器学习研究团队提供。
MLX的一些主要特点包括:
-
熟悉的API:MLX有一个与NumPy非常相似的Python API。MLX还有功能齐全的C++、C和Swift API,这些API与Python API非常相似。MLX有更高级的包,如
mlx.nn
和mlx.optimizers
,其API与PyTorch非常相似,简化了构建更复杂模型的过程。 -
可组合的函数转换:MLX支持可组合的函数转换,用于自动微分、自动向量化和计算图优化。
-
惰性计算:MLX中的计算是惰性的。只有在需要时数组才会被实例化。
-
动态图构建:MLX中的计算图是动态构建的。改变函数参数的形状不会触发缓慢的编译,调试简单直观。
-
多设备:操作可以在任何支持的设备上运行(目前支持CPU和GPU)。
-
统一内存:MLX与其他框架的一个显著区别是统一内存模型。MLX中的数组存在于共享内存中。可以在任何支持的设备类型上执行MLX数组的操作,无需传输数据。
致谢
我要非常感谢:
- Apple机器学习研究团队提供了令人惊叹的MLX库。
- LangChain和ChromaDB提供了如此简单的RAG实现
- 所有贡献者