网站建设结束的售后服务十大网站建设服务商

张小明 2026/1/14 14:39:32
网站建设结束的售后服务,十大网站建设服务商,专门的网页制作工具有(),品牌平价网站建设探索DSPy的复合示例应用#xff0c;包括问答、情感分类、RAG系统等。 https://blog.csdn.net/liliang199/article/details/155860692 这里通过DSPy优化RAG prompt#xff0c;示例DSPy优化prompt过程。 1 定义RAG系统 1.1 定义LLM 首先是LLM模型设置#xff0c;这里配置LL…探索DSPy的复合示例应用包括问答、情感分类、RAG系统等。https://blog.csdn.net/liliang199/article/details/155860692这里通过DSPy优化RAG prompt示例DSPy优化prompt过程。1 定义RAG系统1.1 定义LLM首先是LLM模型设置这里配置LLM模型ollama/gemma3n:e2b示例代码如下。import dspy # 1. 配置语言模型 (这里以OpenAI为例需提前设置API密钥) lm dspy.LM(modelollama/gemma3n:e2b, api_basehttp://localhost:11434) dspy.configure(lmlm)1.2 定义检索器然后是定义检索器这里构建模拟知识库通过计算查询词在文档中出现的次数在匹配相关文档。实际项目中应该用真实向量数据库替代这里的基于频次的retriever文档匹配逻辑。示例代码如下所示。import dspy import json # 2. 构建模拟知识库实际项目中替换为真实向量数据库 class SimpleRetriever: 一个简单的内存检索器模拟向量数据库功能 def __init__(self, documents): # documents格式: [{text: ..., id: 1}, ...] self.documents documents def retrieve(self, query, k3): 简单关键词匹配检索实际应用应使用向量检索 query_lower query.lower() scored_docs [] for doc in self.documents: text doc[text].lower() # 简单评分计算查询词在文档中出现的次数 score sum(1 for word in query_lower.split()[0] if word in text) if score 0: scored_docs.append((score, doc[text])) # 按分数排序并返回前k个 scored_docs.sort(reverseTrue, keylambda x: x[0]) return [text for _, text in scored_docs[:k]] # 创建示例知识库你的实际文档数据 knowledge_base [ {id: 1, text: 爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。}, {id: 2, text: 光电效应是指当光照射到金属表面时会从金属中发射出电子的现象。这一发现对量子力学的发展至关重要。}, {id: 3, text: 阿尔伯特·爱因斯坦1879-1955是德裔理论物理学家相对论的创始人也是量子力学的重要奠基人之一。}, {id: 4, text: 诺贝尔物理学奖是根据阿尔弗雷德·诺贝尔的遗嘱设立的旨在表彰在物理学领域做出杰出贡献的科学家。}, {id: 5, text: 1921年的诺贝尔物理学奖颁奖典礼于1922年举行因为1921年没有候选人被认为符合获奖标准。}, ] # 初始化检索器 retriever SimpleRetriever(knowledge_base) question 什么是光电效应 num_passages 3 contexts retriever.retrieve(question, knum_passages) print(contexts)输出测试示例如下[爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。, 光电效应是指当光照射到金属表面时会从金属中发射出电子的现象。这一发现对量子力学的发展至关重要。, 阿尔伯特·爱因斯坦1879-1955是德裔理论物理学家相对论的创始人也是量子力学的重要奠基人之一。]1.3 定义RAG系统首先通过DSPy签名定义RAG系统的输入输出。即RAG系统输入: 问题上下文问题本身RAG的输出: 基于上下文给出简洁准确的答案。其次结合DSPy签名定义RAG模块比如在检索阶段如何获取相关文档在生成阶段基于检索到的上下文生成答案。最后返回答案包括context上下文answer答案原因reasoning。示例代码如下所示。# 3. 定义DSPy签名 class GenerateAnswer(dspy.Signature): 基于给定上下文回答问题。 context dspy.InputField(desc相关背景信息) question dspy.InputField() answer dspy.OutputField(desc简洁、准确的答案基于上下文) # 4. 构建RAG模块 class RAG(dspy.Module): def __init__(self, retriever, num_passages3): super().__init__() self.retriever retriever self.num_passages num_passages # 使用ChainOfThought让模型先推理再回答 self.generate_answer dspy.ChainOfThought(GenerateAnswer) def forward(self, question): # 1. 检索阶段获取相关文档 contexts self.retriever.retrieve(question, kself.num_passages) context_str \n---\n.join(contexts) # 2. 生成阶段基于检索到的上下文生成答案 prediction self.generate_answer( contextcontext_str, questionquestion ) # 返回完整结果 return dspy.Prediction( contextscontexts, answerprediction.answer, reasoningprediction.reasoning # ChainOfThought提供的推理过程 ) # 5. 初始化RAG系统 rag_system RAG(retriever, num_passages2) user_question 爱因斯坦在哪年获得诺贝尔奖 result rag_system(user_question) print(result)示例输出如下所示Prediction(contexts[爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。, 1921年的诺贝尔物理学奖颁奖典礼于1922年举行因为1921年没有候选人被认为符合获奖标准。],answer1921,reasoning根据上下文爱因斯坦在1921年获得诺贝尔物理学奖。上下文还提到1921年没有候选人被认为符合获奖标准但奖颁奖典礼在1922年举行。)2 RAG优化对比2.1 DSPy优化前RAG这里运行优化钱的RAG系统。# 6. 测试RAG系统 def test_rag_system(): 测试RAG系统的示例问题 test_questions [ 爱因斯坦因什么获得诺贝尔奖, 什么是光电效应, 谁创立了相对论 ] for question in test_questions: print(f\n{*60}) print(f问题: {question}) print(f{*60}) # 获取答案 result rag_system(question) # 打印检索到的上下文 print(检索到的上下文:) for i, ctx in enumerate(result.contexts, 1): print(f{i}. {ctx[:100]}...) # 只显示前100字符 # 打印推理过程如果有 if hasattr(result, reasoning) and result.reasoning: print(f\n模型推理: {result.reasoning}) # 打印最终答案 print(f\n最终答案: {result.answer}) print(RAG问答系统启动...) # 测试基础版本 test_rag_system()输出如下所示RAG问答系统启动...问题: 爱因斯坦因什么获得诺贝尔奖检索到的上下文:1. 爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。...2. 1921年的诺贝尔物理学奖颁奖典礼于1922年举行因为1921年没有候选人被认为符合获奖标准。...模型推理: The context states that Einstein received the Nobel Prize in Physics in 1921 for his contributions to theoretical physics, particularly for discovering the law of the photoelectric effect. The additional information mentions the award ceremony was held in 1922 because no candidate was deemed suitable for the award in 1921.最终答案: Einstein won the Nobel Prize in Physics for discovering the law of the photoelectric effect.问题: 什么是光电效应检索到的上下文:1. 爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。...2. 光电效应是指当光照射到金属表面时会从金属中发射出电子的现象。这一发现对量子力学的发展至关重要。...模型推理: 光电效应是指当光照射到金属表面时会从金属中发射出电子的现象。爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。最终答案: 光电效应是指当光照射到金属表面时会从金属中发射出电子的现象。问题: 谁创立了相对论检索到的上下文:1. 阿尔伯特·爱因斯坦1879-1955是德裔理论物理学家相对论的创始人也是量子力学的重要奠基人之一。...2. 爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。...模型推理: The context states that Albert Einstein was the founder of the theory of relativity.最终答案: Albert Einstein2.2 DSPy优化后RAG这里通过BootstrapFewShot优化RAG系统的提示。即通过准备少量训练例字和评估自理优化RA个系统的提示词。训练示例如下# 准备训练示例trainset [dspy.Example(question爱因斯坦的诺贝尔奖贡献是什么,contexts[爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。,光电效应是指当光照射到金属表面时会从金属中发射出电子的现象。],answer发现光电效应定律).with_inputs(question),dspy.Example(question谁创立了相对论,contexts[阿尔伯特·爱因斯坦1879-1955是德裔理论物理学家相对论的创始人。,爱因斯坦是相对论的创始人也是量子力学的重要奠基人之一。],answer阿尔伯特·爱因斯坦).with_inputs(question),]测试示例如下# 定义评估指标def validate_answer(example, prediction, traceNone):# 简单验证预测答案是否包含关键词correct_keywords {爱因斯坦的诺贝尔奖贡献是什么: [光电效应],谁创立了相对论: [爱因斯坦]}question example.questionif question in correct_keywords:return any(keyword in prediction.answer for keyword in correct_keywords[question])return True通过查看发现训练和测试例通过分析问题和问题上下文倾向于输出阶段凝练的信息。示例代码如下# 7. 优化RAG系统可选使用BootstrapFewShot def optimize_rag_system(): 使用少量示例优化RAG提示 from dspy.teleprompt import BootstrapFewShot # 准备训练示例 trainset [ dspy.Example( question爱因斯坦的诺贝尔奖贡献是什么, contexts[ 爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。, 光电效应是指当光照射到金属表面时会从金属中发射出电子的现象。 ], answer发现光电效应定律 ).with_inputs(question), dspy.Example( question谁创立了相对论, contexts[ 阿尔伯特·爱因斯坦1879-1955是德裔理论物理学家相对论的创始人。, 爱因斯坦是相对论的创始人也是量子力学的重要奠基人之一。 ], answer阿尔伯特·爱因斯坦 ).with_inputs(question), ] # 定义评估指标 def validate_answer(example, prediction, traceNone): # 简单验证预测答案是否包含关键词 correct_keywords { 爱因斯坦的诺贝尔奖贡献是什么: [光电效应], 谁创立了相对论: [爱因斯坦] } question example.question if question in correct_keywords: return any(keyword in prediction.answer for keyword in correct_keywords[question]) return True # 创建优化器 teleprompter BootstrapFewShot( metricvalidate_answer, max_bootstrapped_demos2, max_labeled_demos2 ) # 优化RAG系统 print(正在优化RAG系统...) optimized_rag teleprompter.compile(RAG(retriever), trainsettrainset) return optimized_rag user_question 爱因斯坦在哪年获得诺贝尔奖 opt_reg optimize_rag_system() result opt_reg(user_question) print(result)输出示例如下正在优化RAG系统...100%|██████████| 2/2 [00:5300:00, 26.74s/it]Bootstrapped 2 full traces after 1 examples for up to 1 rounds, amounting to 2 attempts.Prediction(contexts[爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。, 1921年的诺贝尔物理学奖颁奖典礼于1922年举行因为1921年没有候选人被认为符合获奖标准。, 阿尔伯特·爱因斯坦1879-1955是德裔理论物理学家相对论的创始人也是量子力学的重要奠基人之一。],answer1921,reasoningThe question asks for the year Albert Einstein received the Nobel Prize, based on the provided context. The context states that Einstein received the Nobel Prize in 1921 for his contributions to theoretical physics, particularly for discovering the photoelectric effect law. It also mentions that the award ceremony was held in 1922 because no candidates met the criteria in 1921. Therefore, the Nobel Prize was awarded in 1921.)2.3 DSPy优化后RAG测试这里用优化后的RAG系统opt_rag运行test_rag_system()的所有测试问题。测试代码示例如下。# 6. 测试RAG系统 def test_opt_rag_system(): 测试RAG系统的示例问题 test_questions [ 爱因斯坦因什么获得诺贝尔奖, 什么是光电效应, 谁创立了相对论 ] for question in test_questions: print(f\n{*60}) print(f问题: {question}) print(f{*60}) # 获取答案 result opt_reg(question) # 打印检索到的上下文 print(检索到的上下文:) for i, ctx in enumerate(result.contexts, 1): print(f{i}. {ctx[:100]}...) # 只显示前100字符 # 打印推理过程如果有 if hasattr(result, reasoning) and result.reasoning: print(f\n模型推理: {result.reasoning}) # 打印最终答案 print(f\n最终答案: {result.answer}) print(opt RAG问答系统启动...) # 测试优化版本 test_opt_rag_system()输出如下所示可见相比优化前的回答优化后RAG系统的回答更集中和简短凝练。opt RAG问答系统启动...问题: 爱因斯坦因什么获得诺贝尔奖检索到的上下文:1. 爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。...2. 1921年的诺贝尔物理学奖颁奖典礼于1922年举行因为1921年没有候选人被认为符合获奖标准。...3. 阿尔伯特·爱因斯坦1879-1955是德裔理论物理学家相对论的创始人也是量子力学的重要奠基人之一。...模型推理: The question asks what Albert Einstein was awarded the Nobel Prize for, based on the provided context. The context explicitly states that he received the Nobel Prize in 1921 for his contributions to theoretical physics, particularly for discovering the law of the photoelectric effect.最终答案: 光电效应定律问题: 什么是光电效应检索到的上下文:1. 爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。...2. 光电效应是指当光照射到金属表面时会从金属中发射出电子的现象。这一发现对量子力学的发展至关重要。...3. 阿尔伯特·爱因斯坦1879-1955是德裔理论物理学家相对论的创始人也是量子力学的重要奠基人之一。...模型推理: The question asks for a definition of the photoelectric effect, based on the provided context. The context defines the photoelectric effect as the phenomenon where electrons are emitted from a metal surface when light shines on it. It also states that this discovery is crucial for the development of quantum mechanics.最终答案: 当光照射到金属表面时会从金属中发射出电子的现象。问题: 谁创立了相对论检索到的上下文:1. 阿尔伯特·爱因斯坦1879-1955是德裔理论物理学家相对论的创始人也是量子力学的重要奠基人之一。...2. 爱因斯坦在1921年因对理论物理的贡献特别是发现光电效应定律而获得诺贝尔物理学奖。...3. 光电效应是指当光照射到金属表面时会从金属中发射出电子的现象。这一发现对量子力学的发展至关重要。...模型推理: The question asks who founded the theory of relativity. The context states that Albert Einstein is a theoretical physicist and the founder of the theory of relativity.最终答案: 阿尔伯特·爱因斯坦reference---如何用DSPy生成prompt示例https://blog.csdn.net/liliang199/article/details/155860692prompt自主生成框架 - DSPyhttps://blog.csdn.net/liliang199/article/details/155614507
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

资源网站源码下载望野是什么意思

Chromedriver兼容性测试报告通过VoxCPM-1.5-TTS-WEB-UI语音播报 在现代软件开发中,尤其是前端自动化测试领域,开发者常常面临一个看似微小却极具干扰性的问题:如何及时感知CI/CD流水线中的失败状态?当数百个测试用例在后台静默运行…

张小明 2026/1/7 18:21:33 网站建设

如何做企业网站推广产品网站开发推荐资料

TensorFlow分布式训练实战:提升GPU算力利用率 在现代AI工程实践中,一个再熟悉不过的场景是:昂贵的GPU集群长时间处于低负载状态,训练任务动辄耗时数十小时,团队被“模型跑得慢、资源用不满、问题难定位”所困扰。这背后…

张小明 2026/1/7 22:03:36 网站建设

网站布局评价wordpress封堵默认注册入口

PPTist:浏览器里的专业演示神器,让创意表达更简单 【免费下载链接】PPTist 基于 Vue3.x TypeScript 的在线演示文稿(幻灯片)应用,还原了大部分 Office PowerPoint 常用功能,实现在线PPT的编辑、演示。支持…

张小明 2026/1/7 17:31:14 网站建设

网站关键词选取的方法上海公关公司排行榜

P2014 [CTSC1997] 选课 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有 NNN 门功课,每门课有…

张小明 2026/1/7 17:39:09 网站建设

?]后台的网站可以备案吗正能量网站入口不用下载

还在为C盘变红而烦恼吗?WindowsCleaner这款专为Windows系统打造的开源清理工具,能够帮你快速释放磁盘空间,让电脑运行如飞!😊 本文将为你提供从下载到使用的完整操作流程,无论你是电脑小白还是资深玩家&…

张小明 2026/1/13 7:32:27 网站建设

phpcms 手机网站网站制作流程是什么

第一章:C语言在无人机传感器数据处理中的核心地位在现代无人机系统中,传感器数据的实时采集、解析与响应是保障飞行稳定性和任务执行精度的关键。C语言凭借其接近硬件的操作能力、高效的执行性能以及对内存的精细控制,在这一领域占据了不可替…

张小明 2026/1/7 17:08:53 网站建设