Skip to content

Reasoning_parserでマッチしなかった時にlm_outputがNoneではなく空文字列になるように変更 - #291

Merged
Kotaro-Aono merged 2 commits into
mainfrom
fix/reasoning-parser-none-text
Jul 21, 2026
Merged

Reasoning_parserでマッチしなかった時にlm_outputがNoneではなく空文字列になるように変更#291
Kotaro-Aono merged 2 commits into
mainfrom
fix/reasoning-parser-none-text

Conversation

@Kotaro-Aono

@Kotaro-Aono Kotaro-Aono commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

issue

#292
を解決するためのPR

変更

Reasoning_parserでマッチしなかった時にlm_outputがNoneではなく空文字列になるように変更

空文字列を返す理由

マッチ失敗した場合lm_outputとして考えられるのは以下の二通り

  • reasoning_content (thinkタグ閉じてない) をそのまま(lm_output.text)
  • 空文字列("")

resoning_contentをそのまま返す場合、生の思考過程がそのまま judge や他の下流メトリクスに渡ってしまい、

  • LLM-as-judgeが長い理由づけに引きずられて過大評価
  • 文字数ベースの指標が意図せず高くなる

といった問題が発生する可能性がある。
"" であれば「reasoningが未完了/失敗=有効な回答なし」として扱われ、少なくとも安全側(スコアが不当に高くならない方向)に倒せると考えこのような実装になっています。

備考

^(?:(?P<reasoning_content>.*)</think>\\s*)?(?P<content>.*)$'
のように、マッチしない場合は全ての文字列をマッチさせるようにすればresoning_contentをそのまま返す場合の挙動を再現することが可能

UnifiedRegexReasoningParser/SeparatedRegexReasoningParser return
Reasoning(text=None, ...) when the pattern fails to match, and this
None was assigned directly to LMOutput.text, bypassing the
None -> "" coercion in LMOutput.__post_init__. Downstream consumers
that call re.findall() directly on LMOutput.text (llm_judge,
llm_score, llm_label) would then raise an uncaught TypeError.
@Kotaro-Aono Kotaro-Aono changed the title Fix ReasoningParser no-match falling through as None in LMOutput.text Reasoning_parserでマッチしなかった時にlm_outputがNoneではなく空文字列になるように変更 Jul 15, 2026
@Kotaro-Aono Kotaro-Aono changed the title Reasoning_parserでマッチしなかった時にlm_outputがNoneではなく空文字列になるように変更 [WIP]Reasoning_parserでマッチしなかった時にlm_outputがNoneではなく空文字列になるように変更 Jul 16, 2026
@Kotaro-Aono
Kotaro-Aono requested a review from a team July 17, 2026 05:20

@junya-takayama junya-takayama left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@Kotaro-Aono
Kotaro-Aono merged commit c244124 into main Jul 21, 2026
8 checks passed
@Kotaro-Aono
Kotaro-Aono deleted the fix/reasoning-parser-none-text branch July 21, 2026 01:41
@Kotaro-Aono Kotaro-Aono changed the title [WIP]Reasoning_parserでマッチしなかった時にlm_outputがNoneではなく空文字列になるように変更 Reasoning_parserでマッチしなかった時にlm_outputがNoneではなく空文字列になるように変更 Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants