WWW.YOUINFO.SITE
标签聚合 mu

/tag/mu

LinuxDo 最新话题 · 2026-06-11 20:48:22+08:00 · tech

脚本 #!/data/data/com.termux/files/usr/bin/bash set -euo pipefail readonly SCRIPT_NAME="$(basename "$0")" readonly MIMO_PACKAGE_NAME="@mimo-ai/cli" readonly MIMO_PACKAGE_VERSION="${MIMO_CODE_VERSION:-${MIMOCODE_VERSION:-latest}}" readonly PREFIX_DIR="${PREFIX:-/data/data/com.termux/files/usr}" readonly HOST_MIMO_PATH="$PREFIX_DIR/bin/mimo" readonly MIMO_CLI_PKG_DIR="$PREFIX_DIR/lib/node_modules/@mimo-ai/cli" readonly MIMO_ARCH_PKG_NAME="@mimo-ai/mimocode-linux-arm64" readonly MIMO_ARCH_PKG_DIR="$PREFIX_DIR/lib/node_modules/$MIMO_ARCH_PKG_NAME" readonly TMP_ROOT="$HOME/tmp" readonly BACKUP_DIR="$TMP_ROOT/mimocode-backups" readonly WRAPPER_MARKER="# mimocode-termux-glibc-wrapper" # Resolved by install_mimo_package() after locating the real glibc ELF. MIMO_BINARY_PATH="" MIMO_RESOLVED_VERSION="" readonly C_BOLD_BLUE="\033[1;34m" readonly C_BOLD_GREEN="\033[1;32m" readonly C_BOLD_YELLOW="\033[1;33m" readonly C_BOLD_RED="\033[1;31m" readonly C_RESET="\033[0m" info() { printf '%b[INFO]%b %s\n' "$C_BOLD_BLUE" "$C_RESET" "$*"; } success() { printf '%b[ OK ]%b %s\n' "$C_BOLD_GREEN" "$C_RESET" "$*"; } warn() { printf '%b[WARN]%b %s\n' "$C_BOLD_YELLOW" "$C_RESET" "$*" >&2; } die() { printf '%b[ERR ]%b %s\n' "$C_BOLD_RED" "$C_RESET" "$*" >&2; exit 1; } usage() { cat <<EOF Usage: bash $SCRIPT_NAME What it does (glibc-runner mode, no proot): 1. Installs glibc-repo, refreshes apt metadata, installs glibc-runner. 2. Installs nodejs-lts + npm in Termux (if missing). 3. npm installs ${MIMO_PACKAGE_NAME} globally, then force-installs the ${MIMO_ARCH_PKG_NAME} native linux-arm64 package. 4. Skips MiMoCode's postinstall script because Termux Node reports process.platform='android' and the upstream script looks for a non-existent @mimo-ai/mimocode-android-arm64 package. 5. Replaces \$PREFIX/bin/mimo with a grun wrapper that runs the glibc ELF directly on Termux. Environment overrides: MIMO_CODE_VERSION npm package version/tag, default: ${MIMO_PACKAGE_VERSION} examples: latest, preview, 0.1.0, v0.1.0 MIMOCODE_VERSION alias for MIMO_CODE_VERSION Notes: - Official MiMoCode install docs: https://github.com/XiaomiMiMo/MiMo-Code - glibc-runner injects glibc via LD_LIBRARY_PATH; kernel calls are native. EOF } command_exists() { command -v "$1" >/dev/null 2>&1; } # ELF magic = 7f 45 4c 46; e_machine at offset 18 = 0xb7 for EM_AARCH64. is_valid_aarch64_elf() { local f="$1" [ -f "$f" ] || return 1 local magic machine magic=$(od -An -tx1 -N4 "$f" 2>/dev/null | tr -d ' \n') [ "$magic" = "7f454c46" ] || return 1 machine=$(od -An -tx1 -j18 -N1 "$f" 2>/dev/null | tr -d ' \n') [ "$machine" = "b7" ] } find_arch_binary() { local candidate for candidate in \ "$MIMO_ARCH_PKG_DIR/bin/mimo" \ "$MIMO_CLI_PKG_DIR/bin/.mimocode"; do if is_valid_aarch64_elf "$candidate"; then MIMO_BINARY_PATH="$candidate" return 0 fi done while IFS= read -r candidate; do if is_valid_aarch64_elf "$candidate"; then MIMO_BINARY_PATH="$candidate" return 0 fi done < <(find "$MIMO_ARCH_PKG_DIR" "$MIMO_CLI_PKG_DIR" -type f -size +10M 2>/dev/null) return 1 } ensure_tmp_root() { mkdir -p "$TMP_ROOT" [ -w "$TMP_ROOT" ] || die "Temp directory is not writable: $TMP_ROOT" export TMPDIR="$TMP_ROOT" } require_termux() { [ -d "$PREFIX_DIR" ] || die "This script must run in Termux." command_exists pkg || die "pkg not found. This script must run in Termux." if [ -r /proc/1/status ] && grep -q 'TracerPid:.*[1-9]' /proc/1/status 2>/dev/null; then warn "Detected non-zero TracerPid on PID 1 -- looks like a proot session." warn "Run this script from a plain Termux shell, not from inside proot-distro." fi } ensure_termux_package() { local package_name="$1" if dpkg -s "$package_name" >/dev/null 2>&1; then success "Termux package already installed: $package_name" return 0 fi info "Installing Termux package: $package_name" pkg install -y "$package_name" success "Installed Termux package: $package_name" } ensure_glibc_runner() { ensure_termux_package "glibc-repo" if ! apt-cache show glibc-runner >/dev/null 2>&1; then info "Refreshing apt metadata so glibc-repo becomes visible" pkg update -y || apt-get update -y || true fi ensure_termux_package "glibc-runner" command_exists grun || die "grun not found after installing glibc-runner." } ensure_nodejs() { if command_exists node && command_exists npm; then success "Termux node present: $(node --version), npm $(npm --version)" return 0 fi if dpkg -s nodejs >/dev/null 2>&1; then success "nodejs already installed" else ensure_termux_package "nodejs-lts" fi command_exists node && command_exists npm || die "node/npm not found after installing nodejs." } resolve_mimo_version() { local requested="$MIMO_PACKAGE_VERSION" if [ "$requested" != "latest" ]; then requested="${requested#v}" fi local pkg_spec="$MIMO_PACKAGE_NAME" if [ "$requested" != "latest" ]; then pkg_spec="${MIMO_PACKAGE_NAME}@${requested}" fi info "Resolving version for ${pkg_spec}" local resolved resolved=$(npm view "$pkg_spec" version 2>/dev/null | tail -n1) \ || die "Failed to resolve version for ${pkg_spec} via npm view" [[ "$resolved" =~ ^[0-9]+\.[0-9]+ ]] \ || die "npm view returned a bogus version: '$resolved'" MIMO_RESOLVED_VERSION="$resolved" } backup_existing_launcher() { mkdir -p "$BACKUP_DIR" [ -e "$HOST_MIMO_PATH" ] || return 0 if grep -Fq "$WRAPPER_MARKER" "$HOST_MIMO_PATH" 2>/dev/null; then success "glibc-runner wrapper already in place" return 0 fi local backup_path="$BACKUP_DIR/mimo.host-backup.$(date +%Y%m%d_%H%M%S)" cp -P "$HOST_MIMO_PATH" "$backup_path" success "Backed up existing launcher to $backup_path" } install_mimo_package() { resolve_mimo_version local main_version="$MIMO_RESOLVED_VERSION" local pinned_main="${MIMO_PACKAGE_NAME}@${main_version}" local arch_spec="${MIMO_ARCH_PKG_NAME}@${main_version}" info "Installing ${pinned_main} without upstream optional platform packages" npm install -g --force --ignore-scripts --omit=optional "$pinned_main" info "Installing ${arch_spec} for Termux via glibc-runner" npm install -g --force --ignore-scripts --os=linux --cpu=arm64 "$arch_spec" find_arch_binary || die "No valid aarch64 ELF found under $MIMO_ARCH_PKG_DIR. \ The arch package may not have unpacked correctly; inspect with: \ ls -la $MIMO_ARCH_PKG_DIR" success "MiMoCode native binary: $MIMO_BINARY_PATH ($(stat -c %s "$MIMO_BINARY_PATH" 2>/dev/null || echo '?') bytes)" } install_host_wrapper() { local tmp_wrapper tmp_wrapper="$(mktemp "$TMP_ROOT/mimo-grun.XXXXXX")" cat >"$tmp_wrapper" <<EOF #!/data/data/com.termux/files/usr/bin/sh $WRAPPER_MARKER mkdir -p "\$HOME/tmp" 2>/dev/null || true export TMPDIR="\${TMPDIR:-\$HOME/tmp}" exec grun "$MIMO_BINARY_PATH" "\$@" EOF chmod 755 "$tmp_wrapper" rm -f "$HOST_MIMO_PATH" mv "$tmp_wrapper" "$HOST_MIMO_PATH" chmod 755 "$HOST_MIMO_PATH" success "Installed Termux launcher: $HOST_MIMO_PATH" } verify_install() { info "Verifying binary via grun" grun "$MIMO_BINARY_PATH" --version info "Verifying Termux launcher" "$HOST_MIMO_PATH" --version local path_mimo="" path_mimo="$(command -v mimo 2>/dev/null || true)" if [ -n "$path_mimo" ] && [ "$path_mimo" != "$HOST_MIMO_PATH" ]; then warn "Your PATH resolves 'mimo' to $path_mimo, not $HOST_MIMO_PATH." warn "Move $PREFIX_DIR/bin earlier in PATH or remove the older launcher." fi success "MiMoCode setup completed (glibc-runner mode)" } main() { if [ "${1:-}" = "-h" ] || [ "${1:-}" = "--help" ]; then usage exit 0 fi ensure_tmp_root require_termux ensure_glibc_runner ensure_nodejs backup_existing_launcher install_mimo_package install_host_wrapper verify_install cat <<EOF Run MiMoCode with: mimo Configuration: mode: glibc-runner (no proot) binary: $MIMO_BINARY_PATH launcher: $HOST_MIMO_PATH temp: $TMP_ROOT If the official installer previously added ~/.mimocode/bin before $PREFIX_DIR/bin, that older launcher may shadow this Termux wrapper. Troubleshooting: - If npm cannot resolve a preview version, install with: MIMO_CODE_VERSION=preview bash $SCRIPT_NAME - If subprocess errors mention libc/ld.so, the binary is loading Termux bionic libs via inherited LD_LIBRARY_PATH. Check glibc-runner docs. EOF } main "$@" 1 个帖子 - 1 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-11 18:16:07+08:00 · tech

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签: 是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社区和佬友监督: 是 以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出 我做了一个开源小工具:M2M 它可以把网易云、QQ 音乐、酷狗、酷我的公开歌单迁移到 Apple Music。 在线体验: https://m2m.xinyu017722.workers.dev/ GitHub: GitHub - cunyu-wxy/M2M · GitHub 目前支持: 粘贴歌单链接自动识别平台 解析歌名、歌手、专辑和顺序 浏览器内连接 Apple Music 自动创建 Apple Music 歌单并导入歌曲 显示导入成功、失败和失败原因 不需要注册账号 后端不保存 Apple ID 或个人资料库数据 支持 Cloudflare Workers 自部署 这个项目的定位比较明确:中文音乐平台 → Apple Music。 目前还有一些限制,比如 Apple Music 匹配可能不准,酷狗部分分享页只能拿到预览曲目。如果你有解析失败的歌单链接,欢迎提 issue 或 PR,如果大家感兴趣欢迎多多fork哦。 1 个帖子 - 1 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-11 09:34:16+08:00 · tech

the Guardian – 8 Jun 26 Muscle growth drug ‘could reduce loss of lean tissue’ when using slimming jabs Trial suggests monoclonal antibody can help retain lean body mass when losing weight with GLP-1 medicines 研究表明,一种促进肌肉生长的药物可以显著减少使用减肥针剂时瘦体重的流失。 虽然像Wegovy和Mounjaro这样的基于GLP-1的注射剂已被证明对帮助超重或肥胖人群非常有效,但专家警告说,减掉的不仅仅是脂肪。研究表明,总体重减轻的25%至40%是由于瘦体重(包括肌肉在内的非脂肪组织)的减少造成的。 一项小型试验表明,使用一种名为apitegromab的单克隆抗体可以帮助患者在使用替泽帕肽(Mounjaro的主要成分)减肥时保持瘦体重。apitegromab的作用机制是阻断肌肉生长抑制素(myostatin),这是一种抑制肌肉生长的蛋白质。 https://www.nature.com/articles/s41591-026-04440-4 使用肠促胰素类似物(如替拉帕肽)治疗时,会观察到瘦体重与总体重减轻成比例的减少,这可能对健康和功能产生不利影响。阿匹格罗单抗是一种在研的全人源单克隆抗体,可选择性抑制肌肉生长抑制素的激活,从而增加肌肉量。在随机、双盲、安慰剂对照的 II 期 EMBRAZE 研究中,102 名超重或肥胖的成年人按1:1 的比例 随机分组,分别接受替拉帕肽联合阿匹格罗单抗(10 mg/kg )或替拉帕肽联合安慰剂治疗。在第 24 周,尽管两组总体重减轻幅度相似,但阿匹格罗单抗组的瘦体重减少量最小二乘均值(80% 置信区间 (CI))比安慰剂组少 1.9 (1.2-2.7) kg ( P = 0.001),相当于瘦体重保留率比安慰剂组高 54.9%。在接受阿匹格罗单抗治疗的受试者中,阿匹格罗单抗谷浓度和总潜在肌生长抑制素(一种药效学标志物)均随时间推移而升高,并在约16周后达到平台期。阿匹格罗单抗治疗组和安慰剂治疗组的不良事件(AE)发生率(%)(95% CI)总体相似,分别为51名受试者中的39名(76% (63-86%))和51名受试者中的36名(71% (57-81%))。两组严重不良事件(SAE)发生率均衡,每组各有1名受试者(2% (0-10%))发生SAE。总之,这项概念验证研究表明,阿匹格罗单抗选择性靶向肌生长抑制素具有良好的耐受性,并且与替泽帕肽联合使用时能有效维持瘦体重。 1 个帖子 - 1 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-10 19:29:20+08:00 · tech

今日,摩尔线程宣布正式发布并开源MusaCoder,这是面向GPU底层算子生成的专用代码大模型。 摩尔线程表示,MusaCoder是业内首个基于国产GPU算力底座完成全链路训练与验证的开源代码大模型,其完整后训练流程均在基于MTT S5000构建的夸娥智算集群上完成。 据介绍,MusaCoder包含9B和27B两个参数规模,主要面向GPU底层算子生成任务设计,重点支持从PyTorch标准算子自动生成高性能CUDA/MUSA原生Kernel代码。 这一能力可降低开发者手写底层GPU算子的门槛,提升GPU高性能计算场景下的代码生成、验证和优化效率。 性能方面,在KernelBench评测中,MusaCoder-27B-RL取得Overall Pass@8 93.2%、Avg. @8 88.60%的成绩,超越Claude Opus 4.7、DeepSeek-V4 Pro、GLM-5.1、Kimi K2.6等主流SOTA代码模型,达到当前行业领先水平。 摩尔线程称,MusaCoder的SFT(监督微调)、RFT(拒绝采样微调)、RL(强化学习)、异步rollout、在线编译执行验证及reward计算等全栈训练与验证流程,均依托MTT S5000构建的夸娥智算集群完成。 这也意味着,国产GPU不仅能够支撑大模型推理和常规微调任务,也能够稳定承载代码大模型后训练全周期算力需求。 尤其是在GPU Kernel生成这类任务中,训练系统需要频繁进行代码生成、编译、执行、验证和反馈计算,对硬件、编译栈、运行时、调度系统和评测基础设施都提出了更高要求。 huggingface.co MooreThreads/MusaCoder-27B · Hugging Face We’re on a journey to advance and democratize artificial intelligence through open source and open science. arXiv.org MusaCoder: Native GPU Kernel Generation with Full-Stack Training on Moore... Native GPU kernel generation turns high-level tensor programs into executable, efficient low-level code. Existing Large Language Models (LLMs) struggle with this task, while execution-based reinforcement learning suffers from sparse rewards, reward... 5 个帖子 - 5 位参与者 阅读完整话题