大模型(LLM)工程师实战之路(含学习路线图、书籍、课程等免费资料推荐)

新春佳节,蛇年大吉!愿您在新的一年里,生活如蛇行般灵动自如,事业似蛇舞般活力四射。蛇年,愿您福运缠身,财源广进,家庭和睦,幸福安康!今天给大家推荐一些大模型(LLM)工程师相关的免费学习资料,先收藏起来哦

1. 运行LLM

运行LLM可能由于硬件要求较高而变得困难。根据你的使用场景,你可能希望通过API(如GPT-4)简单地调用模型,或者在本地运行模型(6个最受欢迎的本地运行大模型工具整理)。在任何情况下,额外的提示工程和引导技术都可以改善并约束模型的输出,以适应你的应用程序。

  • LLM API:API是部署LLM的一种便捷方式。这一领域分为私人LLM(如OpenAI、Google、Anthropic、Cohere等)和开源LLM(如OpenRouter、Hugging Face、Together AI等)。

  • 开源LLM:Hugging Face Hub是寻找LLM的好地方。你可以直接在Hugging Face Spaces中运行其中一些模型,或者下载并在本地应用中运行,例如通过LM Studio或使用llama.cpp或Ollama通过命令行运行。

  • 提示工程:常见的技术包括零样本提示(zero-shot prompting)、少样本提示(few-shot prompting)、思维链(chain of thought)和ReAct。这些技术更适合大型模型,但也可以适应小型模型。

  • 结构化输出:许多任务需要结构化的输出,例如严格的模板或JSON格式。像LMQL、Outlines、Guidance等库可以用来引导生成并遵循给定的结构。

推荐:

2. 构建向量存储

创建向量存储(构建非英文RAG(Retrieval-Augmented Generation)系统时,embedding很重要)是构建检索增强生成(Retrieval-Augmented Generation, RAG)管道的第一步。文档被加载、拆分,相关的片段被用来生成向量表示(嵌入),这些嵌入会被存储起来,以便在推理时使用。

  • 文档加载:文档加载器是方便的包装器,可以处理许多格式:PDF、JSON、HTML、Markdown等。它们还可以直接从一些数据库和API(如GitHub、Reddit、Google Drive等)中检索数据。

  • 文档拆分:文本拆分器将文档分解为更小的、语义上有意义的片段。与其按字符数拆分文本,不如按标题或递归拆分,同时附带一些额外的元数据。

  • 嵌入模型:嵌入模型将文本转换为向量表示。它允许更深入、更细致地理解语言,这对于执行语义搜索至关重要。

  • 向量数据库:向量数据库(如Chroma、Pinecone、Milvus、FAISS、Annoy等)旨在存储嵌入向量。它们能够高效地检索与查询最相似的数据,基于向量相似性。

推荐:

3. 检索增强生成(RAG)

通过RAG(RAG 系统从 POC 到生产应用:全面解析与实践指南),LLM可以从数据库中检索上下文文档,以提高其回答的准确性。RAG是一种流行的方法,可以在不进行微调的情况下增强模型的知识。

  • 协调器:协调器(如LangChain、LlamaIndex、FastRAG等)是流行的框架,用于将LLM与工具、数据库、记忆等连接起来,增强它们的能力。

  • 检索器:用户指令并不适合检索。不同的技术(例如多查询检索器、HyDE等)可以用来改写/扩展它们,以提高性能。

  • 记忆:为了记住之前的指令和回答,LLM和聊天机器人(如ChatGPT)会将其历史记录添加到上下文窗口中。这个缓冲区可以通过总结(例如使用较小的LLM)、向量存储+RAG等方式进行改进。

  • 评估:我们需要评估文档检索(上下文精确度和召回率)和生成阶段(忠实度和答案相关性)。可以使用Ragas和DeepEval等工具简化评估。

推荐:

4. 高级RAG

现实世界的应用可能需要复杂的管道,包括SQL或图数据库,以及自动选择相关的工具和API。这些高级RAG技术(选择合适自己的检索增强生成(RAG)技术:综合指南)可以改进基础解决方案,并提供额外的功能。

  • 查询构建:存储在传统数据库中的结构化数据需要特定的查询语言,如SQL、Cypher、元数据等。我们可以直接将用户指令翻译成查询语句,以便访问数据。

  • 代理和工具:代理通过自动选择最相关的工具来增强LLM,以提供答案。这些工具可以简单到使用Google或Wikipedia,也可以复杂到使用Python解释器或Jira。

  • 后处理:最后一步是对输入到LLM的内容进行处理。它通过重新排序、RAG融合和分类等技术增强检索文档的相关性和多样性。

  • 程序化LLM:像DSPy这样的框架允许基于自动化评估优化提示和权重,以程序化的方式进行。

推荐:

5. 推理优化

文本生成是一个成本高昂的过程,需要昂贵的硬件支持。除了量化技术外,还提出了多种方法来最大化吞吐量并降低推理成本(Google DeepMind研究员关于LLM推理讲座的深度解析(含原视频链接))。

  • Flash Attention:对注意力机制的优化,将其复杂度从二次方降低到线性,从而加速训练和推理过程。

  • 键值缓存:了解键值缓存以及在多查询注意力(MQA)和分组查询注意力(GQA)中引入的改进。

  • 推测性解码:使用小型模型生成草稿,然后由大型模型进行审核,从而加速文本生成。

推荐:

6. 部署LLM

大规模部署LLM是一项工程壮举,可能需要多个GPU集群。在其他情况下,演示和本地应用可以通过更低的复杂性实现。

  • 本地部署:隐私是开源LLM相对于私有LLM的重要优势。本地LLM服务器(如LM Studio、Ollama、oobabooga、kobold.cpp等)利用这一优势为本地应用提供支持。

  • 演示部署:像Gradio和Streamlit这样的框架有助于快速构建应用并分享演示。你还可以轻松地将它们托管在线上,例如使用Hugging Face Spaces。

  • 服务器部署:大规模部署LLM需要云(参见SkyPilot)或本地基础设施,并且通常会利用优化的文本生成框架,如TGI(Text Generation Inference)、vLLM等。

  • 边缘部署:在资源受限的环境中,高性能框架(如MLC LLM和mnn-llm)可以在网页浏览器、Android和iOS上部署LLM。

推荐:

7. 保障LLM的安全

除了传统软件相关的安全问题外,LLM由于其训练和提示的方式,还存在独特的弱点。

  • 提示攻击:与提示工程相关的不同技术,包括提示注入(附加指令以劫持模型的回答)、数据/提示泄露(检索其原始数据/提示)和越狱(精心设计提示以绕过安全功能)。

  • 后门攻击:攻击向量可以针对训练数据本身,通过污染训练数据(例如,加入虚假信息)或创建后门(秘密触发器以在推理时改变模型行为)。

  • 防御措施:保护LLM应用的最佳方法是对其进行漏洞测试(例如,使用红队测试和garak等工具)并在生产环境中进行监控(使用langfuse等框架)。

推荐:

相关推荐
程序猿000001号1 小时前
DeepSeek模型:开启人工智能的新篇章
人工智能·deepseek
梦云澜4 小时前
论文阅读(十四):贝叶斯网络在全基因组DNA甲基化研究中的应用
论文阅读·人工智能·深度学习
忆~遂愿6 小时前
3大关键点教你用Java和Spring Boot快速构建微服务架构:从零开发到高效服务注册与发现的逆袭之路
java·人工智能·spring boot·深度学习·机器学习·spring cloud·eureka
纠结哥_Shrek6 小时前
pytorch逻辑回归实现垃圾邮件检测
人工智能·pytorch·逻辑回归
辞落山6 小时前
自定义数据集,使用 PyTorch 框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测
人工智能·pytorch·逻辑回归
天宇琪云7 小时前
关于opencv环境搭建问题:由于找不到opencv_worldXXX.dll,无法执行代码,重新安装程序可能会解决此问题
人工智能·opencv·计算机视觉
deephub8 小时前
十大主流联邦学习框架:技术特性、架构分析与对比研究
人工智能·python·深度学习·机器学习·联邦学习
英国翰思教育9 小时前
留学毕业论文如何利用不同问题设计问卷
人工智能·深度学习·学习·算法·学习方法·论文笔记
gaoenyang7605259 小时前
探索高效图像识别:基于OpenCV的形状匹配利器
人工智能·opencv·计算机视觉