シンプルな翻訳AI「TransAI」
- ダウンロード商品¥ 100


・いろいろと技術的なテストをするために作った簡単なもので、 これが一番すごい!・・・とかいうものではないんですが、 一応、使えるのではないかなと思います。 《 ボキャブラリファイル(tokenizer.json)の入手先 》 ・翻訳モデルは「ゼロから学習(スクラッチ)」させますが、 文字をIDに変換するルール(ボキャブラリ)だけは、 世界トップクラスの多言語モデルから拝借することで、 学習効率が劇的に向上します。 ・おすすめは、 現在最も日本語と英語の分割(トークナイズ)が優秀な Qwen または Llama のボキャブラリです。 ・どちらもHugging Faceから無料でダウンロードでき、 知財的にも安全(Apache 2.0 / Llamaライセンス)です。 おすすめ: ・Qwen の tokenizer.json (語彙数 約15万) ・特に日本語・中国語・英語の多言語処理に優れています。 ダウンロードURL (Hugging Face): https://huggingface.co/Qwen/Qwen2.5-7B/tree/main 手順: 上記リンクにアクセスします。 ・画面の右側にある 「↓(Download file)」 ボタンをクリックします。 ・ダウンロードした tokenizer.json を、 TransAI.exe と同じフォルダ(または任意の場所)に配置します。 (※Llamaのボキャブラリを使いたい場合は、 Hugging Faceのアカウントを作成し、 Meta社への利用申請ボタンを押す必要があります。 Qwenは申請不要で、すぐにダウンロードできます。) ■対訳コーパス(学習データ)の準備 ・もし手元に「英語と日本語の対訳テキスト」がない場合は、 テスト用として以下のデータセットを利用できます。 JParaCrawl v3.0 (商用・研究利用可能な大規模日英コーパス) ・日本のNTTなどが構築した、 Web上の翻訳文を収集した 巨大なデータセットです。 ダウンロードURL: https://www.kecl.ntt.co.jp/icl/lirg/jparacrawl/ 手順: ・上記サイトから データセット(tar.gz または zip)を ダウンロードして解凍します。 ・英語と日本語の文章が 「タブ(\t)区切り」で並んでいるテキストファイルを探します。 (例:en-ja.bicleaner05.txt) ・このファイルを corpus.tsv などの名前で保存し、読み込ませます。 (※数千万行あるため、 最初は先頭の1万行だけを切り出した 小さなファイルで学習テストを行うことを強くお勧めします。) ■ハイパーパラメータの意味(AIの「脳の構造」) ・これらは「設定」タブで決める、 AIのアーキテクチャ(構造)そのものです。 ・一度決めて初期化・学習を始めたら、 途中で変更することはできません。 (変更して読み込もうとすると、 アーキテクチャ不一致エラーになります) バッチサイズ (Batch Size): ・GPUが「同時に処理する文章の数」です。 ・16に設定すると、 16個の翻訳文をまとめて並列計算します。 ・大きくするほど学習スピード(効率)は上がりますが、 ビデオメモリを爆発的に消費します。 最大系列長 (Max Sequence Length): ・AIが一度に読み込める 「文章の長さ(トークン数の上限)」です。 ・128に設定すると、 128単語以上の長い文章はスパッと切り捨てられ、 短い文章は128になるまで 「PAD(空白)」で埋められます。 ・これもビデオメモリの消費に直結します。 隠れ層サイズ (Hidden Size): ・AIの「脳の太さ(表現力)」です。 ・512という次元数で 言葉の意味をベクトル化します。 ・この数字を大きくする(例: 1024, 2048)と、 より複雑なニュアンスを理解できる 賢いモデルになりますが、 計算量が指数関数的に増えます。 レイヤー数 (Layers): ・Transformerの思考回路(Attentionブロック)を 「何段重ねるか」です。 ・6に設定すると、 AIは入力された言葉を 6回熟考して出力を作ります。 ・深い(多い)ほど 文脈の理解力が高まります。 ■学習ステータスの意味(AIの「成長度合い」) ・学習タブに表示されているリアルタイムな数値です。 エポック (Epoch): ・用意した学習データ(数十万行のテキストなど)全体を 「何周したか」です。 ・エポック 1 は、1周目の学習中であることを示します。 バッチ数: ・これまでに重み(知識)の更新を行った回数です。 ・画像では「12,780回」更新されたことがわかります。 Loss (損失): ・AI開発において最も重要な数字です。 ・AIが出した翻訳と、 正解の翻訳が 「どれくらいズレているか(間違いの大きさ)」 を表します。 ・学習が進むにつれて 8.5 → 5.2 → 2.1... と、 限りなく 0 に近づいていくのが正常な状態です。 ■継続学習(中断と再開)は可能なのか? ・はい、完全に可能です。 ・AIの「知識(重み行列)」だけでなく、 現在の学習の進み具合(adamStep)も 一緒に .trai ファイルに保存されます。 ・途中で「学習停止」を押して「上書き保存」し、 アプリを閉じても大丈夫です。 ・次回起動時に、そのファイルを「開く」で読み込み、 「学習開始」を押せば、 前回の知識を引き継いだまま 途中から学習を再開できます。 🚨 【超重要】「Loss: NaN」について ・これはAIの学習が「崩壊」している状態です。 ・NaNは「Not a Number(非数)」の略です。 ・GPUの中で行列の掛け算をしている最中に、 数値が無限大(Infinity)を超えてオーバーフローしたか、 ゼロ除算が発生したことを意味します。 ・この状態になると AIの脳内は「真っ白」になっており、 このまま何時間学習させても、保存しても、 一切使い物になりません。 (推論させても無言になるか、エラーを吐きます) ■初期化は毎回必要なのか?(HDDのフォーマットと同じ?) 👉 はい、おっしゃる通り「フォーマット (ビデオメモリの確保と、脳の初期化)」です。 ・そのため、アプリ運用時のルールは以下のようになります。 新規作成時: ・「初期化する」を押す(VRAMを確保し、脳をランダムな値で初期化)。 前回からの続きを学習時: ・「初期化する」を押した直後に、 「読み込む」を押す。 (ランダムになった脳に、 前回保存した知識を上書きする。) ※もし学習の途中で間違えて 「初期化する」を押してしまうと、 知識がすべて消し飛んで ゼロに戻ってしまうのでご注意ください。

