校对:Soup
一. 导言导言 导言 导言 导言
因为这将是一个很长的系列“!” 。 如果你一直关注这个博客 “,” 你和' 会知道I''m有点着迷于寻找有趣的方法, 在实际应用中使用LOMs和[email protected],IMS K7+ve得到了一个新项目,
这是我自己编辑的A )Q MS K3Q 同一声音 同样的实用性 ,Q 一样
现代法律实践如何利用受过判例法培训的LLMs起草案情摘要? MSPZK1*}和合同_.}它们从零开始 '}系统引用了相关的先例-}系统参考了相关判例>,}根据过去的成功文件来推荐语言,并保持与既定模式的一致这'}正好是我们在这里做的WQ're building§,}但博客内容<.}
目标是创建一个 AY- 授权写作助理,该助手是 @:
- 帮助以我固定风格起草新博客文章
- 从过去的条款中建议相关内容供参考
- 寻找类似的员额,以保持一致性
- Auto - @ genererate 相关文章的内部链接
- 类似博客“"GitHub Copilot”的动作。
这个系列将涵盖一个完整的建筑 检索增强的一代 @( @RAG)}@ 在 Windows 上运行的 C# 系统中,我们MS K2 将使用最新的方法和框架\ , 和 I' 解释每种新技术 当我们遇到它时
我的硬件设置@ ( @ 和最小的Specs @ MS K1} @
我的开发机器 :
- GPU 图形-=YTET -伊甸园字幕组=- 翻译:
- CPU CPCPU-=YTET -伊甸园字幕组=- 翻译:
- 内存记录-=YTET -伊甸园字幕组=- 翻译:
这是我的特别安排 ,,但你 Don' 不需要这个硬件 以下为不同组件的最小值@: @%
GPU 加速@( @ 推荐@ ,_ 不需要@ MPK2
- 最低-=YTET -伊甸园字幕组=- 翻译:
- 以量化方式运行 & 7 @%B 参数模型
- 体面嵌入型发电速度
- 舒适: 12GB+VRAM MS K3 I.gMS K5RTX MSKO6 NSK7GB□,RT XTMK9Ti)
- 运行更大的模型或质量更高的量化
- 我设的圈套@: 16 GB(AMS K3 NSK4 能正常运行#13B模型吗?
CPU- 唯一替代
- 最低:现代夸德-核心CPU
- 建议建议@: @ @ 8+ @ 核心@ MS K2 @ 合理嵌入生成源@ I) @
- 在 CPU\ - 上,每件事情都能工作。 只有 @ MS K1 稍慢一点。 @ MPK2 {
- 嵌入式生成元件@ : @\ MS K1#x 慢
- LLM 精度= : @ MS K1#x 慢
- 仍然完全可用于一个写助手@! @%
记录和档案管理所需资源
- 最低: NSK1GB 系统内存
- CPU- @ 仅对 MPK1_B 模型的推断@ action
- 舒适*: 32 GB*
- 更有利于大型CPU模型
- 我设的圈套-=YTET -伊甸园字幕组=- 翻译:
储存
- SSSD sSD:推荐用于模型装载
- 空间空间空间用于模型和矢量数据库的 : @~20GB
关于Intel/AMD NPUsMS K1
现代CPU现在包括专用的AI 加速器@: @%
- 英特尔核心超 -=YTET -伊甸园字幕组=- 翻译:
- 阿姆德·雷森·阿尔 -=YTET -伊甸园字幕组=- 翻译:
- AMD Ryzen AI 马克斯 @ ( @ STrix Point@ MS K1} @ I- @ 一直到 < 50# 垃圾桶
重要的 :NPUs 仅指推论@! 您没有在 NPUs 上建立 " 或培训模型 运行中 对模型进行了云性 GPUs @(or 工作站@),}然后下载并部署到 NCPS进行推断=.
正在运行 NPUs 模式的当前状态 @ ( @ as to writing\ MS K1}
- @✅ @:_On -device inference@,}电池效率 @(poptops @MS K5#
- 用于我们的⚠#Limited for our used @:_Immature *.\NET}/ONNX运行支持
- @❌ @ 尚未准备好% : @ this project='}主路徑
为什么不为此序列设置 NPUs @ ? @%
- 软件生态系统I:CUDA拥有15+成熟年 *,NPU在 @.NET的支持是新生的。
- 模型兼容性大部分GGUF模型的目标都是CUDA/}CPU=,}NPU-}优化模型是罕见的
- 文件文件文件文件文档文件文件的文件文件文件会议文件文件文件,文件文件文献文件文件/文件文件资料文件文件文文件文件归档文件文件:文件文件记录文件文件、文件文件提供文件文件文号文件文件(文件文件 Do文件文件存档文件文件 文件文件文件和文件文件证件文件文件文件中文件文件Do文件文件档案文件文件C#的NPU开发资源有限
- 业绩表现 实绩目前我们的工作量比离散的GPU慢
- 直接洗钱支助: 仍在实验LLM推理
您能否使用 NPUs 进行推断@ ? @ 是 @ MS K1 @ 但是 @ MPK2}
- 所需要求 直接洗钱 在 ONNX 运行时间
- 模型必须使用 OONNX 格式@(not GGUF)
- C# 支援是实验性的
- CUDA目前表现不佳
如何尝试 NPU 推导@ ( @ advanced 用户@ MPK1
# 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);
今后审议曾经的: NONX 运行时间 和 直接洗钱 它们成熟的 NPU 支持 @ ( @ 可能@ MS K1} 这些将会成为可替代发酵的可行选项 @ MPK2 @
底底线: I' 會顯示 GPU}- 加速路徑@, 但會注意到 CPU- 只有其它的選擇
我们所建造的
最后的系统将包含几个组件 :
- 标记下调吸收管道 @- 处理所有博客posts@, 以智能方式将它们填满并生成嵌入
- 矢量数据库 - 仓库嵌入并能够对类似内容进行语义搜索
- Windows 客户程序 - 桌面写作助手 UI 与编辑器和建议板
- LLM 整合 - 本地 GPU- 为内容生成加速推导
- 创建链接 @-Auto-_suggest 内部链接和有关职位的引用
- 样式一致性引擎 “-”从现有职位学习模式,以保持声音和结构。
@"_GitHub 校对:Portnoy {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}
为什么律师GPT "??
现代律师事务所使用在广大判例法图书馆接受培训的LLMs,帮助起草法律文件。 当撰写一项动议时,
- 参考相关先例和以往成功论据
- 推荐以前有效的语言模式
- 与法律写法标准保持一致
- 自动切出源
当我开始为“...",” 写入「"」/添加实体框架时,
- 寻找我先前的 EF-}有关职位
- 建议结构图案 I'}以前使用过
- 提供来自过去文章的相关代码片断
- 自动- @ generation 链接到相关员额
- 保持我的写作风格和技术深度
与通用的人工智能写作助手不同 我们的系统基于过去的实际内容 因此它赢得了'
系列概览
未来几周,
部分@1 @ @% ( @ this post *):_ 导言 _&}架构
We'+#Ill 确定我们建造的建筑, 为什么是,+
部分@2:GPU 设置 @&CUDA 在 CQ#
正在为 GPU @ - @ acalled AI 工作量设置窗口@ MS K1}安裝 CUDA 哥大, CHUNDN 二进, 以及测试 C# 能够实际看到并使用您的 GPU}.
“3: 理解嵌入器”部分
深度潜入嵌入器实际上是什么 @ , @ 如何使语义搜索@ MS K1\ @ 并选择正确的矢量数据库 : @ MPK2spourer}%: @ we'}可能使用 解冻 或 pgvictor 变量).
建立接收管道
正在处理标记文件@, @ 智能散列策略 @ (} 您可以在段落上分割 ' @ t 并生成我们所有内容的嵌入Q.
窗口客户端
选择正确的框架 @(#WPPF WPF, 瓦隆,或 MAUI MIU@?), 建造UI, 并让真正愉快地使用#.
6:地方LLM整合部分
本地使用运行模型 NONX 运行时间, 卡拉马 或其它方法.}充分利用A{4000!}
内容生成 *&}快速工程
@-# 语义搜索相关内容@,_上下文窗口管理@MS K2}写作援助的即时工程=%,}并产生一致的建议.}
生产部署
自动-链接到相关文章@,样式一致性检查 @,代码片断建议_,,并使系统实际用于每日写入@MS K4
为什么拉卡马斯科0
在我们潜入建筑之前... ,... ...让我们来谈谈为什么RAG"("检索子孙增加"...
罚款问题@- @Tinning
@"#为什么所有博客上不只精细地写下“-tune an LLM”?
- 成本:=&}复杂度 在计算和努力中 )都非常昂贵
- 静态 @-每个新的博客文章都意味着再培训。
- 黑盒 很难理解什么是模式,
- 幻觉 无法保证模特儿能编造出一些东西
- 无引用 @ -Can'}无法轻易追踪来源的回复
RAG 如何解决这个问题
RAG 将两个世界中最好的s:}LLMS的力量和精确的搜索结合起来 来创建上下文MS K1}#AWARE 内容生成_.}
流动是:
- 用户开始使用 ASP=.NET Core@...")}建立 AST API
- 系统在音义上发现与过去文章相似
- 将相关块块作为 LLM 的上下文输入系统
- LLM 生成基于过去内容的建议@/ @csession
- 系统提供参考源员额的建议
意思是:
- @✅ @ always up@-_to% -}更新的($只要在您写时重现-#index新文章 #)#
- ✅ 根據你的实际寫作 ( 保持一致性)
- @✅_可追踪@(}知道哪些过去的文章影响着建议吗?
- 且不为每个新职位提供昂贵的再培训,
- ✅弹性(can交换LMS或调整搜索策略MS K2
- @✅@ 隐私 @ -# preservation @ I( @ 一切在本地运行 #) @
系统架构
让我把关键部件分解一下 我们的' 将会是建筑中的:
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
1. 标记摄入管道
此元件:
- 从博客目录读取标记文件
- 提取元数据@(\ title @, 分类},}日期{,}字数=)}
- 智能分割内容@ ( @ preservation 代码区块以重新使用\ )%
- 说明结构图案 @(#我如何组织文章@)#
- 用于生成引用的音轨源信息
关键挑战: Chunking 策略很重要, 非常小, 您失去了上下文@ MS K2 太大了, 您浪费 LLM' 上下文窗口\ . 我们需要具有语义意义的块 {-} 完整的想法或部分_ ,} 不是任意的段落破解}MSC7}
2.嵌入模型
嵌入式是使语义搜索工作的魔法@. 一个嵌入型号用文字将其转换为高Q-维向矢量 @(array of numbers ),它能捕捉语义意指#.}
类似的概念最终在矢量空间中导致“"”和“"”等同概念,即使它们使用不同的单词@.}
例如:
- @"database migration@"和{"}更新 DB schema"}将会有类似的嵌入
- “"cat" 和“"kitten"}会更接近于 @"cad" 以及 @MS K6database@"
技术选择“:”我们“'”可能使用其中之一“MSC2”
- 句子“-” 在 C#) 中运行时间@ action: inmenu
- OpenAI' 嵌入模型的模型 @ (_via API})
- BGE 模型 @(_state@-_of\ -_the#-}开放源码=)
3.矢量数据库
矢量数据库存储嵌入并允许快速相似的搜索@. @ why you ' re writing about @" Docker fropose_",}当您在撰写关于“%SK2”的文章时, 它发现 K 在语义上与过去内容最相近的 K {-}不只是关键字匹配,Q}而是概念上的关联材料.}
技术选择-=YTET -伊甸园字幕组=- 翻译:
- 解冻 @-modal@,}以 Rust, 寫成的精美 CMS K3_ 用戶端%sK4
- pgvictor 变量 - PostgreSQL (weMS K2re 已使用 postgres @!)@
- 断断 @ -_ 另外一个可靠选项, 有良好的@.+NET支持
- 色谱 在Python Lands 中流行的-@,}在C#中不那么普遍
I'm 倾斜到 Qdrant 的简单和性能@,或 pgvector 将一切保存在 Postgres @.}
4.Windows客户端
我们需要一个良好的 UI 来与 AI 协助书写“ . 考虑分裂” “-” 编辑器提供建议“ .” 选项“: ”
- -=YTET -伊甸园字幕组=- 翻译:
- ✅本地视窗性能
- ❌ Windows @-
- ❌ 看起来像日期 除非你投资 UI 库
- @ ✅_ cross @ I-_ platform @ *(# XAML% MS K3} basic_ )
- -=YTET 翻译:
- 类似WPF的✅
- 小型生态系统
- @ ✅_ 十字路口@ MS K1_ 平台
-
- ✅ 微软 * @ MS K1} 后退*
- 还在成熟
- @ ❌ @ 更多移动@ MS K1 @ 聚焦
从Windows -\ 聚焦点和我想要稳定的东西\ I,\ I'\ 倾斜到 WPF 与 现代WPF UI 或 瓦隆 用于此 cross @ - @platform 潜能值@.}%
5.当地LLM整合
这里就是 A4000+GPU 亮光@.+Z) 我们想要在本地运行 LLM 用于 < : >
- 发送到 APIs ) 的隐私数据@( @no data
- 速度@(}本地的推断是快速的 @)
- @(_no API收费%)
- 控件 @( @ we choose the model_)}控制器 @ MSKO @ 我们选择模型@ msk1 @
技术备选办法:
- 将模型转换成 ONNX 格式
- 优秀 GPU加速度
- C# 本地支援
- 并不是所有的模型都转换良好
卡拉马 装有
- Có++库与C#绑定 {(}拉马沙尔普)
- CUDA支助
- 广域模型支持 @(Llama,Mistral},等+.)
- 非常积极的发展
- 用于 @.+NET 的 PyTork 装订
- 最灵活
- 更深的学习曲线
I'倾斜着 拉马沙尔普 其成熟和易于使用,与流行型号
6. 上下文窗口管理 @& 即时工程
LLMs的上下文窗口有限 : @(e.g., 4K,}{8KKK6K32K代币_).我们需要:
- 从矢量搜索中获取最相关的过去内容 {(}%top K
- 将当前草稿安装到上下文窗口中
- 书面协助的迅速结构
- 为所产生建议留空空间
这比这听起来更狡猾 比它听起来. We'" 探索策略,比如"MS K2"
- 基于您当前写入的内容的动态 K 选择
- Re- 排序按关联性回收的块块
- 智能压缩环境
- 多@-_% 照片来自过去的文章,
“7.”链接“&”插座世代
每个块需要元数据@: @%
- 源文件/}post
- 原始文件中的位置
- 发布日期
- 类别类别类别
- 使用的代码片断
当 LLM 生成建议时 @ , @ 我们自动创建源站点的标记链接, 并识别可重复使用的代码模式@ MS K1}
是什么使得这个不同的?}
外头有许多RAG教程@,}但这个系列将会不同 @:
- C#第一個 大部分RAG例子都在Python@.中,
- 視窗 @ &% GPU 在 Windows 上利用 NVIDIA CUDA 不是 Linux @/#WSL
- 准备生产 @- @ 不只是证明@ -_ of @ MS K2 @ concept,} 而实际可用的代码
- 域@- @ 具体 @- 优化博客写作援助@, 非通用内容生成
- 深入解释 @-_We'}实际上解释决定背后的#"*为什么?
We'll 使用技术
在这里,'}科技堆叠 I'}计划=:}
核心框架
- # .NET @9# 写作时的(Zlest@)
- C# □13 现代语言特写
AI/ML图书馆
矢量数据库
- 解冻 或 pgvictor 变量 -待定
UI 框架
- WPPF WPF 与 现代WPF 或 瓦隆 - 现代桌面UI
辅助工具
GPU 堆栈
业绩考量
不同的硬件设置将具有不同的能力@: @%
与“8+GB VRAM”
- 模型大小: 7B 参数模型
- 批次处理:进程嵌入小批次
- 记忆管理需要仔细监测 VRAM
- 工作良好: 写作助理, 嵌入生成
与 @12_GB+}VRAM *(Comfortable{)}一同制作
- 模型大小:{7B有更高质量的量度}(MS K36)
- 批次处理用于更快输送量的大型批次
- 也可以运行: 一些具有侵略性量化的13B模型
与 @16+GB%++VRAM#(@我的设置@)}
- 模型大小: MS K1B-13B 参数模型舒适
- 批次处理* MSPK0 整批* *, 最起码的限制
- 快速推断: Sub-第二次回复时间
- 客厅:可以实验不同的模型
CPU- 唯有{( K2
- 每样东西都有效慢一点
- 内嵌: @ MS K1x 比 GPU 慢
- LLM 推断: @ MS K1x 比 GPU 慢
- 仍然可用一个耐心的写作助理 !
发展方法
We'将逐步建立这个 递增=:
- 以最简单的组件开始 @ ( markdown 正在读@ MS K1 browding @ MPK2
- 添加嵌入生成器@( @% 在进入本地端@ )% 之前, 可以先从 API}-_% based
- 启动矢量搜索工作
- 构建基本 UI
- 综合LLM
- 波兰语并优化
每一部分都可自行部署和测试 没有大的-Bang融合噩梦
什么是' 下一步 @?
内 部分@2:GPU 设置 @&CUDA 在 CQ#,+'+GPU GPU的设置
- 在 Windows 上安装 CUDA 和 cudNN
- 建立发展环境
- 写入一个用于校验 GPU 访问的简单 C# 程序
- 用 ONNX 进行基本推断测试
- 确定我们的A4000 来了解我们能做些什么
这似乎是基本的@ ,, 但正确获取 GPU 堆叠是关键 @ MS K1 I' 浪费了时间来调试问题, 导致版本错配或丢失 DLLs.}
为何如此重要
不仅是一个很酷的项目 @,}这个方法有真正的应用程序@:#
- 技术文件 技术文献 - 保持大型 doc 各组的一致风格
- 法律实践 参考判例法判例的起草摘要
- 内容营销 保持各队的品牌声音
- 学术写作 与过去的论文和研究保持一致
- 个人知识管理 - 您自己的文具助理
We'}将涵盖的原则适用于任何领域,只要您有现有内容并且需要保持一致性,同时创建新的材料.}
结论结论
协助以过去的文章作为参考材料起草博客内容, 就像律师使用在案例法上受过训练的LLMs@.}(We')
这是一个玩具项目 \ -\ \ we'\ 正在建造一些真正有用的东西 对于任何定期写作并希望保持一致性的人来说
在接下来的部分 我们' 会和CUDA,GPUS, 一起弄脏我们的手 确保我们的发展环境准备好迎接未来的挑战
并准备了解嵌入的矢量数据库 , 组合策略 MS K3 即时工程=, 以及现代人工智能系统所有其他令人愉快的复杂性
系列导航
- 部分: 1:_ 导言 _&建筑 校对:Soup
- 部分@2:GPU 设置 @&CUDA 在 CQ#
- “3: 理解嵌入器”部分
- 建立接收管道
- 窗口客户端
- 6:地方LLM整合部分
- 内容生成 *&}快速工程
- 生产部署
资源资源资源 资源和资源资源资源
如果您想要获得一个首创@, @ 这里有些资源 I'# # 将在此序列中引用\ :}
回头见 部分#2!