- 博客(101)
- 收藏
- 关注
原创 使用LangChain访问个人数据第八章-总结
让我们快速回顾本部分的主要内容:使用 LangChain 的多种文档加载器,从不同源导入各类数据。将文档分割为语义完整的文本块,并讨论了其中的一些微妙之处。为这些块创建了 Embedding,并将它们放入向量存储器中,并轻松实现语义搜索。讨论了语义搜索的一些缺点,以及在某些边缘情况中可能会发生的搜索失败。介绍多种高级检索算法,用于克服那些边缘情况。与 LLMs 相结合,将检索结果与问题传递给 LLM ,生成对原始问题的答案。对对话内容进行了补全,创建了一个完全功能的、端到端的聊天机器人。
2024-08-05 09:35:35
535
1
原创 使用LangChain访问个人数据第七章-聊天
"""该函数用于加载 PDF 文件,切分文档,生成文档的嵌入向量,创建向量数据库,定义检索器,并创建聊天机器人实例。参数:file (str): 要加载的 PDF 文件路径。chain_type (str): 链类型,用于指定聊天机器人的类型。k (int): 在检索过程中,返回最相似的 k 个结果。返回:qa (ConversationalRetrievalChain): 创建的聊天机器人实例。"""# 载入文档# 切分文档# 定义 Embeddings# 根据数据创建向量数据库。
2024-08-05 09:33:46
1361
原创 使用LangChain访问个人数据第六章-问答
需要学习提示词工程的同学请看需要学习ChatGPT的同学请查看需要学习LangChian开发的同学请查看本部分前几个章节请查看。
2024-08-04 10:26:10
1045
原创 使用LangChain访问个人数据第五章-检索
今天的课程涵盖了向量检索的多项新技术,让我们快速回顾关键要点:MMR 算法可以实现兼具相关性与多样性的检索结果,避免信息冗余。定义元数据字段可以进行针对性过滤,提升匹配准确率。SelfQueryRetriever 模块通过语言模型自动分析语句,提取查询字符串与过滤条件,无需手动设置,使检索更智能。ContextualCompressionRetriever 实现压缩检索,仅返回与问题相关的文档片段,可以大幅提升效率并节省计算资源。
2024-08-04 10:23:58
837
原创 使用LangChain访问个人数据第四章-向量数据库与词向量
需要学习提示词工程的同学请看需要学习ChatGPT的同学请查看需要学习LangChian开发的同学请查看本部分前几个章节请查看。
2024-08-03 10:41:39
991
原创 使用LangChain访问个人数据第三章-文档分割
分块的目的是把具有上下文的文本放在一起,我们可以通过使用指定分隔符来进行分隔,但有些类型的文档(例如 Markdown )本身就具有可用于分割的结构(如标题)。Markdown 标题文本分割器会根据标题或子标题来分割一个 Markdown 文档,并将标题作为元数据添加到每个块中。
2024-08-03 10:38:54
1095
原创 使用LangChain访问个人数据第二章-文档加载
需要学习提示词工程的同学请看需要学习ChatGPT的同学请查看需要学习LangChian开发的同学请查看本部分前几个章节请查看。
2024-08-02 10:24:10
1331
原创 使用LangChain访问个人数据第一章-简介
欢迎来到《第四部分:使用 LangChain 访问个人数据》!本课程基于 LangChain 创始人哈里森·蔡斯 (Harrison Chase)与 Deeplearning.ai 合作开发的 《LangChain Chat With your Data》课程,将介绍如何利用 LangChain 框架,使语言模型访问并应用用户自有数据的强大能力。
2024-08-02 10:21:56
1013
原创 基于 LangChain 开发应用程序第八章-总结
本单元教程涵盖了一系列使用 LangChain 构建语言模型应用的实践,包括处理用户评论、基于文档问答、寻求外部知识等。强大的LangChain通过这一系列案例,我们可以深刻体会到 LangChain 极大简化并加速了语言模型应用开发。过去需要数周才能实现的功能,现在只需极少量的代码即可通过 LangChain 快速构建。LangChain已成为开发大模型应用的有力范式,希望大家拥抱这个强大工具,积极探索更多更广泛的应用场景。不同组合,更多可能性。
2024-08-01 09:46:42
243
原创 基于 LangChain 开发应用程序第七章-代理
在本节,我们将创建和使用自定义时间工具。LangChian tool 函数装饰器可以应用用于任何函数,将函数转化为LangChain 工具,使其成为代理可调用的工具。我们需要给函数加上非常详细的文档字符串, 使得代理知道在什么情况下、如何使用该函数/工具。比如下面的函数time,我们加上了详细的文档字符串。# 导入tool函数装饰器@tool"""返回今天的日期,用于任何需要知道今天日期的问题。输入应该总是一个空字符串,\这个函数将总是返回今天的日期,任何日期计算应该在这个函数之外进行。"""
2024-08-01 09:44:52
971
原创 如何从PyTorch迁移到MindSpore
相信做AI开发的小伙伴,有一大半用的都是PyTorch.我之前也是一直用PyTorch做开发。上个月参加了华为昇思25天打卡营,官方提供了充足的算力支持,几乎是不限时间不限量的那种,也让我体验了一把算力自由,好好感受了一番昇思框架。昇思真的是很好用的国产AI框架,但是因为之前的开发都是基于PyTorch的,所以打卡营结束后花时间研究了一下如何从PyTorch迁移到昇思,整理成文章,既是帮自己做个归纳整理,也希望能帮到有类似需求的小伙伴。关于昇思框架的介绍,就不多提了。
2024-07-31 11:57:29
698
原创 基于 LangChain 开发应用程序第五章-基于文档的问答
需要学习提示词工程的同学请看需要学习ChatGPT的同学请查看本部分之前的章节可以查看。
2024-07-30 10:35:05
607
原创 基于 LangChain 开发应用程序第四章-模型链
首先,我们定义提示适用于不同场景下的提示模板。# 中文 #第一个提示适合回答物理问题 physics_template = """你是一个非常聪明的物理专家。你擅长用一种简洁并且易于理解的方式去回答问题。当你不知道问题的答案时,你承认\你不知道.这是一个问题:{input}""" #第二个提示适合回答数学问题 math_template = """你是一个非常优秀的数学家。你擅长回答数学问题。你之所以如此优秀, \是因为你能够将棘手的问题分解为组成部分,\
2024-07-30 10:32:28
1006
原创 基于 LangChain 开发应用程序第三章-储存
对话摘要缓存储存,使用 LLM 对到目前为止历史对话自动总结摘要,并将其保存下来。我们创建了一个长字符串,其中包含某人的日程安排。# 创建一个长字符串schedule = "在八点你和你的产品团队有一个会议。你需要做一个PPT。上午9点到12点你需要忙于LangChain。Langchain是一个有用的工具,因此你的项目进展的非常快。中午,在意大利餐厅与一位开车来的顾客共进午餐 \走了一个多小时的路程与你见面,只为了解最新的 AI。确保你带了笔记本电脑可以展示最新的 LLM 样例."
2024-07-29 09:40:17
809
原创 基于 LangChain 开发应用程序第二章-提示和输出
需要学习提示词工程的同学请看需要学习ChatGPT的同学请查看本部分之前的章节可以查看。
2024-07-29 09:35:37
1013
原创 基于 LangChain 开发应用程序第一章-简介
欢迎来到《第三部分:基于 LangChain 开发应用程序》!本教程由 LangChain 创始人 Harrison Chase 与 DeepLearning.AI 合作推出,旨在帮助大家掌握这个强大的大语言模型应用开发框架。
2024-07-28 11:17:30
489
原创 搭建基于 ChatGPT 的问答系统第六章-链式输入
在设计提示链时,我们并不需要也不建议将所有可能相关信息一次性全加载到模型中,而是采取动态、按需提供信息的策略,原因如下:过多无关信息会使模型处理上下文时更加困惑。尤其是低级模型,处理大量数据会表现衰减。模型本身对上下文长度有限制,无法一次加载过多信息。包含过多信息容易导致模型过拟合,处理新查询时效果较差。动态加载信息可以降低计算成本。允许模型主动决定何时需要更多信息,可以增强其推理能力。我们可以使用更智能的检索机制,而不仅是精确匹配,例如文本 Embedding 实现语义搜索。
2024-07-26 09:58:54
1378
原创 搭建基于 ChatGPT 的问答系统第二章-提问范式与Token
需要学习提示词工程的同学请看这一章这是搭建ChatGP问答系统第二章,第一章内容请查看在本章中,我们将和您分享大型语言模型(LLM)的工作原理、训练方式以及分词器(tokenizer)等细节对 LLM 输出的影响。我们还将介绍 LLM 的提问范式(chat format),这是一种指定系统消息(system message)和用户消息(user message)的方式,让您了解如何利用这种能力。
2024-07-24 11:32:34
947
原创 华为昇思MindSpore和昇腾AI介绍
本节将会整体介绍昇思MindSpore和华为昇腾AI全栈,并介绍昇思MindSpore在华为昇腾AI全栈中的位置。对昇思MindSpore感兴趣的开发者,最后可以参与昇思MindSpore的社区并一键三连。昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景统一部署三大目标。其中,易开发表现为API友好、调试难度低;高效执行包括计算效率、数据预处理效率和分布式训练效率;全场景则指框架同时支持云、边缘以及端侧场景。ModelZoo(模型库)
2024-07-23 11:43:31
937
原创 搭建基于 ChatGPT 的问答系统第一章-综述
强大的指令理解能力、自然语言生成能力是 LLM 的核心,支持了 LLM 以类人的方式去思考、执行并完成用户任务。通过代码实践,实现了基于 ChatGPT 开发问答系统的全流程,介绍了基于大模型开发的新范式,值得每一个有志于使用大模型开发应用程序的开发者学习。学习这一部分,应当充分演练所提供的代码,做到自我复现并能够结合个人兴趣、特长对所提供的代码进行增添、更改,实现一个更个性化、定制化的问答系统。》的基础上,指导开发者如何基于 ChatGPT 提供的 API 开发一个完整的、全面的智能问答系统。
2024-07-23 09:56:49
719
原创 面向开发者的提示词工程第八章-聊天机器人
此处我们另外要求模型创建一个 JSON 摘要,方便我们发送给订单系统。因此我们需要在上下文的基础上追加另一个系统消息,作为另一条指示 (instruction)。披萨,包括尺寸配料列表饮料列表辅菜列表,包括尺寸,总价格。此处也可以定义为用户消息,不一定是系统消息。请注意,这里我们使用了一个较低的温度,因为对于这些类型的任务,我们希望输出相对可预测。'''创建上一个食品订单的 json 摘要。
2024-07-22 10:27:35
882
原创 面向开发者的提示词工程第七章-文本扩展
举个例子,在某一上下文中,语言模型可能认为“比萨”是接下来最可能的词,其次是“寿司”和“塔可”。一般来说,如果需要可预测、可靠的输出,则将 temperature 设置为0,在所有课程中,我们一直设置温度为零;是大语言模型的一个重要应用方向,它可以输入简短文本,生成更加丰富的长文。在下面例子中,针对同一段来信,我们提醒语言模型使用用户来信中的详细信息,并设置一个较高的 temperature ,运行两次,比较他们的结果有何差异。温度为0时,每次使用同样的 Prompt,得到的结果总是一致的。
2024-07-21 10:29:16
1158
原创 面向开发者的提示词工程第六章-文本转换
通过在大规模高质量平行语料上进行 Fine-Tune,大语言模型可以深入学习不同语言间的词汇、语法、语义等层面的对应关系,模拟双语者的转换思维,进行意义传递的精准转换,而非简单的逐词替换。输入一段关于熊猫玩偶的评价文字,语言模型会自动校对文本中的语法错误,输出修改后的正确版本。总的来说,这是一款不错的熊猫玩具,值得购买。利用大语言模型翻译,我们能够打通多语言之间的壁垒,进行更加高质量的跨语言交流。大语言模型具有强大的文本转换能力,可以实现多语言翻译、拼写纠正、语法调整、格式转换等不同类型的文本转换任务。
2024-07-21 10:24:04
915
原创 开源项目有哪些机遇与挑战?
开源项目作为一种新型的软件开发模式,近年来在全球范围内得到了广泛关注和快速发展。本文将从开源项目的发展趋势、参与开源的经验分享以及开源项目的挑战三个角度,探讨开源项目的机遇与挑战。
2024-07-20 09:22:53
358
原创 李彦宏的“不要卷模型,要卷应用”:从AI发展现状到未来趋势
7月4日,2024世界人工智能大会暨人工智能全球治理高级别会议全体会议在上海世博中心举办。在产业发展主论坛上,百度创始人、董事长兼首席执行官李彦宏呼吁:“大家不要卷模型,要卷应用!”李彦宏认为,AI技术已经从辨别式转向了生成式,但技术本身并不是目的,真正的价值在于如何将这些技术应用于实际场景,解决实际问题。并且提醒大家避免掉入“超级应用陷阱”,即过分追求用户日活跃量(DAU)而忽视了应用的实际效果和产业价值。
2024-07-20 09:19:08
355
原创 面向开发者的提示词工程第五章-推断
LLM 的一个明显优点是,对于许多这样的任务,你只需要编写一个 Prompt,就可以开始生成结果,大大减轻了你的工作负担。因为如果有人真的情绪激动,那可能就意味着需要给予额外的关注,因为每一个愤怒的顾客都是一个改进服务的机会,也是一个提升公司口碑的机会。在接下来的示例中,我们将要求模型识别两个关键元素:购买的商品和商品的制造商。想象一下,如果你正在尝试分析一个在线电商网站上的众多评论,了解评论中提到的商品是什么、由谁制造,以及相关的积极或消极情绪,将极大地帮助你追踪特定商品或制造商在用户心中的情感趋势。
2024-07-19 10:44:43
1120
原创 生成式 AI 的发展方向
生成式人工智能(Generative AI)是近年来人工智能领域的一个热门话题。它通过学习大量的数据,能够生成新的、以前未见过的内容。这种技术在多个领域展现出巨大的潜力,包括文本生成、图像创作、音乐创作等。生成式AI的核心在于其创造性和灵活性,能够模拟人类的创造力和想象力。随着技术的进步,生成式AI的应用场景也在不断扩展,从简单的内容生成到复杂的决策辅助,其影响深远。
2024-07-19 10:10:40
367
原创 面向开发者的提示词工程第四章-文本概括
在1.2节中,虽然我们通过添加关键角度侧重的 Prompt ,确实让文本摘要更侧重于某一特定方面,然而,我们可以发现,在结果中也会保留一些其他信息,比如偏重价格与质量角度的概括中仍保留了“快递提前到货”的信息。例如,在商品评论文本中,物流部门可能更专注于运输的时效性,商家则更关注价格和商品质量,而平台则更看重整体的用户体验。当然,在实际生产中,对于不同规模的评论文本,除了使用。通过输出的结果,我们可以看到,文本以“可爱的熊猫公仔,质量好但有点小,价格稍高”开头,体现了对于产品价格与质量的侧重。
2024-07-18 10:53:29
836
原创 昇思25天学习打卡营第二十五天|SSD目标检测
SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测试集上,SSD对于输入尺寸300x300的网络,达到74.3%mAP(mean Average Precision)以及59FPS;对于512x512的网络,达到了76.9%mAP ,超越当时最强的Faster RCNN(73.2%mAP)。具体可参考论文[1]。
2024-07-18 09:02:07
792
原创 面向开发者的提示词工程第三章-迭代优化
本章重点讲解了在开发大语言模型应用时,采用迭代方式不断优化 Prompt 的过程。作为 Prompt 工程师,关键不是一开始就要求完美的 Prompt,而是掌握有效的 Prompt 开发流程。具体来说,首先编写初版 Prompt,然后通过多轮调整逐步改进,直到生成了满意的结果。对于更复杂的应用,可以在多个样本上进行迭代训练,评估 Prompt 的平均表现。在应用较为成熟后,才需要采用在多个样本集上评估 Prompt 性能的方式来进行细致优化。因为这需要较高的计算资源。
2024-07-17 10:43:52
1084
原创 昇思25天学习打卡营第二十四天|ShuffleNet图像分类
ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端,所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操作:Pointwise Group Convolution和Channel Shuffle,这在保持精度的同时大大降低了模型的计算量。因此,ShuffleNetV1和MobileNet类似,都是通过设计更高效的网络结构来实现模型的压缩和加速。
2024-07-17 09:44:50
1132
原创 面向开发者的提示词工程第二章-提示原则
的方式表达您的需求。相反,我们可以在 Prompt 中先要求语言模型自己尝试解决这个问题,思考出自己的解法,然后再与提供的解答进行对比,判断正确性。上述输出仍然存在一定问题,例如,键“姓名”会被替换为法语(译注:在英文原版中,要求从英语翻译到法语,对应指令第三步的输出为 ‘Noms:’,为Name的法语,这种行为难以预测,并可能为导出带来困难)就是用户输入的文本可能包含与你的预设 Prompt 相冲突的内容,如果不加分隔,这些输入就可能“注入”并操纵语言模型,导致模型产生毫无关联的乱七八糟的输出。
2024-07-16 09:12:28
932
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人