Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/v3-adoption-gates.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
| 対象 | 確認済み | 採用前に残るもの | 現在の扱い |
| --- | --- | --- | --- |
| C++20 | native matrix、Python 30 wheelのbuild/installed smoke | 最低runtime、新たに導入する標準library機能のavailability | build opt-in。既定規格は維持 |
| 内部trace | group直下のstate/active、同一feedの小fixture出力一致 | 内部language状態、reject/ranking理由 | 開発用・既定OFF。公開APIではない |
| 内部trace | group直下のstate/active、language detectorのstate/counter、同一feedの小fixture出力一致 | reject/ranking理由、一般的な無効時cost検証 | 開発用・既定OFF。公開APIではない |
| corpus生成 | manifest検証、split監査、変換不能の明示、実pilot再生成一致 | domain/言語の多様性、translation/近重複確認、独立評価 | 生成基盤として採用。精度向上とは数えない |
| 新規model形式 | 明示契約、人工tableのC++構造体適合、provenance、未較正training profileの再現性 | engine filter適合、未使用data上の品質、配布条件 | 実験用。既存modelを置換しない |
| 保存観測分析 | corpus hash照合、exact/compatible/decode-equivalent分離 | 実Web頻度、独立corpus、原因診断 | 評価tool。candidate順位を変えない |
Expand Down
24 changes: 23 additions & 1 deletion docs/v3-foundation-results.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,31 @@ BOM分割の一部を改善する一方、通常入力の候補副作用、compl

- #116: C++20の30 wheel build/smokeは成功。最低配布runtimeと新標準library機能のavailability確認は残る
- #118/#119: P01の安全性検証と修正。OOM注入・weight/reset契約も未完了
- #120: group直下の状態は追加済み。内部language detector・reject/ranking理由は未観測
- #120: group直下とlanguage detectorのstate/counterは追加済み。reject/ranking理由は未観測
- #123: native filterとtrainingの適合、model品質比較、生成modelの権利判断
- #124: 独立corpus・real-world入力を含む失敗分析、family/coverage/校正の原因分類
- #125/#126: 3.0採用範囲、移行契約、試作の採否

上記を完了扱いにせず、保留部分を切り離して後続の独立作業を進める。

## 多言語script pilotの追加(2026-09-21)

[日本語・アラビア語・ヘブライ語CC0 pilot](v3-script-corpus.md)を追加した。
31文・186 variantsの再生成一致を確認したが、日本語・アラビア語は各2文しかない。
取得成功を代表的な精度評価や十分なcoverageと扱わず、追加sourceの必要性を記録した。

## language detector観測の追加(2026-09-21)

既定OFFのnative traceで、内部language detectorのstate・累積文字数・sequence統計を
読み取れるようにした。追加のconfidence計算や名前取得methodは呼ばず、既存headerは
friend宣言のみ。モデル名は静的labelであって予測結果ではない。

従来の空・ASCII・135-byte日本語の同一feedで旧snapshot/raw Reportと最終候補が一致した。
GCC16.2.1の同一Release buildでは全61 engine object memberがbyte一致した。
archive自体のmetadata差、他compiler、一般的な性能測定とは区別する。
手順・比較のskip条件は[native診断文書](../src/ext/uchardet/benchmark/introspection.ja.md)。

日本語fixtureのFrench language modelではsequence総数35に対して4分類counter合計0を
観測した。model外の文字対は分母のみ増えるため、単純なcategory比率と同一視できない。
これはUnicode language detectorの観測であり、新規SBCS trainerとの適合を確認したわけではない。
reject/ranking原因はunknownを維持し、#120全体は未完了とする。
56 changes: 56 additions & 0 deletions docs/v3-script-corpus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<!-- SPDX-License-Identifier: MIT -->
# Tatoeba追加script pilotと不足量

2026-09-21。既存の仏語・露語CC0 adapterに日本語・アラビア語・ヘブライ語の
公式CC0 exportを追加した。独立MIT toolの拡張であり、本文のCC0とは分けて扱う。

## 結果

| 言語 | available / selected | encoding | generated / skipped |
| --- | ---: | --- | ---: |
| 日本語 | 2 / 2 | UTF-8 / CP932 | 12 / 0 |
| アラビア語 | 2 / 2 | UTF-8 / CP1256 | 12 / 0 |
| ヘブライ語 | 27 / 27 | UTF-8 / CP1255 | 162 / 0 |

各言語200文を要求したが、snapshot全体がこの件数だった。
取得成功を十分なcoverageと扱わず、特に日本語・アラビア語の各2文は
モデル学習・代表的な精度評価には使えない。ヘブライ語27文も小規模pilotに留まる。
変換できた例だけを選んだわけではなく、全31文をID順で採用した結果である。

3 snapshotの圧縮転送量は合計1,783 bytes。本文はGitへ追加せず作業ディスクに保存。
別出力のingest/generateは全ファイルbyte一致し、従来fra/rusの再ingestも以前の出力と一致した。
5 manifest・431 source recordsの横断split監査が成功した。
翻訳関係を解決したわけではないため、全言語を共通origin `tatoeba:cc0-pilot` のvalidationへ保持する。

native予測・新しいmodel学習・独立holdout評価は行っていない。
候補出力、既定API、既存model、codec対応は変更していない。

## 再現

許可した5言語以外のexport、通常ライセンスのexport、任意URL、redirectは受け付けない。
新規取得だけがnetworkを使用する。取得済みsnapshotは再取得せずofflineで検証する。

```sh
uv run --no-project python src/ext/uchardet/corpus/sources/tatoeba.py \
validate /disk/tatoeba-jpn-snapshot-1
uv run --no-project python src/ext/uchardet/corpus/sources/tatoeba.py \
ingest /disk/tatoeba-jpn-snapshot-1 /disk/tatoeba-jpn-input-1 --limit 200
uv run --no-project python src/ext/uchardet/corpus/framework.py generate \
/disk/tatoeba-jpn-input-1/config.json /disk/tatoeba-jpn-generated-1 \
--failure-policy record-and-continue
```

snapshot hash、manifest content hash、件数はnative側の
[結果JSON](../src/ext/uchardet/corpus/sources/tatoeba-script-pilot-2026-09-21.json)、
取得と分割の契約は[日本語説明](../src/ext/uchardet/corpus/sources/TATOEBA.md)を参照する。
週次更新URLを固定revision扱いせず、実際の取得byteのhashで区別する。

## 次のsource選定への制約

- 今回のCC0 subsetだけで対象言語の評価を完了しない。
- 文書・著者・genreの多様性を持つ、別の権利確認済みsourceが必要。
- 通常exportへ無断で切り替えてライセンス条件を変えない。
- 採用順をnative予測やlegacy codecでの表現可否に依存させない。
- variant数と独立した元文章数を別に記録する。

この不足は #124 に残し、データ取得toolの完成だけで精度評価を完了扱いにしない。
Loading