RISC-V パラメータ抽出コードチャレンジ
概要
このリポジトリは、RISC-V 仕様書からアーキテクチャパラメータを自動で抽出するための LLM ベースのパイプライン実装を収めたコードチャレンジです。クラウド上の大規模モデル(Gemini 2.5 Flash)とローカル実行を想定した Ollama を使った二通りのアプローチを比較・検証しています。各パイプラインは、テキスト抽出の前処理として Web スクレイピングと参照リンクのフラグメント解析を行い、モデル出力を YAML に整形して保存します。成果物には抽出結果 YAML と抽出用スクリプト、チャレンジ説明が含まれます。LLM の温度や top-p/top-k の設定差、外部参照の取り込み方が主要な検討点です。
リポジトリの統計情報
- スター数: 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 を用いた仕様書からの構造化パラメータ抽出を実践した比較実験で、再現可能なワークフローと成果物が揃っています。
リポジトリ情報:
- 名前: riscv-coding-challenge
- 説明: Code challenge: Extracting RISC-V architectural parameters with llms
- スター数: 4
- 言語: Python
- URL: https://github.com/OmarAI2003/riscv-coding-challenge
- オーナー: OmarAI2003
- アバター: https://avatars.githubusercontent.com/u/126517794?v=4
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…