[{"data":1,"prerenderedAt":861},["ShallowReactive",2],{"content-query-1IAQ2Xgxqd":3,"content-navigation-8C37fagqQL":666},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"heading":10,"abstract":11,"year":12,"tags":13,"schemaOrg":18,"body":60,"_type":642,"_id":643,"_source":644,"_file":645,"_stem":646,"_extension":647,"head":648},"/projects/gheim","projects",false,"","gheim: An open Swiss-language PII dataset and NER model","A 212k-chunk multilingual PII NER dataset across the four official Swiss languages plus English, labelled by three LLMs and a checksum-validated regex catalogue, with a 560M xlm-roberta-large fine-tune trained on it.","gheim","Built a Swiss-language PII corpus (212k chunks across de_CH, fr_CH, it_CH, rm, en) from a three-LLM consensus plus checksum-validated regex, then fine-tuned xlm-roberta-large on it. 0.910 strict-span F1 on the held-out test set against 0.44 for the next-best public detector.","2026",[14,15,16,17],"On Github","PyPI","npm","HuggingFace",[19,43],{"@context":20,"@type":21,"name":10,"headline":8,"description":22,"datePublished":23,"dateModified":24,"author":25,"codeRepository":34,"url":35,"programmingLanguage":36,"license":39,"applicationCategory":40,"keywords":41,"inLanguage":42},"https://schema.org","SoftwareSourceCode","Open Swiss-language PII NER dataset (212k chunks, 5 languages) and a 560M xlm-roberta-large fine-tune released alongside it.","2026-05-01","2026-05-26",{"@type":26,"givenName":27,"familyName":28,"name":29,"url":30,"sameAs":31},"Person","Joel","Barmettler","Joel Barmettler","https://joelbarmettler.xyz",[32,33],"https://www.linkedin.com/in/joel-barmettler-b9ab361b7","https://github.com/joelbarmettlerUZH","https://github.com/joelbarmettlerUZH/gheim","https://gheim.ch",[37,38],"Python","TypeScript","https://www.apache.org/licenses/LICENSE-2.0","DeveloperApplication","PII, NER, dataset, Swiss, de-CH, fr-CH, it-CH, Romansh, xlm-roberta, BIOES, Apertus","en",{"@context":20,"@type":44,"mainEntity":45},"FAQPage",[46,52,56],{"@type":47,"name":48,"acceptedAnswer":49},"Question","What is gheim?",{"@type":50,"text":51},"Answer","An open Swiss-language PII NER artifact: a 212k-chunk multilingual dataset covering the four official Swiss languages and English, and a 560M xlm-roberta-large fine-tune trained on it. Two thin SDKs (Python and JavaScript) wrap the model for the LLM-anonymisation round-trip.",{"@type":47,"name":53,"acceptedAnswer":54},"How accurate is gheim-ch-560m?",{"@type":50,"text":55},"0.910 strict-span F1 on the held-out test split (0.946 char F1). The next-best public detector on the same Swiss test set is openai/privacy-filter at 0.443.",{"@type":47,"name":57,"acceptedAnswer":58},"How is the dataset labelled?",{"@type":50,"text":59},"Three open-weights LLMs (Gemma 4, Qwen3.6, Nemotron-3) label in parallel. A checksum-validated regex catalogue (IBAN, AHV, VAT-CHE, Luhn) scans independently. A Geonames-CH gazetteer demotes municipality names mis-tagged as people. A five-phase balancer caps per-document and per-cell concentration. A synthetic gap-fill layer populates sparse cells.",{"type":61,"children":62,"toc":636},"root",[63,71,86,91,98,127,132,137,143,170,188,194,319,324,330,335,530,570,586,605,624,630],{"type":64,"tag":65,"props":66,"children":68},"element","h1",{"id":67},"gheim-an-open-swiss-language-pii-dataset-and-ner-model",[69],{"type":70,"value":8},"text",{"type":64,"tag":72,"props":73,"children":74},"p",{},[75,77,84],{"type":70,"value":76},"Existing public PII detectors handle Swiss text poorly. ",{"type":64,"tag":78,"props":79,"children":81},"code",{"className":80},[],[82],{"type":70,"value":83},"openai/privacy-filter",{"type":70,"value":85}," reaches a strict-span F1 of 0.44 on the gheim Swiss test set. Microsoft Presidio reaches 0.43. AI4Privacy's distilbert fine-tunes drop to 0.16 on real Swiss text. None of them fluently handle the four official Swiss languages together with structured Swiss-format PII (CH-IBAN, AHV/AVS, VAT-CHE), and only SwissNER ships a Romansh slice.",{"type":64,"tag":72,"props":87,"children":88},{},[89],{"type":70,"value":90},"gheim is the artifact built to close that gap: a dataset, a model trained on it, and a reproducible evaluation harness that scores both against the open alternatives. The full write-up is the technical report at the bottom of this page. What follows is the skim.",{"type":64,"tag":92,"props":93,"children":95},"h2",{"id":94},"dataset",[96],{"type":70,"value":97},"Dataset",{"type":64,"tag":72,"props":99,"children":100},{},[101,107,109,118,120,125],{"type":64,"tag":78,"props":102,"children":104},{"className":103},[],[105],{"type":70,"value":106},"gheim-ch-pii-212k",{"type":70,"value":108}," is 212,503 chunks of real Swiss text from the ",{"type":64,"tag":110,"props":111,"children":115},"a",{"href":112,"rel":113},"https://huggingface.co/datasets/swiss-ai/apertus-pretrain-swiss",[114],"nofollow",[116],{"type":70,"value":117},"Apertus pretrain corpora",{"type":70,"value":119}," (court rulings, federal parliament records, Swiss-filtered FineWeb-2, Romansh corpus) plus a synthetic gap-fill layer for sparse cells. Five languages (de_CH, fr_CH, it_CH, rm, en), eight PII categories, 33-class BIOES tag scheme byte-identical to ",{"type":64,"tag":78,"props":121,"children":123},{"className":122},[],[124],{"type":70,"value":83},{"type":70,"value":126},". Released under CC BY 4.0.",{"type":64,"tag":72,"props":128,"children":129},{},[130],{"type":70,"value":131},"Three open-weights LLMs label in parallel under the same JSON schema: Gemma 4 26B-A4B, Qwen3.6 35B-A3B, and Nemotron-3 Nano Omni 30B-A3B. A separate regex pass gated by checksum validators (ISO 13616 for IBAN, ISO 7064 for VAT-CHE, Luhn for cards) scans the same corpora independently, so structured PII the LLMs missed still gets picked up. A fourth format-aware annotator runs only on the commercial-register subset, which the general-purpose labellers under-recall. The four streams merge at the span level with per-span provenance kept. A Geonames-CH gazetteer demotes municipality names that get mis-tagged as people. A five-phase balancer then caps per-document, per-value, and per-cell concentration. Templated synthetic chunks filled by Faker_CH populate the cells where real-text coverage was still insufficient. Splits are document-isolated.",{"type":64,"tag":72,"props":133,"children":134},{},[135],{"type":70,"value":136},"To put a number on residual label disagreement, a 580-chunk sample from val and test was re-annotated by four 2026-era LLMs (Kimi K2.6, DeepSeek V4 Pro, Minimax M2.7, GLM 5.1) and reduced to per-span majority vote. The released labels score F1 = 0.71 against that consensus. The breakdown of the gap is in the report: it is dominated by policy disagreement (the dataset flags publicly-listed officials by design), not random annotator error.",{"type":64,"tag":92,"props":138,"children":140},{"id":139},"model",[141],{"type":70,"value":142},"Model",{"type":64,"tag":72,"props":144,"children":145},{},[146,152,154,160,162,168],{"type":64,"tag":78,"props":147,"children":149},{"className":148},[],[150],{"type":70,"value":151},"gheim-ch-560m",{"type":70,"value":153}," is a token-classification head on ",{"type":64,"tag":78,"props":155,"children":157},{"className":156},[],[158],{"type":70,"value":159},"xlm-roberta-large",{"type":70,"value":161}," (560M parameters). XLM-R-large was selected from a bake-off against ",{"type":64,"tag":78,"props":163,"children":165},{"className":164},[],[166],{"type":70,"value":167},"ZurichNLP/swissbert",{"type":70,"value":169}," (270M dense). Both bases received an identical 5 × 3 sweep over (learning rate, layer-wise LR decay) at one epoch. XLM-R-large won by 0.8 pp validation F1. The winning configuration was then trained for three full epochs: AdamW at 5e-5 cosine with 5% warmup, effective batch 128 (per-device 64 × 2 GPUs DDP), bf16, max sequence length 512, on 2 × RTX 4090. Wall time around 66 minutes.",{"type":64,"tag":72,"props":171,"children":172},{},[173,175,186],{"type":70,"value":174},"Released under Apache 2.0. Ships fp32 PyTorch, fp32 and fp16 ONNX, and an int8 ONNX export so the demo can run in-browser through transformers.js. A sibling ",{"type":64,"tag":110,"props":176,"children":179},{"href":177,"rel":178},"https://huggingface.co/joelbarmettler/gheim-ch-560m-research",[114],[180],{"type":64,"tag":78,"props":181,"children":183},{"className":182},[],[184],{"type":70,"value":185},"gheim-ch-560m-research",{"type":70,"value":187}," checkpoint adds external NER/PII corpora (openpii-1m, WikiNeural, CoNLL-2003) to the training mix. It is tied on in-domain Swiss PII but gains +20 pp on Swiss-news transfer and +46 pp on Romansh. Non-commercial licence.",{"type":64,"tag":92,"props":189,"children":191},{"id":190},"headline-numbers",[192],{"type":70,"value":193},"Headline numbers",{"type":64,"tag":195,"props":196,"children":197},"table",{},[198,223],{"type":64,"tag":199,"props":200,"children":201},"thead",{},[202],{"type":64,"tag":203,"props":204,"children":205},"tr",{},[206,212,218],{"type":64,"tag":207,"props":208,"children":209},"th",{},[210],{"type":70,"value":211},"System",{"type":64,"tag":207,"props":213,"children":215},{"align":214},"right",[216],{"type":70,"value":217},"Strict-span F1",{"type":64,"tag":207,"props":219,"children":220},{"align":214},[221],{"type":70,"value":222},"Char F1",{"type":64,"tag":224,"props":225,"children":226},"tbody",{},[227,258,279,297],{"type":64,"tag":203,"props":228,"children":229},{},[230,241,250],{"type":64,"tag":231,"props":232,"children":233},"td",{},[234,239],{"type":64,"tag":78,"props":235,"children":237},{"className":236},[],[238],{"type":70,"value":151},{"type":70,"value":240}," (this)",{"type":64,"tag":231,"props":242,"children":243},{"align":214},[244],{"type":64,"tag":245,"props":246,"children":247},"strong",{},[248],{"type":70,"value":249},"0.910",{"type":64,"tag":231,"props":251,"children":252},{"align":214},[253],{"type":64,"tag":245,"props":254,"children":255},{},[256],{"type":70,"value":257},"0.946",{"type":64,"tag":203,"props":259,"children":260},{},[261,269,274],{"type":64,"tag":231,"props":262,"children":263},{},[264],{"type":64,"tag":78,"props":265,"children":267},{"className":266},[],[268],{"type":70,"value":83},{"type":64,"tag":231,"props":270,"children":271},{"align":214},[272],{"type":70,"value":273},"0.443",{"type":64,"tag":231,"props":275,"children":276},{"align":214},[277],{"type":70,"value":278},"0.610",{"type":64,"tag":203,"props":280,"children":281},{},[282,287,292],{"type":64,"tag":231,"props":283,"children":284},{},[285],{"type":70,"value":286},"Microsoft Presidio",{"type":64,"tag":231,"props":288,"children":289},{"align":214},[290],{"type":70,"value":291},"0.434",{"type":64,"tag":231,"props":293,"children":294},{"align":214},[295],{"type":70,"value":296},"0.562",{"type":64,"tag":203,"props":298,"children":299},{},[300,309,314],{"type":64,"tag":231,"props":301,"children":302},{},[303],{"type":64,"tag":78,"props":304,"children":306},{"className":305},[],[307],{"type":70,"value":308},"Isotonic/distilbert_finetuned_ai4privacy_v2",{"type":64,"tag":231,"props":310,"children":311},{"align":214},[312],{"type":70,"value":313},"0.16",{"type":64,"tag":231,"props":315,"children":316},{"align":214},[317],{"type":70,"value":318},"0.46",{"type":64,"tag":72,"props":320,"children":321},{},[322],{"type":70,"value":323},"All contestants scored on the same 21,246-chunk held-out test split. Full per-language by per-category breakdown, methodology validation against each baseline's published numbers, and cross-domain evaluation on four external benchmarks (swissner, openpii-1m, WikiNeural, CoNLL-2003) in the report.",{"type":64,"tag":92,"props":325,"children":327},{"id":326},"sdks",[328],{"type":70,"value":329},"SDKs",{"type":64,"tag":72,"props":331,"children":332},{},[333],{"type":70,"value":334},"Two thin wrappers expose the model for the typical use case: anonymise the prompt, send it to any LLM, restore the originals as the response streams back. Both ship a drop-in replacement for the official OpenAI client.",{"type":64,"tag":336,"props":337,"children":341},"pre",{"className":338,"code":339,"language":340,"meta":7,"style":7},"language-python shiki shiki-themes github-dark","from gheim.openai import OpenAI\n\nclient = OpenAI()\nr = client.chat.completions.create(\n    model=\"gpt-4o\",\n    messages=[{\"role\": \"user\", \"content\": \"Hi, my name is Joel.\"}],\n)\n# r.choices[0].message.content contains \"Joel\".\n# OpenAI only ever saw \"\u003CPERSON_1>\".\n","python",[342],{"type":64,"tag":78,"props":343,"children":344},{"__ignoreMap":7},[345,373,383,402,420,445,502,511,521],{"type":64,"tag":346,"props":347,"children":350},"span",{"class":348,"line":349},"line",1,[351,357,363,368],{"type":64,"tag":346,"props":352,"children":354},{"style":353},"--shiki-default:#F97583",[355],{"type":70,"value":356},"from",{"type":64,"tag":346,"props":358,"children":360},{"style":359},"--shiki-default:#E1E4E8",[361],{"type":70,"value":362}," gheim.openai ",{"type":64,"tag":346,"props":364,"children":365},{"style":353},[366],{"type":70,"value":367},"import",{"type":64,"tag":346,"props":369,"children":370},{"style":359},[371],{"type":70,"value":372}," OpenAI\n",{"type":64,"tag":346,"props":374,"children":376},{"class":348,"line":375},2,[377],{"type":64,"tag":346,"props":378,"children":380},{"emptyLinePlaceholder":379},true,[381],{"type":70,"value":382},"\n",{"type":64,"tag":346,"props":384,"children":386},{"class":348,"line":385},3,[387,392,397],{"type":64,"tag":346,"props":388,"children":389},{"style":359},[390],{"type":70,"value":391},"client ",{"type":64,"tag":346,"props":393,"children":394},{"style":353},[395],{"type":70,"value":396},"=",{"type":64,"tag":346,"props":398,"children":399},{"style":359},[400],{"type":70,"value":401}," OpenAI()\n",{"type":64,"tag":346,"props":403,"children":405},{"class":348,"line":404},4,[406,411,415],{"type":64,"tag":346,"props":407,"children":408},{"style":359},[409],{"type":70,"value":410},"r ",{"type":64,"tag":346,"props":412,"children":413},{"style":353},[414],{"type":70,"value":396},{"type":64,"tag":346,"props":416,"children":417},{"style":359},[418],{"type":70,"value":419}," client.chat.completions.create(\n",{"type":64,"tag":346,"props":421,"children":423},{"class":348,"line":422},5,[424,430,434,440],{"type":64,"tag":346,"props":425,"children":427},{"style":426},"--shiki-default:#FFAB70",[428],{"type":70,"value":429},"    model",{"type":64,"tag":346,"props":431,"children":432},{"style":353},[433],{"type":70,"value":396},{"type":64,"tag":346,"props":435,"children":437},{"style":436},"--shiki-default:#9ECBFF",[438],{"type":70,"value":439},"\"gpt-4o\"",{"type":64,"tag":346,"props":441,"children":442},{"style":359},[443],{"type":70,"value":444},",\n",{"type":64,"tag":346,"props":446,"children":448},{"class":348,"line":447},6,[449,454,458,463,468,473,478,483,488,492,497],{"type":64,"tag":346,"props":450,"children":451},{"style":426},[452],{"type":70,"value":453},"    messages",{"type":64,"tag":346,"props":455,"children":456},{"style":353},[457],{"type":70,"value":396},{"type":64,"tag":346,"props":459,"children":460},{"style":359},[461],{"type":70,"value":462},"[{",{"type":64,"tag":346,"props":464,"children":465},{"style":436},[466],{"type":70,"value":467},"\"role\"",{"type":64,"tag":346,"props":469,"children":470},{"style":359},[471],{"type":70,"value":472},": ",{"type":64,"tag":346,"props":474,"children":475},{"style":436},[476],{"type":70,"value":477},"\"user\"",{"type":64,"tag":346,"props":479,"children":480},{"style":359},[481],{"type":70,"value":482},", ",{"type":64,"tag":346,"props":484,"children":485},{"style":436},[486],{"type":70,"value":487},"\"content\"",{"type":64,"tag":346,"props":489,"children":490},{"style":359},[491],{"type":70,"value":472},{"type":64,"tag":346,"props":493,"children":494},{"style":436},[495],{"type":70,"value":496},"\"Hi, my name is Joel.\"",{"type":64,"tag":346,"props":498,"children":499},{"style":359},[500],{"type":70,"value":501},"}],\n",{"type":64,"tag":346,"props":503,"children":505},{"class":348,"line":504},7,[506],{"type":64,"tag":346,"props":507,"children":508},{"style":359},[509],{"type":70,"value":510},")\n",{"type":64,"tag":346,"props":512,"children":514},{"class":348,"line":513},8,[515],{"type":64,"tag":346,"props":516,"children":518},{"style":517},"--shiki-default:#6A737D",[519],{"type":70,"value":520},"# r.choices[0].message.content contains \"Joel\".\n",{"type":64,"tag":346,"props":522,"children":524},{"class":348,"line":523},9,[525],{"type":64,"tag":346,"props":526,"children":527},{"style":517},[528],{"type":70,"value":529},"# OpenAI only ever saw \"\u003CPERSON_1>\".\n",{"type":64,"tag":72,"props":531,"children":532},{},[533,535,541,543,550,552,559,561,568],{"type":70,"value":534},"The live demo at ",{"type":64,"tag":110,"props":536,"children":538},{"href":35,"rel":537},[114],[539],{"type":70,"value":540},"gheim.ch",{"type":70,"value":542}," runs the full ONNX model in the browser via WebGPU, with no server inference. The ",{"type":64,"tag":110,"props":544,"children":547},{"href":545,"rel":546},"https://pypi.org/project/gheim/",[114],[548],{"type":70,"value":549},"Python SDK",{"type":70,"value":551},", the ",{"type":64,"tag":110,"props":553,"children":556},{"href":554,"rel":555},"https://www.npmjs.com/package/gheim",[114],[557],{"type":70,"value":558},"JS/TS SDK",{"type":70,"value":560},", and a ",{"type":64,"tag":110,"props":562,"children":565},{"href":563,"rel":564},"https://github.com/joelbarmettlerUZH/gheim/pkgs/container/gheim-server",[114],[566],{"type":70,"value":567},"self-host detection server",{"type":70,"value":569}," (air-gap-friendly, weights baked into the image) are published as the deployment surface around the model.",{"type":64,"tag":72,"props":571,"children":572},{},[573,578,580],{"type":64,"tag":245,"props":574,"children":575},{},[576],{"type":70,"value":577},"Repository:",{"type":70,"value":579}," ",{"type":64,"tag":110,"props":581,"children":583},{"href":34,"rel":582},[114],[584],{"type":70,"value":585},"github.com/joelbarmettlerUZH/gheim",{"type":64,"tag":72,"props":587,"children":588},{},[589,594,595],{"type":64,"tag":245,"props":590,"children":591},{},[592],{"type":70,"value":593},"Model:",{"type":70,"value":579},{"type":64,"tag":110,"props":596,"children":599},{"href":597,"rel":598},"https://huggingface.co/joelbarmettler/gheim-ch-560m",[114],[600],{"type":64,"tag":78,"props":601,"children":603},{"className":602},[],[604],{"type":70,"value":151},{"type":64,"tag":72,"props":606,"children":607},{},[608,613,614],{"type":64,"tag":245,"props":609,"children":610},{},[611],{"type":70,"value":612},"Dataset:",{"type":70,"value":579},{"type":64,"tag":110,"props":615,"children":618},{"href":616,"rel":617},"https://huggingface.co/datasets/joelbarmettler/gheim-ch-pii-212k",[114],[619],{"type":64,"tag":78,"props":620,"children":622},{"className":621},[],[623],{"type":70,"value":106},{"type":64,"tag":625,"props":626,"children":629},"client-pdf",{":narrow":627,":open":627,"src":628},"true","/pdfs/gheim.pdf",[],{"type":64,"tag":631,"props":632,"children":633},"style",{},[634],{"type":70,"value":635},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":375,"depth":375,"links":637},[638,639,640,641],{"id":94,"depth":375,"text":97},{"id":139,"depth":375,"text":142},{"id":190,"depth":375,"text":193},{"id":326,"depth":375,"text":329},"markdown","content:3.projects:0.gheim.md","content","3.projects/0.gheim.md","3.projects/0.gheim","md",{"script":649},[650],{"type":651,"key":652,"nodes":653,"data-nuxt-schema-org":379},"application/ld+json","schema-org-graph",[654,658],{"@context":20,"@type":21,"name":10,"headline":8,"description":22,"datePublished":23,"dateModified":24,"author":655,"codeRepository":34,"url":35,"programmingLanguage":657,"license":39,"applicationCategory":40,"keywords":41,"inLanguage":42},{"@type":26,"givenName":27,"familyName":28,"name":29,"url":30,"sameAs":656},[32,33],[37,38],{"@context":20,"@type":44,"mainEntity":659},[660,662,664],{"@type":47,"name":48,"acceptedAnswer":661},{"@type":50,"text":51},{"@type":47,"name":53,"acceptedAnswer":663},{"@type":50,"text":55},{"@type":47,"name":57,"acceptedAnswer":665},{"@type":50,"text":59},[667,681,697,713,730,815],{"title":668,"_path":669,"children":670,"icon":680},"About","/about",[671,674,677],{"title":672,"_path":673},"Joel Barmettler - AI Engineer, Researcher, and Entrepreneur","/about/about-me",{"title":675,"_path":676},"What Drives Me - Research Focus and Philosophy on AI Systems","/about/what-drives-me",{"title":678,"_path":679},"Technical Skills and Expertise - AI, ML, Infrastructure, and Web Development","/about/skills","📁",{"title":682,"_path":683,"children":684,"icon":680},"Career","/career",[685,688,691,694],{"title":686,"_path":687},"Building the AI Business Area at bbv Software Services","/career/bbv",{"title":689,"_path":690},"PolygonSoftware: Building a tech company during university","/career/polygon-software",{"title":692,"_path":693},"Machine learning for semiconductor quality control at BESI","/career/besi",{"title":695,"_path":696},"Data engineering for cryptocurrency analytics at CoinPaper","/career/coinpaper",{"title":698,"_path":699,"children":700,"icon":680},"Research","/research",[701,704,707,710],{"title":702,"_path":703},"The Invisible Coalition Partner: How LLMs Vote When Democracy Gets Concrete","/research/invisible-coalition-partner",{"title":705,"_path":706},"ConceptFormer: Graph-native grounding of LLMs via latent concept injection","/research/masters-thesis",{"title":708,"_path":709},"Airspace auction simulator for urban drone traffic","/research/masters-project",{"title":711,"_path":712},"Physical sky rendering engine for appleseed","/research/bachelors-thesis",{"title":714,"_path":715,"children":716,"icon":680},"Projects","/projects",[717,718,721,724,727],{"title":8,"_path":4},{"title":719,"_path":720},"md-reheader: Restoring heading hierarchy in PDF-extracted markdown","/projects/md-reheader",{"title":722,"_path":723},"ultrainit.sh: One command to configure Claude Code for any codebase","/projects/ultrainit",{"title":725,"_path":726},"Slidev MCP: AI-powered presentation generation with shareable links","/projects/slidev-mcp",{"title":728,"_path":729},"Vue Docs MCP: Live Vue ecosystem documentation for AI assistants","/projects/vue-mcp",{"title":731,"_path":732,"children":733,"icon":680},"Podcast","/podcast",[734,737,740,743,746,749,752,755,758,761,764,767,770,773,776,779,782,785,788,791,794,797,800,803,806,809,812],{"title":735,"_path":736},"Measuring political bias in language models: systematic analysis using Swiss Smart Vote data","/podcast/political-bias-in-language-models",{"title":738,"_path":739},"DeepSeek R1: pure reinforcement learning for reasoning and why distillation changes everything","/podcast/deepseek-r1-reasoning",{"title":741,"_path":742},"DeepSeek V3: how mixture-of-experts and multi-token prediction enable $5.5M training runs","/podcast/deepseek-v3-architecture",{"title":744,"_path":745},"SRF Arena part 3: international regulation, student perspectives, and why the debate structure failed","/podcast/srf-arena-final-analysis",{"title":747,"_path":748},"SRF Arena part 2: the EU AI Act, nationalization demands, and Switzerland's supercomputer strategy","/podcast/srf-arena-regulation-debate",{"title":750,"_path":751},"Deconstructing the SRF Arena AI debate: deepfakes, Swiss GPT, and the job displacement argument","/podcast/srf-arena-ai-debate-analysis",{"title":753,"_path":754},"O3-mini: how a smaller model outperforms its predecessor at a fraction of the cost","/podcast/openai-o3-mini",{"title":756,"_path":757},"OpenAI o3: trading compute time for reasoning capability","/podcast/openai-o3",{"title":759,"_path":760},"ChatGPT o1: reasoning breakthroughs and emergent deception","/podcast/chatgpt-o1-manipulation",{"title":762,"_path":763},"When AI kills: autonomous weapons, drone swarms, and predictive policing","/podcast/when-ai-kills",{"title":765,"_path":766},"Google's AI pivot: 25% AI-generated code and 90% cost reduction","/podcast/google-ai-revolution",{"title":768,"_path":769},"Why AI projects fail: a practitioner's guide to implementation","/podcast/ai-project-implementation",{"title":771,"_path":772},"Deep learning explained: from embedding spaces to few-shot learning","/podcast/deep-learning-explained",{"title":774,"_path":775},"Vision AI: why language models need to see, and how Llama 3.2 gets there","/podcast/vision-ai",{"title":777,"_path":778},"BitNets and the road to AGI: on-device inference and Sam Altman's 1000-day prediction","/podcast/bitnets-and-agi",{"title":780,"_path":781},"OpenAI o1 benchmarks and AGI implications: IQ 120, coding breakthroughs, and what they mean","/podcast/openai-o1-technical-analysis",{"title":783,"_path":784},"OpenAI o1 and the mechanics of self-reflection: how 70,000 hidden tokens change inference","/podcast/openai-o1-self-reflection",{"title":786,"_path":787},"AI utopia 2035: when automation funds a renaissance in human agency (part 2 of 2)","/podcast/ai-utopia-2035",{"title":789,"_path":790},"AI dystopia 2035: when AI becomes the lifeblood of the economy (part 1 of 2)","/podcast/ai-dystopia-2035",{"title":792,"_path":793},"AI hype vs. reality: a technical assessment of where things actually stand","/podcast/ai-hype-vs-reality",{"title":795,"_path":796},"Open-source AI: the infrastructure behind the hype","/podcast/open-source-ai",{"title":798,"_path":799},"Is AI intelligent? Why the question matters less than you think","/podcast/is-ai-intelligent",{"title":801,"_path":802},"AI in education: why bans backfire and what actually needs to change","/podcast/ai-in-education",{"title":804,"_path":805},"Bias in AI systems: how 15 people shape the values of a billion-user product","/podcast/bias-in-ai-systems",{"title":807,"_path":808},"AI and the labor market: autonomous agents and the transformation of knowledge work","/podcast/ai-and-the-labor-market",{"title":810,"_path":811},"AI terminology explained: a technical guide beyond the hype","/podcast/ai-terminology-explained",{"title":813,"_path":814},"AI and democratic manipulation: from Cambridge Analytica to language models","/podcast/ai-and-democracy",{"title":816,"_path":817,"children":818,"icon":680},"Appearances","/appearances",[819,822,825,828,831,834,837,840,843,846,849,852,855,858],{"title":820,"_path":821},"AI trends 2025 and predictions for 2026: model convergence, integration, and sovereignty","/appearances/webinar-2025-rewind-2026-outlook",{"title":823,"_path":824},"Swiss AI Impact Forum 2025: live demos of the Swiss AI Hub","/appearances/swiss-ai-impact-forum-2025",{"title":826,"_path":827},"AI trends 2024 and predictions for 2025: a technical analysis","/appearances/webinar-2024-rewind-2025-outlook",{"title":829,"_path":830},"AI as a development partner: tools, techniques, and team integration","/appearances/webinar-ai-development-partner",{"title":832,"_path":833},"Swiss AI Impact Forum: Panel on the future of AI in Switzerland","/appearances/swiss-ai-impact-forum-2024",{"title":835,"_path":836},"AI in knowledge management: keynote at the SWICO event in Zurich","/appearances/swico",{"title":838,"_path":839},"Swiss AI Conference: hands-on workshop on AI agents in the enterprise","/appearances/swiss-ai-conference",{"title":841,"_path":842},"AI trends 2023: milestones and developments in artificial intelligence","/appearances/webinar-2023-rewind",{"title":844,"_path":845},"KI Revolution: AI first how a digital native thinks about generative AI","/appearances/bbv-ki-revolution",{"title":847,"_path":848},"AI agents: the future of enterprise automation","/appearances/netzwoche",{"title":850,"_path":851},"ChatGPT demystified: technical deep dive into large language models","/appearances/webinar-chatgpt-demystified",{"title":853,"_path":854},"Swarm intelligence and AI: the future of enterprise automation","/appearances/webinar-swarm-intelligence",{"title":856,"_path":857},"Polygon Software our journey to an innovative UZH tech startup","/appearances/readme-polygon",{"title":859,"_path":860},"UZH startup label for Polygon Software","/appearances/uzh-startup-label",1779778180438]