# "Lakimies GPT:n" rakentaminen blogiisi - Osa 1: Esittely ja arkkitehtuuri

<!--category-- AI, LLM, RAG, C#, AI-Article, mostlylucid.blogllm -->
<datetime class="hidden">2025-11-12T22:45</datetime>

> 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ä.

<img src="https://media1.tenor.com/m/_rQc7PIEqwQAAAAd/cat-hello-cat-peek.gif" height="300px" />
## 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:

Auttaa laatimaan uusia blogikirjoituksia omalla vakiintuneella tyylilläni[Ehdottaa merkityksellistä sisältöä aiemmista artikkeleista viittaukseen](https://www.anthropic.com/index/contextual-retrieval)Havaitsee samanlaisia virkoja säilyttääkseen johdonmukaisuuden

## Autogeneraa sisäisiä kytköksiä aiheeseen liittyviin artikkeleihin

**Toimii kuten "GitHub Copilot for your blog"**

- **Tämä sarja kattaa täydellisen rakentamisen**Noudettava Augmented Generation (RAG)
- **järjestelmä C#, joka toimii Windowsissa.**Käytämme uusimpia lähestymistapoja ja kehyksiä, ja selitän jokaisen uuden teknologian kohdatessamme sen.
- **Laitteistojeni asetukset (ja vähimmäistiedot)**My Development Machine:

GPU**: NVIDIA RTX A4000 (16GB VRAM)**Suoritin

### AMD Ryzen 9 9950X

- **RAM-muisti**: 96GB DDR5
  - Tämä on minun erityinen järjestelyni, mutta sinä
  - En tarvitse tätä laitteistoa
- **Seurataan perässä.**Tässä on eri osien vähimmäisvaatimukset:
  - GPU-kiihdytys (suositeltu, ei pakollinen)
- **Vähintään**NVIDIA GPU ja 8GB VRAM (esim. RTX 3060, GTX 1070 Ti)

### Pystyy ajamaan 7B-parametrimalleja quantisoinnin avulla

- **Kunnollinen upotusnopeus**Miellyttävä
- **: 12GB+ VRAM (esim. RTX 3060 12GB, RTX 4060 Ti)**Suorita suurempia malleja tai laadukkaampia kvantitaatioita
- Minun asetelmani
  - : 16GB (A4000) - Pystyy pyörittämään 13B-malleja mukavasti
  - CPU-Vain vaihtoehto
  - Vähintään

### : Moderni quad-core-suoritin

- **Suositellaan**: 8+ corea (kohtuullista syöttöä varten)
  - Kaikki toimii vain suorittimella, vain hitaammin:
- **Sumutussukupolvi: ~5-10x hitaampi**LLM-päätelmä: ~10-50x hitaampi
  - Yhä täysin käyttökelpoinen kirjoitusavustajaksi!
- **RAM-vaatimukset**Vähintään

### : 16GB järjestelmä RAM

- **CPU-päätelmä vain 7B-malleille**Miellyttävä
- **32GB**Parempi suuremmille malleille prosessorilla

### Minun asetelmani

: 96GB - Overkill, 32GB on runsaasti

- **Varastointi**SSD
- **: Suositellaan mallilataukseen**Avaruus
- **: ~20GB malleihin ja vektoritietokantaan**Entä 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**

1. **(Strix Point) - Enintään 50 TOPS**Tärkeää: NPU:t ovat vain päätelmä!
2. **NPU:ssa ei "rakenneta" tai kouluteta malleja - ne on suunniteltu**juokse
3. **esikoulutetut mallit tehokkaasti.**Mallit koulutetaan pilvi-GPU:illa (tai työasemilla), ladataan ja otetaan käyttöön NPU:ihin päättelyä varten.
4. **Nykyinen tila käynnissä oleville malleille NPU:illa (kirjoittamisesta):**Miksi ei NPU:ita tähän sarjaan?
5. **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 harvinaisia[Dokumentaatio](https://github.com/microsoft/DirectML): 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**

```bash
# 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);
```

**Voitko käyttää NPU:ita päätelmänä?**Kyllä, mutta:[Vaatimukset](https://onnxruntime.ai/)Suora ML[Suorituksen suorittaja ONNX:n aika-ajossa](https://github.com/microsoft/DirectML)Mallien on oltava ONNX-muodossa (ei GGUF)

**C#-tuki on kokeellista**Suorituskyky on tällä hetkellä alakynnessä verrattuna CUDA:han

[TOC]

## Miten kokeilla NPU-päätelmää (edistyneitä käyttäjiä):

Tulevaisuusharkinta

1. **: Kerran**ONNX-ajoaika
2. **sekä**Suora ML
3. **Kypsennä heidän NPU-tukeaan (todennäköisesti 2024-2025), näistä tulee toteuttamiskelpoisia vaihtoehtoja päättelylle!**Loppupäätelmä
4. **: Näytän GPU-kiihdytetyn polun, mutta huomaan vain CPU-vaihtoehdot kauttaaltaan.**Voit käynnistää vain suorittimen ja päivittää sen myöhemmin!
5. **Mitä me rakennamme**Lopullisessa järjestelmässä on useita komponentteja:
6. **Markdownin nielemisputki**- käsittelee kaikki blogikirjoitukset, pilkkoo ne älykkäästi ja luo upotuksia

Vektoritietokanta

## - Kaupat upottavat ja mahdollistavat samankaltaisten sisältöjen semanttisen haun

Windows-asiakassovellus

- - Työpöydän kirjoittaja-apulainen toimittajalla ja ehdotuspaneelilla
- LLM-integraatio
- - Paikallinen GPU-keskeinen päätelmä sisällön tuottamisesta
- Lainaus & Link Generation

- Automaattisesti välitetään sisäisiä linkkejä ja viittauksia niihin liittyviin virkoihin

- Tyylin yhdenmukaisuusmoottori
- - Opettelee olemassa olevien viestien kuvioita ylläpitääkseen ääntä ja rakennetta
- Ajattele sitä "GitHub Copilot kohtaa Grammarlyn", mutta harjoittele erityisesti blogisi sisällön ja tyylin mukaan.
- Miksi "Lawyer GPT"?
- Nykyaikaiset asianajotoimistot käyttävät laaja-alaisiin oikeuskirjastoihin koulutettuja LLM-koneita apunaan oikeudellisten asiakirjojen laatimisessa.

Esitystä kirjoitettaessa järjestelmä:

## Referenssejä asiaan liittyvistä ennakkotapauksista ja aiemmista onnistuneista väitteistä

Ehdottaa aiemmin toimineita kielitottumuksia

### Johdonmukaisuus oikeudellisten kirjoitusstandardien kanssa säilyy

Leikkauslähteet automaattisesti

### [Se on meidän mallimme.](/blog/building-a-lawyer-gpt-for-your-blog-part2)

Kun alan kirjoittaa "Adding Entity Framework for...", järjestelmän tulisi:[Etsi aiemmat EF-virkani](https://developer.nvidia.com/cuda-toolkit), [Ehdota rakenteellisia kuvioita, joita olen käyttänyt aiemmin](https://developer.nvidia.com/cudnn)Tarjoa merkityksellisiä koodin näppäimiä aiemmista artikkeleista

### [Luo automaattisesti linkkejä aiheeseen liittyviin virkoihin](/blog/building-a-lawyer-gpt-for-your-blog-part3)

Ylläpidä kirjoitustyyliäni ja teknistä syvyyttäni[Toisin kuin tavalliset tekoälyä kirjoittavat avustajat, järjestelmämme perustuu varsinaiseen aiempaan sisältöön, joten se ei viittaa siihen, että asiat olisivat ristiriidassa sen kanssa, mitä olen jo kirjoittanut.](https://qdrant.tech/)Sarjakatsaus[Seuraavien viikkojen aikana käsittelemme seuraavaa:](https://github.com/pgvector/pgvector)).

### [Osa 1 (This Post): Esittely ja arkkitehtuuri](/blog/building-a-lawyer-gpt-for-your-blog-part4)

Selvitämme, mitä rakennamme ja miksi, sekä katamme arkkitehtoniset päätökset.

### [Osa 2: GPU:n asetukset ja CUDA C#-muodossa](/blog/building-a-lawyer-gpt-for-your-blog-part5)

Windows-järjestelmän asennus GPU-kiihdytetyille tekoälytyötahdille, asennus[CUDA](https://docs.microsoft.com/en-us/dotnet/desktop/wpf/), [cuDNN](https://avaloniaui.net/), ja testaus, että C# voi todella nähdä ja käyttää GPU.[Osa 3: Understanding Upbeddings & Vector Databases](https://dotnet.microsoft.com/en-us/apps/maui)Sukella syvälle siihen, mitä upotukset todellisuudessa ovat, miten ne mahdollistavat semanttisen haun ja valitsevat oikean vektoritietokannan (pilaaja: todennäköisesti käytämme

### [Qdrant](/blog/building-a-lawyer-gpt-for-your-blog-part6)

tai[pgvector](https://onnxruntime.ai/), [Osa 4: Ruoansulatusputken rakentaminen](https://github.com/ggerganov/llama.cpp)Merkintätiedostojen käsittely, älykkäät porausstrategiat (kappaleita ei voi vain jakaa!) ja kaiken sisältömme sulauttaminen.

### [Osa 5: Windows-asiakas](/blog/building-a-lawyer-gpt-for-your-blog-part7)

Oikean kehyksen valitseminen (

### [WPF](/blog/building-a-lawyer-gpt-for-your-blog-part8)

Avalonia

## , tai

MAUI

### ?), rakentaa UI, ja tekee siitä todella miellyttävä käyttää.

Osa 6: Paikallinen LLM-integraatio

1. **Paikallisten mallien käyttö**ONNX-ajoaika
2. **laama.cpp**sidonnaisuudet tai muut lähestymistavat.
3. **Hyödynnät A4000:n täysin!**Osa 7: Content Generation & Prompt Engineering
4. **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
5. **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:

1. Kustannukset ja monimutkaisuus
2. - Hienosäätö on kallista (sekä laskelmissa että ponnisteluissa)
3. Viihtyvyys
4. - Jokainen uusi blogikirjoitus tarkoittaa uudelleenkoulutusta
5. 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.

```mermaid
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

Tämä tarkoittaa:

Järjestelmäarkkitehtuuri

Anna minun murtaa avainosat, joita rakennamme:

- 1 Täysosuma
- Markdownin nielemisputki

**Tämä osa:**Lukee blogihakemiston markown-tiedostoja

- [Ottaa metatietoja (otsikko, luokat, päivämäärä, sanamäärä)](https://www.sbert.net/)Järkevästi paloittelee sisällön (säilyttää koodilohkoja uudelleenkäyttöä varten)
- Tunnistaa rakenteelliset kuviot (miten järjestän virkoja)
- [Raiteiden lähdetiedot viittausten tuottamista varten](https://huggingface.co/BAAI/bge-base-en-v1.5)Avainhaaste

### Chunking-strategialla on valtava merkitys.

Liian pieni ja menetät kontekstin.

**Liian iso ja tuhlaat LLM:n konteksti-ikkunan.**Tarvitsemme katkelmia, jotka ovat semanttisesti merkityksellisiä - täydellisen ajatuksen tai osion, eivät mielivaltaisia kappalemurtumia.

- **[2.](https://qdrant.tech/)**Upotetaan malli
- **[Upotukset ovat taikaa, joka saa semanttiset etsinnät toimimaan.](https://github.com/pgvector/pgvector)**Upotettava malli ottaa tekstiä ja muuntaa sen suurulotteiseksi vektoriksi (lukujen säde), joka vangitsee semanttisen merkityksen.
- **[Vastaavat käsitteet päätyvät vektoritilaan "suljettuna", vaikka ne käyttäisivät eri sanoja.](https://weaviate.io/)**Esimerkiksi:
- **["Tietokannan siirtymiseen" ja "DB-skeeman päivittämiseen" olisi samanlaisia upotuksia](https://www.trychroma.com/)**"kissa" ja "kissa" olisivat lähempänä kuin "kissa" ja "tietokanta"

Teknologiavalinta

### : Käytämme todennäköisesti joko:

Tuomionmuuntajat

**[mallit (voi ajaa ONNX Runtime C#:n kautta)](https://docs.microsoft.com/en-us/dotnet/desktop/wpf/)**

- ✅ Mature, stable, lots of resources
- ✅ Native Windows performance
- ❌ Windows-only
- ❌ Looks dated unless you invest in UI libraries

**[OpenAI:n upotettavat mallit (API:n kautta)](https://avaloniaui.net/)**

- ✅ Cross-platform (XAML-based)
- ✅ Modern, actively developed
- ✅ Similar to WPF
- ❌ Smaller ecosystem

**[BGE-mallit](https://dotnet.microsoft.com/en-us/apps/maui)**

- ✅ Cross-platform
- ✅ Microsoft-backed
- ❌ Still maturing
- ❌ More mobile-focused

(viimeisimmän avoimen lähdekoodin mukainen)**3.[Vektoritietokanta](https://github.com/Kinnara/ModernWpf)**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

### Arvioimme:

Qdrant

- - Moderni, Rustissa kirjoitettu, erinomainen C#-asiakas, Docker-ystävällinen
- pgvector
- - PostgreSQL:n laajennus (käytämme jo Postgresiä!)
- Hellävarainen

**- Toinen vankka vaihtoehto hyvällä .NET-tuella**:

**[Kroma](https://onnxruntime.ai/)**

- - Suosittu Pythonissa, vähemmän C:ssä
- Olen Qdrantin kannalla sen yksinkertaisuudesta ja suorituskyvystä, tai pgvector pitää kaiken Postgresissä.
- Nelonen
- Windows-asiakas

**[Tarvitsemme mukavan tekoälyn kirjoittamiseen.](https://github.com/ggerganov/llama.cpp)Ajattele split-pane-editoria ja ehdotuksia.**

- Vaihtoehdot:[WPF (Windows Presentation Foundation)](https://github.com/SciSharp/LLamaSharp))
- Avalonia
- MAUI (Multi-platform App UI)
- Koska olemme Windows-keskittyneitä ja haluan jotain vakaata, kallistun

**[WPF-arvo](https://github.com/dotnet/TorchSharp)**

- Nykyaikainen WPF-käyttäytyminen
- tai
- Avalonia

Tämän poikittaislaajennuspotentiaalin osalta.**5.**Paikallinen LLM-integraatio

### Täällä A4000 GPU loistaa.

Haluamme ajaa LLM:ää paikallisesti:

- Yksityisyys (rajapintoihin ei lähetetä tietoja)
- Nopeus (paikallinen päätelmä on nopea)
- Kustannukset (ei API-maksuja)
- Ohjaus (valitsemme mallin)

Teknologiavaihtoehdot

- ONNX-ajoaika
- Muunna mallit ONNX-muotoon
- Erinomainen GPU-kiihdytys
- C# natiivituki

### Huono puoli: kaikki mallit eivät käänny hyvin

laama.cpp

- sidonnaisuudet
- C++-kirjasto, jossa C#-sidokset (
- LLAMASharp
- Tukee CUDAa
- Laaja mallituki (Llama, Mistral jne.)

Erittäin aktiivinen kehitys

## TorchSharp

Pytorchin sidonnaisuudet .NET-verkkoa varten

1. **Suurin joustavuus**Steeper-oppimiskäyrä
2. **Nojaan kohti**LLAMASharp
3. **Sen kypsyys ja helppokäyttöisyys suosittujen mallien kanssa.**6.
4. **Kontekstiikkunan hallinta ja Prompt Engineering**LLM:issä on rajoitetut kontekstiikkunat (esim. 4K, 8K, 32K tokenet).
5. **Meidän täytyy:**Hae merkityksellinen aiempi sisältö (ylin K vektorihausta)

## Sovita ne konteksti-ikkunaan nykyisellä luonnoksella

Rakenna kirjallisuuden ohjeistus

### Jätä tilaa esitetyille ehdotuksille

- **Tämä on hankalampaa kuin miltä kuulostaa.**Tutustumme seuraavanlaisiin strategioihin:
- **Dynaaminen K-valinta, joka perustuu siihen, mitä kirjoitat parhaillaan**Re-ranking noudetut kappaleet merkityksellinen

### Kommentoi asiayhteys älykkäästi

- **[Useita kuvia, joissa on esimerkkejä aiemmista kirjoituksista](https://onnxruntime.ai/)**7.**[Linkki & Citation Generation](https://github.com/SciSharp/LLamaSharp)**Jokainen osa tarvitsee metadataa:
- **[Lähdetiedosto tai -posti](https://dotnet.microsoft.com/en-us/apps/machinelearning-ai/ml-dotnet)**Sijainti alkuperäisessä asiakirjassa
- **Julkaisupäivä**Luokat

### Käytetyt koodileikkurit

- **[Kun LLM tuottaa ehdotuksia, luomme automaattisesti markdown-linkkejä lähdevirkoihin ja tunnistamme uudelleenkäytettävät koodikuviot.](https://qdrant.tech/)**Mikä tekee tästä erilaisen?**[Aluetukiohjelmia on paljon, mutta tästä sarjasta tulee erilainen:](https://github.com/pgvector/pgvector)**C# Ensimmäinen

### - Suurin osa RAG:n esimerkeistä on Pythonissa.

- **Meillä menee täysillä. NET**Windows & GPU**- Luotonanto NVIDIA CUDA Windowsissa, ei Linux/WSL**Tuotanto valmiina**[- Ei vain todiste-käsitys, vaan todellinen käyttökelpoinen koodi](https://avaloniaui.net/)**Verkkoaluekohtainen

### - Optimoitu blogin kirjoittamiseen, ei yleiseen sisällöntuotantoon

- **[Syvällisiä selityksiä](https://github.com/xoofx/markdig)**Selitetään, miksi päätökset on tehty.
- **[Teknologiat joita käytämme](https://www.docker.com/)**Tässä on suunnittelemani tekninen pino:
- **[Keskeiset puitteet](https://docs.microsoft.com/en-us/ef/core/)**.NET 9

### (myöhemmin kirjoitushetkellä)

- **[C# 13](https://developer.nvidia.com/cuda-toolkit)- Nykyajan kielipiirteet**AI/ML-kirjastot
- **[ONNX-ajoaika](https://developer.nvidia.com/cudnn)**tai

## LLAMASharp

- LLM-päätelmä

### Microsoft.ML

- **- Mahdollista joillekin tehtäville**Tuomio Muuntajat ONNX:n kautta
- **- Liitännät**Vektoritietokanta
- **Qdrant**tai
- **pgvector**- Määritellään

### UI-kehys

- **WPF**yy) kanssa, kun
- **Nykyaikainen vesivoimala**tai
- **Avalonia**- Nykyaikainen työpöytäkäyttö

### Tukityökalut

- **Markdig**- Käytän tätä jo markown-lukuihin
- **Docker**- Qdrantin tai muiden palveluiden pyörittämiseen
- **"Yhteenliittymän ydin"**- Jos käytämme pgvectoria
- **GPU Stack**CUDA

### 12.x

- **(myöhemmin kirjoitushetkellä)**cuDNN
- **- Syväoppiminen alkeellisia**Suorituskykyä koskevia huomioita
- **Erilaisilla laitteistoasetuksilla on erilaiset valmiudet:**Kanssa 8GB VRAM (Minimum)
- **Mallikoko**: 7B-parametrimallit, joissa Q4 kvantisointi

## Erän käsittely

: Prosessi upotetaan pienempiin eriin

1. Muistinhallinta
2. : Tarvittava huolellinen VRAM-seuranta
3. Toimii hyvin
4. : Kirjoittava avustaja, upottava sukupolvi
5. 12GB+ VRAM (mukavaa)
6. Mallikoko

: 7B ja laadukkaampi kvantisointi (Q5/Q6)

## Erän käsittely

: Suuremmat erät nopeampaan läpimenoon**[Voi myös juosta](/blog/building-a-lawyer-gpt-for-your-blog-part2)**: Noin 13B-malleja aggressiivisella kvantifioinnilla

- 16GB+ VRAM (My setup)
- Mallikoko
- : 7B-13B-parametrimallit mukavasti
- Erän käsittely
- : Täydet erät, minimaaliset rajoitukset

Nopea päätelmä

## : Subsekunnin vasteajat

Päätila

- **: Pystyy kokeilemaan eri malleja**CPU-vain (Fallback)
- **Kaikki toimii**Hitaammin
- **Liitännät**: 5-10x hitaampi kuin GPU
- **LLM-päätelmä**: 10-50x hitaampi kuin GPU
- **Yhä käyttökelpoinen**Kärsivälliseksi kirjoittaja-assistentiksi!

Kehityslähestymistapa

## Rakennamme tämän asteittain:

Aloita yksinkertaisimmilla komponenteilla (leimauslukema, leikkaus)

Lisää upotettava sukupolvi (voisi aloittaa API-pohjaisella ennen kuin lähtee paikalliseksi)

Hanki vektorihaku toimimaan

Rakenna peruskäyttöliittymä

## Integroi LLM

- **Puolalainen ja optimoitu**Jokainen osa on käyttökelpoinen ja testattavissa yksin.
- [Ei isojen paukkujen integraatiopainajaisia.](/blog/building-a-lawyer-gpt-for-your-blog-part2)
- [Mitä seuraavaksi?](/blog/building-a-lawyer-gpt-for-your-blog-part3)
- [Sisään](/blog/building-a-lawyer-gpt-for-your-blog-part4)
- [Osa 2: GPU:n asetukset ja CUDA C#-muodossa](/blog/building-a-lawyer-gpt-for-your-blog-part5)
- [Pääsemme käsiksi GPU-asetukseen:](/blog/building-a-lawyer-gpt-for-your-blog-part6)
- [CUDAn ja cuDNN:n asentaminen Windowsiin](/blog/building-a-lawyer-gpt-for-your-blog-part7)
- [Kehitysympäristön luominen](/blog/building-a-lawyer-gpt-for-your-blog-part8)

## Kirjoitetaan yksinkertaista C#-ohjelmaa GPU-yhteyden varmistamiseksi

OnnX-runtimella tehdään perustesti

- [A4000:n vertailuanalyysi sen ymmärtämiseksi, mitä voimme tehdä](https://onnxruntime.ai/)
- [Tämä voi vaikuttaa perusasialta, mutta GPU-pinon korjaaminen on ratkaisevan tärkeää.](https://github.com/SciSharp/LLamaSharp)
- [Olen tuhlannut tunteja vianetsintäongelmiin, jotka tulivat alas versioiden eroavuuksiin tai kadonneisiin DLLeihin.](https://qdrant.tech/documentation/)
- [Miksi tämä on tärkeää](https://www.sbert.net/)
- [Sen lisäksi, että tämä lähestymistapa on vain siisti projekti, sillä on todellisia sovelluksia:](https://www.anthropic.com/index/contextual-retrieval)

Tekninen dokumentaatio[- Johdonmukaisen tyylin ylläpitäminen suurissa dokumenteissa](/blog/building-a-lawyer-gpt-for-your-blog-part2)!