技術ブログヘッダー

技術ブログ

最新の技術情報や導入事例、開発ノウハウを発信しています。

AI・機械学習
3分

WizardCoder-7B と Elyzaで、日本語からコードを作るアプリを試作してみた

コード生成モデル WizardCoder-7Bと日本語特化モデルとして定評のある Elyzaを組み合わせて、「日本語で指示を出すと自動でコードを生成する」アプリを試しに作ってみた。 やりたかったのは、 「日本語で '○○のWebページを作って' と話すだけで、コードを出してくれるアプリ」 つまり...

2024/09/26 09:00
むらかみ
WizardCoder-7B と Elyzaで、日本語からコードを作るアプリを試作してみた
コード生成モデル WizardCoder-7Bと日本語特化モデルとして定評のある Elyzaを組み合わせて、「日本語で指示を出すと自動でコードを生成する」アプリを試しに作ってみた。


やりたかったのは、
「日本語で '○○のWebページを作って' と話すだけで、コードを出してくれるアプリ」
つまり、Elyzaが日本語を理解して英語のプロンプトへ変換し、その英訳をWizardCoderに渡してコードを生成させる仕組みだ。

日本語→英語→コード という流れを自動化し、エンジニアでなくても使える“会話型コーディング環境”を目指した。

Elyza(8Bモデル)
日本語を自然に理解し、英語に翻訳して構造化プロンプトを生成。
例:「カフェのホームページを作って」→ “Create a responsive cafe website using HTML and CSS.”

WizardCoder-7B(Pythonモデル)
その英語プロンプトを受け取り、コードを生成。
Llama系ベースのコード専用モデルなので、文法や構造はしっかりしている。

Flask+WebUI
ブラウザ上でチャット風にやり取りできるようにした。
ユーザーは日本語で入力 → Elyzaで翻訳 → WizardCoderがコード出力 → 結果を表示。

まず、テストとして
「カフェのホームページをHTMLで作って」
と入力。

WizardCoder-7Bは、ちゃんとHTML+CSSの構成を出力してくれた。
トップページ、メニュー、連絡先セクションなど、構造的にはそれなりにできている。

しかし――精度はあまり高くなかった。
タグの閉じ忘れやレイアウトの崩れが多い
CSSが中途半端で統一感がない
画像リンクやフォント指定が曖昧
デザイン全体が「とりあえず形にはなった」レベル

つまり、「動くけど美しくない」。
コードの骨格は生成できても、完成度としてはWeb制作で使うにはまだ遠い印象だった。

原因はおそらく以下の2点。
WizardCoder-7Bの英語依存性
 日本語から翻訳された英語プロンプトが少しでも曖昧だと、出力精度が落ちる。
 「カフェ」「ナチュラルな雰囲気」など日本語的表現はうまく反映されにくい。

7Bモデルの限界
 文法構成や小規模コードには強いが、
 複数ファイル構成やUI設計などの高度な生成にはパラメータ数が足りない。

精度の問題はあるものの、
Elyza+WizardCoderの連携は仕組みとしては面白い。
日本語で自然に話しかけるだけで、コードが自動的に生成される――
これは、エンジニアでなくてもAI開発を体験できる入口になり得る。

さらに、13Bのクラスのモデルを組み合わせれば、もっと実用的な精度になっていくはずだ。

Elyzaでの日本語処理と、WizardCoderのコード生成を組み合わせる発想は確実に可能性を感じる。
ただ現状では、“試作段階”としての面白さ止まり。
もう一歩先に行くには、モデルの大型化とチューニングが鍵になるだろう。

むらかみ

AI・機械学習分野の専門家として、企業のDX推進をサポートしています。