提示工程优化方法之一 zero shot

Zero-Shot Zero shot学习,也称为零样本学习(Zero-Shot Learning,简称ZSL),是一种机器学习范式,它允许模型在训练阶段从未见过的类别上进行预测和分类。这种学习方式特别适用于那些难以获取大量标注数据的领域,或者在面对罕见或未知类别时的场景。 在Zero shot学习中,模型通常会使用辅助信息,如类别的文本描述、属性或嵌入表示等,来理解在训练阶段未出现过的类别。这些辅助信息帮助模型建立起类别之间的语义联系,从而在没有直接样本的情况下也能进行有效的预测。 Use Emotional Language 使用情感语言 Assign a Role 分配角色 Define a Style 定义风格 #!/usr/bin/env python3 from pydantic import BaseModel import simple_llm_agent class Email(BaseModel): subject: str message: str client = simple_llm_agent.LlmAgent() def generate_email(subject, to, sender, tone): system_prompt = "You are a smart sesecretary" user_prompt = f""" Write an email about {subject} […] →Read more

ANEW 模型

A: Aspiration 理想 N: Neutral self-awareness 客观的自我评价 E: Endless curiosity 永无止境的好奇心 W: Willingness to be bad first 愿意从小白开始 →Read more

国产大模型的进步

同样的一个问题 提给 local codellama 模型 提给 deep seek 提给 openai 回答确实有高下之分, 可能我的本地模型比较小(codellama-7b), 不过国产 deepseek 与 openai 的差距不大 local codellama 的回答 Reactor 和 Proactor 是两种不同的设计模式,它们之间的主要区别在于处理 I/O 操作的方式。 Reactor 模式是一种事件驱动的模式,它将 I/O 操作视为事件,并将其与应用程序的业务逻辑进行集成。当 I/O 操作发生时,Reactor 会调度相应的处理函数来处理这些事件。这种模式通常用于基于消息的I/O系统中,如消息队列、消息总线等。 Proactor 模式是一种异步 I/O 模式,它将 I/O 操作视为异步任务,并将其与应用程序的业务逻辑进行集成。当 I/O 操作被调度时,Proactor 会立即返回,而不是等到 I/O 操作完成后再返回。这种模式通常用于需要快速处理大量的 I/O 操作的应用程序中,如文件服务器、网络服务器等。 在 Reactor 模式中,I/O 操作是事件驱动的,而在 Proactor 模式中,I/O 操作是异步任务驱动的。这意味着在 Reactor 模式中,应用程序需要一直等待 […] →Read more

利用 langchain 和 LLM 来给 PDF 做总结

在网上看到一个PDF, 讲的是 Gstreamer 的的动态管道的构建, 一瞥而过, 没时间细看, 通过 langchain 和 LLM 给它做个快速总结 代码如下 from langchain.document_loaders import UnstructuredPDFLoader from langchain.llms import OpenAI from langchain.chains import LLMChain from langchain.prompts import PromptTemplate # 加载 PDF 文件 pdf_loader = UnstructuredPDFLoader("path_to_your_pdf_file.pdf") documents = pdf_loader.load() # 获取 PDF 的纯文本内容 pdf_text = ' '.join([doc.page_content for doc in documents]) # 创建 LLM 对象 (使用 […] →Read more

挖矿病毒来势汹汹

病毒来了, 我的个人站点使用了 wordpress, 它的不知哪个漏洞让黑客攻入了我的站点 使用 top 命令看到了有不明进程始终占据了 100% 的 CPU 通过以下命令可以知道这个进程在哪里 sudo ls -l /proc/1118/cwd sudo ls -l /proc/$pid/exe sudo cat /proc/$pid/cmdline sudo cat /proc/1118/environ kill -9 $pid 没什么用, 一会儿它又起来了, 通过 ‘crontab -l’ 也没看到有 cronjob 存在, 不过可以断定它是通过 wordpress docker 的 php 进程侵入进来了, 于是更新 docker image, 删除 9000 端口映射, 重启 docker 进程, 暂时没有再发现有可疑进程 →Read more

90 天快速改变自己

世界上最可悲的人是只有视野却无愿景的人 — 海伦.凯勒 先问自己6个问题 我目前的状况 我在90天后的目标 我为什么要改进 我要怎么做才能达到目标 我要怎么做才能达到目标 我要怎么做才能达到目标 DMA – Difference-Making Action 每天早起第一件事, 打开手帐本或手机 Todo List APP 在最上方写下你当前最重要的目标 在下方写下数据 1 ~ 5 在 1 旁边写下为完成这个目标, 你今天所能做的最重要的事, 在 2 旁边写下第二重要的事, 以此类推 你如此有了一张清单, 列出了为完成目标你今天要做且能完成的 5 件最重要的事 写下上述 DMA 清单时要谨记 FUN 三要素 FUN First Priority First 要事优先 Under the main vision and current major objective 要事优先 […] →Read more

Ask LLM by program

What’s RAG RAG is a technique for augmenting LLM knowledge with additional data. RAG 是一种以额外数据来增强 LLM 知识的技术 以私有或者较新的知识插入到给模型的提示的过程就叫检索增强生成 Concepts Indexing Load: First we need to load our data. This is done with Document Loaders. 载入我们的知识 Split: Text splitters break large Documents into smaller chunks. This is useful both for indexing data and for passing it […] →Read more

5W1H8C1D

5W When Where Who What Why 1H How 8C(Constraint) Performance Cost Time Technology Reliability Security Compliance Compatibility 1D Data →Read more

如何通过知识图谱对大语言模型返回的结果做 RAG?

通过知识图谱(Knowledge Graph, KG)对大语言模型(LLM)返回的结果进行检索增强生成(Retrieval-Augmented Generation, RAG)可以提高生成内容的准确性和一致性。以下是一个概述如何实现这一目标的步骤: 1. 构建或使用现有的知识图谱 数据来源: 知识图谱通常由结构化数据(如关系数据库)、半结构化数据(如JSON、XML)、以及非结构化数据(如文档、网页)构建而成。 存储和查询: 可以使用Neo4j、Memgraph等图数据库来存储知识图谱,并通过Cypher或其他查询语言进行查询。 2. 结合知识图谱进行查询增强 查询扩展: 在用户发出查询后,使用知识图谱对查询进行扩展。例如,如果用户询问某一特定领域的问题,可以使用知识图谱扩展相关领域的概念和关系。 上下文检索: 在生成答案之前,使用知识图谱对相关上下文信息进行检索,这些信息可以包括实体之间的关系、属性、历史记录等。 3. 与大语言模型结合 预处理: 在将用户的查询输入大语言模型之前,先用知识图谱检索相关的上下文信息,并将这些信息附加到查询中,以增强模型的理解。 生成与验证: 大语言模型生成初步答案后,可以通过知识图谱对生成的内容进行验证和修正。例如,验证生成的实体关系是否正确,或对关键事实进行交叉验证。 后处理: 使用知识图谱进行后处理,以确保生成的结果与知识图谱中的已知事实一致。 4. 实现流程 用户查询: 接收到用户查询后,系统首先通过知识图谱检索相关实体和关系。 检索增强: 将检索到的信息与用户查询一起传递给大语言模型,增强生成过程。 结果验证: 对生成的结果进行验证,确保其与知识图谱中的信息一致。 结果返回: 将经过验证的答案返回给用户。 5. 技术实现 Python与图数据库: 使用Python脚本连接图数据库(如Neo4j),通过Cypher查询获取知识图谱中的信息。 与大语言模型集成: 使用Python库(如OpenAI的API)与大语言模型交互,将检索到的上下文信息传递给模型,并获取生成的答案。 6. 示例代码 下面是一个简单的Python示例,展示了如何结合Neo4j的知识图谱与OpenAI的大语言模型进行RAG: from neo4j import GraphDatabase import openai # 连接到Neo4j数据库 uri = “bolt://localhost:7687” […] →Read more