This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
AI
AI-Article
C#
LLM
mostlylucid.blogllm
RAG
"Lakimies GPT:n" rakentaminen blogiisi - Osa 1: Esittely ja arkkitehtuuri
Wednesday, 12 November 2025
VAROITUS: NÄYTTELEVÄT NÄYTTEET, JOITA EI OLE KÄYTETTY.
Se on todennäköisesti suuri osa siitä, mikä alla on, ei toimi. Minä luon nämä minulle ja sitten teen kaikki askeleet ja saat näytesovelluksen toimimaan...Olet ollut ovela ja nähnyt ne! ne ovat todennäköisesti valmiita joulukuun puolivälissä.
## Johdanto
Vyöt kiinni, koska tästä tulee pitkä sarja!
Jos olet seurannut tätä blogia, tiedät, että olen hieman pakkomielteinen löytämään kiinnostavia tapoja käyttää LLM:itä ja tekoälyä käytännön sovelluksissa.
Minulla on uusi projekti, joka yhdistää rakkauteni bloggaamiseen, C#:iin ja tekoälyyn: kirjoitusassistentin rakentaminen, joka auttaa minua laatimaan uusia blogikirjoituksia käyttämällä olemassa olevaa sisältöäni tietopohjana.
HUOMAUTUS: Tämä on osa kokeilujani tekoälyllä (avustettu suunnittelu) + omalla muokkauksellani.
Sama ääni, sama pragmatismi, vain nopeammat sormet.
Ajattele, kuinka nykyaikaiset oikeuskäytännöt hyödyntävät oikeuskäytäntöön koulutettuja LLM-koneita laatiessaan yhteenvetoja, esityksiä ja sopimuksia.
Ne eivät lähde tyhjästä - järjestelmä viittaa olennaisiin ennakkotapauksiin, ehdottaa onnistuneisiin aiempiin asiakirjoihin perustuvaa kieltä ja ylläpitää johdonmukaisuutta vakiintuneiden mallien kanssa.
Juuri sitä me täällä rakennamme, mutta blogin sisältöä varten.
Tavoitteena on luoda tekoälyä käyttävä kirjoittaja-avustaja, joka:
: ~20GB malleihin ja vektoritietokantaanEntä Intel/AMD NPU:t?
**Modernit prosessorit sisältävät nyt tekoälykiihdyttimet:*Intel Core Ultra(Meteor Lake+) - Intel AI Boost (NPU)*AMD Ryzen tekoäly
(7040/8040 sarja) - XDNA NPU
✅ Great for: On-device inference, battery efficiency (laptops)
⚠️ Limited for our use: Immature .NET/ONNX Runtime support
❌ Not ready for: This project's primary path
AMD Ryzen AI Max
(Strix Point) - Enintään 50 TOPSTärkeää: NPU:t ovat vain päätelmä!
NPU:ssa ei "rakenneta" tai kouluteta malleja - ne on suunniteltujuokse
**esikoulutetut mallit tehokkaasti.**Mallit koulutetaan pilvi-GPU:illa (tai työasemilla), ladataan ja otetaan käyttöön NPU:ihin päättelyä varten.
**Nykyinen tila käynnissä oleville malleille NPU:illa (kirjoittamisesta):**Miksi ei NPU:ita tähän sarjaan?
Ohjelmistoekosysteemi: CUDA:lla on yli 15 vuoden kypsyysaika, NPU:n kannatus .NETissä on nousussa
Mallin yhteensopivuus
: Useimmat GGUF-mallit CUDA/CPU, NPU-optimoidut mallit ovat harvinaisiaDokumentaatio: Rajalliset resurssit NPU:n kehittämiseen C#:ssä
Suorituskyky
: Tällä hetkellä hitaammin kuin erilliset GPU:t työtaakamme
SuoraML-tuki
: Yhä kokeellinen LLM-päätelmän kannalta
# Use DirectML execution provider (supports NPU)
dotnet add package Microsoft.ML.OnnxRuntime.DirectML
# In code:
var sessionOptions = new SessionOptions();
sessionOptions.AppendExecutionProvider("DML"); // DirectML
var session = new InferenceSession("model.onnx", sessionOptions);
Windows-järjestelmän asennus GPU-kiihdytetyille tekoälytyötahdille, asennusCUDA, cuDNN, ja testaus, että C# voi todella nähdä ja käyttää GPU.Osa 3: Understanding Upbeddings & Vector DatabasesSukella syvälle siihen, mitä upotukset todellisuudessa ovat, miten ne mahdollistavat semanttisen haun ja valitsevat oikean vektoritietokannan (pilaaja: todennäköisesti käytämme
**Kokoaminen yhteen – semanttinen sisällön etsiminen, konteksti-ikkunan hallinta, nopea kirjoittamisen suunnittelu ja johdonmukaisten ehdotusten tuottaminen.**Osa 8: Kehittyneet ominaisuudet ja tuotannon käyttöönotto
**Automaattinen linkittäminen aiheeseen liittyviin viesteihin, tyylin johdonmukaisuuden tarkastaminen, koodinvaihtoehdotukset ja järjestelmän tekeminen todella hyödylliseksi päivittäisessä kirjoittamisessa.**Miksi RAG?
Ennen kuin sukeltamme arkkitehtuuriin, puhutaan siitä, miksi RAG (Retval Augmented Generation) on tässä oikea lähestymistapa.
Fine-Tuningin ongelma
Voisi ajatella: "Mikset vain hienosäädä LLM:tä kaikissa blogikirjoituksissa?" Siinä on useita ongelmia:
Kustannukset ja monimutkaisuus
Hienosäätö on kallista (sekä laskelmissa että ponnisteluissa)
Viihtyvyys
Jokainen uusi blogikirjoitus tarkoittaa uudelleenkoulutusta
Musta laatikko
Vaikea ymmärtää, mitä malli "oppi"
✅ Always up-to-date (just re-index new posts as you write them)
✅ Grounded in your actual writing (maintains consistency)
✅ Traceable (know which past posts influenced suggestions)
✅ Efficient (no expensive retraining for every new post)
✅ Flexible (can swap out LLMs or adjust search strategies)
✅ Privacy-preserving (everything runs locally)
Hallusinaatiot
Ei ole takeita, etteikö malli keksisi asioita.
graph TB
A[Markdown Files] -->|Ingest| B[Chunking Service]
B -->|Text Chunks| C[Embedding Model]
C -->|Vectors| D[Vector Database]
E[User Writing] -->|Current Draft| F[Windows Client]
F -->|Embed Context| C
C -->|Query Vector| D
D -->|Similar Content| G[Context Builder]
G -->|Relevant Past Articles| H[Prompt Engineer]
H -->|Prompt + Context| I[Local LLM]
I -->|Generated Suggestions| J[Link Generator]
J -->|Suggestions + Citations| F
F -->|Display| K[Editor with Suggestions]
class C,I embedding
class D,K output
classDef embedding stroke:#333,stroke-width:4px
classDef output stroke:#333,stroke-width:4px
Ei lainauksia
Vastausten jäljittäminen lähteisiin on vaikeaa.
Miten RAG ratkaisee tämän
RAG yhdistää molempien maailmojen parhaat puolet: LLM:ien voiman ja tarkan haun luodakseen kontekstitietoisen sisällöntuotannon.
Virtaus on:
Käyttäjä alkaa kirjoittaa (esim. "REST-rajapinnan rakentaminen ASP.NET Corella...")
Järjestelmä löytää semanttisesti samanlaisia menneitä artikkeleita
Järjestelmä syöttää merkityksellisiä osia LLM:n yhteydessäLLM tuottaa aiempiin sisältöihin perustuvia ehdotuksia/jatkoa
Järjestelmä tarjoaa ehdotuksia, joissa viitataan lähdevirkoihin
**Liian iso ja tuhlaat LLM:n konteksti-ikkunan.**Tarvitsemme katkelmia, jotka ovat semanttisesti merkityksellisiä - täydellisen ajatuksen tai osion, eivät mielivaltaisia kappalemurtumia.
(viimeisimmän avoimen lähdekoodin mukainen)**3.Vektoritietokanta**Vektoritietokanta tallentaa upotuksia ja mahdollistaa nopean samankaltaisuushaun.**Kun kirjoitat "Docker compose", se löytää K:n semanttisesti samankaltaisen aiemman sisällön - ei vain avainsanan, vaan käsitteellisesti aiheeseen liittyvän aineiston.**Teknologiavalinta