Repository navigation
Fix launch blockers for PLaMo 3: direction, first download, memory, platforms, license - #38
Merged
Merged
Conversation
…latforms, license - Direction: Japanese naming commands or products, such as "PLaMo 3 Translate を試してみました。", was sent to Japanese and echoed. With hiragana outside quotes, the automatic target now weighs it against twice the English function words; without hiragana, characters decide as before. A --from of English or Japanese decides. On labeled repository paragraphs and crafted sentences, misdirected Japanese dropped from 20 of 45 to 1, and English stayed at 1 of 2,357 or better. - First run: the 5.8 GB default checkpoint was downloaded silently inside the 600 s server startup wait. The CLI now downloads original PLaMo 3 checkpoints before starting the server, with its size and progress bars (no longer disabled globally), checks that cached snapshots are complete, exits promptly on Ctrl+C, and the server loads cached checkpoints without a Hub request. A real first run took 11 min 10 s and translated. - Memory: converting and quantizing all weights in one evaluation peaked at 7.2 GB and left 5.3 GB cached. One layer at a time peaks at 2.6 GB (max RSS 6.1 to 1.5 GB) with byte-identical fixture translations and the same load time. - Platforms: MLX and numba install on Apple Silicon only (numba has no current Intel Mac wheels); elsewhere the default backend is llama.cpp, and --backend-type mlx stops with a one-line error. Without TMPDIR, state goes to a private per-user directory. Windows exits with a message. deploy.sh publishes the pure-Python wheel and refuses versions already on PyPI. - README: platform table, Linux and Intel Mac setup, macOS 14 requirement, a License section for the PLaMo Community License models the CLI downloads, "Built with PLaMo" in the README and PLaMo 3 benchmark summaries.
This was referenced Nov 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the five problems that a pre-release audit rated as must-fix before promoting PLaMo 3 Translate support. Each was reproduced before fixing.
1. Automatic direction echoed Japanese that names commands or products
With the default
--from English|Japanese, inputs such asPLaMo 3 Translate を試してみました。andGitHub の README を読んでください。came back unchanged on both backends. The target was chosen by comparing Japanese characters with Latin letters, so identifiers outweighed the Japanese.The new rule works by grammar. When there is hiragana outside quotes, it is weighed against twice the number of English function words (
the,to,with, ...). Without hiragana, characters decide as before; this covers Chinese and English with Japanese names. A--fromof English or Japanese decides the target directly; other or unrecognized source languages still use the text.The rule was checked on labeled repository paragraphs plus crafted code-mixed and Japanese-quoting sentences:
The two remaining misses are ambiguous: a mostly English heading, and "Konnichiwa means こんにちは". On the real models, the cases above now translate to English, and
Meeting with 山田部長 and 佐藤課長 tomorrowstill goes to Japanese.2. First run downloaded 5.8 GB silently inside the 600 s server wait
Progress bars were disabled globally, and the download ran inside the server process, so it counted against the 600 s startup wait. Now:
Downloading pfnet/plamo-3-translate-2b (5.8 GB) into the Hugging Face cache...with progress bars.config.jsonis downloaded.A real first run with an empty cache took 11 min 10 s and then translated; the old code would have timed out at 600 s.
3. MLX load used 7.2 GB at peak
Converting and quantizing every weight in one evaluation peaked at 7.2 GB and left 5.3 GB in MLX's buffer cache. Loading one layer at a time, then calling
mx.clear_cache(), gives:Fixture translations are byte-identical at 4bit and bf16.
4. Platforms
--backend-type mlxstops with a one-line error.TMPDIR, as usual on Linux, state goes to a private per-user directory (/tmp/plamo-translate-<uid>, mode 0700, owner checked).scripts/deploy.shpublishes the pure-Pythonpy3-none-anywheel instead of retagging it for macOS arm64. It refuses to run for a version already on PyPI, because PyPI would accept a new file under an existing version.--backend-typeand noTMPDIR.5. Model license
The README now has a License section. The CLI code is Apache-2.0. The 2B checkpoint, the 2B GGUF, the 0.8B draft GGUF and the PLaMo 2 models it downloads are under the PLaMo Community License. The section summarizes:
"Built with PLaMo" is added to the README, which shows model translations, and to the PLaMo 3 benchmark summaries.
Validation
pytestunit and mock suites: 157 passed.tests/test_llama_cpp_integration.py: 3 passed locally, and the new Linux-only test is skipped on Apple Silicon.ruff check src tests: clean.uv lock --check: up to date, with lockfile revision 3 kept.platform.machineset tox86_64andTMPDIRunset: the default llama.cpp translation works, and/tmp/plamo-translate-501is created with mode 0700.test_cli_rejects_draft_for_mlxfailing on Linux CI;Notes
pyproject.toml,src/plamo_translate/__init__.py,uv.lock) before runningdeploy.sh, which now refuses otherwise.--from/--to;[project.urls];HTTP_PROXYhang and the client hang when a server dies.