1. はじめに
LM Studio Bionic と Qwen3.8-Flash-Next(iq3_xxs) を使って、Fortran77 から Java21 へのマイグレーション作業が進んできたので報告です。
2. 実行環境
今回の試行では、以下の2台のパソコンを使って作業をしています。
前回の投稿 から、モデルを少し変更しました。これは、コンテキスト長を長くとるためです。
AIパソコン
-
GMEKtec EVO-X2 (Windows11)
- CPU: AMD Ryzen AI MAX+ 395
- MEMORY: 128GB
- VRAMの割り当て量: BIOSにて 32GB に設定
- LM Studio (0.4.24)
- 環境変数に、UNSLOTH_DISABLE_UNIFIED_MEMORY=1を設定
-
Qwen3.8-Flash-Next (unsolth/Qwen3.8-Flash-Next iq3_xxs)
- コンテキスト長 : 262144 (256K)
- GPUオフロード : 48 (MAX)
- 評価バッチサイズ : 2048
- Physical Batch Size : 512
- Max Concurrent : 1
開発パソコン
- 自作パソコン (Windows11)
- CPU: AMD 9950X3D
- MEMORY: 64GB
- GPU: RTX5080
- LM Studio Bionic (v1.1.6 ビルド3)
- Docker Desktop (v4.92.0)
3. 実行状況
今回は、AGENTS.md、MIGRATION.md(作業台帳) を自動作成させました。
同時に、追加で、TASK.md(現在の作業状況のみの小さなファイル) を作成させ、エラーが起きた時に現在の作業内容が簡単に把握できるように途中で追加させました。
現在の進捗状況ですが、モデル変更前は、コンテキスト長を超えて止まることがあったのですが、さすがに 256K のコンテキスト長だと、めったに止まることはありません。(まれに止まるのですが・・・)
その結果、順調にマイグレーション作業は進んでいます。
また、VS Codeで、devcontainer で gfortran と Java21 が入っているイメージを docker-compose.yml で指定していたのですが、作業途中で、docker がないと言われて、Docker Desktop を立ち上げて、dockerが使えるようになりました とプロンプトに入れると、Fortran のソースコードを実際に実行させて、マイグレーション結果を確認するためのテストケースを洗い出して、Javaのテストコードも生成しています。
同時に、古いシステム上で実行して作成した 実行時の入出力のパターン(オラクル) があったため、これを各実行プログラムのテストに使う感じでマイグレーションが進んでいます。
実行速度が遅いのは仕方ないですが、単にFortranのソースを読んで変換するだけでなく、テストで比較するようになっているため、マイグレーション結果はかなり信用ができそうです。
4. まとめ
今回のマイグレーション作業では、もともと、devcontainer を使ったり、 実行時の入出力のパターン(オラクル) が整備されていたこともあり、すべての作業がおわれば、置き換えが可能なJava21のプログラムが実装できそうです。
もっとも、ローカルLLM なので、遅いのは仕方ないですが、色々試行錯誤した結果、手間が減って放置プレイでどんどん作業が進んでいます。
なんにせよ、去年のうちに EVO-X2 を購入したのは大英断だったなぁとw