# Κατασκευή ενός "δικηγόρου GPT" για το blog σας - Μέρος 1: Εισαγωγή & Αρχιτεκτονική

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

> ΠΡΟΕΙ∆ΟΠΟΙΗΣΗ: ΤΙΣ ΠΡΟΘΕΣΜΙΕΣ ΠΟΥ "ΠΕΡΙΛΑΜΒΑΝΟΝΤΑΙ."

Πιθανότατα πολλά από αυτά που είναι κάτω δεν θα δουλέψουν; Εγώ τα δημιουργώ ως το πώς-για μένα και στη συνέχεια να κάνουμε όλα τα βήματα και να πάρει το δείγμα εφαρμογή εργασίας...Έχετε sneaky και να τους δει! Θα είναι πιθανώς έτοιμα μέσα Δεκεμβρίου.

<img src="https://media1.tenor.com/m/_rQc7PIEqwQAAAAd/cat-hello-cat-peek.gif" height="300px" />
## Εισαγωγή

Μπες μέσα γιατί θα είναι μεγάλη σειρά!

> Αν παρακολουθείτε μαζί με αυτό το blog, θα ξέρετε ότι έχω εμμονή με το να βρω ενδιαφέροντες τρόπους να χρησιμοποιήσω LLMs και AI σε πρακτικές εφαρμογές.

Λοιπόν, έχω ένα νέο πρόγραμμα που συνδυάζει την αγάπη μου για το blogging, C#, και AI: την κατασκευή ενός βοηθού γραφής που με βοηθά να σχεδιάσω νέες δημοσιεύσεις blog χρησιμοποιώντας το υπάρχον περιεχόμενό μου ως βάση γνώσεων.

ΣΗΜΕΙΩΣΗ: Αυτό είναι μέρος των πειραμάτων μου με AI (βοηθητική σύνταξη) + δικό μου μοντάζ.

- Ίδια φωνή, ίδιος πραγματισμός, απλά γρηγορότερα δάχτυλα.
- Σκεφτείτε πώς οι σύγχρονες νομικές πρακτικές χρησιμοποιούν LLMs εκπαιδευμένες στη νομολογία για την κατάρτιση σλιπ, προτάσεις και συμβάσεις.
- Δεν ξεκινούν από το μηδέν - το σύστημα αναφέρει σχετικά προηγούμενα, προτείνει γλώσσα που βασίζεται σε επιτυχημένα παλαιότερα έγγραφα, και διατηρεί συνέπεια με καθιερωμένα πρότυπα.
- Αυτό ακριβώς φτιάχνουμε εδώ, αλλά για το περιεχόμενο του μπλογκ.
- Ο στόχος είναι να δημιουργηθεί ένας βοηθός γραφής με ισχύ AI που:

Βοηθά στην κατάρτιση νέων αναρτήσεων blog στο καθιερωμένο στυλ μου[Προτείνει σχετικό περιεχόμενο από προηγούμενα άρθρα προς αναφορά](https://www.anthropic.com/index/contextual-retrieval)Βρίσκει παρόμοιες θέσεις για τη διατήρηση της συνέπειας

## Αυτοδημιουργεί εσωτερικούς συνδέσμους με συναφή αντικείμενα

**Ενεργεί όπως "GitHub Copilot για το blog σας"**

- **Η σειρά αυτή θα καλύψει την κατασκευή ενός πλήρους**Ανακτήσιμη Αυξημένη Γενιά (RAG)
- **σύστημα σε C# που τρέχει σε Windows.**Θα χρησιμοποιήσουμε τις τελευταίες προσεγγίσεις και πλαίσια, και θα εξηγήσω κάθε νέα τεχνολογία όπως την συναντάμε.
- **Ρύθμιση υλικού μου (και ελάχιστα spec)**My Development Machine:

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

### : AMD Ryzen 9 9950X

- **RAM**: 96GB DDR5
  - Αυτό είναι το συγκεκριμένο στήσιμο μου, αλλά εσύ
  - Δεν χρειάζομαι αυτό το υλικό.
- **Για να ακολουθήσουμε.**Εδώ είναι οι ελάχιστες προδιαγραφές για διάφορα συστατικά:
  - Επιτάχυνση GPU (Συνιστάται, δεν απαιτείται)
- **Ελάχιστη**: NVIDIA GPU με 8GB VRAM (π.χ. RTX 3060, GTX 1070 Ti)

### Μπορεί να τρέξει τα μοντέλα παραμέτρων 7B με την ποσοτικοποίηση

- **Αξιοπρεπής ταχύτητα παραγωγής προσθήκης**Άνετα.
- **: 12GB+ VRAM (π.χ. RTX 3060 12GB, RTX 4060 Ti)**Εκτέλεση μεγαλύτερων μοντέλων ή υψηλότερης ποιότητας ποσοτικοποιήσεις
- Το στήσιμο μου
  - : 16GB (A4000) - Μπορεί να τρέξει 13B μοντέλα άνετα
  - CPU-Μόνο εναλλακτική
  - Ελάχιστη

### : Μοντέρνα τετράγωνη CPU

- **Συνιστώμενη**: 8+ πυρήνας (για τη λογική γενιά ενσωμάτωσης)
  - Όλα λειτουργούν μόνο σε CPU, απλά πιο αργά:
- **Γενιά ενσωμάτωσης: ~5-10x πιο αργά**LLM inference: ~10-50x slower
  - Εξακολουθεί να είναι χρήσιμος για βοηθός γραφής!
- **Απαιτήσεις RAM**Ελάχιστη

### : 16GB σύστημα RAM

- **Συνέπεια μόνο για μοντέλα 7Β**Άνετα.
- **: 32GB**Καλύτερα για μεγαλύτερα μοντέλα σε CPU

### Το στήσιμο μου

: 96GB - Υπερβολή, 32GB είναι άφθονο

- **Αποθήκευση**SSD
- **: Συνιστάται για τη φόρτωση μοντέλου**Διάστημα
- **~20GB για μοντέλα και διανυσματική βάση δεδομένων**Τι γίνεται με την Intel/AMD NPUs;

**Οι σύγχρονοι επεξεργαστές περιλαμβάνουν τώρα αφοσιωμένους επιταχυντές AI:**Intel Core Ultra*(Meteor Lake+) - Intel AI Boost (NPU)*AMD Ryzen AI

**(7040/8040 σειρά) - 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) - Έως 50 TOPS**Σημαντικό: Τα ΕΠΠΑ είναι μόνο για συμπεράσματα!
2. **Δεν "κατασκευάζει" ή τρένο μοντέλα σε NPU - είναι σχεδιασμένα να**τρέξιμο
3. **Προεκπαιδευμένα μοντέλα αποτελεσματικά.**Τα μοντέλα εκπαιδεύονται σε GPU σύννεφο (ή θέσεις εργασίας), στη συνέχεια κατεβάσετε και να αναπτυχθεί σε NPU για συμπεράσματα.
4. **Τρέχον καθεστώς για μοντέλα λειτουργίας σε NPU (από τη συγγραφή):**Γιατί όχι NPUs για αυτή τη σειρά;
5. **Λογισμικό οικοσύστημα**: CUDA έχει 15+ έτη ωριμότητας, NPU υποστήριξη σε .NET είναι nascent

**Μοντέλο συμβατότητας**

- : Τα περισσότερα μοντέλα GGUF στοχεύουν CUDA/CPU, NPU-optimized μοντέλα είναι σπάνια[Τεκμηρίωση](https://github.com/microsoft/DirectML): Περιορισμένοι πόροι για την ανάπτυξη NPU σε C#
- Επιδόσεις
- : Επί του παρόντος βραδύτερα από τα διακριτά GPU για το φόρτο εργασίας μας
- Υποστήριξη DirectML

**: Εξακολουθεί να είναι πειραματικό για το συμπέρασμα LLM**

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

**Μπορείς να χρησιμοποιήσεις τα ΕΠΠΕ για να συμπεράνεις;**Ναι, αλλά[Απαιτεί](https://onnxruntime.ai/)DirectML[πάροχος εκτέλεσης σε Runtime ONNX](https://github.com/microsoft/DirectML)Τα μοντέλα πρέπει να είναι σε μορφή ONNX (όχι GGUF)

**Η υποστήριξη C# είναι πειραματική**Η απόδοση είναι προς το παρόν υποσυνείδητη εναντίον CUDA

[TOC]

## Πώς να δοκιμάσετε το συμπέρασμα NPU (προχωρημένοι χρήστες):

Μελλοντική εξέταση

1. **: Μια φορά**ONNX Runtime
2. **και**DirectML
3. **ωριμάζουν NPU υποστήριξη τους (πιθανόν 2024-2025), αυτές θα γίνουν βιώσιμες εναλλακτικές λύσεις για συμπεράσματα!**Συμπέρασμα
4. **: Θα δείξω το GPU-επιταχυνόμενο μονοπάτι, αλλά θα σημειώσω CPU-μόνο εναλλακτικές σε όλη τη διάρκεια.**Μπορείτε να ξεκινήσετε CPU-μόνο και την αναβάθμιση αργότερα!
5. **Τι φτιάχνουμε;**Το τελικό σύστημα θα έχει διάφορα στοιχεία:
6. **Σωλήνας κατάποσης σήμανσης**- Επεξεργάζεται όλες τις αναρτήσεις στο blog, τις κόβει έξυπνα, και δημιουργεί καταχωρήσεις

Βάση δεδομένων Vector

## - Καταστήματα ενσωμάτωσης και επιτρέπει σημασιολογική αναζήτηση για παρόμοιο περιεχόμενο

Εφαρμογή πελάτη των Windows

- - Ένας βοηθός γραφείου εργασίας UI με τον επεξεργαστή και τον πίνακα προτάσεων
- Ενσωμάτωση LLM
- - Τοπική GPU-επιταχυνόμενο συμπέρασμα για την παραγωγή περιεχομένου
- Citation & Link Generation

- Auto-προτείνει εσωτερικούς συνδέσμους και αναφορές σε σχετικές θέσεις

- Κινητήρας συνοχής στυλ
- - Μαθαίνει πρότυπα από τις υπάρχουσες θέσεις για να διατηρήσει τη φωνή και τη δομή
- Σκεφτείτε το ως "GitHub Copilot συναντά Grammarly" αλλά έχει εκπαιδευτεί ειδικά στο περιεχόμενο και το στυλ του blog σας.
- Γιατί "δικηγόρος GPT";
- Οι σύγχρονες δικηγορικές εταιρείες χρησιμοποιούν LLMs εκπαιδευμένες σε τεράστιες βιβλιοθήκες νομολογίας για να βοηθήσουν στη σύνταξη νομικών εγγράφων.

Όταν γράφετε μια κίνηση, το σύστημα:

## Αναφορές σχετικά προηγούμενα και προηγούμενα επιτυχημένα επιχειρήματα

Προτείνει τα γλωσσικά πρότυπα που έχουν λειτουργήσει πριν

### Διατηρεί συνέπεια με τα νομικά πρότυπα γραφής

Cites πηγές αυτόματα

### [Αυτό είναι το μοντέλο μας.](/blog/building-a-lawyer-gpt-for-your-blog-part2)

Όταν αρχίζω να γράφω "Πλαίσιο Προσθήκης οντότητας για..." το σύστημα θα πρέπει:[Βρείτε τις προηγούμενες θέσεις EF μου](https://developer.nvidia.com/cuda-toolkit), [Προτείνω δομικά μοτίβα που έχω ξαναχρησιμοποιήσει.](https://developer.nvidia.com/cudnn)Προσφορά σχετικών κωδικών από παλαιότερα αντικείμενα

### [Αυτόματες συνδέσεις με σχετικές θέσεις](/blog/building-a-lawyer-gpt-for-your-blog-part3)

Διατηρήστε το στυλ γραφής και το τεχνικό μου βάθος[Σε αντίθεση με τους γενικούς βοηθούς γραφής AI, το σύστημά μας είναι γειωμένο στο πραγματικό περιεχόμενο του παρελθόντος, έτσι δεν θα προτείνει πράγματα που δεν συνάδουν με αυτά που έχω ήδη γράψει.](https://qdrant.tech/)Επισκόπηση σειράς[Να τι θα καλύψουμε τις επόμενες εβδομάδες:](https://github.com/pgvector/pgvector)).

### [Μέρος 1 (This Post): Εισαγωγή & Αρχιτεκτονική](/blog/building-a-lawyer-gpt-for-your-blog-part4)

Θα καθορίσουμε τι φτιάχνουμε και γιατί, συν να καλύψουμε τις αρχιτεκτονικές αποφάσεις.

### [Μέρος 2: Ρύθμιση GPU & CUDA σε C#](/blog/building-a-lawyer-gpt-for-your-blog-part5)

Τοποθέτηση των Windows για GPU-επιταχυνόμενο φόρτο εργασίας AI, εγκατάσταση[ΚΟΥΔΑConstellation name (optional, probably does not need a translation)](https://docs.microsoft.com/en-us/dotnet/desktop/wpf/), [cuDNN](https://avaloniaui.net/), και δοκιμή ότι C# μπορεί πραγματικά να δει και να χρησιμοποιήσει GPU σας.[Μέρος 3: Κατανόηση των βάσεων δεδομένων & διάνυσμα](https://dotnet.microsoft.com/en-us/apps/maui)Βαθιά κατάδυση σε ό, τι είναι πραγματικά ενσωμάτωση, πώς επιτρέπουν τη σημασιολογική αναζήτηση, και την επιλογή της σωστής διανυσματική βάση δεδομένων (poiler: πιθανότατα θα χρησιμοποιήσουμε

### [QdrantCity name (optional, probably does not need a translation)](/blog/building-a-lawyer-gpt-for-your-blog-part6)

ή[pgvector](https://onnxruntime.ai/), [Μέρος 4: Κατασκευή του σωλήνα κατάποσης](https://github.com/ggerganov/llama.cpp)Επεξεργασία αρχείων markdown, έξυπνες στρατηγικές chunking (δεν μπορείτε απλά να μοιραστείτε τις παραγράφους!), και τη δημιουργία καταχωρήσεων για όλο το περιεχόμενό μας.

### [Μέρος 5: Ο πελάτης των Windows](/blog/building-a-lawyer-gpt-for-your-blog-part7)

Επιλογή του σωστού πλαισίου (

### [WPFCity name (optional, probably does not need a translation)](/blog/building-a-lawyer-gpt-for-your-blog-part8)

ΑβαλόνιαCity name (optional, probably does not need a translation)

## , ή

ΜΑΟΥΙConstellation name (optional, probably does not need a translation)

### ?), building the UI, and making it really pleasant to use.

Μέρος 6: Τοπική ενσωμάτωση LLM

1. **Εκτέλεση τοπικών μοντέλων που χρησιμοποιούν**ONNX Runtime
2. **llama. cpp**Δεσμεύσεις ή άλλες προσεγγίσεις.
3. **Κάνοντας πλήρη χρήση αυτού του A4000!**Μέρος 7: Παραγωγή Περιεχομένου & Prompt Engineering
4. **Φέρνοντάς τα όλα μαζί - σημασιολογική αναζήτηση για σχετικό περιεχόμενο, διαχείριση παραθύρου πλαισίου, άμεση μηχανική για τη βοήθεια συγγραφής, και δημιουργώντας συνεκτικές προτάσεις.**Μέρος 8: Προηγμένα Χαρακτηριστικά & Ανάπτυξη Παραγωγής
5. **Αυτόματη σύνδεση με σχετικές δημοσιεύσεις, έλεγχος συνέπειας στυλ, προτάσεις snippet κώδικα, και καθιστώντας το σύστημα πραγματικά χρήσιμο για την καθημερινή γραφή.**Γιατί Ράγκερ;

### Πριν βουτήξουμε στην αρχιτεκτονική, ας μιλήσουμε για το γιατί RAG (Αναδρομική Αυξανόμενη Γενιά) είναι η σωστή προσέγγιση εδώ.

Το Πρόβλημα με την Πρόστιμο-Τούνινγκ

Θα μπορούσατε να σκεφτείτε: "Γιατί όχι μόνο πρόστιμο-tune ένα LLM σε όλες τις αναρτήσεις blog;" Υπάρχουν αρκετά θέματα με αυτό:

1. Κόστος & πολυπλοκότητα
2. - Η ρύθμιση είναι δαπανηρή (τόσο σε υπολογισμό όσο και σε προσπάθεια)
3. Καθυστέρηση
4. - Κάθε νέο blog post σημαίνει επανεκπαίδευση
5. Μαύρο κουτί

- Δύσκολο να καταλάβεις τι έμαθε το μοντέλο.

- ✅ 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)

## Ψευδαίσθηση

- Δεν είναι σίγουρο ότι το μοντέλο δεν θα τα βγάλει πέρα.

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

### Δεν υπάρχουν αναφορές

- Δεν μπορούμε εύκολα να εντοπίσουμε απαντήσεις στις πηγές.

- Πώς το Λύνει αυτό το Λύτρο
- RAGs συνδυάζει το καλύτερο και των δύο κόσμων: τη δύναμη των LLMs με την ακρίβεια της αναζήτησης για τη δημιουργία μιας γενιάς περιεχομένου context-aware.
- Η ροή είναι:
- Ο χρήστης αρχίζει να γράφει (π.χ., "Χτίζοντας ένα REST API με ASP.NET Core...")
- Σύστημα βρίσκει σημασιολογικά παρόμοια παλιά αντικείμενα

**Το σύστημα τροφοδοτεί τα σχετικά κομμάτια ως πλαίσιο για το LLM**Η LLM δημιουργεί προτάσεις/συνέχειες με βάση το περιεχόμενο του παρελθόντος

### Το σύστημα προσφέρει προτάσεις με αναφορές σε θέσεις πηγής

Αυτό σημαίνει:

Αρχιτεκτονική συστήματος

Επιτρέψτε μου να αναλύσω τα βασικά συστατικά που θα φτιάξουμε:

- 1.
- Σωλήνας κατάποσης σήμανσης

**Το παρόν συστατικό:**Διαβάζει αρχεία markdown από τον κατάλογο blog

- [Μεταδεδομένα εκχύλισης (τίτλος, κατηγορίες, ημερομηνία, αριθμός λέξεων)](https://www.sbert.net/)Ευφυώς τεμαχίζει το περιεχόμενο (συντηρώντας μπλοκ κώδικα για επαναχρησιμοποίηση)
- Προσδιορίζει τα δομικά πρότυπα (πώς διοργανώνω θέσεις)
- [Tracks source information for reference generation](https://huggingface.co/BAAI/bge-base-en-v1.5)Βασική πρόκληση

### : Η στρατηγική για το κυνήγι έχει τεράστια σημασία.

Πολύ μικρό και χάνεις τα συμφραζόμενα.

**Πολύ μεγάλο και σπαταλάς το παράθυρο του LLM.**Χρειαζόμαστε κομμάτια που έχουν σημασιολογική σημασία - μια πλήρη σκέψη ή τμήμα, όχι αυθαίρετες διαλείμματα παραγράφων.

- **[2.](https://qdrant.tech/)**Μοντέλο προσθήκης
- **[Οι ενδυμασίες είναι η μαγεία που κάνει σημασιολογική έρευνα.](https://github.com/pgvector/pgvector)**Ένα μοντέλο ενσωμάτωσης παίρνει το κείμενο και το μετατρέπει σε ένα υψηλής διαστάσεων διάνυσμα (συστοιχία αριθμών) που αιχμαλωτίζει σημασιολογική έννοια.
- **[Παρόμοιες έννοιες καταλήγουν σε "κοντά" στο διανυσματικό χώρο, ακόμα και αν χρησιμοποιούν διαφορετικές λέξεις.](https://weaviate.io/)**Για παράδειγμα:
- **["Μεταναστεύσεις βάσεων δεδομένων" και "επικαιροποίηση του σχήματος DB" θα έχουν παρόμοια ενσωμάτωση](https://www.trychroma.com/)**"Γάτα" και "γάτα" θα ήταν πιο κοντά από "γάτα" και "βάση δεδομένων"

Επιλογή τεχνολογίας

### : Πιθανότατα θα χρησιμοποιήσουμε είτε:

Μετασχηματιστές ποινή-μετασχηματιστές

**[μοντέλα (μπορεί να τρέξει μέσω ONNX Runtime σε C#)](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 (μέσω API)](https://avaloniaui.net/)**

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

**[Μοντέλα BGE](https://dotnet.microsoft.com/en-us/apps/maui)**

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

(κατάσταση της τεχνολογίας ανοικτού κώδικα)**3.[Βάση δεδομένων Vector](https://github.com/Kinnara/ModernWpf)**Η διανυσματική βάση δεδομένων αποθηκεύει την ενσωμάτωση και επιτρέπει γρήγορη αναζήτηση ομοιότητας.**Όταν γράφετε για το "Docker συνθέτουν," βρίσκει το πιο σημασιολογικά παρόμοιο περιεχόμενο του παρελθόντος - όχι μόνο ταιριάζει η λέξη-κλειδί, αλλά και εννοιολογικά σχετικό υλικό.**Επιλογή τεχνολογίας

### : Θα αξιολογήσουμε:

QdrantCity name (optional, probably does not need a translation)

- - Μοντέρνο, γραμμένο στο Rust, εξαιρετικός πελάτης C#, φιλικός προς τον Ντόκερ
- pgvector
- - Επέκταση για PostgreSQL (χρησιμοποιούμε ήδη Postgres!)
- Υγρασία

**- Μια άλλη σταθερή επιλογή με καλή υποστήριξη .NET**:

**[Χρώμα](https://onnxruntime.ai/)**

- - Δημοφιλής στη γη του Πάιθον, λιγότερο σε C#
- Είμαι κλίνει προς το Qdrant για την απλότητα και την απόδοση του, ή pgvector για να κρατήσει τα πάντα στο Postgres.
- 4.
- Πελάτης παραθύρωνName

**[Χρειαζόμαστε ένα καλό UI για τη συγγραφή με βοήθεια AI.](https://github.com/ggerganov/llama.cpp)Σκέψου τον αρχισυντάκτη με προτάσεις.**

- Επιλογές:[WPF (Ίδρυμα Παρουσίασης Γουίντοους)](https://github.com/SciSharp/LLamaSharp))
- ΑβαλόνιαCity name (optional, probably does not need a translation)
- MAUI (Multi-platform App UI)
- Αφού είμαστε επικεντρωμένοι στα Windows και θέλω κάτι σταθερό, είμαι κλίνοντας προς

**[WPF με](https://github.com/dotnet/TorchSharp)**

- ModernWPF UI
- ή
- ΑβαλόνιαCity name (optional, probably does not need a translation)

για αυτό το δυναμικό cross-platform.**5.**Τοπική ενσωμάτωση LLM

### Εδώ λάμπει το A4000 GPU.

Θέλουμε να τρέξουμε το LLM τοπικά για:

- Απόρρητο (δεν αποστέλλονται δεδομένα σε API)
- Ταχύτητα (το τοπικό συμπέρασμα είναι γρήγορο)
- Κόστος (χωρίς τέλη API)
- Έλεγχος (επιλέγουμε το μοντέλο)

Επιλογές τεχνολογίας

- ONNX Runtime
- Μετατροπή μοντέλων σε μορφή ONNX
- Εξαιρετική επιτάχυνση GPU
- C# εγγενής υποστήριξη

### Downside: Δεν μετατρέπουν όλα τα μοντέλα καλά

llama. cpp

- Δεσμεύσεις
- C++ βιβλιοθήκη με C# δεσίματα (
- LLamaSharpCity name (optional, probably does not need a translation)
- Υποστηρίζει CUDA
- Ευρεία υποστήριξη μοντέλων (Llama, Mistral, κ.λπ.)

Πολύ ενεργή ανάπτυξη

## ΠυρσόςSharpCity name (optional, probably does not need a translation)

Συνδετικά PyTorch για .NET

1. **Περισσότερη ευελιξία**Καμπύλη εκμάθησης Steeper
2. **Σκύβω προς τα εκεί.**LLamaSharpCity name (optional, probably does not need a translation)
3. **για την ωριμότητα και την ευκολία χρήσης του με δημοφιλή μοντέλα.**6.
4. **Διαχείριση παραθύρου & Prompt Engineering**LLMs έχουν περιορισμένα παράθυρα πλαισίου (π.χ., 4K, 8K, 32K μάρκες).
5. **Πρέπει να:**Ανακτήστε το πιο σχετικό περιεχόμενο του παρελθόντος (πάνω Κ από την αναζήτηση διανυσματικών στοιχείων)

## Τοποθετήστε τα στο παράθυρο του πλαισίου με το τρέχον σχέδιο

Δομή της προτροπής για τη συγγραφή βοήθειας

### Αφήστε χώρο για τις δημιουργημένες προτάσεις

- **Είναι πιο δύσκολο απ' ό,τι ακούγεται.**Θα εξερευνήσουμε στρατηγικές όπως:
- **Δυναμική επιλογή K με βάση αυτό που γράφετε αυτή τη στιγμή**Επανεγγραφή ανακτημένων κομματιών λόγω συνάφειας

### Συμπιέζοντας έξυπνα τα συμφραζόμενα

- **[Multi-shot υποκίνηση με παραδείγματα από προηγούμενες θέσεις](https://onnxruntime.ai/)**7.**[Γενιά σύνδεσης & αναφοράς](https://github.com/SciSharp/LLamaSharp)**Κάθε κομμάτι χρειάζεται μεταδεδομένα:
- **[Αρχείο πηγαίου κώδικα/post](https://dotnet.microsoft.com/en-us/apps/machinelearning-ai/ml-dotnet)**Θέση στο πρωτότυπο έγγραφο
- **Ημερομηνία δημοσίευσης**Κατηγορίες

### Χρησιμοποιούμενα τμήματα κωδικών

- **[Όταν η LLM δημιουργεί προτάσεις, δημιουργούμε αυτόματα συνδέσεις markdown με τις θέσεις πηγής και αναγνωρίζουμε επαναχρησιμοποίητα πρότυπα κώδικα.](https://qdrant.tech/)**Τι το Διαφέρει αυτό;**[Υπάρχουν πολλά μαθήματα RAG εκεί έξω, αλλά αυτή η σειρά θα είναι διαφορετική:](https://github.com/pgvector/pgvector)**C# Πρώτα

### - Τα περισσότερα παραδείγματα είναι στο Πάιθον.

- **Πηγαίνουμε γεμάτο .NET**Παράθυρα & GPU**- Leveraging NVIDIA CUNDA στα Windows, όχι Linux/WSL**Έτοιμη η παραγωγή**[- Όχι μόνο απόδειξη της αντίληψης, αλλά και πραγματικός χρησιμοποιούμενος κωδικός](https://avaloniaui.net/)**Ειδικός τομέας

### - Βελτιστοποιημένη για τη βοήθεια γράψιμο blog, όχι γενιά γενικού περιεχομένου

- **[Βαθιές αιτιολογήσεις](https://github.com/xoofx/markdig)**- Θα εξηγήσουμε το "γιατί" πίσω από τις αποφάσεις.
- **[Technologies We'll Use](https://www.docker.com/)**Εδώ είναι η στοίβα τεχνολογίας που σχεδιάζω:
- **[Βασικό πλαίσιο](https://docs.microsoft.com/en-us/ef/core/)**NET 9

### (Τελευταία κατά τη στιγμή της συγγραφής)

- **[C# 13](https://developer.nvidia.com/cuda-toolkit)- Σύγχρονα γλωσσικά χαρακτηριστικά**Βιβλιοθήκες AI/ML
- **[ONNX Runtime](https://developer.nvidia.com/cudnn)**ή

## LLamaSharpCity name (optional, probably does not need a translation)

- Το συμπέρασμα της LLM

### Microsoft.ML

- **- Πιθανώς για κάποιες εργασίες**SentenceTransformers via ONNX
- **- Ενσωμάτωση**Βάση δεδομένων Vector
- **QdrantCity name (optional, probably does not need a translation)**ή
- **pgvector**- Να προσδιοριστεί

### Πλαίσιο UI

- **WPFCity name (optional, probably does not need a translation)**με
- **ModernWPF**ή
- **ΑβαλόνιαCity name (optional, probably does not need a translation)**- Σύγχρονη επιφάνεια εργασίας UI

### Υποστηρικτικά εργαλεία

- **Markdig**- Το χρησιμοποιώ ήδη για ανάλυση.
- **ΝτόκερCity name (optional, probably does not need a translation)**- Για την εκτέλεση Qdrant ή άλλων υπηρεσιών
- **Κεντρικό πλαίσιο οντότητας**- Αν χρησιμοποιήσουμε Pgvector
- **Στοίβα GPU**ΚΟΥΔΑConstellation name (optional, probably does not need a translation)

### 12. x

- **(Τελευταία κατά τη στιγμή της συγγραφής)**cuDNN
- **- Βαθιά μαθησιακά πρωτόγονα**Εκτιμήσεις Απόδοσης
- **Διαφορετικές ρυθμίσεις υλικού θα έχουν διαφορετικές δυνατότητες:**Με 8GB VRAM (minimum)
- **Υπόδειγμα μεγέθους**: 7B μοντέλα παραμέτρων με Q4 ποσοτικοποίηση

## Επεξεργασία παρτίδας

: Συμπεριλήψεις διεργασιών σε μικρότερες παρτίδες

1. Διαχείριση μνήμης
2. : Απαιτείται προσεκτική παρακολούθηση VRAM
3. Δουλεύει καλά για
4. : Writing assistant, embeding generation
5. Με 12GB+ VRAM (Άνετα)
6. Υπόδειγμα μεγέθους

: 7B με υψηλότερη ποιότητα ποσοτικοποίησης (Q5/Q6)

## Επεξεργασία παρτίδας

: Μεγαλύτερες παρτίδες για ταχύτερη μετάβαση**[Μπορεί επίσης να τρέξει](/blog/building-a-lawyer-gpt-for-your-blog-part2)**: Μερικά 13Β μοντέλα με επιθετική ποσοτικοποίηση

- Με 16GB+ VRAM (το στήσιμό μου)
- Υπόδειγμα μεγέθους
- : 7B-13B μοντέλα παραμέτρων άνετα
- Επεξεργασία παρτίδας
- : Πλήρεις παρτίδες, ελάχιστοι περιορισμοί

Γρήγορο συμπέρασμα

## : Υποδευτερόλεπτο χρόνο απόκρισης

Headroom

- **: Μπορεί να πειραματιστεί με διαφορετικά μοντέλα**CPU-Μόνο (Fallback)
- **Όλα δουλεύουν.**Απλά πιο αργά.
- **Ενσωμάτωση**: 5-10x πιο αργό από GPU
- **Συνέδρια LLM**: 10-50x πιο αργά από GPU
- **Εξακολουθεί να χρησιμοποιείται**: Για έναν βοηθό γραφής με υπομονή!

Αναπτυξιακή προσέγγιση

## Θα το χτίσουμε αυτό σταδιακά:

Ξεκινήστε με τα απλούστερα συστατικά (ανάγνωση μαρκαδόρου, chunking)

Προσθήκη γενιάς προσθήκης (μπορεί να ξεκινήσει με API-based πριν πάει τοπικά)

Κάντε διανυσματική αναζήτηση να λειτουργήσει

Κατασκευή βασικού UI

## Ενσωμάτωση LLM

- **Πολωνική και βελτιστοποιημένη**Κάθε μέρος θα μπορεί να αναπτυχθεί και να δοκιμαστεί από μόνο του.
- [Δεν υπάρχουν εφιάλτες για την ενσωμάτωση.](/blog/building-a-lawyer-gpt-for-your-blog-part2)
- [Ποιο είναι το επόμενο;](/blog/building-a-lawyer-gpt-for-your-blog-part3)
- [Το](/blog/building-a-lawyer-gpt-for-your-blog-part4)
- [Μέρος 2: Ρύθμιση GPU & CUDA σε C#](/blog/building-a-lawyer-gpt-for-your-blog-part5)
- [, θα πάρουμε hand-on με τη ρύθμιση GPU:](/blog/building-a-lawyer-gpt-for-your-blog-part6)
- [Εγκατάσταση CUDA και cudNN στα Windows](/blog/building-a-lawyer-gpt-for-your-blog-part7)
- [Δημιουργία του περιβάλλοντος ανάπτυξης](/blog/building-a-lawyer-gpt-for-your-blog-part8)

## Γράφοντας ένα απλό πρόγραμμα C# για την επαλήθευση της πρόσβασης GPU

Εκτέλεση μιας βασικής δοκιμής συμπερασμάτων με το ONNX Runtime

- [Αξιολογώντας το A4000 μας για να καταλάβουμε τι μπορούμε να κάνουμε](https://onnxruntime.ai/)
- [Αυτό μπορεί να φαίνεται βασικό, αλλά να πάρει το GPU στοίβα δεξιά είναι ζωτικής σημασίας.](https://github.com/SciSharp/LLamaSharp)
- [Έχω σπαταλήσει ώρες αποσφαλμάτωσης θεμάτων που ήρθαν σε αναντιστοιχίες εκδοχής ή λείπουν DLLs.](https://qdrant.tech/documentation/)
- [Γιατί Έχει Σημασία αυτό;](https://www.sbert.net/)
- [Πέρα από το να είναι απλά ένα δροσερό έργο, αυτή η προσέγγιση έχει πραγματικές εφαρμογές:](https://www.anthropic.com/index/contextual-retrieval)

Τεχνική τεκμηρίωση[- Διατήρηση συνεπούς στυλ σε μεγάλα σύνολα γιατρών](/blog/building-a-lawyer-gpt-for-your-blog-part2)!