基于Langchain框架下Prompt工程调教大模型(LLM)[输入输出接口、提示词模板与例子选择器的协同应用
大家好,我是微学AI,今天给大家介绍一下基于Langchain框架下Prompt工程调教大模型(LLM)[输入输出接口、提示词模板与例子选择器的协同应用。本文深入探讨了Langchain框架下的Prompt工程在调教LLM(大语言模型)方面的应用,重点关注输入输出接口、提示词模板与例子选择器的协同工程。文章详细介绍了相关代码样例,并通过实际应用场景展示了这一技术在提高LLM性能和可用性方面的重要作用。本文旨在为研究人员和开发者提供在Langchain框架下高效利用Prompt工程进行LLM调教的实践指南。
文章目录
- 一、Langchain 框架下 Prompt 工程概述
- 1.1 Prompt 工程基础概念
- 1.1.1 Prompt 工程定义
- 1.1.2 Prompt 工程在Langchain框架中的地位
- 1.2 Prompt 工程与LLM输入输出接口的协同
- 1.2.1 输入输出接口的形式与工作原理
- 1.2.2 协同工作的机制
- 1.3 提示词模板与例子选择器的初步关联
- 1.3.1 提示词模板的构建方法
- 1.3.2 例子选择器的作用
- 二、输入输出接口详解
- 2.1 输入输出接口的具体形式与工作原理
- 2.1.1 输入接口解析
- 2.1.2 输出接口设计
- 2.2 输入输出接口与Prompt工程的协同
- 2.2.1 Prompt设计与接口互动
- 2.2.2 输出反馈循环优化
- 2.3 影响LLM性能的因素分析
- 2.3.1 提升响应速度与准确性
- 2.3.2 促进资源高效利用
- 2.3.3 强化可扩展性和灵活性
- 三、提示词模板与例子选择器
- 3.1 提示词模板:构造艺术与策略
- 3.1.1 提示词模板的类型与构建方法
- 3.1.2 提示词工程实践技巧
- 3.2 例子选择器:提升精准度的辅助神器
- 3.2.1 例子选择器的作用
- 3.2.2 实现有效的例子选择策略
- 3.2.3 例子选择器与Prompt模板的协同作用
- 四、代码样例展示
- 4.1 智能问答系统实现
- 4.1.1 简单问答示例
- 4.2 结合私域数据的定制化查询
- 4.2.1 数据集成与查询示例
- 4.3 提示词模板与例子选择器的高级应用
- 4.3.1 动态上下文注入
- 五、应用场景分析
- 5.1 非结构性文件对话
- 5.1.1 背景与挑战
- 5.1.2 具体应用
- 5.1.2.1 智能邮件分类与回复
- 5.1.2.2 社交媒体监测与分析
- 5.1.3 优势分析
- 5.2 结构性文件对话
- 5.2.1 应用场景
- 5.2.2 实际应用案例
- 5.2.2.1 数据库查询优化
- 5.2.2.2 业务报告自动化生成
- 5.2.3 优势凸显
一、Langchain 框架下 Prompt 工程概述
Prompt 工程作为人工智能领域的一项关键技术,在大型语言模型(LLMs)的应用中扮演着至关重要的角色。尤其是在Langchain框架的背景下,其重要性更是被提升到了新的高度。本文旨在深入浅出地解析Langchain框架下的Prompt工程,探讨其核心概念、架构地位,以及它如何与LLM的输入输出接口、提示词模板、例子选择器共同构建起一个高效、灵活的文本生成生态系统。
1.1 Prompt 工程基础概念
1.1.1 Prompt 工程定义
Prompt工程,简而言之,是一种系统化的方法论,用于设计、优化和管理向语言模型输入的提示(prompts),以引导模型产出高质量、领域特定的输出。这些提示可以是简单的句子、复杂的问题框架,甚至是结合了历史对话上下文的交互式指令。在Langchain框架内,Prompt工程不仅是技术实现的一部分,更是一种策略层面的设计思路,旨在最大化模型的潜力并确保输出内容的准确性和适用性。
1.1.2 Prompt 工程在Langchain框架中的地位
Langchain框架专注于为基于语言的人工智能应用提供一套完整的解决方案,它整合了数据处理、模型训练、推理服务等多个环节。Prompt工程在此框架中处于核心地位,相当于桥梁和指挥官的角色。它连接了用户意图与模型执行之间的鸿沟,通过精心设计的prompt指导LLMs完成指定任务,同时,它还负责优化模型响应,使之更加贴近实际需求和预期目标。
1.2 Prompt 工程与LLM输入输出接口的协同
在Langchain框架中,LLM的输入输出接口是Prompt工程得以实施的关键通道。这些接口不仅负责传输数据(即prompt本身和模型响应),还涉及一系列复杂的逻辑处理,确保prompt的有效构建与模型输出的精准解读。
1.2.1 输入输出接口的形式与工作原理
输入接口通常需要将人类语言或特定格式的数据转换为模型能够理解的格式。这一步可能涉及自然语言理解(NLU)、语义解析等技术。而输出接口则负责解析模型的原始输出,将其转化为结构化或直接可消费的信息,便于后续应用或反馈循环。
1.2.2 协同工作的机制
Prompt工程与这些接口紧密配合,通过定制化的输入设计来“引导”LLMs,使它们能够在特定情境下展现出最佳性能。例如,利用上下文感知的prompt设计,可以使模型在回答问题时考虑到之前的对话历史,从而提高连贯性和准确性。同时,输出接口的智能解析能力能进一步强化这一过程,确保模型的反应能够被准确无误地应用到实际场景中。
1.3 提示词模板与例子选择器的初步关联
Prompt工程的核心之一在于创造高效且可复用的提示词模板,以及智能化的例子选择机制。模板设计旨在抽象化常见任务模式,减少重复劳动并保证输出的一致性。而例子选择器则根据当前任务需求,从大量案例中筛选最合适的样本,为prompt提供实例支持,增强模型的泛化能力和个性化表现。
1.3.1 提示词模板的构建方法
模板可以基于特定领域的知识图谱、先前的成功案例或人工编写的逻辑结构来设计。通过变量插入、条件分支等动态元素,使得单个模板能够适应多种情况,提升效率的同时保持输出的多样性。
1.3.2 例子选择器的作用
例子选择器则是通过对历史数据的学习和分析,识别出能够最有效引导模型产生期望输出的案例。这种机制强调了数据质量和相关性的筛选,确保提供的每个例子都能对模型的训练或推断过程产生正面影响。Langchain框架下的Prompt工程是推动LLMs高效应用的关键驱动力。通过精细的prompt设计、高效的接口交互、以及智能化的模板与例子管理,这一工程不仅优化了模型的输出质量,还极大地扩展了语言模型在各行各业的应用边界。随着技术的不断进步,Prompt工程的潜力正逐渐被挖掘,为人工智能领域带来了前所未有的创新与变革。
二、输入输出接口详解
在Langchain框架下,大规模语言模型(LLM)的效能发挥依赖于高效的输入输出接口设计。这些接口不仅是信息交流的桥梁,也是连接LLM与外部世界的关键纽带。本节将深入探讨Langchain框架内LLM的输入输出接口特性、运作机制,及其与Prompt工程的协同互动方式,进一步剖析它们对提升LLM性能的影响。
2.1 输入输出接口的具体形式与工作原理
2.1.1 输入接口解析
输入接口在Langchain框架中扮演着信息接收者的角色,它负责将外部数据转化为适合LLM处理的格式。这通常涉及数据预处理步骤,比如文本标准化、分词、以及根据模型需求定制特定的输入结构。以JSON格式为例,一个典型的输入可能包含问题文本、历史对话记录、以及用户特定的元数据,确保LLM能够理解上下文并做出准确回应。
2.1.2 输出接口设计
输出接口则负责将LLM产生的复杂输出转换为应用可以理解并利用的形式。这一步骤可能包括解析模型返回的原始文本、提取关键信息、甚至转换为结构化数据。设计良好的输出接口应能有效过滤无关信息,凸显核心答案,有时还需支持多轮对话的上下文维护,确保与用户的交互流畅自然。
2.2 输入输出接口与Prompt工程的协同
2.2.1 Prompt设计与接口互动
Prompt工程的核心在于构建高效、启发式的提问方式(Prompt),引导LLM产生高质量回答。输入接口在此过程中需灵活调整,以适应不同的Prompt策略,如基于模板的Prompt、动态生成Prompt或结合用户历史的个性化Prompt。接口需确保这些精心设计的Prompt能被LLM准确解读,从而激发模型的最佳表现。
2.2.2 输出反馈循环优化
输出接口与Prompt工程的协同还体现在反馈循环的优化上。通过对LLM响应的评估和学习,Prompt工程可动态调整策略,这要求输出接口能够提供足够的反馈信息,如模型信心度、回答的相关性评分等。这种闭合回路不仅促进了Prompt策略的迭代进化,也间接提升了LLM的响应质量和用户体验。
2.3 影响LLM性能的因素分析
2.3.1 提升响应速度与准确性
高效输入输出接口能够显著减少数据处理延迟,加快信息流通速度,从而提升LLM的响应速度。同时,通过精确的数据映射和解析,接口有助于模型更准确地理解请求和生成有针对性的回答,增强整体性能。
2.3.2 促进资源高效利用
合理的接口设计还能有效管理计算资源,通过减少不必要的数据传输和处理,降低运行成本。特别是在大规模部署时,这一点尤为重要,它能确保LLM在面对高并发请求时仍能保持稳定的服务质量。
2.3.3 强化可扩展性和灵活性
接口的标准化与模块化设计增强了Langchain框架的可扩展性,便于接入更多类型的LLM和外部服务。这不仅为系统未来的发展预留了空间,也为 Prompt 工程的多样化实验和创新提供了坚实的基础。
Langchain框架下LLM的输入输出接口是连接技术与应用的关键一环,其设计精妙与否直接影响到Prompt工程的效率与效果。通过深入理解接口的工作原理、强化与Prompt工程的协同作业,我们可以最大化地挖掘LLM潜能,推动人工智能应用迈向新的高度。
三、提示词模板与例子选择器
在Langchain框架的Prompt工程中,提示词模板(Prompt Templates)与例子选择器(Example Selectors)作为核心组件,不仅直接影响着大规模语言模型(LLMs)的输出质量,还促进了模型理解和生成内容的精准度与创造性。本部分将深入探讨这两者的应用机制,强调它们在提升LLM交互效率与效果上的关键作用。
3.1 提示词模板:构造艺术与策略
3.1.1 提示词模板的类型与构建方法
提示词模板是精心设计的文本结构,用于引导LLMs产生特定类型的响应。这些模板依据功能与复杂度,可分为基础型、指令型、上下文注入型和多轮对话型等几种类型。
-
基础型模板简单明了,通常用于直接询问或请求信息,如“告诉我关于人工智能的最新进展”。
-
指令型模板则更加具体,旨在触发模型执行某项任务,例如“请将这段文本翻译成法语”。
-
上下文注入型模板通过引入背景信息增强回答的相关性和深度,如“考虑到当前全球经济状况,分析未来五年内科技股的投资前景”。
-
多轮对话型模板用于维持连续对话的连贯性,通过存储和引用之前交互的信息,构建更复杂的交流情境。
构建高效提示词模板需要遵循几个原则:明确性、简洁性、领域适应性及动态性。开发者应结合任务需求,灵活运用条件语句、变量插入及格式化字符串等技术,确保模板既具有一般性又不失针对性。
3.1.2 提示词工程实践技巧
-
个性化定制:针对不同应用场景,调整模板以符合特定目标群体的语言习惯和需求预期。
-
动态参数化:利用变量和占位符实现模板参数化,使得同一模板能服务于多样化的查询请求。
-
迭代优化:基于用户反馈和模型输出效果,不断调整模板设计,实施A/B测试来验证不同变体的效果。
3.2 例子选择器:提升精准度的辅助神器
3.2.1 例子选择器的作用
例子选择器是Prompt工程中的另一个重要组件,它负责从大量示例中筛选出最有助于当前任务的样本,以引导LLMs学习并模仿特定的输出风格或内容框架。其作用主要包括:
-
示范效应:向模型展示期望的输出格式和风格,提高生成内容的准确度和一致性。
-
减少偏误:通过精心挑选的正面例子,避免模型产生有偏见或不恰当的回应。
-
知识迁移:利用领域相关的示例,帮助模型快速掌握特定领域的术语和知识。
3.2.2 实现有效的例子选择策略
-
智能匹配:开发算法识别并选择与当前任务最为匹配的例子,考虑因素包括语境相似度、目标受众及任务类型。
-
多样性和平衡:确保所选例子覆盖广泛的情景,同时保持正反面示例的平衡,促进模型的全面学习。
-
实时更新:随着新数据的积累和用户反馈的接收,持续更新例子库,确保内容的新颖性和时效性。
3.2.3 例子选择器与Prompt模板的协同作用
在Prompt工程实践中,例子选择器与提示词模板相辅相成。一个精细构造的模板结合恰到好处的例子,可以极大提升LLM对复杂指令的理解力和执行能力。通过动态调整模板参数,并基于任务需求智能选取实例,Langchain框架下的Prompt工程得以在多种场景下发挥其最大效能,推动人机交互进入一个更高层次的智能化水平。
综上所述,提示词模板与例子选择器在Langchain框架下不仅是技术组件,更是提升LLM应用效果的关键策略。通过深入理解并熟练运用这些工具,开发者能够更好地驾驭大规模语言模型,开拓更加丰富和高效的人工智能应用领域。
四、代码样例展示
在本部分,我们将通过具体的代码实例来直观展示 Langchain 框架下 Prompt 工程的应用实践。这些实例将涵盖不同场景,旨在帮助读者理解 Prompt 工程如何与Langchain框架结合,实现智能化的任务处理。请注意,以下示例假设读者对Python编程有基础了解,并对Langchain库有一定的认识。
4.1 智能问答系统实现
4.1.1 简单问答示例
在这个场景中,我们将构建一个简单的问答系统,它能够基于用户提出的问题,从预先设定的知识库中检索相关信息并给出回答。
from langchain import LLMSession, PromptTemplate, LLMChain# 初始化LLM(这里以OpenAI的GPT-3为例)
llm = LLMSession(openai_api_key="YOUR_API_KEY")# 定义Prompt模板
template = """
用户问题: {question}请基于您的知识库提供简洁明了的回答:
"""
prompt = PromptTemplate(template=template, input_variables=["question"])# 创建LLMChain
llm_chain = LLMChain(llm=llm, prompt=prompt)# 用户提问
user_question = "谁是美国的第一任总统?"
response = llm_chain.run(question=user_question)print(response)
上述代码展示了如何使用PromptTemplate
定义问题的格式,并通过LLMChain
将用户的问题转化为模型可以理解的格式,最后获取并打印出模型的响应。
4.2 结合私域数据的定制化查询
4.2.1 数据集成与查询示例
在此示例中,我们将Langchain与私有数据库集成,实现对特定数据集的查询操作,比如查询公司内部产品信息。
from langchain.vectorstores import Chroma
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI# 初始化嵌入模型和数据库
embeddings = OpenAIEmbeddings(openai_api_key="YOUR_API_KEY")
db = Chroma(persist_directory="./my_db", embedding_function=embeddings)# 创建检索问答链
retriever = db.as_retriever(search_type="mmr")
llm = OpenAI(temperature=0)
qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=retriever)# 定制化查询
query = "我们公司最新产品的特点是什么?"
answer = qa.run(query)print(answer)
这里,我们首先使用Chroma
创建了一个向量数据库,用于存储和检索私域数据。通过RetrievalQA
链,我们可以针对特定问题从数据库中检索相关文档,然后由LLM生成答案,实现与私域数据的无缝对接。
4.3 提示词模板与例子选择器的高级应用
4.3.1 动态上下文注入
为了提高模型的应答质量,我们可以根据前一次交互的结果动态调整后续的提示语境。这通常涉及使用复杂的Prompt模板和例子选择逻辑。
from langchain.prompts import FewShotPromptTemplate
from langchain.prompts.example_selector import SemanticSimilarityExampleSelector
from langchain.prompts.example_selector import BaseExampleSelector
from langchain.chains import LLMChain# 假设已有训练数据
examples = [{"question": "...", "answer": "..."}, ...]example_selector = SemanticSimilarityExampleSelector(examples=examples,embeddings=OpenAIEmbeddings(openai_api_key="YOUR_API_KEY"),k=2
)few_shot_prompt = FewShotPromptTemplate(example_selector=example_selector,examples=[],example_prompt=PromptTemplate(input_variables=["question", "answer"], template="{question}\n{answer}"),prefix="基于之前的知识,请回答如下问题:\n",suffix="问题: {input}",input_variables=["input"],
)# 创建链
llm_chain = LLMChain(prompt=few_shot_prompt, llm=OpenAI())# 查询
query = "解释量子计算的基本原理。"
response = llm_chain.run(input=query)print(response)
此段代码展示了如何使用FewShotPromptTemplate
动态地根据输入问题的语义相似度,从历史示例中选取最相关的案例作为上下文,从而增强生成的答案的相关性和准确性。
通过以上代码示例,我们不仅展现了Langchain框架下Prompt工程的灵活性和强大功能,还展示了它如何在实际应用中简化复杂的人工智能开发流程,促进高效的问题解决和知识管理。每段代码都体现了Langchain在不同场景下,通过精心设计的Prompt策略,有效提升LLMs应用的实用性和智能水平。
五、应用场景分析
Prompt 工程作为Langchain框架的核心组件之一,其灵活性和可扩展性使其能够在多种复杂场景中发挥关键作用,不仅限于文本生成或问答,更深入到信息检索、数据分析乃至决策支持等多个领域。本部分将深入探讨Langchain框架下Prompt工程在非结构性文件对话与结构性文件对话中的应用实例及其显著优势。
5.1 非结构性文件对话
5.1.1 背景与挑战
非结构性文件,如电子邮件、报告、社交媒体帖子等,通常包含大量自由格式的信息,缺乏统一的数据结构。处理这类数据时,理解上下文、识别意图及提取关键信息成为首要挑战。Prompt工程在此情境下通过精心设计的提示词模板与例子选择策略,引导语言模型准确解读非结构化数据,提升响应质量和效率。
5.1.2 具体应用
5.1.2.1 智能邮件分类与回复
在企业邮件管理中,Prompt工程能够辅助构建自动分类系统,通过学习历史邮件样本,自动生成分类标签并提供标准回复建议。例如,针对客户投诉邮件,系统不仅能够迅速识别其为“投诉”类别,还能基于过往成功案例生成个性化的安抚和解决方案提议,缩短响应时间并提高客户满意度。
5.1.2.2 社交媒体监测与分析
对于品牌而言,社交媒体上的用户反馈是宝贵的数据来源。Prompt工程可用于分析社交媒体帖子的情感倾向、主题分类及趋势预测,通过定制化提示模板聚焦特定话题或情绪,帮助企业快速把握市场动态和消费者情绪,制定针对性营销策略。
5.1.3 优势分析
- 上下文理解深度:通过精细设计的提示,有效引导模型深入理解非结构化数据中的复杂语境。
- 响应质量提升:精准匹配用户需求,生成高质量回复,减少人工审核与修改的需求。
- 个性化服务增强:依据历史交互和用户特性,提供更加个性化的信息处理与反馈方案。
5.2 结构性文件对话
5.2.1 应用场景
结构性文件,如数据库记录、电子表格等,含有明确的数据结构和格式。Prompt工程在此类对话中的应用侧重于高效的数据查询、解析与汇总。
5.2.2 实际应用案例
5.2.2.1 数据库查询优化
Prompt工程可以被用来优化数据库查询过程。通过对SQL查询语句的自然语言转译,使非技术用户也能轻松执行复杂查询。例如,用户只需以自然语言表述“找出去年销售额超过$1M的所有产品”,Prompt工程即能自动转换为相应的SQL指令,实现数据的快速提取。
5.2.2.2 业务报告自动化生成
在企业环境中,定期的业务报告撰写耗时费力。借助Prompt工程,可以根据预设的报告结构和指标,自动从ERP系统中抽取数据,生成结构化的报告初稿,包括KPI分析、趋势图展示等,极大提高工作效率。
5.2.3 优势凸显
- 易用性增强:降低技术门槛,允许非编程人员通过自然语言完成高级数据操作。
- 效率提升:自动化处理数据提取与报告编制,减少人力成本和错误率。
- 决策支持强化:快速整合多源数据,为管理层提供及时、准确的决策依据。
Langchain框架下的Prompt工程凭借其在非结构化与结构化文件对话中的灵活应用,不仅提升了人机交互的智能化水平,也极大地促进了信息处理的效率与质量,展现了其在多元化应用场景中的强大潜力和实际价值。
相关文章:

基于Langchain框架下Prompt工程调教大模型(LLM)[输入输出接口、提示词模板与例子选择器的协同应用
大家好,我是微学AI,今天给大家介绍一下基于Langchain框架下Prompt工程调教大模型(LLM)[输入输出接口、提示词模板与例子选择器的协同应用。本文深入探讨了Langchain框架下的Prompt工程在调教LLM(大语言模型)方面的应用,…...
Vue基于vue-office实现docx、xlsx、pdf文件的在线预览
文章目录 1、vue-office概述2、效果3、实现3.1 安装3.2 使用示例3.2.1 docx文档的预览3.2.2 excel文档预览3.2.3 pdf文档预览1、vue-office概述 vue-office是一个支持多种文件(docx、.xlsx、pdf)预览的vue组件库,支持vue2和vue3。 功能特色: 一站式:提供docx、.xlsx、pdf多…...

哪个软件可以在线编辑ppt? 一口气推荐5个做ppt的得力助手!
日常在制作ppt时,你是否经常遇到这些问题,ppt做到一半,电脑突然死机,来不及保存的ppt付之一炬,分分钟让人原地崩溃…… 好在许多团队也在持续跟进这个问题,给出了一个一劳永逸的最佳方案——PPT在线编辑&a…...
Django学习笔记九:Django中间件Middleware
Django中间件(Middleware)是一段在Django的请求/响应处理过程中,可以介入并改变请求或响应的代码。中间件是Django框架中一个非常强大的功能,它允许你在Django的视图函数之前或之后执行自定义代码。 中间件可以用于: …...

原来自媒体高手都是这样选话题的,活该人家赚大钱,真后悔知道晚了
做自媒体,话题是战略,内容是战术。 战略是要做正确的事情,战术是如何正确地做事。 如果战略上错误,战术上再勤奋努力都无济于事。 《孙子兵法》有云:“胜者先胜而后求战,败者先战而后求胜。” 相信很多…...

胤娲科技:AI绘梦师——一键复刻梵高《星空》
想象一下,你手中握有一张梵高的《星空》原图,只需轻轻一点,AI便能化身绘画大师,一步步在画布上重现那璀璨星河。 这不是科幻电影中的桥段,而是华盛顿大学科研团队带来的“Inverse Painting”项目,正悄然改变…...

第18课-C++继承:探索面向对象编程的复用之道
一、引言 C 作为一种强大的编程语言,继承机制在面向对象编程中扮演着至关重要的角色。它允许开发者基于已有的类创建新的类,从而实现代码的复用和功能的扩展。然而,继承的概念和使用方法并非一目了然,特别是在处理复杂的继承关系时…...

麒麟V10系统下的调试工具(网络和串口调试助手)
麒麟V10系统下的调试工具(网络和串口调试助手) 1.安装网络调试助手mnetassist arm64-main ①在linux下新建一个文件夹 mkdir /home/${USER}/NetAssist②将mnetassist arm64-main.zip拷贝到上面文件夹中,并解压给权限 cd /home/${USER}/Ne…...
ssh封装上传下载
pip install paramiko import paramikoclass SSHClient:def __init__(self, host, port, username, password):self.host = hostself.port = portself.username = usernameself.password = passwordself.ssh = Noneself.sftp = Nonedef connect(self):"""连接到…...

018_FEA_Structure_Static_in_Matlab结构静力学分析
刹车变形分析 本示例展示了如何使用 MATLAB 软件进行刹车变形分析。 这个例子是Matlab官方PDE工具箱的第一个例子,所需要的数据文件都由Matlab提供,包括CAD模型文件。 步骤 1: 导入 CAD 模型 导入 CAD 模型,这里使用的是一个带有孔的支架模…...

网页打不开、找不到服务器IP地址
现象:网络连接ok,软件能正常使用,当网页打不开。 原因:DNS 配置错误导致网站域名无法正确解析造成。 影响DNS设置的:VPN软件、浏览器DNS服务选择、IPv4属性被修改。 1、VPN代理未关闭 2、浏览器DNS解析选择 3、以太…...

RUM性能优化之图片加载
作者:三石 在现代Web开发中,图片作为内容表达的核心元素,其加载效率直接影响到页面的整体性能和用户体验。随着高清大图和动态图像的普及,优化图片加载变得尤为重要。RUM作为一种主动监测技术,能够帮助开发者从真实用户…...

【Java】—— 泛型:泛型的理解及其在集合(List,Set)、比较器(Comparator)中的使用
目录 1. 泛型概述 1.1 生活中的例子 1.2 泛型的引入 2. 使用泛型举例 2.1 集合中使用泛型 2.1.1 举例 2.1.2 练习 2.2 比较器中使用泛型 2.2.1 举例 2.2.2 练习 1. 泛型概述 1.1 生活中的例子 举例1:中药店,每个抽屉外面贴着标签 举例2&…...

【Python】selenium遇到“InvalidArgumentException”的解决方法
在使用try……except 的时候捕获到这个错误: InvalidArgumentException: invalid argument (Session info: chrome112.0.5614.0) 这个错误代表的是,当传入的参数不符合期望时,就会抛出这个异常: InvalidArgumentException: invali…...

RT-DETR改进策略:BackBone改进|CAFormer在RT-DETR中的创新应用,显著提升目标检测性能
摘要 在目标检测领域,模型性能的提升一直是研究者和开发者们关注的重点。近期,我们尝试将CAFormer模块引入RT-DETR模型中,以替换其原有的主干网络,这一创新性的改进带来了显著的性能提升。 CAFormer,作为MetaFormer框架下的一个变体,结合了深度可分离卷积和普通自注意力…...

【YOLOv11】ultralytics最新作品yolov11 AND 模型的训练、推理、验证、导出 以及 使用
目录 一 ultralytics公司的最新作品YOLOV11 1 yolov11的创新 2 安装YOLOv11 3 PYTHON Guide 二 训练 三 验证 四 推理 五 导出模型 六 使用 文档:https://docs.ultralytics.com/models/yolo11/ 代码链接:https://github.com/ultralytics/ult…...

动态规划——多状态动态规划问题
目录 一、打家劫舍 二、打家劫舍 II 三、删除并获得点数 四、粉刷房子 五、买卖股票的最佳时机含冷冻期 六、买卖股票的最佳时机含手续费 七、买卖股票的最佳时机III 八、买卖股票的最佳时机IV 一、打家劫舍 打家劫舍 第一步:确定状态表示 当我们每次…...
leetcode-10/9【堆相关】
1.数组中的第K个最大元素【215】 思路: 1.1.要使得时间复杂度为O(n),自己实现大顶堆,通过K次调整,顶部元素就是想要的第K个最大元素 1.2.实现大顶堆的过程中,先建堆,建堆是利用递归,本…...
自然语言处理问答系统:技术进展、应用与挑战
自然语言处理问答系统:技术进展、应用与挑战 自然语言处理(NLP)作为人工智能领域的一个重要分支,旨在使计算机能够理解和生成人类语言。问答系统(Q&A System),作为NLP的一个重要应用&#…...

向量数据库!AI 时代的变革者还是泡沫?
向量数据库!AI 时代的变革者还是泡沫? 前言一、向量数据库的基本概念和原理二、向量数据库在AI中的应用场景三、向量数据库的优势和挑战四、向量数据库的发展现状和未来趋势五、向量数据库对AI发展的影响 前言 数据是 AI 的核心,而向量则是数…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...