From 96044e065cf8401e168ee2a05a2911412493b5a6 Mon Sep 17 00:00:00 2001 From: LauraGPT <170200537+LauraGPT@users.noreply.github.com> Date: Thu, 27 Aug 2026 09:26:53 +0000 Subject: [PATCH] docs: publish llama.cpp runtime v0.2.1 downloads Signed-off-by: LauraGPT <170200537+LauraGPT@users.noreply.github.com> --- README.md | 3 +- README_ja.md | 1 + README_ko.md | 1 + README_zh.md | 3 +- .../tests/test_download_funasr_model.sh | 4 +-- tests/test_docs_funasr_install_commands.py | 4 +-- web-pages/product-site/data/deployments.json | 34 +++++++++---------- .../tests/browser/product-site.spec.ts | 4 +-- web-pages/product-site/tests/test_output.py | 4 +-- web-pages/product-site/tests/test_registry.py | 12 ++++--- 10 files changed, 38 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index dff300a46..ec1ae2a51 100644 --- a/README.md +++ b/README.md @@ -306,7 +306,7 @@ GPUs report compute capability 12.0 (`sm_120`) and should use the CPU package or build from source with `-DCMAKE_CUDA_ARCHITECTURES=120` until a dedicated CUDA asset is published. -**Prebuilt binaries:** [Releases](https://github.com/modelscope/FunASR/releases) · [v0.2.0](https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.0) · [Linux Vulkan tarball](https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-linux-x64-vulkan.tar.gz) · [Windows Vulkan zip](https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-windows-x64-vulkan.zip) · [Windows CUDA zip](https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-windows-x64-cuda.zip) · **Download & quickstart:** [funasr.com/deploy/llama-cpp](https://www.funasr.com/en/deploy/llama-cpp.html) · **GGUF models:** [Hugging Face](https://huggingface.co/FunAudioLLM) · **Docs & benchmarks:** [runtime/llama.cpp/](./runtime/llama.cpp/) +**Prebuilt binaries:** [Releases](https://github.com/modelscope/FunASR/releases) · [v0.2.1](https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.1) · [Linux Vulkan tarball](https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-linux-x64-vulkan.tar.gz) · [Windows Vulkan zip](https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-windows-x64-vulkan.zip) · [Windows CUDA zip](https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-windows-x64-cuda.zip) · **Download & quickstart:** [funasr.com/deploy/llama-cpp](https://www.funasr.com/en/deploy/llama-cpp.html) · **GGUF models:** [Hugging Face](https://huggingface.co/FunAudioLLM) · **Docs & benchmarks:** [runtime/llama.cpp/](./runtime/llama.cpp/) [OpenAI API example →](./examples/openai_api/) · [Gradio demo →](./examples/openai_api/GRADIO.md) · [Client recipes →](./examples/openai_api/CLIENTS.md) · [JavaScript/TypeScript recipes →](./examples/openai_api/JAVASCRIPT.md) · [Kubernetes template →](./examples/openai_api/kubernetes/) · [Workflow recipes →](./examples/openai_api/WORKFLOWS.md) · [Postman collection →](./examples/openai_api/POSTMAN.md) · [OpenAPI spec →](./examples/openai_api/OPENAPI.md) · [Security guide →](./examples/openai_api/SECURITY.md) · [Deployment matrix →](./docs/deployment_matrix.md) · [Deployment docs →](./runtime/readme.md) · [Agent integration →](https://modelscope.github.io/FunASR/agent.html) @@ -330,6 +330,7 @@ asset is published. ## What's new +- 2026/08/27: **llama.cpp runtime v0.2.1** — Vulkan device selection now accepts matching integrated GPUs, prefers a matching discrete GPU when both are available, and otherwise falls back to the iGPU. Nine Linux, macOS, and Windows archives were rebuilt and verified with published SHA-256 values. Radeon 780M still needs reporter hardware confirmation; the separate RX 9070 XT `0xC0000005` initialization crash is not claimed fixed. [Download matrix & quickstart ->](https://www.funasr.com/en/deploy/llama-cpp.html) · [Release ->](https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.1) - 2026/08/26: **v1.4.4 on PyPI** — realtime WebSocket decoding now batches compatible sessions instead of serializing every connection behind one process-wide lock. On the H100 regression workload, 12-client STOP p95 fell from 19.8 s to 0.4 s and 16-client aggregate throughput rose from 8.6x to 13.2x, with no client errors. This hotfix also restores compatibility with PyTorch releases that do not expose `torch.amp` and raises real runtime-binding exceptions. Upgrade with `python -m pip install -U "funasr==1.4.4"`. [Release ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.4) - 2026/08/21: **v1.4.3 on PyPI** — `AutoModel(vad_model="silero-vad")` now offers an optional Silero VAD adapter with millisecond segments, configurable thresholds, 8/16 kHz input, ONNX mode, and bounded segment lengths. Upgrade with `python -m pip install -U "funasr==1.4.3"`; enable the adapter with `python -m pip install -U "funasr[silero]==1.4.3"`. Speaker diarization with a known speaker count now routes large embedding sets through fixed-K clustering instead of memory-heavy dense spectral clustering. [Release ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.3) - 2026/08/14: **v1.4.2 on PyPI** — punctuation-aware sentence alignment now preserves subtitle segmentation when a punctuation token boundary splits a timestamped ASR word. Distributed training now synchronizes DDP/FSDP gradients on the final microbatch of each accumulation window and initializes DeepSpeed/FSDP mode from the resolved configuration. The tagged source also includes llama.cpp SRT output and the v0.2.0 AMD Vulkan submission updates. Install with `python -m pip install -U "funasr==1.4.2"`. [Release ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.2) diff --git a/README_ja.md b/README_ja.md index a6f4d2ddf..c9fc7ace0 100644 --- a/README_ja.md +++ b/README_ja.md @@ -99,6 +99,7 @@ Whisper は単一モデルですが、**FunASR はツールキット**です— ## 最新情報 +- 2026/08/27:**llama.cpp runtime v0.2.1** — Vulkan のデバイス選択が一致する統合 GPU を受け入れ、一致する discrete GPU があればそちらを優先し、なければ iGPU にフォールバックするようになりました。SHA-256 を公開した Linux、macOS、Windows 向け 9 archive を再構築・検証済みです。Radeon 780M は報告者の実機確認待ちで、別件の RX 9070 XT `0xC0000005` 初期化 crash は修正済みとはしていません。[ダウンロード一覧と quickstart →](https://www.funasr.com/en/deploy/llama-cpp.html) · [Release →](https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.1) - 2026/08/26:**v1.4.4 を PyPI に公開** — realtime WebSocket decode は、全 connection を 1 つの process-wide lock で直列化せず、互換性のある session を batch 処理するようになりました。H100 regression workload では、12 client の STOP p95 が 19.8 秒から 0.4 秒に短縮され、16 client の aggregate throughput は 8.6x から 13.2x に向上し、client error は 0 件でした。この hotfix は `torch.amp` を持たない PyTorch release との互換性も復元し、runtime binding から実際の例外を送出します。更新:`python -m pip install -U "funasr==1.4.4"`。[Release →](https://github.com/modelscope/FunASR/releases/tag/v1.4.4) - 2026/08/21:**v1.4.3 を PyPI に公開** — `AutoModel(vad_model="silero-vad")` で任意の Silero VAD アダプターを利用でき、ミリ秒単位の区間、しきい値、8/16 kHz 入力、ONNX mode、最大区間長を設定できます。更新:`python -m pip install -U "funasr==1.4.3"`。アダプターの有効化:`python -m pip install -U "funasr[silero]==1.4.3"`。話者数が既知の話者ダイアライゼーションは、大規模 embedding をメモリ負荷の高い密なスペクトラルクラスタリングではなく fixed-K クラスタリングで処理します。[Release →](https://github.com/modelscope/FunASR/releases/tag/v1.4.3) - 2026/08/14:**v1.4.2 を PyPI に公開** — 句読点モデルの token 境界がタイムスタンプ付き ASR 単語の内部にある場合でも、文アラインメントが字幕分割を正しく保持するようになりました。分散学習では、各勾配累積 window の最後の microbatch で DDP/FSDP 勾配を同期し、解決済み設定から DeepSpeed/FSDP mode を初期化します。対応する GitHub ソース tag には llama.cpp SRT 出力と v0.2.0 の AMD Vulkan submission 更新も含まれます。インストール:`python -m pip install -U "funasr==1.4.2"`。[Release →](https://github.com/modelscope/FunASR/releases/tag/v1.4.2) diff --git a/README_ko.md b/README_ko.md index dac4ab4df..34fed02b1 100644 --- a/README_ko.md +++ b/README_ko.md @@ -99,6 +99,7 @@ Whisper는 단일 모델이지만, **FunASR는 툴킷**입니다. 용도에 맞 ## 최신 소식 +- 2026/08/27: **llama.cpp runtime v0.2.1** — Vulkan device 선택이 일치하는 integrated GPU를 허용하며, 일치하는 discrete GPU가 함께 있으면 이를 우선하고 없으면 iGPU로 fallback합니다. SHA-256을 공개한 Linux, macOS, Windows용 archive 9개를 다시 빌드하고 검증했습니다. Radeon 780M은 제보자의 실제 하드웨어 확인이 필요하며, 별도 RX 9070 XT `0xC0000005` 초기화 crash는 수정됐다고 주장하지 않습니다. [다운로드 목록 및 quickstart →](https://www.funasr.com/en/deploy/llama-cpp.html) · [Release →](https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.1) - 2026/08/26: **v1.4.4 PyPI 공개** — realtime WebSocket decode가 모든 connection을 하나의 process-wide lock으로 직렬화하지 않고 호환되는 session을 batch 처리합니다. H100 regression workload에서 12-client STOP p95는 19.8초에서 0.4초로 줄었고, 16-client aggregate throughput은 8.6x에서 13.2x로 향상됐으며 client error는 0건이었습니다. 이 hotfix는 `torch.amp`가 없는 PyTorch release와의 호환성도 복원하고 runtime binding에서 실제 예외를 발생시킵니다. 업데이트: `python -m pip install -U "funasr==1.4.4"`. [Release →](https://github.com/modelscope/FunASR/releases/tag/v1.4.4) - 2026/08/21: **v1.4.3 PyPI 공개** — `AutoModel(vad_model="silero-vad")`에서 선택형 Silero VAD adapter를 사용할 수 있으며, 밀리초 단위 구간, threshold, 8/16 kHz 입력, ONNX mode, 최대 구간 길이를 지원합니다. 업데이트: `python -m pip install -U "funasr==1.4.3"`. Adapter 활성화: `python -m pip install -U "funasr[silero]==1.4.3"`. 화자 수를 알고 있는 speaker diarization은 대규모 embedding을 메모리 사용량이 큰 dense spectral clustering 대신 fixed-K clustering으로 처리합니다. [Release →](https://github.com/modelscope/FunASR/releases/tag/v1.4.3) - 2026/08/14: **v1.4.2 PyPI 공개** — 문장부호 모델의 token 경계가 타임스탬프가 있는 ASR 단어 내부에 놓여도 문장 정렬이 올바른 자막 분할을 유지합니다. 분산 학습은 각 gradient accumulation window의 마지막 microbatch에서 DDP/FSDP gradient를 동기화하고, 해석된 설정에서 DeepSpeed/FSDP mode를 초기화합니다. 해당 GitHub 소스 tag에는 llama.cpp SRT 출력과 v0.2.0 AMD Vulkan submission 업데이트도 포함됩니다. 설치: `python -m pip install -U "funasr==1.4.2"`. [Release →](https://github.com/modelscope/FunASR/releases/tag/v1.4.2) diff --git a/README_zh.md b/README_zh.md index eba9fa5e3..8f8c223b2 100644 --- a/README_zh.md +++ b/README_zh.md @@ -149,6 +149,7 @@ Whisper 是单个模型,**FunASR 是一个工具箱**——按场景挑模型 ## 最新动态 +- 2026/08/27:**llama.cpp runtime v0.2.1** — Vulkan 设备选择现在接受匹配的集成 GPU;同时存在匹配独显时优先独显,否则回退到核显。九个 Linux、macOS 与 Windows 压缩包已重新构建并通过公开 SHA-256 复核。Radeon 780M 仍需报告者实机确认;单独的 RX 9070 XT `0xC0000005` 初始化崩溃不在本次修复声明内。[下载矩阵与快速开始 →](https://www.funasr.com/deploy/llama-cpp.html) · [发布页 →](https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.1) - 2026/08/26:**v1.4.4 已发布到 PyPI** — 实时 WebSocket 解码会对兼容会话进行批处理,不再让所有连接排队经过同一个进程级锁。在 H100 回归负载下,12 路 STOP p95 从 19.8 秒降至 0.4 秒,16 路聚合吞吐从 8.6x 提升到 13.2x,且客户端零错误。本热修复同时兼容不提供 `torch.amp` 的 PyTorch 版本,并让运行时绑定抛出真实异常。升级命令:`python -m pip install -U "funasr==1.4.4"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.4.4) - 2026/08/21:**v1.4.3 已发布到 PyPI** — `AutoModel(vad_model="silero-vad")` 现可选用 Silero VAD 适配器,返回毫秒级片段,并支持阈值、8/16 kHz 输入、ONNX 模式和最长片段限制。基础升级命令:`python -m pip install -U "funasr==1.4.3"`;启用该适配器:`python -m pip install -U "funasr[silero]==1.4.3"`。已知说话人数的说话人分离在大规模 embedding 输入下改用固定 K 聚类,避免内存开销较高的稠密谱聚类。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.4.3) - 2026/08/14:**v1.4.2 已发布到 PyPI** — 标点模型的 token 边界落在带时间戳的 ASR 词内部时,句子对齐现在仍能保留正确的字幕分段。分布式训练会在每个梯度累积窗口的最后一个 microbatch 同步 DDP/FSDP 梯度,并从解析后的配置正确初始化 DeepSpeed/FSDP 模式。对应 GitHub 源码 tag 同时包含 llama.cpp SRT 输出和 v0.2.0 AMD Vulkan submission 更新。安装命令:`python -m pip install -U "funasr==1.4.2"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.4.2) @@ -359,7 +360,7 @@ Windows Vulkan ZIP 使用显卡驱动提供的系统 Vulkan loader,不需要 compute capability 12.0(`sm_120`),在专用 CUDA 产物发布前,请使用 CPU 包,或从 源码构建并设置 `-DCMAKE_CUDA_ARCHITECTURES=120`。 -**预编译二进制:** [Releases](https://github.com/modelscope/FunASR/releases) · [v0.2.0](https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.0) · [Linux Vulkan tarball](https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-linux-x64-vulkan.tar.gz) · [Windows Vulkan zip](https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-windows-x64-vulkan.zip) · [Windows CUDA zip](https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-windows-x64-cuda.zip) · **下载与快速开始:** [funasr.com/deploy/llama-cpp](https://www.funasr.com/deploy/llama-cpp.html) · **GGUF 模型:** [Hugging Face](https://huggingface.co/FunAudioLLM) · **文档与评测:** [runtime/llama.cpp/](./runtime/llama.cpp/) +**预编译二进制:** [Releases](https://github.com/modelscope/FunASR/releases) · [v0.2.1](https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.1) · [Linux Vulkan tarball](https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-linux-x64-vulkan.tar.gz) · [Windows Vulkan zip](https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-windows-x64-vulkan.zip) · [Windows CUDA zip](https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-windows-x64-cuda.zip) · **下载与快速开始:** [funasr.com/deploy/llama-cpp](https://www.funasr.com/deploy/llama-cpp.html) · **GGUF 模型:** [Hugging Face](https://huggingface.co/FunAudioLLM) · **文档与评测:** [runtime/llama.cpp/](./runtime/llama.cpp/) [OpenAI API 示例 →](./examples/openai_api/README_zh.md) · [Gradio Demo →](./examples/openai_api/GRADIO_zh.md) · [客户端配方 →](./examples/openai_api/CLIENTS.md) · [JavaScript/TypeScript 配方 →](./examples/openai_api/JAVASCRIPT_zh.md) · [Kubernetes 模板 →](./examples/openai_api/kubernetes/README_zh.md) · [工作流配方 →](./examples/openai_api/WORKFLOWS_zh.md) · [Postman 集合 →](./examples/openai_api/POSTMAN_zh.md) · [OpenAPI 规范 →](./examples/openai_api/OPENAPI_zh.md) · [安全指南 →](./examples/openai_api/SECURITY_zh.md) · [部署选型 →](./docs/deployment_matrix_zh.md) · [部署文档 →](./runtime/readme_cn.md) · [Agent 集成 →](https://modelscope.github.io/FunASR/agent.html) diff --git a/runtime/llama.cpp/tests/test_download_funasr_model.sh b/runtime/llama.cpp/tests/test_download_funasr_model.sh index 0afd064ce..b72280667 100755 --- a/runtime/llama.cpp/tests/test_download_funasr_model.sh +++ b/runtime/llama.cpp/tests/test_download_funasr_model.sh @@ -170,8 +170,8 @@ assert_readme_quickstart() { printf 'non-portable Releases link in %s\n' "$readme" >&2 exit 1 fi - if ! grep -F 'runtime-llamacpp-v0.2.0' <<<"$section" >/dev/null; then - printf 'missing current runtime v0.2.0 link in %s\n' "$readme" >&2 + if ! grep -F 'runtime-llamacpp-v0.2.1' <<<"$section" >/dev/null; then + printf 'missing current runtime v0.2.1 link in %s\n' "$readme" >&2 exit 1 fi if ! grep -F 'funasr-llamacpp-linux-x64-vulkan' <<<"$section" >/dev/null; then diff --git a/tests/test_docs_funasr_install_commands.py b/tests/test_docs_funasr_install_commands.py index 0a8f2c0f4..849ebda0b 100644 --- a/tests/test_docs_funasr_install_commands.py +++ b/tests/test_docs_funasr_install_commands.py @@ -343,7 +343,7 @@ def test_top_level_readmes_surface_current_release_and_edge_runtime(): for name, text in readmes.items(): assert 'python -m pip install -U "funasr==1.4.1"' in text, name assert "https://github.com/modelscope/FunASR/releases/tag/v1.4.1" in text, name - assert "runtime-llamacpp-v0.2.0" in text, name + assert "runtime-llamacpp-v0.2.1" in text, name assert "https://www.funasr.com/en/deploy/llama-cpp.html" in readmes["README.md"] assert "https://www.funasr.com/deploy/llama-cpp.html" in readmes["README_zh.md"] @@ -358,7 +358,7 @@ def test_top_level_readmes_surface_current_release_and_edge_runtime(): "funasr-llamacpp-windows-x64-cuda.zip", ): assert ( - f"releases/download/runtime-llamacpp-v0.2.0/{asset}" in text + f"releases/download/runtime-llamacpp-v0.2.1/{asset}" in text ), name assert "releases/download/runtime-llamacpp-v0.1.9/" not in text, name diff --git a/web-pages/product-site/data/deployments.json b/web-pages/product-site/data/deployments.json index bb0d36080..1bf319cae 100644 --- a/web-pages/product-site/data/deployments.json +++ b/web-pages/product-site/data/deployments.json @@ -176,28 +176,28 @@ "models": ["SenseVoiceSmall-GGUF", "Paraformer-GGUF", "Fun-ASR-Nano-GGUF", "FSMN-VAD-GGUF"], "operating_systems": ["Linux", "macOS", "Windows"], "interfaces": ["CLI", "local HTTP server"], - "tested": {"funasr": "runtime-llamacpp-v0.2.0", "runtime": "llama.cpp@803b7fca", "verified": "2026-08-11"}, + "tested": {"funasr": "runtime-llamacpp-v0.2.1", "runtime": "llama.cpp@803b7fca", "verified": "2026-08-27"}, "commands": { - "install": ["curl -fLO https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-linux-x64.tar.gz", "echo \"15e6407143b4fb91d90bb37f2a41c64c4d48ea0fbe6404b88a9b70269c84f240 funasr-llamacpp-linux-x64.tar.gz\" | sha256sum -c -", "mkdir funasr-llamacpp && tar -xzf funasr-llamacpp-linux-x64.tar.gz -C funasr-llamacpp && cd funasr-llamacpp && bash download-funasr-model.sh sensevoice ./funasr-gguf f16"], + "install": ["curl -fLO https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-linux-x64.tar.gz", "echo \"1bc83dd36d11b1a2b9a45faaf77a5d1014000ac641c93dfec73d24d71ec51caf funasr-llamacpp-linux-x64.tar.gz\" | sha256sum -c -", "mkdir funasr-llamacpp && tar -xzf funasr-llamacpp-linux-x64.tar.gz -C funasr-llamacpp && cd funasr-llamacpp && bash download-funasr-model.sh sensevoice ./funasr-gguf f16"], "launch": ["cd funasr-llamacpp && ./llama-funasr-sensevoice -m funasr-gguf/sensevoice-small-f16.gguf --vad funasr-gguf/fsmn-vad.gguf -a sample.wav"], "health": ["cd funasr-llamacpp && ./llama-funasr-sensevoice --help"], "smoke": ["cd funasr-llamacpp && ./llama-funasr-sensevoice -m funasr-gguf/sensevoice-small-f16.gguf --vad funasr-gguf/fsmn-vad.gguf -a sample.wav | tee transcript.txt && test -s transcript.txt"] }, "downloads": [ - {"operating_system": "Linux", "architecture": "arm64", "backend": "CPU", "archive": "funasr-llamacpp-linux-arm64.tar.gz", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-linux-arm64.tar.gz", "sha256": "c78987b2384c6aef339aea1bcd0e130070455d6394fa7ab7ca26840ead10d5da"}, - {"operating_system": "Linux", "architecture": "x64", "backend": "CPU", "archive": "funasr-llamacpp-linux-x64.tar.gz", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-linux-x64.tar.gz", "sha256": "15e6407143b4fb91d90bb37f2a41c64c4d48ea0fbe6404b88a9b70269c84f240"}, - {"operating_system": "Linux", "architecture": "x64 AVX2", "backend": "CPU", "archive": "funasr-llamacpp-linux-x64-avx2.tar.gz", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-linux-x64-avx2.tar.gz", "sha256": "02e10e9a46ea76a040c45d431efe51a3324e64f08c24d38e18c8a4d2781490cd"}, - {"operating_system": "Linux", "architecture": "x64", "backend": "Vulkan", "archive": "funasr-llamacpp-linux-x64-vulkan.tar.gz", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-linux-x64-vulkan.tar.gz", "sha256": "caf71b8c0b4c3249cebc4175e5406d3c588eb9e8966a00d571d4cc5070405385"}, - {"operating_system": "macOS", "architecture": "arm64", "backend": "CPU", "archive": "funasr-llamacpp-macos-arm64.tar.gz", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-macos-arm64.tar.gz", "sha256": "416cbb289e31cb7575365d382155074e922fd061807a37b9ca0247dabd9bc6f9"}, - {"operating_system": "Windows", "architecture": "x64", "backend": "CPU", "archive": "funasr-llamacpp-windows-x64.zip", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-windows-x64.zip", "sha256": "297c962346d7e30d7a7c2c860dfaab3ff07d01fddf15e6fc5212ca9545441a51"}, - {"operating_system": "Windows", "architecture": "x64 AVX2", "backend": "CPU", "archive": "funasr-llamacpp-windows-x64-avx2.zip", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-windows-x64-avx2.zip", "sha256": "4db0f11f603c324a63545cd7009cdd45bb45576efe282cec22796b5fd42d8ea1"}, - {"operating_system": "Windows", "architecture": "x64", "backend": "Vulkan", "archive": "funasr-llamacpp-windows-x64-vulkan.zip", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-windows-x64-vulkan.zip", "sha256": "90b45240c6ccc9177c25490a11848de60a406e129391c8736b14521c0c28cdcb"}, - {"operating_system": "Windows", "architecture": "x64", "backend": "CUDA", "archive": "funasr-llamacpp-windows-x64-cuda.zip", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-windows-x64-cuda.zip", "sha256": "7f2f9ef4d7e0291b284a295ec74bbeca9ea635a7f5f42d0ad06eb780c0d6efc1"} + {"operating_system": "Linux", "architecture": "arm64", "backend": "CPU", "archive": "funasr-llamacpp-linux-arm64.tar.gz", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-linux-arm64.tar.gz", "sha256": "9657e519986a5db72082aab508439559987fd4e563733d11da4662f898c75c45"}, + {"operating_system": "Linux", "architecture": "x64", "backend": "CPU", "archive": "funasr-llamacpp-linux-x64.tar.gz", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-linux-x64.tar.gz", "sha256": "1bc83dd36d11b1a2b9a45faaf77a5d1014000ac641c93dfec73d24d71ec51caf"}, + {"operating_system": "Linux", "architecture": "x64 AVX2", "backend": "CPU", "archive": "funasr-llamacpp-linux-x64-avx2.tar.gz", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-linux-x64-avx2.tar.gz", "sha256": "32e459673297fc01fcda6901ca7d63cc9e64896a43a3c9edcb7a8e1ef70fcd04"}, + {"operating_system": "Linux", "architecture": "x64", "backend": "Vulkan", "archive": "funasr-llamacpp-linux-x64-vulkan.tar.gz", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-linux-x64-vulkan.tar.gz", "sha256": "d45d3acb77e05c4bae94d818ed4a5c66852be87b22c52723bd576377c055c6e6"}, + {"operating_system": "macOS", "architecture": "arm64", "backend": "CPU", "archive": "funasr-llamacpp-macos-arm64.tar.gz", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-macos-arm64.tar.gz", "sha256": "bc63c4d4b96f2465f1d258600668a971f4f600d661f1859b03797cefaa417167"}, + {"operating_system": "Windows", "architecture": "x64", "backend": "CPU", "archive": "funasr-llamacpp-windows-x64.zip", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-windows-x64.zip", "sha256": "b8f2b8f241b57921d82d64068d9b5695629779f3db5f3205a730cb3810232bb4"}, + {"operating_system": "Windows", "architecture": "x64 AVX2", "backend": "CPU", "archive": "funasr-llamacpp-windows-x64-avx2.zip", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-windows-x64-avx2.zip", "sha256": "67e428a91614f8a0c1d53dc2d79cce8efc7916c030ae2ddce2cbcf667ec1c502"}, + {"operating_system": "Windows", "architecture": "x64", "backend": "Vulkan", "archive": "funasr-llamacpp-windows-x64-vulkan.zip", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-windows-x64-vulkan.zip", "sha256": "5fd179c6aefc18477eb79fa6235c70d131a96eba621318bb84e901ae85035578"}, + {"operating_system": "Windows", "architecture": "x64", "backend": "CUDA", "archive": "funasr-llamacpp-windows-x64-cuda.zip", "url": "https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/funasr-llamacpp-windows-x64-cuda.zip", "sha256": "af32e0ef352880fcfd5589e0152c44038bc81f462f42c7a6ca91a0d9879bac58"} ], "evidence": [ {"label": "llama.cpp runtime", "url": "https://github.com/modelscope/FunASR/blob/main/runtime/llama.cpp/README.md"}, - {"label": "runtime v0.2.0 release", "url": "https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.0"}, - {"label": "nine-platform release workflow", "url": "https://github.com/modelscope/FunASR/actions/runs/31458121788"}, + {"label": "runtime v0.2.1 release", "url": "https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.1"}, + {"label": "nine-platform release workflow", "url": "https://github.com/modelscope/FunASR/actions/runs/32991388379"}, {"label": "regression tests", "url": "https://github.com/modelscope/FunASR/tree/main/runtime/llama.cpp/tests"} ], "benchmarks": [ @@ -231,11 +231,11 @@ "translations": { "zh": { "name": "llama.cpp / GGUF 独立运行", - "summary": "使用 v0.2.0 的九个预编译包或源码构建,在 CPU、Vulkan、CUDA 和边缘设备上运行 FunASR GGUF 模型。", + "summary": "使用 v0.2.1 的九个预编译包或源码构建,在 CPU、Vulkan、CUDA 和边缘设备上运行 FunASR GGUF 模型。", "fit": ["不依赖 Python ML 环境", "桌面应用和离线边缘部署", "需要 Linux、macOS、Windows 的 CPU、Vulkan 或 CUDA 发布包"], "not_fit": ["需要 vLLM 式大批量 GPU 调度", "未验证目标 GPU 架构的通用预编译 CUDA 包", "必须使用完整 Python 模型生态的流程"], "selection_reason": "GGUF 运行时和独立二进制优先满足可移植、离线和低依赖部署。", - "primary_limitation": "预编译 GPU 包只覆盖标注的后端和架构;Windows AMD Vulkan 的崩溃修复仍需问题报告者实机复测,其他设备也必须在目标硬件验证。", + "primary_limitation": "v0.2.1 修复了匹配集成 GPU 的设备选择并优先匹配独显,但 AMD Radeon 780M 仍需报告者实机复测;RX 9070 XT 的 0xC0000005 初始化崩溃是单独的未解决问题,Android/Mali 也不是本版预编译或验证目标。", "status_label": "生产验证", "operations": ["按页面列出的 SHA-256 校验九个发布资产", "模型和二进制使用同一发布清单", "保留旧二进制和模型目录用于回滚"], "security": ["默认只读取本地音频和模型", "HTTP 服务绑定内网地址并限制上传大小", "不要从不可信地址加载 GGUF"], @@ -243,11 +243,11 @@ }, "en": { "name": "llama.cpp / GGUF standalone", - "summary": "Use the nine v0.2.0 release packages or source builds to run FunASR GGUF models on CPU, Vulkan, CUDA, and edge devices.", + "summary": "Use the nine v0.2.1 release packages or source builds to run FunASR GGUF models on CPU, Vulkan, CUDA, and edge devices.", "fit": ["No Python ML environment", "Desktop applications and offline edge deployment", "CPU, Vulkan, or CUDA packages for Linux, macOS, and Windows"], "not_fit": ["vLLM-style large GPU batch scheduling", "A universal prebuilt CUDA package for an unverified GPU architecture", "Workflows that require the full Python model ecosystem"], "selection_reason": "GGUF runtimes and standalone binaries prioritize portability, offline use, and low dependency count.", - "primary_limitation": "Prebuilt GPU packages cover only the documented backend and architecture; the Windows AMD Vulkan crash fix still awaits reporter hardware confirmation, and every other target also requires hardware validation.", + "primary_limitation": "v0.2.1 fixes matching integrated-GPU selection and prefers a matching discrete GPU, but AMD Radeon 780M still needs reporter hardware retesting; the RX 9070 XT 0xC0000005 initialization crash remains a separate unresolved issue, and Android/Mali is not a prebuilt or validated target.", "status_label": "Production verified", "operations": ["Verify all nine release assets against the listed SHA-256 values", "Keep models and binaries on the same release manifest", "Retain the previous binary and model directory for rollback"], "security": ["Read local audio and models by default", "Bind the HTTP server to a private address and limit uploads", "Do not load GGUF files from untrusted sources"], diff --git a/web-pages/product-site/tests/browser/product-site.spec.ts b/web-pages/product-site/tests/browser/product-site.spec.ts index f3233c3be..c13a8882c 100644 --- a/web-pages/product-site/tests/browser/product-site.spec.ts +++ b/web-pages/product-site/tests/browser/product-site.spec.ts @@ -135,13 +135,13 @@ for (const viewport of [ { name: 'mobile', width: 390, height: 844 }, { name: 'desktop', width: 1440, height: 900 }, ]) { - test(`llama.cpp v0.2.0 download matrix is stable at ${viewport.name}`, async ({ page }, testInfo) => { + test(`llama.cpp v0.2.1 download matrix is stable at ${viewport.name}`, async ({ page }, testInfo) => { await page.setViewportSize(viewport); await page.goto('/deploy/llama-cpp.html'); const section = page.locator('[data-section="downloads"]'); await expect(section.locator('[data-download-asset]')).toHaveCount(9); - await expect(section.locator('a[href*="runtime-llamacpp-v0.2.0"]')).toHaveCount(9); + await expect(section.locator('a[href*="runtime-llamacpp-v0.2.1"]')).toHaveCount(9); await expect(page.getByText('Windows AMD Vulkan', { exact: false }).first()).toBeVisible(); await section.evaluate((node) => node.scrollIntoView({ block: 'start' })); diff --git a/web-pages/product-site/tests/test_output.py b/web-pages/product-site/tests/test_output.py index 386f73025..2b0fca34a 100644 --- a/web-pages/product-site/tests/test_output.py +++ b/web-pages/product-site/tests/test_output.py @@ -158,14 +158,14 @@ def test_realtime_page_publishes_verified_v142_quickstart(built_site): ('en/deploy/llama-cpp.html', 'Windows AMD'), ), ) -def test_llama_cpp_pages_render_v020_download_matrix(built_site, relative, boundary): +def test_llama_cpp_pages_render_v021_download_matrix(built_site, relative, boundary): soup = read_soup(built_site / relative) section = soup.select_one('[data-section="downloads"]') assert section rows = section.select('[data-download-asset]') assert len(rows) == 9 - assert all(row.select_one('a[href*="runtime-llamacpp-v0.2.0"]') for row in rows) + assert all(row.select_one('a[href*="runtime-llamacpp-v0.2.1"]') for row in rows) assert all(len(row.select_one('[data-field="sha256"]').get_text(strip=True)) == 64 for row in rows) assert boundary in soup.get_text(' ', strip=True) diff --git a/web-pages/product-site/tests/test_registry.py b/web-pages/product-site/tests/test_registry.py index 8658eb65b..fef13e0be 100644 --- a/web-pages/product-site/tests/test_registry.py +++ b/web-pages/product-site/tests/test_registry.py @@ -211,13 +211,13 @@ def test_sensevoice_tensorrt_contract_tracks_merged_native_runtime(valid_registr assert 'tensorrt version' in limitation -def test_llama_cpp_contract_tracks_v020_release_assets(valid_registry): +def test_llama_cpp_contract_tracks_v021_release_assets(valid_registry): entry = next(item for item in valid_registry['deployments'] if item['id'] == 'llama-cpp') assert entry['tested'] == { - 'funasr': 'runtime-llamacpp-v0.2.0', + 'funasr': 'runtime-llamacpp-v0.2.1', 'runtime': 'llama.cpp@803b7fca', - 'verified': '2026-08-11', + 'verified': '2026-08-27', } assert len(entry['downloads']) == 9 assert {item['archive'] for item in entry['downloads']} == { @@ -232,16 +232,18 @@ def test_llama_cpp_contract_tracks_v020_release_assets(valid_registry): 'funasr-llamacpp-windows-x64-cuda.zip', } assert all(item['url'].startswith( - 'https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/' + 'https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.1/' ) for item in entry['downloads']) assert all(len(item['sha256']) == 64 for item in entry['downloads']) - assert any('actions/runs/31458121788' in item['url'] for item in entry['evidence']) + assert any('actions/runs/32991388379' in item['url'] for item in entry['evidence']) assert any( 'download-funasr-model.sh sensevoice ./funasr-gguf f16' in command for command in entry['commands']['install'] ) assert 'sensevoice-small-f16.gguf' in entry['commands']['launch'][0] assert 'AMD' in entry['translations']['en']['primary_limitation'] + assert 'RX 9070 XT' in entry['translations']['en']['primary_limitation'] + assert 'Android/Mali' in entry['translations']['en']['primary_limitation'] def test_sensevoice_native_server_contract_tracks_merged_runtime(valid_registry):