ランダムアクセスメモリ

沖縄移住、マンガ、Web制作、ゲーム、生成AIの話をランダムに。※本サイトには一部アフィリエイトリンクもあります

Wikipediaの記事を元にローカルLLMで4択クイズを作る

4択クイズを量産したいなら、Wikipediaの記事をランダムで選んで、それを元に生成AIにつくってもらえばいい。

幸いなことに、Wikipediaの記事は公式APIを使ってランダムに取得できる。
以下のURLを叩くだけ。素晴らしきやWikipedia。

https://ja.wikipedia.org/api/rest_v1/page/random/summary

で、これを元に生成AIを作って4択クイズを作りたいところだけど、Web APIだとコストがかかる。膨大な数の問題を作りたいので、安価なDeepSeekでも怖い。

 

というわけで、ローカルにLLMをダウンロードして、そちらを利用するようにしよう。

まずは、ローカルでLLMを利用できる素晴らしいツール「LM Stadio」をダウンロードしてインストール。


DeepSeek R1 のモデルが無料で手に入るのでダウンロード。

「Developer」ボタンを押し、モデルを選んだ状態で「Status Running」を有効にすれば、ローカル環境からAPIを叩けるようになる。「CURL」をクリックすれば、エンドポイントとJSONの投げ方がわかるので参考にしよう。

で、ChatGPTにアドバイスをもらってPHPでコードを書き、実際にクイズを作成してみると……。

【問題】: クリ克�レットが提供する医療機vensの基本理念は哪一个ですか?
【選択肢】: 1. 愛情、奉仕、和、進歩 2. 心理的柔軟性と医療的専門性のバランス 3. 精神科领域的研究と治療の整合 4. 完全な医療サービス
【解答】: 愛情、奉仕、和、進歩  
【解説】: クリック�レットが提供する医療機vensの基本理念は「愛情、奉仕、和、進歩」と「心地の柔軟性と医療的专业性のバランス」です。しかし、最も正確な選択肢は「愛情、奉仕、和、進歩」です。


うーむ。文字化けが大量発生して精度が悪い。DeepSeek R1が中国語に変換してから考慮しているという問題もありそう。

もっといいモデルはないだろうか、と思って「japanese」でモデルを探してみたら、「cyberagent-deepseek-r1-distill-qwen-14b-japanese」が。

サイバーエージェントの方がDeepSeek R1をベースに日本語データで追加学習したモデルらしい。そういえば、ニュースで見た。ありがたくこちらを使わせてもらう。
結果はかなり自然な日本語で4択クイズを作ってくれた!

【問題】: 名古屋第二環状自動車道にある清洲西インターチェンジは愛知県のどの市にあるか?
【選択肢】: 1. 稲葉市 2. 清須市 3. 豊田市 4. 長久手市
【解答】: 清須市
【解説】: 名古屋第二環状自動車道の清洲西インターチェンジは愛知県清須市の北西部に位置する。周辺には清州城跡や名古屋空港が近いことで知られる。


この問題は簡単だが、他の問題を見ると難易度がかなり高い。これはランダムに記事を選んでいるので仕方がない。ちなみに1問作るのに約90秒かかる。環境は以下の通り。

CPU:Ryzen 5 5600X
メモリ:16GB
ストレージ:[M.2 NVMe SSD] 1TB + [HDD] 2TB
GPU:NVIDIA GeForce RTX 3070

LM Stadioがデフォルト設定なので設定によっては高速化できるかもしれないが、まあ十分といえば十分なので一晩回してクイズを作りまくってみたい。