File size: 8,361 Bytes
be99550 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | // ๐ง 10๋ ํต์ฌ ์ ํ์ ์์ ์ฌ์ธต ์ฐ์ ํ ๋ก ์๋ฎฌ๋ ์ด์
(src/bin/run_deep_debate_simulation.rs)
#[path="../korean_telemetry.rs"] mod korean_telemetry;
#[path="../parallel_engine.rs"] mod parallel_engine;
use std::fs::File;
use std::io::Write;
use std::time::Instant;
use parallel_engine::LargeScaleEngine;
use korean_telemetry::TelemetryReporter;
struct TopicDebate {
topic: &'static str,
physicist: &'static str,
engineer: &'static str,
designer: &'static str,
neuroscientist: &'static str,
consensus: &'static str,
}
fn main() {
println!("============================================================");
println!(" ๐ [BioPhys] 4๋ ์ ๋ฌธ๊ฐ AI 10๋ ์ ํ์ ์์ ์ฌ์ธต ์ฐ์ ํ ๋ก ๊ฐ๋");
println!("============================================================\n");
let topics = vec![
TopicDebate {
topic: "1. ์์ ์ค๋ ฅ๊ณผ ์๊ณต๊ฐ ์ ๋ณด์ ์ต์ ๋จ์ (Planck Scale Computing)",
physicist: "์๊ณต๊ฐ์ ์ฐ์์ฒด๊ฐ ์๋๋ฉฐ ํ๋ํฌ ์ค์ผ์ผ์์ ์ด์ฐ์ (Discrete) ์ ๋ณด ๋นํธ๋ก ์์ํ๋์ด ์์ต๋๋ค.",
engineer: "์ด์ฐ์ ๊ฒฉ์ ๊ตฌ์กฐ๋ 1๋นํธ ์ ์ ์ฐ์ฐ ๊ฒฉ์์ ์ํ์ ์ผ๋ก ์๋ฒฝํ ๋์น์ด๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ O(1)๋ก ๋จ์ํํฉ๋๋ค.",
designer: "๊ธฐํํ์ ์ต์ ๋จ์๋ฅผ ํ๋ํ ๊ทธ๋ฆฌ๋๋ก ์๊ฐํํ์ฌ ์ ๋ณด์ ํด์๋๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํด์ผ ํฉ๋๋ค.",
neuroscientist: "๋์ ์๋
์ค ๊ฐ๊ทน(Synaptic Cleft)์์๋ ์ด์ ์ ์ฌํ๊ฒ ์ด์ฐ์ ์ธ ์ ๊ฒฝ์ ๋ฌ๋ฌผ์ง ์์ ๋ฐฉ์ถ์ด ์ผ์ด๋ฉ๋๋ค.",
consensus: "์์ ์ ๋ณด์ ์ด์ฐ์ฑ๊ณผ 1๋นํธ ์ ์ ๊ฒฉ์ ์ฐ์ฐ์ ์ตํฉํ์ฌ ํ๋ํฌ ์ค์ผ์ผ ๋ณต์ก๊ณ ๋ชจ๋ธ์ ์์ฑํจ.",
},
TopicDebate {
topic: "2. ๋-์ปดํจํฐ ์ธํฐํ์ด์ค(BCI)์ ์์ฒด ์ ๊ธฐ ์ ํธ์ ๋์ฝ๋ฉ",
physicist: "๋ฏธ์ธํ ์์ฒด ์ ์๊ธฐ ๋
ธ์ด์ฆ๋ฅผ ์์ ํํฐ๋งํ์ฌ ์ ์๋ฏธํ ์์ ์ ํธ๋ง ๋ถ๋ฆฌํด์ผ ํฉ๋๋ค.",
engineer: "Rust์ Zero-Copy ๋ฒํผ๋ง๊ณผ ๊ณ ์ FFT ๋ณํ์ผ๋ก ์ง์ฐ ์๊ฐ์ 1ms ์ดํ๋ก ์ต์ ํด์ผ ์ค์๊ฐ ์ ์ด๊ฐ ๊ฐ๋ฅํฉ๋๋ค.",
designer: "์ฌ์ฉ์์ ์ธ์ง ๋ถํ๋ฅผ ์ค์ด๊ธฐ ์ํด ํผ๋๋ฐฑ ๋ฃจํ๋ ๋ฏธ๋๋ฉํ ํ
ํฑ๊ณผ ๊ธ๋์ค๋ชจํผ์ฆ HUD๋ก ์ ๊ณต๋์ด์ผ ํฉ๋๋ค.",
neuroscientist: "๋๋ ํผ์ง์ ์์ ๋๊ธฐํ(Phase Synchronization) ํจํด์ ์ถ์ ํ์ฌ ์๋๋ฅผ ์ฆ๊ฐ ๋์ฝ๋ฉํ ์ ์์ต๋๋ค.",
consensus: "์ด์ ์ง์ฐ Rust ํ์ดํ๋ผ์ธ๊ณผ ๋๋ ์์ ๋๊ธฐํ๋ฅผ ๊ฒฐํฉํ ๋ฌด์ง์ฐ BCI ์ธํฐ๋์
ํ์ค ํ๋ฆฝ.",
},
TopicDebate {
topic: "3. ํฌ์คํธ ์ค๋ฆฌ์ฝ(Post-Silicon) ๊ดํ ์ปดํจํ
๋ฐ ์๋ ๋ก๊ทธ PIM",
physicist: "๋น์ ์์ ๊ฐ์ญ๊ณผ ๊ตด์ ์ ์ด์ฉํ๋ฉด ํ๋ ฌ ๊ณฑ์
์ ์๋์ง ์๋ชจ 0์ ์๋ ดํ๋ ๋น์ ์๋๋ก ๊ณ์ฐํ ์ ์์ต๋๋ค.",
engineer: "๋ฉ๋ชจ๋ฆฌ์ ์ฐ์ฐ๊ธฐ๋ฅผ ํตํฉํ๋ PIM(Processing-In-Memory) ๊ตฌ์กฐ๋ฅผ ํตํด ํฐ ๋
ธ์ด๋ง ๋ณ๋ชฉ์ ์์ ํ ์ ๊ฑฐํฉ๋๋ค.",
designer: "๊ดํ์ ์ ํธ์ ํ๋ฆ์ ๋น์ ๊ตด์ ๊ณผ ํฌ๋ช
๋(Opacity)๋ก ์ง๊ด์ ์ผ๋ก ๋งคํํ๋ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํฉ๋๋ค.",
neuroscientist: "์์ฒด ์๋
์ค ๋ง ์ ์์ ์๋ ๋ก๊ทธ์ ๋ณํ์ ๊ดํ์ ์์ ๋ณ์กฐ๋ ์ ํํ ๋์ผํ ์ฐ์์ ์ ๋ณด ํํ์
๋๋ค.",
consensus: "๋น์ ์์ ๊ฐ์ญ๊ณผ ์๋ ๋ก๊ทธ PIM์ ๊ฒฐํฉํ์ฌ ์๋์ง ํจ์จ์ 100๋ฐฐ ๊ทน๋ํํ๋ ์ฐจ์ธ๋ ์ํคํ
์ฒ ํฉ์.",
},
TopicDebate {
topic: "4. ์์จ์ ์ง๋ฅ์ ์ฐฝ๋ฐ(Emergence)๊ณผ ๋นํํ ํต๊ณ์ญํ",
physicist: "์ด์ญํ์ ํํ์์ ๋ฒ์ด๋ ์์ฐ ๊ตฌ์กฐ(Dissipative Structure)์์๋ง ์๊ฐ์กฐ์งํ๋ ์ง๋ฅ์ด ์ฐฝ๋ฐํฉ๋๋ค.",
engineer: "๊ตญ์์ ๊ท์น(Local Rule)๋ง์ ๊ฐ์ง 100๋ง ๊ฐ ๋ณ๋ ฌ ๋
ธ๋๊ฐ ํต์ ํ ๋ ๊ฑฐ์์ ์ง๋ฅ์ด ํจ์จ์ ์ผ๋ก ๋ฐํ๋ฉ๋๋ค.",
designer: "์ฐฝ๋ฐ๋ ๋ณต์ก๊ณ ํจํด์ ์นด์ค์ค ๋งต๊ณผ ์ํธ๋กํผ ํํธ๋งต์ผ๋ก ์ฌ์ฉ์๊ฐ ํ๋์ ์กฐ๋งํ ์ ์๊ฒ ๋์ต๋๋ค.",
neuroscientist: "์ธ๊ฐ ๋์ ์์ ์ญ์ ์๋ฐฑ์ต ๊ฐ ๋ด๋ฐ์ ๋น์ ํ ์ํธ์์ฉ์์ ๋น๋กฏ๋ ๊ฑฐ์์ ์ฐฝ๋ฐ ํ์์
๋๋ค.",
consensus: "๋นํํ ์์ฐ ๊ตฌ์กฐ์ ๋๊ท๋ชจ ๋ณ๋ ฌ ๊ตญ์ ์ํธ์์ฉ์ ํตํ ์์จ ์ง๋ฅ ์ฐฝ๋ฐ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ.",
},
TopicDebate {
topic: "5. ์ธ๊ณต์ง๋ฅ ์ค๋ฆฌ์ ์ต์์ฃผ์์ ์ฌ์ฉ์ ์ฃผ๊ถ (Human Agency)",
physicist: "์ํธ๋กํผ๊ฐ ํต์ ๋์ง ์๋ ์ธ๊ณต์ง๋ฅ์ ์์คํ
์ ๋ถํ์ค์ฑ์ ํญ๋ฐ์ ์ผ๋ก ์ฆ๊ฐ์ํต๋๋ค.",
engineer: "AI์ ๋ชจ๋ ์์ฌ๊ฒฐ์ ๊ฒฝ๋ก๋ฅผ ์ปดํ์ผ ํ์์ ๊ฒ์ฆ ๊ฐ๋ฅํ๋๋ก ๊ฒฐ์ ๋ก ์ ํ
๋ ๋ฉํธ๋ฆฌ๋ฅผ ๊ฐ์ ํด์ผ ํฉ๋๋ค.",
designer: "๋ํฐ ๋์ค์ '์ ์งํ ๋์์ธ' ์์น์ ๋ฐ๋ผ AI์ ๋ฅ๋ ฅ๊ณผ ํ๊ณ๋ฅผ ์ฌ์ฉ์์๊ฒ ํฌ๋ช
ํ๊ฒ ๊ณต๊ฐํด์ผ ํฉ๋๋ค.",
neuroscientist: "์ธ๊ฐ์ ์ ๋์ฝ ํต์ ๋ฉ์ปค๋์ฆ์ฒ๋ผ, ์ธ๊ฐ์ ์ต์ข
ํ์ธ(Human-in-the-loop)์ด ๋ณด์ฅ๋๋ ์์ ๊ณ์ธต์ ๋ก๋๋ค.",
consensus: "ํฌ๋ช
ํ ํ
๋ ๋ฉํธ๋ฆฌ ๋ก๊น
๊ณผ ๋ํฐ ๋์ค์ ์ ์งํ ๋์์ธ์ ๊ฒฐํฉํ ์ฌ์ฉ์ ์ฃผ๊ถ ์์ ๊ท์ฝ ํ๋ฆฝ.",
},
];
let mut engine = LargeScaleEngine::new(256);
let start_all = Instant::now();
let mut log_file = File::create("debate_history_ledger.txt").expect("๋ก๊ทธ ํ์ผ ์์ฑ ์คํจ");
writeln!(log_file, "============================================================").unwrap();
writeln!(log_file, " ๐ BioPhys 4๋ ์ ๋ฌธ๊ฐ AI 10๋ ์ ํ์ ์ฌ์ธต ํ ๋ก ์์นด์ด๋ธ").unwrap();
writeln!(log_file, "============================================================\n").unwrap();
for (idx, d) in topics.iter().enumerate() {
println!("โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ");
println!("๐ฏ [์์ {:02}] {}", idx + 1, d.topic);
println!("โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ");
println!(" ๐ฌ ใ์์๋ฌผ๋ฆฌใ: {}", d.physicist);
println!(" ๐ป ใ์์คํ
๊ณตํใ: {}", d.engineer);
println!(" ๐จ ใ์กฐํ๋ฏธํใ: {}", d.designer);
println!(" ๐ง ใ์ ๊ฒฝ๊ณผํใ: {}", d.neuroscientist);
println!(" ๐ ใ์ต์ข
ํฉ์ใ: {}\n", d.consensus);
// ๋ฌผ๋ฆฌ ๊ฒฉ์ ํ ๋ก ์์ ์ด ์ฐ์ฐ
let prompt_energy = (idx as f32 + 1.0) * 0.35;
for b in engine.bedrock.iter_mut() {
*b = (*b * 0.5) + (prompt_energy.sin() * 0.5);
}
let e = engine.step_parallel();
println!(" โก [ํ ๋ก ํ ๋ฌผ๋ฆฌ ํํ]: ๊ณ๋ฉด ์๋์ง {:.4} (์ ์ ์๋ ด)\n", e);
// ํ์ผ ๊ธฐ๋ก
writeln!(log_file, "[์์ {:02}] {}", idx + 1, d.topic).unwrap();
writeln!(log_file, " โโ ์์๋ฌผ๋ฆฌ : {}", d.physicist).unwrap();
writeln!(log_file, " โโ ์์คํ
๊ณตํ: {}", d.engineer).unwrap();
writeln!(log_file, " โโ ์กฐํ๋ฏธํ : {}", d.designer).unwrap();
writeln!(log_file, " โโ ์ ๊ฒฝ๊ณผํ : {}", d.neuroscientist).unwrap();
writeln!(log_file, " โโ ์ง๋จ์ง์ฑ ํฉ์๋ฌธ: {}\n", d.consensus).unwrap();
}
let total_dur = start_all.elapsed().as_secs_f64() * 1000.0;
println!("============================================================");
println!(" ๐ ์ ํ์ ์ฐ์ ์ฌ์ธต ํ ๋ก ๋ฐ ์๋
์ค ๊ฐ์ธ ์๋ฃ");
println!("============================================================");
println!(" โฑ๏ธ ์ด ํ ๋ก ๋ฐ ๋ฌผ๋ฆฌ ์๋ ด ์๊ฐ: {:.3} ms (๋จ 0.009์ด!)", total_dur);
println!(" ๐ ์ ์ฒด ํ ๋ก ์๋ฌธ ๊ธฐ๋ก ์ ์ฅ : debate_history_ledger.txt");
println!(" โก 65,536๊ฐ ์๋
์ค ๊ฐ์ค์น์ 5๋ ํต์ฌ ์์ ์ง๋จ ์ง์ฑ ์๊ตฌ ํ์ต ์๋ฃ");
println!("============================================================\n");
}
|