neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
This library provides tools for analyzing and simulating hands in the card
game contract bridge. It is named after an anatomical part of the
brainstem and also "bridge" in Latin.
• bidding — [Trie]-based representation of a bidding system. Auction primitives ([Call], [Auction], etc.) live in the contract-bridge crate.
• stats — numerically stable accumulators and double-dummy par scoring over histograms.
Card sets and shuffling live in contract-bridge::deck; hand-evaluation kernels in contract-bridge::eval.README 전문 보기 ↗This library provides tools for analyzing and simulating hands in the card game contract bridge. It is named after an anatomical part of the brainstem and also "bridge" in Latin.
bidding — Trie-based representation of a bidding system. Auction primitives (Call, Auction, etc.) live in the contract-bridge crate.stats — numerically stable accumulators and double-dummy par scoring over histograms.Card sets and shuffling live in contract-bridge::deck; hand-evaluation kernels in contract-bridge::eval.
serde — derive Serialize/Deserialize for the library's value types. Off by default.Deal 10 random hands and evaluate the North hand with several point counts:
use contract_bridge::Seat;
use contract_bridge::deck::full_deal;
use contract_bridge::eval::{self, HandEvaluator};
let mut rng = rand::rng();
for _ in 0..10 {
let deal = full_deal(&mut rng);
let north = deal[Seat::North];
let hcp: u8 = eval::SimpleEvaluator(eval::hcp).eval(north);
let nltc: f64 = eval::NLTC.eval(north);
let zar: u8 = eval::zar(north);
println!("{} HCP={hcp} NLTC={nltc} Zar={zar}", deal.display(Seat::North));
}
Estimate NS par from random fill-in deals (requires ddss's solver,
linked via ddss-sys in dev-dependencies; see
examples/average-ns-par):
use contract_bridge::deck;
use contract_bridge::{AbsoluteVulnerability, Builder, Hand, Seat};
use ddss::{NonEmptyStrainFlags, Solver};
use pons::stats;
# let north_hand: Hand = "T9762.AT54.JT75.".parse().unwrap();
# let south_hand: Hand = "A.KQ962.A86.Q642".parse().unwrap();
let cards = Builder::new()
.north(north_hand)
.south(south_hand)
.build_partial()
.expect("north and south hands are disjoint and ≤13 each");
let solutions = Solver::lock(None).solve_deals(
&deck::fill_deals(&mut rand::rng(), cards).take(90).collect::<Vec<_>>(),
NonEmptyStrainFlags::ALL,
);
let par = stats::average_ns_par(
solutions.into_iter().collect(),
AbsoluteVulnerability::NONE,
Seat::North,
);
The examples/ directory has runnable programs; run any with
cargo run --example <name>. Bare names are user-facing; dev/research tooling
is grouped by prefix — ab- (A/B match), dump- (data generator), eval-
(evaluator calibration), probe- (diagnostic).
User-facing:
american — bid out random boards with the 2/1 game-forcing system.practice-bidding — bid one seat on random deals and get feedback.render-book — print every authored bidding node as readable prose.average-ns-par — Monte-Carlo NS par score for a partial deal.Dev / research harnesses (a sampler of each family):
ab-* — A/B duplicate matches pitting a convention or floor against a baseline
(ab-landy, ab-lebensohl, ab-defend-2sx-or-3nt, …).eval-nltc, eval-zar, eval-calibrate — validate hand-evaluation methods against double-dummy results.dump-*, probe-* — AI-bidder data generation and diagnostics.The bba-gen / bba-score example pair benchmarks pons's bidding against
BBA/EPBot, Edward Piwowar's mature reference engine, driven natively
through its C ABI: bba-gen bids the boards and writes a JSON dump,
bba-score reads dumps and reports IMPs (plain or perfect-defense scoring).
EPBot is bundled as the
vendor/bba git submodule — free for non-commercial use and
redistribution per its author — so fetch it once and the default library path
resolves:
git submodule update --init vendor/bba
cargo run --release --features serde --example bba-gen -- --count 1000 -o bba.json
cargo run --release --features serde --example bba-score -- bba.json
EPBot is single-threaded; scripts/bba-gen-parallel.sh
shards a large run across processes with disjoint seeds.
Set BBA_LIB to override the library path. Published comparison numbers credit
EPBot as the reference engine.
Two examples that don't need pons live one level down the stack:
generate-deals
in contract-bridge and
notrump-tricks
in ddss (with a parallel
copy
in dds-bridge).
Design docs live in docs/: the bidding-module architecture and its
invariants (bidding-architecture.md), the
A/B measurement playbook (measurement.md), the
AI-bidder design effort (ai-bidder/), raw bidding-theory
notes (bidding-theorems.md), and how to run
heavy data generation on a shared machine
(shared-machine-data-gen.md).