首次登录控制台
用下单时的邮箱进入控制台,按页面提示完成登录或开通账号。进入实例列表后,核对订单对应的机型、节点与计费周期。
支付完成不等于系统已经就绪。先看实例的交付状态;只有实例详情返回连接信息后,再开始连接。找不到订单时,确认当前邮箱与下单邮箱是否一致。
登录查看实例已拿到节点?先连桌面、改密码,再接入构建或推理任务。还没下单?可以先看操作要求,再决定选哪档。
输入关键词可筛选本页操作说明;直接阅读也可以。
连接地址与凭据以登录后的实例详情为准。本页不展示可用凭据,也不执行远程操作。
按下面顺序走。先确认实例和连接信息,再动工具链;不要把连接问题与构建问题混在一起排查。
用下单时的邮箱进入控制台,按页面提示完成登录或开通账号。进入实例列表后,核对订单对应的机型、节点与计费周期。
支付完成不等于系统已经就绪。先看实例的交付状态;只有实例详情返回连接信息后,再开始连接。找不到订单时,确认当前邮箱与下单邮箱是否一致。
登录查看实例在已就绪实例的详情中查看连接地址、用户名、密码与端口。分别使用页面给出的 VNC 和 SSH 信息,不要默认两种连接一定使用相同端口。
首次 SSH 连接时,核对主机信息后再信任指纹。不要把密码、私钥或带凭据的截图发到公共仓库、聊天群或构建日志。
按平台查看连接步骤先检查当前路径和版本,再决定是否安装。项目需要完整 Xcode 时,只有命令行工具还不够;SDK、模拟器与构建工具版本要和项目要求对应。
xcode-select -p
xcodebuild -version
xcrun --find clang
使用组织批准的安装包安装或切换 Xcode。首次打开后完成组件初始化,再到终端重跑版本检查;切换开发者目录可能需要管理员权限。
检查结果:路径、版本、编译器在 macOS 用户设置中修改当前用户密码,或在终端运行 passwd 按提示修改。使用独立强密码,不要与代码托管或邮箱共用。
改完后保留当前会话,用第二个连接验证新密码。SSH 改用公钥前,也先验证新会话能登录;没有恢复路径时,不要直接关闭原有认证方式。
先验证新连接,再退出旧会话注册 runner、确认执行用户、验证工具链,这三步先于并发优化。以下操作在你的节点上完成,流水线权限由你的代码托管平台管理。
在仓库或组织的 Actions 设置中新增自托管 runner,选择 macOS 和 ARM64。下载与注册命令使用该页面当次生成的内容,注册令牌不要写进长期脚本。
用实际执行构建的 macOS 用户完成注册。确认它能读取项目目录,并能访问构建所需的钥匙串。
例如给节点设置 osxflow-m4 标签,先将单条测试工作流定向到该标签,避免旧 runner 同时接走任务。
先交互启动,确认工作流通过,再按 runner 随附的服务说明设置常驻。重新登录后检查进程和平台侧连接状态。
jobs:
verify:
runs-on: [self-hosted, macOS, ARM64, osxflow-m4]
steps:
- run: |
uname -m
xcodebuild -version
xcrun --find clang
不要让不受信任的外部提交直接使用持有签名材料的 runner。测试流水线通过后,再迁移发布流程和机密变量。
使用项目或组设置中创建的 runner 认证信息完成注册,执行器选择 shell。这意味着任务直接在节点用户环境运行,不提供容器级隔离。
先限制并发为 1,避免多个签名任务或缓存写入相互干扰。确认 runner 用户的 PATH、开发者目录和 Ruby 环境,与手动测试时一致。
concurrent = 1
[[runners]]
executor = "shell"
shell = "bash"
这只是注册后配置文件的相关字段,不是完整注册配置。保留注册工具生成的地址、认证与其他字段,不要用这段内容覆盖整个文件。
给 runner 配置专用标签,并让测试任务输出 whoami、pwd 和 xcode-select -p。如果终端能构建而 CI 失败,优先比较用户、路径和环境变量,而不是重复安装工具。
证书、私钥和描述文件按你的团队授权流程导入。不要把它们放进源代码仓库,也不要在 Fastlane 输出中打印解密口令。
独享物理机不代替项目权限管理。能够修改发布流水线的人,也可能通过任务读取签名环境,仓库权限要一起审查。
Flow M4 Pro 的配置是 M4 Pro / 64GB / 2TB。统一内存由系统和任务共同使用,64GB 不等于全部可以交给模型;权重、上下文和运行缓存都要留预算。
先确认 Python 使用 ARM64 架构,再为每个实验创建虚拟环境。不要把不同模型项目的依赖混装进系统环境。
python3 -c "import platform; print(platform.machine())"
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install mlx-lm
python -m pip freeze > requirements.lock.txt
保存依赖清单、Python 版本与模型版本。复现实验时,先按相同环境安装,再比较输出和资源占用。
目标:独立环境、可复现依赖选择你有权使用的 MLX 兼容量化模型,先阅读模型说明。记录量化位宽、上下文长度和生成长度,不要只比较模型文件大小。
python -m mlx_lm.generate --help
根据已安装版本的帮助传入模型与提示词。先完成单次推理,再逐步增加上下文;用活动监视器观察内存压力和交换空间,压力持续上升就减小任务。
比较实验时固定提示词、生成长度与并发。不同模型和量化方式的结果不能直接当作节点性能差异。
不预设吞吐,也不承诺模型必定装下需要更多容量时,可在下单配置中选择 +2TB SSD。先在节点上确认实际挂载路径和可用容量,再将模型权重与下载缓存迁入,不能假设所有节点使用同一个卷名。
迁移前停止正在读取模型的任务,完成复制后核对文件数量与大小,再修改工具的模型路径或缓存配置。先验证一次加载成功,再删除原副本。
扩展存储不等于备份。把模型版本、配置和关键结果另存到你控制的位置,避免仅保留在租用节点上。
查看存储扩展与价格下单、连接和工单都沿用这些定义。描述问题时使用同一套词,可以更快区分机器、连接协议和计费设置。
先记录原始报错,再动配置。保留一个已连接会话;不要为了测试,直接关闭你唯一可用的访问方式。
先确认实例详情显示系统已就绪,再核对 VNC 地址和端口。断开后只保留一个客户端重试,并尝试降低分辨率或关闭自适应画质,区分客户端显示问题与节点会话问题。
若 SSH 仍可连接,不要立即重启正在执行任务的节点。记录客户端名称、版本、黑屏出现前的操作,以及 SSH 是否可用;提交工单时附不含凭据的截图。
查看各平台的桌面连接方法Connection refused 优先检查地址、端口与服务状态;连接超时先检查本地网络、代理和访问限制;Permission denied 则优先检查用户名与认证方式,不要把认证失败当成网络故障。
调试时可使用 ssh -v 查看连接阶段。不要公开完整调试日志;分享前遮去地址、用户名、密钥路径和认证相关内容。使用私钥时,核对文件权限与服务器端公钥是否对应。
如果仍能进入图形桌面,先从系统设置检查远程登录状态。无法判断时,带上错误原文、节点编号和所用端口提交工单,不要连续修改多项认证设置。
先区分正在下载、校验还是解压。观察网络流量、CPU 和磁盘活动:网络暂时安静但磁盘仍忙,不一定是下载中断。不要重复启动多个相同安装任务。
确认目标盘同时能容纳安装包、解压内容与项目缓存。需要固定版本时,使用组织批准的安装包并校验完整性;安装后重跑 xcodebuild -version,确认 CI 与图形界面使用的是同一版本。
工单中说明 Xcode 版本、当前阶段、剩余空间和是否通过代理访问,避免只写“很慢”。
先查看卷容量,再定位大目录。下面命令只读取容量,不会删除文件;大型用户目录的统计可能需要一些时间。
df -h
du -sh "$HOME/Library/Developer/Xcode/DerivedData"
du -sh "$HOME/Library/Caches"
暂停构建后再处理可重建缓存。不要整目录删除钥匙串、签名材料、项目源文件或唯一的模型副本。清缓存后首次构建通常需要重新生成内容,把这段时间算进发版安排。
持续增长的模型权重和构建产物更适合独立规划容量。可查看 +1TB SSD 与 +2TB SSD 加购项;现有订单需要调整时,先在控制台工单确认处理方式,不要假设加购后项目会自动迁移。
查看 SSD 附加项本页解决“下一步怎么做”。构建实践、设备选型与数据保护的长篇说明,统一在技术文章目录查看;文章标题、摘要与发布日期以目录中的实际内容为准。
已购用户优先登录控制台提交工单,便于关联实例。不要提交密码、私钥、完整卡号或含凭据的截图。
节点编号、订单号,以及问题发生的大致时间和时区。涉及支付时,只提供交易识别信息,不提供认证材料。
你执行了什么、预期结果是什么、实际看到什么。连接问题附客户端和版本,构建问题附工具链版本。
贴出脱敏后的错误原文,说明图形桌面或 SSH 哪一个仍可用,以及是否有不能中断的运行任务。