Safe mode breaks Tinker training, loopback-only hosts crash at deploy, checkpoints unusable from stock Tinker SDK
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 30/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- docker, python
調査の方向性
Three separate problems are reported, so split them before starting. Begin with check_unsafe in src/twinkle/infra/init.py near line 573 and the TWINKLE_TRUST_REMOTE_CODE path, then find_node_ip() in src/twinkle/utils/network.py and the MASTER_ADDR use in ray_helper.py, then checkpoint_manager.py for the twinkle:// paths. Done means forward_backward works with trust off, a loopback-only host deploys, and returned sampler paths are usable by the stock SDK.
索引モデルが issue の本文から書いたものです。
説明
- I have searched existing issues, and this is a new bug report.
Bug Description
Three problems when running Twinkle 0.5.1 in an isolated container and using it from the stock Tinker SDK (source links at v0.5.1):
- Safe mode breaks Tinker training.
- With
TWINKLE_TRUST_REMOTE_CODE=0, everyforward_backwardfails withTwinkle does not support Callable or Type inputs in safe mode.The check ischeck_unsafeon the remote-call path (infra/init.py#L573). - So operators can't turn remote-code trust off, and it defaults to on.
- With
- Loopback-only hosts crash at deploy.
- Under e.g.
docker run --network none,find_node_ip()skips every127.*address and returnsNone(utils/network.py#L15-L28). - That
NonebecomesMASTER_ADDR(ray_helper.py#L336), and the deployment fails withTypeError: runtime_env['env_vars'] must be of type Dict[str, str]. - Also,
.locksis created in the CWD (utils/parallel.py#L9), which fails when the CWD is read-only.
- Under e.g.
- Checkpoints can't be used from the stock Tinker SDK.
save_weights_for_sampler()returnstwinkle://...paths, which the unpatched SDK rejects (ValueError: Invalid tinker path). There's also no archive/download endpoint.nameis ignored, and each save deletes the previous sampler weights (checkpoint_manager.py#L241-L285), so earlier returned paths go stale.
How to Reproduce
- Set
TWINKLE_TRUST_REMOTE_CODE: "0"in the model deployment'senv_vars, then callforward_backward(data, "cross_entropy"). - Start
ray start --head --node-ip-address=127.0.0.1andtwinkle-server launchinside a--network nonecontainer. - With
tinker==0.16.1, callget_checkpoint_archive_url_from_tinker_path(tc.save_weights_for_sampler(name="x").result().path).
Additional Information
Suggested fixes:
- Exempt Twinkle's built-in loss and template classes from
check_unsafe. - In
find_node_ip(), fall back to127.0.0.1(or the Ray node IP), and put.locksunderTWINKLE_HOMEor the temp dir. - Return
tinker://-compatible paths, add the Tinker archive endpoint, and honourname. That would let separate evaluators load trained adapters without patching the SDK.
Environment: twinkle-kit 0.5.1, ray 2.58.0, Ubuntu 24.04 container, tinker 0.16.1.
- 主要言語
- Python
- スター
- 260
- フォーク
- 55
- 平均マージ
- 1日 11時間
- マージ済み PR(30日)
- 15
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
modelscope/twinkle のほかの issue
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 15/100
modelscope/twinkle#319 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
modelscope/twinkle#279 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
modelscope/twinkle の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
SublimeText/AdvancedNewFile#211 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
Imbad0202/academic-research-skills#987 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
-
Pull-through from gcr.io returns 500 when pulling using podman/buildah対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンIssue Triage-Needed
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
pulp/pulp_container#2581 ·
メンテナーはふだん 1 日以内に返信