RISC-V パラメータ抽出コードチャレンジ

AI/ML

概要

このリポジトリは、RISC-V 仕様書からアーキテクチャパラメータを自動で抽出するための LLM ベースのパイプライン実装を収めたコードチャレンジです。クラウド上の大規模モデル(Gemini 2.5 Flash)とローカル実行を想定した Ollama を使った二通りのアプローチを比較・検証しています。各パイプラインは、テキスト抽出の前処理として Web スクレイピングと参照リンクのフラグメント解析を行い、モデル出力を YAML に整形して保存します。成果物には抽出結果 YAML と抽出用スクリプト、チャレンジ説明が含まれます。LLM の温度や top-p/top-k の設定差、外部参照の取り込み方が主要な検討点です。

GitHub

リポジトリの統計情報

  • スター数: 4
  • フォーク数: 0
  • ウォッチャー数: 4
  • コミット数: 9
  • ファイル数: 6
  • メインの言語: Python

主な特徴

  • Gemini(クラウド大規模モデル)と Ollama(ローカル/軽量モデル)の2パイプライン実装。
  • 仕様書内の参照リンクをたどる Web スクレイピングとフラグメント解析を組み込み。
  • モデル応答を構造化して extracted_parameters_*.yaml に保存するワークフロー。
  • 抽出スクリプト(gemini_ai_params_extractor.py)による再現可能な実験設定。

技術的なポイント

本プロジェクトは、技術文書(RISC-V 仕様)からの情報抽出に LLM を活用するワークフロー設計が中心です。まず、入力テキストとして仕様書ページとそのページが参照するリンク群を収集するための Web スクレイピングを行い、リンク先に含まれるフラグメント(#以降)やセクション見出しを解釈して関連箇所を抽出します。得られたテキストを LLM に投げる際には、Gemini 2.5 Flash では温度(temp=0.1)、top-p=0.8、top-k=20 といった比較的保守的なサンプリング設定を採用し、生成の確定性と多様性のバランスを調整しています。対照として Ollama 側はローカルで低レイテンシな実行を想定し、モデル能力に合わせたプロンプト設計と出力後処理を行います。

出力は YAML フォーマットに整形して保存し、extracted_parameters_gemini.yaml と extracted_parameters_ollama.yaml に結果を残します。これにより、人手での後処理や差分比較が容易になります。技術的には、プロンプトエンジニアリング(期待するキーと値の形式を明示)、外部参照の優先順位付け(直接仕様本文 vs 参照セクション)、およびモデルの出力整合性チェック(キーの有無、型チェック)の自動化が重要です。リポジトリに含まれる gemini_ai_params_extractor.py はこれらの流れをスクリプト化しており、モデル呼び出し、スクレイピング、パース、YAML 生成を一連で実行します。課題としては、仕様書の曖昧表現や参照の古さによる誤抽出、モデルによる補完(hallucination)への対処が挙げられ、今後は追加の検証データやチェーン・オブ・ソート(CoT)やファクトチェッキングの組み込みが有効です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
  • challengeDescription.md: file
  • extracted_parameters_gemini.yaml: file
  • extracted_parameters_ollama.yaml: file
  • gemini_ai_params_extractor.py: file

…他 1 ファイル

まとめ

LLM を用いた仕様書からの構造化パラメータ抽出を実践した比較実験で、再現可能なワークフローと成果物が揃っています。

リポジトリ情報:

READMEの抜粋:

RISC-V Parameter Extraction - LFX Code Challenge

Code challenge for LFX program project: AI-assisted extraction of architectural parameters from RISC-V specifications

Challenge details: challengeDescription.md

Approach

Implemented two extraction pipelines using different models:

Gemini 2.5 Flash (Cloud, large model)

  • Temp 0.1, Top-p 0.8, Top-k 20
  • Web scraping for linked references with fragment parsing
  • Results: 4 parameters ([extracted_parame…