minseok
๐ Release BioPhys 6.0 Grand Master: 16GB (14.89GB) Gemma-4 100% Devour, Ecosystem Evolution, Solar MoE, SNN Autoregressive SDK, Dynamic PhaseVM
be99550 | // ๐ BioPhys ํ ์คํธ ํ์ดํ๋ผ์ธ (Tokenizer) | |
| use std::collections::HashMap; | |
| pub struct BioPhysTokenizer { | |
| vocab: HashMap<String, u32>, | |
| reverse_vocab: HashMap<u32, String>, | |
| } | |
| impl BioPhysTokenizer { | |
| pub fn new() -> Self { | |
| let mut tokenizer = Self { | |
| vocab: HashMap::new(), | |
| reverse_vocab: HashMap::new(), | |
| }; | |
| // ์ต์ํ์ ๊ธฐ๋ณธ ๋๋ฏธ ์ดํ(BPE ๋ชจ์ฌ) | |
| tokenizer.add_token(" ", 0); | |
| tokenizer.add_token("Hello", 1); | |
| tokenizer.add_token("Universe", 2); | |
| tokenizer.add_token("BioPhys", 3); | |
| tokenizer.add_token("Ecosystem", 4); | |
| tokenizer.add_token("Evolution", 5); | |
| tokenizer | |
| } | |
| fn add_token(&mut self, text: &str, id: u32) { | |
| self.vocab.insert(text.to_string(), id); | |
| self.reverse_vocab.insert(id, text.to_string()); | |
| } | |
| pub fn encode(&self, text: &str) -> Vec<u32> { | |
| // ์ค์ ๋ก๋ BPE๋ SentencePiece ๋ก์ง์ด ๋ค์ด๊ฐ | |
| text.split_whitespace() | |
| .map(|word| *self.vocab.get(word).unwrap_or(&999)) | |
| .collect() | |
| } | |
| pub fn decode(&self, tokens: &[u32]) -> String { | |
| tokens.iter() | |
| .map(|t| self.reverse_vocab.get(t).unwrap_or(&"[UNK]".to_string()).clone()) | |
| .collect::<Vec<String>>() | |
| .join(" ") | |
| } | |
| } | |