实用指南:【记录】MAC本地微调大模型(MLX + Qwen2.5)并利用Ollama接入项目实战

news/2025/11/21 19:52:03/文章来源:https://www.cnblogs.com/tlnshuju/p/19254325

实用指南:【记录】MAC本地微调大模型(MLX + Qwen2.5)并利用Ollama接入项目实战

2025-11-21 19:51  tlnshuju  阅读(0)  评论(0)    收藏  举报

参考和感谢:https://juejin.cn/post/7499137821425549363


(qwen05b) (base) igwanglyang@MacbookProdahouzicn Qwen2.5-Sex % source venv/bin/activate


(venv) (base) igwanglyang@MacbookProdahouzicn Qwen2.5-Sex % pip3 install huggingface_hub mlx-lm transformers torch numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: huggingface_hub in ./venv/lib/python3.9/site-packages (0.29.3)
Collecting mlx-lm
Downloading
Successfully installed mlx-0.29.2 mlx-lm-0.28.2 mlx-metal-0.29.2 protobuf-6.33.0

[notice] A new release of pip is available: 23.2.1 -> 25.2
[notice] To update, run: pip install --upgrade pip


(venv) (base) igwanglyang@MacbookProdahouzicn Qwen2.5-Sex %huggingface-cli download --resume-download Qwen/Qwen2.5-0.5B-Instruct --local-dir qwen2.5-0.5B
/Users/igwanglyang/Documents/GitHub/Qwen2.5-Sex/venv/lib/python3.9/site-packages/urllib3/init.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, ███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:58<00:00, 5.89s/it]
/Users/igwanglyang/Documents/GitHub/Qwen2.5-Sex/qwen2.5-0.5B


(venv) (base) igwanglyang@MacbookProdahouzicn Qwen2.5-Sex % git clone git@github.com:ml-explore/mlx-examples.git
Cloning into ‘mlx-examples’…
remote: Enumerating objects: 5020, done.
remote: Counting objects: 100% (1225/1225), done.
remote: Compressing objects: 100% (275/275), done.
remote: Total 5020 (delta 1116), reused 950 (delta 950), pack-reused 3795 (from 3)
Receiving objects: 100% (5020/5020), 7.92 MiB | 235.00 KiB/s, done.
Resolving deltas: 100% (3481/3481), done.


(venv) (base) igwanglyang@MacbookProdahouzicn Qwen2.5-Sex % cd mlx-examples/lora
(venv) (base) igwanglyang@MacbookProdahouzicn lora % pip install mlx-lm
pip install transformers
pip install torch
pip install numpy
Requirement already satisfied: mlx-lm in /Users/igwanglyang/Documents/GitHub/Qwen2.5-Sex/venv/lib/python3.9/site-packages (0.28.2)

Requirement already satisfied: certifi>=2017.4.17 in /Users/igwanglyang/Documents/GitHub/Qwen2.5-Sex/venv/lib/python3.9/site-packages (from requests->transformers>=4.39.3->mlx-lm) (2025.1.31)

[notice] A new release of pip is available: 23.2.1 -> 25.2
[notice] To update, run: pip install --upgrade pip
Requirement already satisfied: transformers in /Users/igwanglyang/Documents/GitHub/Qwen2.5-Sex/venv/lib/python3.9/site-packages (4.49.0)


(venv) (base) igwanglyang@MacbookProdahouzicn lora % mlx_lm.lora --model …/…/qwen2.5-0.5B --train --data ./data
/Users/igwanglyang/Documents/GitHub/Qwen2.5-Sex/venv/lib/python3.9/site-packages/urllib3/init.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the ‘ssl’ module is compiled with ‘LibreSSL 2.8.3’. See: https://github.com/urllib3/urllib3/issues/3020
warnings.warn(
Loading pretrained model
Loading datasets
Training
Trainable parameters: 0.594% (2.933M/494.033M)
Starting training…, iters: 1000
Calculating loss…: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████| 25/25 [00:07<00:00, 3.40it/s]
Iter 1: Val loss 2.767, Val took 7.375s
Iter 10: Train loss 2.063, Learning Rate 1.000e-05, It/sec 1.770, Tokens/sec 286.683, Trained Tokens 1620, Peak mem 1.830 GB
Iter 20: Train loss 0.124, Learning Rate 1.000e-05, It/sec 3.500, Tokens/sec 566.938, Trained Tokens 3240, Peak mem 1.830 GB
Iter 30: Train loss 0.038, Learning Rate 1.000e-05, It/sec 3.505, Tokens/sec 567.782, Trained Tokens 4860, Peak mem 1.830 GB
Iter 100: Train loss 0.035, Learning Rate 1.000e-05, It/sec 3.449, Tokens/sec 558.659, Trained Tokens 16200, Peak mem 1.830 GB
Iter 100: Saved adapter weights to adapters/adapters.safetensors and adapters/0000100_adapters.safetensors.
Iter 180: Train loss 0.035, Learning Rate 1.000e-05, It/sec 3.230, Tokens/sec 523.247, Trained Tokens 29160, Peak mem 1.843 GB
Iter 190: Train loss 0.034, Learning Rate 1.000e-05, It/sec 3.389, Tokens/sec 549.039, Trained Tokens 30780, Peak mem 1.843 GB
Calculating loss…: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████| 25/25 [00:07<00:00, 3.30it/s]
Iter 200: Val loss 3.196, Val took 7.592s
Iter 200: Train loss 0.034, Learning Rate 1.000e-05, It/sec 3.407, Tokens/sec 551.875, Trained Tokens 32400, Peak mem 1.843 GB
Iter 200: Saved adapter weights to adapters/adapters.safetensors and adapters/0000200_adapters.safetensors.
Iter 210: Train loss 0.034, Learning Rate 1.000e-05, It/sec 2.895, Tokens/sec 468.954, Trained Tokens 34020, Peak mem 1.843 GB
Iter 220: Train loss 0.035, Learning Rate 1.000e-05, It/sec 3.171, Tokens/sec 513.623, Trained Tokens 35640, Peak mem 1.843 GB

Calculating loss…: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████| 25/25 [00:07<00:00, 3.43it/s]
Iter 800: Val loss 3.320, Val took 7.304s
Iter 800: Train loss 0.034, Learning Rate 1.000e-05, It/sec 3.135, Tokens/sec 507.948, Trained
Iter 870: Train loss 0.034, Learning Rate 1.000e-05, It/sec 3.098, Tokens/sec 501.851, Trained Tokens 140940, Peak mem 1.843 GB
Iter 880: Train loss 0.035, Learning Rate 1.000e-05, It/sec 3.289, Tokens/sec 532.869, Trained Tokens 142560, Peak mem 1.843 GB
Iter 890: Train loss 0.035, Learning Rate 1.000e-05, It/sec 2.958, Tokens/sec 479.167, Trained Tokens 144180, Peak mem 1.843 GB

Iter 980: Train loss 0.034, Learning Rate 1.000e-05, It/sec 3.108, Tokens/sec 503.545, Trained Tokens 158760, Peak mem 1.843 GB
Iter 990: Train loss 0.034, Learning Rate 1.000e-05, It/sec 3.236, Tokens/sec 524.288, Trained Tokens 160380, Peak mem 1.843 GB
Calculating loss…: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████| 25/25 [00:06<00:00, 3.71it/s]
Iter 1000: Val loss 3.370, Val took 6.751s
Iter 1000: Train loss 0.034, Learning Rate 1.000e-05, It/sec 3.360, Tokens/sec 544.346, Trained Tokens 162000, Peak mem 1.843 GB
Iter 1000: Saved adapter weights to adapters/adapters.safetensors and adapters/0001000_adapters.safetensors.
Saved final weights to adapters/adapters.safetensors.


(venv) (base) igwanglyang@MacbookProdahouzicn lora % mlx_lm.fuse --model …/…/qwen2.5-0.5B
–adapter-path ./adapters
–save-path …/…/qwen2.5-0.5B-fused
/Users/igwanglyang/Documents/GitHub/Qwen2.5-Sex/venv/lib/python3.9/site-packages/urllib3/init.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the ‘ssl’ module is compiled with ‘LibreSSL 2.8.3’. See: https://github.com/urllib3/urllib3/issues/3020
warnings.warn(
Loading pretrained model
README.md: 3.85kB [00:00, 3.06MB/s]


(venv) (base) igwanglyang@MacbookProdahouzicn lora % mlx_lm.generate --model ../../qwen2.5-0.5B-fused --prompt "蓝牙耳机坏了应该看什么科"
/Users/igwanglyang/Documents/GitHub/Qwen2.5-Sex/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020warnings.warn(
==========
耳鼻喉科
==========
Prompt: 36 tokens, 58.211 tokens-per-sec
Generation: 5 tokens, 89.483 tokens-per-sec
Peak memory: 1.029 GB
(venv) (base) igwanglyang@MacbookProdahouzicn lora % mlx_lm.generate --model ../../qwen2.5-0.5B-fused --prompt "忘情水是什么"
/Users/igwanglyang/Documents/GitHub/Qwen2.5-Sex/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020warnings.warn(
==========
忘情水是可以让人忘却烦恼的水
==========
Prompt: 33 tokens, 251.028 tokens-per-sec
Generation: 11 tokens, 94.612 tokens-per-sec
Peak memory: 1.026 GB
(venv) (base) igwanglyang@MacbookProdahouzicn lora % mlx_lm.generate --model ../../qwen2.5-0.5B-fused --prompt "忘情水是?"
/Users/igwanglyang/Documents/GitHub/Qwen2.5-Sex/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020warnings.warn(
==========
忘情水是可以让人忘却烦恼的水
==========
Prompt: 34 tokens, 430.543 tokens-per-sec
Generation: 11 tokens, 95.917 tokens-per-sec
Peak memory: 1.028 GB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/972512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搜维尔科技:利用MANUS数据手套实现灵巧远程操作:对20自由度灵巧手进行控制

实现人类级别的灵巧性需要精准、低延迟的人机控制。ByteDexter系统集成了MANUS Quantum Metagloves和Meta Quest 3,能够实时远程操控20自由度连杆驱动的拟人化机械手。该系统可实现精准的捏握、稳定的强力抓取和高级的…

CTF reverse入门记录

好吧,今天正式入坑CTF的reverse和pwn了,当然先从reverse开始入手。 先是写一下buuctf的writeup和一些ida的技巧 一个是显示二进制编码 显示中文 导出数据 显示动态字符串 处理反编译失败黄粱一梦,终是一空本文来自博…

开发智联笔记项目时的js问题

问题分析 应用需要以下JS文件:jsmind.js - 核心脑图库 jsmind.draggable.js - 拖拽功能 jsmind.undo.js - 撤销重做功能解决方案 1. 获取缺失的JS文件 需要下载这些JS文件并放在 static 目录下: jsmind.js - 核心文件…

nju实验一选择器

本次实验将介绍几种常用的多路选择器的设计方法;Verilog语言中的always语句块、if-else语句和case语句的使用等。最后请读者自行设计一个多路选择器,熟悉电路设计的基本流程和Quartus的使用。实验一选择器 2选1多路选…

上海金蝶代理商推荐——上海宝蝶信息技术有限公司

一、企业概况 上海宝蝶信息技术有限公司成立于2016年,总部位于上海市松江区,是金蝶集团在上海地区的铂金合作伙伴,专注服务于国内ERP应用市场。 公司深耕中小制造企业全栈数字化服务,以金蝶云PLM+ERP、灵当CRM、致…

11.21模拟赛

T1 分层图板子,代码在 luogu。 T2 给定长度为 \(n\) 的数列 \(a\),维护 \(m\) 次操作,每次操作包括以下两种:1 x:要求输出包含 \(a_x\) 的最大子段和,即求 \(\max_{1 \leq l \leq x \leq r \leq n} \left\{ \sum…

HTML---------------图片转换(草稿)

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>童心少年</title></head><body> <h1 onclick = "updateimage()">点击一下…

爱与时间反应鲜红色慢慢退却 一次次重复直到忘记了誓言

test45 今天怎么第一版 t1/t2 都是假的(构造字符串 数据范围不是特别大直接改条件 \(a_i=a_j/a_i\neq a_j\),你并查集前一种之后看一下符不符合第二种,如果符合的话肯定有解,比方说你考虑每个连通块给不同颜色。 注…

Mac 安装 JDK 8u281(JDK-8u281-1.dmg)详细步骤(附安装包)

Mac 安装 JDK 8u281(JDK-8u281-1.dmg)详细步骤(附安装包)​一、准备工作下载文件 安装包下载:https://pan.quark.cn/s/24c8755b74f0 ,下载了 JDK-8u281-1.dmg文件,它一般是个安装包。找到文件 打开你的 “下载”…

chrome: 允许远程调试

一,默认不能从远程访问chrome的调试端口: 例子: $ google-chrome --remote-debugging-port=9222 --user-data-dir=/data/python/xianyu/userdata 通过局域网ip访问:本地可以访问:二,通过端口转发供远程访问 $ soca…

Agent skills 实战

背景: 通过编码方式编写符合规范的ofd文件。 过程:通过调研,锁定使用 ofdrw和easyofd两种 java ofd生成工具上,最终选择easyofd组件(大模型不认识该组件)。那接下来遇到的问题是,大模型不知道怎样使用这两种组件。…

Vue 路由的学习

Vue 路由完全指南 Vue路由完全指南:从基础到实战,轻松掌握页面跳转核心 在Vue开发中,路由是实现单页面应用(SPA)页面切换的核心技术。无论是Vue2还是Vue3,路由都扮演着"导航指挥官"的角色,负责管理不…

P8809 [蓝桥杯 2022 国 C] 近似 GCD 题解

考虑到非常困难。再简单的计数题也要认真看一眼。 P8809 [蓝桥杯 2022 国 C] 近似 GCD 思路 考虑刻画充要条件去计数。发现一个子区间合法的充要条件是至多一个数不是 \(g\) 的倍数。 将不是 \(g\) 倍数的东西看作 1,…

推荐一款超级好用的命令行工具 http-server

推荐一款超级好用的命令行工具 http-server前言很多时候前端开发的项目需要放到线上才能出现一些问题,本地环境看不出来,此时很多小伙伴可能会喜欢用Live Serve来启动本地项目,但是部分框架打包的dist包无法通过Liv…

J 组要考,S 组也要考

在 CSP 竞赛中,J 组与 S 组是两项并行的赛事。在竞赛生涯中,许多人可能会认为只需专注其中一组即可,认为另一组无关紧要。然而,实际上,这两者都至关重要:J 组要考,S 组同样也要考。 正如鲁迅先生所言:“紫题是…

估值 7 亿美元,Wispr 要做语音操作系统,还要自研 ASR;马斯克:实时视频理解和生成是未来丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态…

AI浪潮下的新动向:协作、法律与未来工作

最近刷新闻,发现AI领域又炸开锅了。从OpenAI的群聊功能到商标纠纷,再到马斯克对未来的大胆预测,这些事件不仅让我这个学软件工程的看得津津有味,还引发了不少关于技术发展和就业的思考。先说说OpenAI的新功能“群聊…

day11-Dify智能体-发布-工作流

今日内容 1 对接大模型 # 0 Coze 是一个成熟的商业软件-咱们用户只需要访问地址--》直接使用 --》本身集成了大模型-豆包、deepseek大模型,插件:图像生成---》使用扣token-更适合小白-Coze 用gpt模型?用不了,没有提…

puff-pastry靶机

在探姬老师那里看到的一个内网渗透靶场,作为入门靶场挺好的,也是第一次打这种多层内网的靶场首先先将docker镜像拉起来 docker-compose up -ddocker ps -a用这个命令看看容器都跑起来没有,如果stastus都显示"u…