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

コード生成モデル 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のコード生成を組み合わせる発想は確実に可能性を感じる。
ただ現状では、“試作段階”としての面白さ止まり。
もう一歩先に行くには、モデルの大型化とチューニングが鍵になるだろう。
やりたかったのは、
「日本語で '○○の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推進をサポートしています。
