《mac电脑在AI开发上的优势与MLX框架的使用》

        我们首先介绍下mac电脑的用处。2015年的时候让在国外留学的弟弟背回来一台英特尔处理器的,MacBookPro 。那时候我的圈子里流传着一句话“买苹果电脑如果不是为了装*那就毫无意义”,虽然直到现在那台电脑还在服役状态。但是真正作为生产力工具使用的时间加起来也就不到两年。

        事情出现转机是在2020 年苹果曾向部分开发者提供搭载 A12Z Bionic 芯片的定制款 DTK Mac mini,这是苹果在个人电脑尝试使用自研芯片的开端,推出了一个能促成这篇文章的硬件,统一内存架构的Soc。

        从这开始mac电脑上运行内存和显存使用了同一个存储芯片,也就是说内存就是显存。但是发展到这还不足以激起太多回响。

        2022年3月 M1 Ultra 发布。顶配的macstudio 配置了128G的内存,在这考重点前面提到什么了?这128G的内存就是128G的显存。随后2022年5月 pytorch 宣布适配苹果的mps架构。再加上M系列的Ultra 内存带宽能达到800G/s 这使得一台MacStudio 上真的能运行起来一个超大的模型。

截止到我写稿,目前M系列最强芯片M3Ultra 配置了 512G的内存。

        就不拿它计算等于多少张4090了。短视频还有ai社区的人已经有人测试过671B的Deepseek了,虽然是量化过的。但是也是绝无仅有的能再一台个人电脑上运行起来一个超大模型,同样配置的能跑起来这么大模型的GPU算力 起码是百万起步了,但是mac电脑的512G内存 满配 也才十万。性价比超高。说实话说苹果有性价比我都恍惚了一下。这俩词以前就像是反义词一样。

       能在自己的电脑上运行起来一个大模型去做开发者大大降低了开发成本。开发者不需要再去花高价格购买一台服务器才能做ai开发,这也推动了ai整个行业的发展。

下面说一下文章标题中第二个主角MLX框架

虽然pytorch 适配了苹果的架构 直接修改驱动为mps就能直接适配M系列的芯片,但是对于硬件都自己造的苹果感觉还是差点意思。

于是2023年12月 苹果推出了MLX框架。

MLX 是专门为苹果系列芯片设计的科学计算框架。框架本身的设计在概念上也很简单。研究人员能够轻松地扩展和改进 MLX,以快速探索、测试新的想法。MLX 的设计灵感来自 NumPy、PyTorch、Jax 和 ArrayFire 等框架。这使得开发者在使用习惯上几不用做出改变。mlx框架宗旨是原生适配,更多的去压榨一下 M系列芯片的 性能。

下面是一些简单的示例


这上面是简单的介绍详细的介绍还是需要去官网去查看.

MLX — MLX 0.24.1 documentation

结合上面说的mlx框架宗旨是原生适配,更多的去压榨一下 M系列芯片的性能。我更多的是使用MLX适配芯片运行起来一个我们需要的模型。提供智能应用开发的必要条件

方法一:LMStudio上直接选择MLX适配的模型运行起来。

 

方法二:使用mlx框架直接运行一个模型,模型下载可以从modelscope还有huggingface上自行下载。

下面是 jupyter notebook上测试代码

已经运行到这一步的话 后续如果需要运行一个兼容openai格式的api接口也是非常简单。小伙伴们根据需求自行开发。

在M2Ultra 发布的时候 对M2Ultra 的介绍有提到完全可以在这台机器上去训练一个大模型。训练我个人觉得不太现实,而且现在能用的大模型很多根本没有自己训练的必要。

但是精调一下还是可以的。

以Qwen2.5-1.5B-Instruct 为例简单介绍一下。

首先我们需要准备精调的文档的三个文件 里面是json格式的。但是文件名后缀为jsonl

test.jsonl 

train.jsonl 

valid.jsonl

这三个分别是测试集,训练集,还有验证集

json格式内容:

{

    "prompt": "<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n<|im_start|>user\n{问题}<|im_end|>",

    "completion": "<|im_start|>assistant\n{答案}<|im_end|>"

}

微调命令:  

mlx_lm.lora --model './model/Qwen2.5-1.5B-Instruct' --train --iters {训练轮数: 600} --data {训练数据集所在文件夹:data}

微调之后会生成一个 adapters 文件夹,使用的时候 加载上 就可以测试微调之后的成果

挂载训练之后的权重:

mlx_lm.generate --model './model/Qwen2.5-1.5B-Instruct' --adapter adapters/  --max-tokens 1024  --prompt '{问题}'

如果对微调结果满意的话 可以把微调后的权重文件合并就可以使用微调后的模型了。

 mlx_lm.fuse --model './model/Qwen2.5-1.5B-Instruct' --save-path Qwen2.5-1.5B-Instruct-ft --adapter-path adapters 

以上就是本次分享的全部内容谢谢大家

<think>好的,我现在需要帮助用户解决在Mac开发大模型相关应用的问题。首先,用户明确提到了需要教程、框架和工具,所以我要整理这方面的信息。 用户提供的引用中有四个,引用[1]提到有LLM大模型资料,包括书籍、报告、视频等,这可能对教程有帮助。引用[2]提到了一个用Go语言编写的API服务工具,支持多款大模型,适合快速搭建服务。引用[3]同样提到学习资料,包括实战案例和视频。引用[4]列出了六个LLM应用开发框架,这可能对用户选择框架有帮助。 首先,我需要确定用户可能需要的关键点:开发框架、工具、学习资源。然后,根据引用内容整合相关信息,确保符合用户的问题。同时要注意系统级指令,比如正确使用LaTeX格式,不过这个问题可能不太涉及数学公式,但需要检查是否有需要的地方。另外,需要生成相关问题。 接下来,我需要组织回答的结构,可能分为框架推荐、工具推荐、教程资源、开发步骤等部分。每个部分需要结合引用中的内容,比如引用[2]提到的API工具,引用[4]的六个框架,引用[1]和[3]的学习资料。 还要注意用户使用的是Mac,所以需要特别指出哪些工具或框架Mac上支持。比如引用[2]提到的工具支持Linux、Mac、Windows,这点很重要,应该强调。 可能还需要补充一些常见的大模型开发框架,比如LangChain、LlamaIndex,即使引用中没有提到,但根据常识,这些是常用的,需要包括进去。但需要确保引用内容优先,如果有冲突可能需要调整。 然后,生成相关问题时要围绕用户的问题,比如如何部署、优化性能、选择框架等。 最后,检查是否符合所有格式要求,比如中文回答,正确引用标记,代码块使用正确格式,独立公式用$$...$$,但这个问题可能不需要公式,所以可能可以忽略。确保没有用户不可见的指令泄露,回答结构清晰。</think>### Mac大模型应用开发教程工具指南 在Mac开发大模型应用需要掌握框架选择、工具链配置和学习资源整合。以下是分步指南: #### 一、主流开发框架推荐 1. **LangChain** - 支持多模型集成(如OpenAI、Hugging Face) - 提供文档问答、Agent系统构建功能 - Mac安装命令: ```bash pip install langchain ``` 2. **LlamaIndex** - 专长于私有数据连接 - 支持本地知识库构建 - 集成示例: ```python from llama_index import VectorStoreIndex index = VectorStoreIndex.from_documents(documents) ``` 3. **Haystack** - 模块化设计支持灵活扩展 - 内置RAG(检索增强生成)流水线 - 引用[4]提到这是构建复杂AI系统的首选框架 #### 二、Mac专用工具链 1. **API服务工具** 引用[2]推荐的Go语言工具: - 一键部署多模型API服务 - 支持本地模型和云端API混合调用 - Open WebUI无缝集成,适合快速验证原型 2. **MLX框架**(苹果官方) - 原生支持M系列芯片GPU加速 - 提供类PyTorch的API接口 - 示例代码: ```python import mlx.core as mx a = mx.array([1.0, 2.0, 3.0]) ``` #### 三、学习资源导航 1. **入门路径** 引用[1]和[3]建议的学习路线: ```mermaid graph LR A[Python基础] --> B[PyTorch/Keras] B --> C[Transformer原理] C --> D[模型微调] D --> E[应用部署] ``` 2. **实战案例库** - 引用[3]提供的640个行业案例 - Hugging Face模型库的Mac适配教程 #### 四、开发环境配置 1. **Miniconda环境** ```bash conda create -n llm python=3.10 conda activate llm ``` 2. **硬件优化配置** - 启用Metal Performance Shaders: ```python import torch device = torch.device("mps") ``` #### 五、典型开发流程 1. 数据准备 → 2. 模型选择 → 3. 本地微调 → 4. API封装 → 5. 应用集成[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值