はじめに
生成系AI(LLM:Large Language Model)を使っていて、「あなたのナレッジカットオフは?」と聞いたときに、明らかに間違った日付を返されたことはありませんか?
例えば、Redditのユーザー報告によると、Geminiに英語で「今日の日付は?」と聞くと「2024年6月11日」と答えることがあるそうです。これは一見すると単純なバグのように見えますが、実はLLMの構造的な特性によるものです。
この記事では、AIの「ナレッジカットオフ」と「トレーニングカットオフ」の違い、そしてなぜAIが現在の日付について虚偽の報告(hallucination)をしてしまうのかを解説します。
ナレッジカットオフとトレーニングカットオフの違い
まず、2つの重要な概念を理解する必要があります。
トレーニングカットオフ(Training Data Cutoff)
トレーニングカットオフとは、AIモデルの学習に使用されたデータの最終日付です。例えば:
- あるモデルが「2025年7月までのデータ」で訓練された場合、トレーニングカットオフは2025年7月となります
- この範囲内のデータは、すべてモデルの学習に使用されたことを意味します
ナレッジカットオフ(Reliable Knowledge Cutoff)
一方、ナレッジカットオフは、モデルの知識が最も広範で信頼できる日付を指します。
- トレーニングデータに含まれていても、すべての情報が同じレベルで学習されるわけではありません
- モデルが最も確実に知識を持っているのは、ナレッジカットオフまでの情報です
具体例:Claude Sonnet 4.5
Anthropicの透明性レポートによると、Claude Sonnet 4.5は以下のように定義されています:
- トレーニングカットオフ: 2025年7月
- ナレッジカットオフ: 2025年1月
つまり、7月までのデータで訓練されていますが、最も信頼できる知識は1月までということです。これは、後半のデータが学習に含まれていても、その範囲の情報はまだ十分に網羅的ではない、または検証が不十分であることを示しています。
なぜAIは今日の日付を間違えるのか
システム時刻へのアクセスがない
LLMは、リアルタイムのシステム時刻にアクセスできません。これが問題の根本原因です。
通常のプログラムであれば、OSのシステム時刻APIを呼び出せば現在の日付を正確に取得できます。しかし、LLMは以下の理由でこれができません:
- 純粋な言語モデル: LLMは入力されたテキストに基づいて次のテキストを予測するだけ
- 外部APIへのアクセス制限: セキュリティやアーキテクチャ上の理由で、外部システムへの直接アクセスは制限されている
- 学習データからの推論: 「今日は何日ですか?」という質問に対して、学習データ内のパターンから「それらしい答え」を生成してしまう
トレーニングデータの模倣
LLMは、学習データ内に含まれる「今日は〇〇年△△月××日です」という記述を模倣して答えを生成します。
例えば:
- 学習データに「今日は2024年6月11日です」という記述が多く含まれていた場合
- モデルは「今日の日付を聞かれたら、2024年6月11日と答えるのが適切」と学習してしまう可能性がある
これは、モデルが意図的に嘘をついているのではなく、学習データのパターンを忠実に再現しようとした結果です。
Hallucinationのメカニズム
この現象は、AIの「hallucination(幻覚、虚偽の報告)」の一種です:
- 学習データ内の日付の分布: 学習データ内で最も頻繁に「今日」として言及された日付
- パターンの強化: 訓練中に繰り返し学習された日付が強く記憶される
- 現実との乖離: 実際の現在日とは無関係に、学習データのパターンを再現してしまう
実例:各AIモデルの状況
Gemini(Google)
Redditの報告によると:
- 英語で質問すると「2024年6月11日」と答える
- この日付は、おそらくモデルのトレーニングが完了した日付、または学習データ内で頻出する日付と推測される
Claude(Anthropic)
Claude Sonnet 4.5の場合:
- システムプロンプトで現在の日付情報が提供されている場合は正確に答えられる
- しかし、システムプロンプトなしで「今日は何日?」と聞かれると、ナレッジカットオフ周辺の日付を答える可能性がある
ChatGPT(OpenAI)
ChatGPTは、多くの場合システムレベルで現在日時を注入しているため、比較的正確に答えられます。ただし、これもシステム設計によるもので、モデル自体が日付を知っているわけではありません。
実用上の影響と対処法
ユーザーとしての対処法
- 日付に関する質問は慎重に: AIに「今日の日付」を聞いても、正確な答えが返ってくるとは限らない
- 最新情報の確認: ナレッジカットオフ以降の情報は不正確または欠如している可能性が高い
- システムプロンプトの活用: API経由で使用する場合、システムプロンプトで現在日時を明示的に提供する
開発者としての対処法
- システムプロンプトに日付を含める:
現在の日付: 2025年11月1日
-
外部ツールとの連携: LLMに時刻APIへのアクセスを許可する(Function Callingなど)
-
ユーザーへの明示:
注意: このモデルのナレッジカットオフは2025年1月です。
それ以降の情報は不正確な場合があります。
まとめ
生成系AIが今日の日付を間違える現象は、以下の理由によるものです:
- ナレッジカットオフとトレーニングカットオフの違い: 学習データの範囲と、信頼できる知識の範囲は異なる
- システム時刻へのアクセスがない: LLMはリアルタイムの日付情報を取得できない
- 学習データのパターンを模倣: 「今日の日付」という質問に対して、学習データ内の頻出パターンを再現してしまう
この問題を理解することで、AIの回答をより適切に解釈し、信頼できる情報と不確実な情報を区別できるようになります。
AIは強力なツールですが、その限界を理解して使うことが重要です。特に日付や最新情報に関しては、常に検証を怠らないようにしましょう。