SSampleThicket
AIコーディングワークスペース

ストリームのリザーバサンプリング

シードを指定したローカル生成器で、最大1000項目の有限ストリームから最大32項目のリザーバを選びます。

● ● ●SampleThicket●
ワークフロー · ストリームのリザーバサンプリング ×
from random import Random

def reservoir_sample(items, size, seed):
    if type(size) is not int or not 0 <= size <= 32:
        raise ValueError("size.range")
    if type(seed) is not int or not 0 <= seed < 2**32:
        raise ValueError("seed.range")
    rng, sample, count = Random(seed), [], 0
    for index, item in enumerate(items):
        count = index + 1
        if count > 1000:
            raise ValueError("stream.limit")
        if index < size:
            sample.append(item)
        elif size:
            position = rng.randrange(count)
            if position < size:
                sample[position] = item
    if size > count:
        raise ValueError("stream.short")
    return sample
✳シードを指定したローカル生成器で、最大1000項目の有限ストリームから最大32項目のリザーバを選びます。
✓ 変更内容適用前に確認 ↗
ワークスペースのイメージ
01

モデル

OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。

02

プロジェクト

同じシードで再現性を確認し、標本より短いストリームを拒否して入力リストを変更しません。

03

適用前に確認

実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。

ワークフロー

ストリームのリザーバサンプリング

ワークフロー ↗
ワークフロー
from random import Random

def reservoir_sample(items, size, seed):
    if type(size) is not int or not 0 <= size <= 32:
        raise ValueError("size.range")
    if type(seed) is not int or not 0 <= seed < 2**32:
        raise ValueError("seed.range")
    rng, sample, count = Random(seed), [], 0
    for index, item in enumerate(items):
        count = index + 1
        if count > 1000:
            raise ValueError("stream.limit")
        if index < size:
            sample.append(item)
        elif size:
            position = rng.randrange(count)
            if position < size:
                sample[position] = item
    if size > count:
        raise ValueError("stream.short")
    return sample
AIコーディングワークスペース

サンプリングの変更をレビューできる再現性にする

個々の出力が変動しても、乱択コードにはレビューの記録が必要です。SampleThicketは、ソースと再現性の前提を一緒に話し合える、サンプリング関連のプロジェクト向けWindows AIコーディング環境です。関連フォルダーを開き、入力ストリーム、要求する標本、無効な要求の期待する扱いを説明してください。

有限ストリームのリザーバーサンプリングでは、シードの渡し方と、項目の到着に伴う標本の変化を接続モデルに確認させます。追跡できる短い既知のストリームを用意してください。繰り返し再現できる例と、統計的品質についての広い主張を区別します。固定シードは経路の再現に役立ちますが、不偏であることは証明しません。

実装変更を採用する前に要求の境界を確認します。ストリームより大きな標本と、対応上限を超えるストリームには明示的な結果が必要です。呼び出し側が失敗をどう受け取るか確認し、自分のツールで決定的なテストデータと適切な統計評価を実行してください。結果の記録にはシードと関連設定も残します。

SampleThicketはOpenAI互換またはAnthropicのエンドポイント接続に対応します。利用可能な無検閲AIモデルを確認に使えますが、モデルの動作とサーバーの制限が適用されます。この環境は修正の準備と確認を支援し、維持したい動作の根拠はプロジェクトの再現可能なチェックから得られます。

サンプリングの変更をレビューする再現性:編集前の質問

再現可能なサンプリング報告には何を含めるべきですか?

入力列または再現可能な入力元、要求サイズ、シード、関連する実行環境の詳細を含めます。可能なら確認できる小さな例にしてください。コードの変更と乱数経路の変化を区別できます。

固定シードの出力が一致すれば不偏なサンプリングと証明できますか?

いいえ。その構成とケースでの再現性を確立するだけです。統計的性質には別の根拠と適切な評価が必要です。1つの決定的なテストデータを分布の品質の証拠とせず、その主張を区別するようモデルに求めてください。

大きすぎる標本要求はどう動作すべきですか?

失敗すべきか、別の意図的な方針に従うかを示します。有限ストリームの例では、短いストリームの拒否と呼び出し側を確認してください。要求個数が保証されると利用側が想定している場合、黙って少ない項目を返すのは避けます。

サンプリングのリファクタリングで制限を残すのはなぜですか?

制限は受け入れる処理量と失敗時の仕様を定めている場合があります。ループや入力処理を変える前にモデルに特定させてください。意図した防護が偶然消えないよう境界ケースをテストします。

Windows版をダウンロード ↗

SampleThicket · 更新日 2026-10-25