当前位置: 首页 > news >正文

跟着Datawhale动手学Ollama - TASK4: Ollama 在 LangChain 中的使用

参考链接

动手学Ollama教程: https://datawhalechina.github.io/handy-ollama/
Ollama官网:https://ollama.com/

主要内容

介绍了Ollama结合LangChain的使用,可实现流式输出(自,强制缓存内容直接输出)、让大模型调用函数、多模态数据拼接成固定格式、多轮对话、自定义Prompt模板、RAG等。

学习记录

  • 直接看教程的代码,部分可能无法运行,完整的代码还是需要参考提供的 jupyter notebook 链接
  • 大模型可以通过langchain_ollama.ChatOllama.bind_tools来调用编写的函数工具的。我问了下ai,了解到是否调用工具完全由大模型自己决定,但是这个决定并非随意随机,而是有一些因素综合决定:训练时涉及工具、.bind_tools时LangChain 会自动将工具函数信息一结构化格式注入到模型提示词中、大模型的temperature越低会更保守倾向调用工具、问题本身性值是否适合调用工具 等。
  • 了解到大模型中,图片经常被转换为Base6编码,这样可以很方便的在纯文本环境中嵌入图片
  • LangChain 的管道(| 链式调用)是非常重要的功能,直接用ollama包虽然可以创建模型,但不支持被“链”。langchain_ollama.ChatOllama是Ollama模型在LangChain体系中的适配器
  • 很多大模型输入的数据格式都要是类似open ai的字典格式,这是硬性要求
  • 我原以为 LangChain提供的ConversationChain(管理多轮对话工具)可以使所有大模型拥有多轮对话能力,但其实是错误的。模型本身必须能支持多轮对话的理解。此外据AI介绍,很多大模型都是无状态的(本质是一个函数,只看给的一段文字),对话历史需要“外部系统”来管理,外部系统将之前消息保存,之后下一次提问将 之前对话历史+新问题 组装到一起,发给新模型
  • 第一次了解RAG的原理细节,可概括为通过prompt(ChatPromptTemplate)明确要求模型只限制在某些方面回答(必须基于特定内容,不能引入外部知识;答案必须原自这些内容,但可以自然语言表达),使得最终输出严格基于向量库检索到的知识。但是AI说不是所有RAG都只靠prompt,还有一些高级做法,如后处理过滤、重排序、假设性文档嵌入、Self-RAG等。
  • 本教程最后的RAG的示例,似乎没有通过阈值过滤,所以总会从向量库中找几个最接近的词给到大模型,所以如果找到的最接近的几个向量关系都不大,可能导致回答比较不符合逻辑。
  • RAG示例代码里nomic-embed-text是个文本嵌入模型;FAISS是一个向量搜索引擎。两者相互协作

学习感想

  • 最大的感受是LangChain很强大,像是大模型的“外套”,可以使得大模型能干更多事情,也能使大模型有条件实现原本具备的能力(例如某个大模型支持多模态,但需要LangChain处理好输入数据格式后输入;例如某个大模型具备多轮对话能力,但需要LangChain缓存拼接好历史的对话,在下一轮中与新问题一起输入给模型)
  • 另外课程最后的RAG示例居然可以这么少的代码就实现基本的RAG功能,原来RAG的实现并非想象中的复杂,而是依赖prompt模板的设计和embedding库
  • 收获颇丰!LangChain真好!
http://www.rkmt.cn/news/132816.html

相关文章:

  • 分层模糊系统:梯度下降与递推最小二乘法联合辨识研究(Matlab代码实现)
  • cesium126,240506,Ce for Ue 建筑单体高亮的实现P1-基础染色:
  • Excalidraw用户体验监控:前端性能指标采集
  • Excalidraw类图绘制:面向对象设计辅助
  • 基于Spring Boot技术的数字乡村农作物智慧管理系统设计毕设
  • A server error occurred. Please contact the administrator的问题解决
  • 基于Spring Boot的医院预约挂号系统的设计与实现毕业设计源码
  • PyTorch中通过设置随机种子使训练结果可复现
  • ExcalidrawOKR目标看板:团队目标对齐工具
  • 基于Spring Boot的在线考试系统设计与实现毕业设计
  • 2025年度绵阳高中复读学校口碑推荐榜单,名办高中/学校/实验中学/高中复读学校/中学/实验学校/高中高中复读学校企业怎么选择 - 品牌推荐师
  • 利用 SSI-COV 算法自动识别线状结构在环境振动下的模态参数研究(Matlab代码实现)
  • 精品UI知识付费系统源码 响应式视频教程知识付费软件下载网站模板
  • 基于Spring Boot的新生报到管理系统的设计与实现毕业设计源码
  • ATTCK实战系列(一)红日靶场1
  • Excalidraw CI/CD流水线搭建:代码变更自动部署
  • 蓝凌EKP产品:一次 Hibernate 乐观锁 + 死锁的深度踩坑实录
  • Excalidraw负载均衡配置:高并发场景下的稳定性保障
  • 基于Java+SpringBoot+SSM音乐推荐系统(源码+LW+调试文档+讲解等)/音乐推荐算法/音乐智能推荐/歌曲推荐系统/音乐个性化推荐/音乐播放推荐
  • springboot高校应届毕业生求职招聘系统vue_12wlz
  • 为什么你的努力领导看不到?是你不会向上管理,想要优秀,至少要做到第三层级
  • Excalidraw网格与参考线设置:提升对齐精度
  • 官网-工伤保险条例
  • 018.递归分治
  • 【FreeRTOS实战】互斥锁专题
  • Excalidraw文档编写规范:Markdown语法与示例
  • Excalidraw图片懒加载优化:减少初始请求量
  • LangSmith 模型评估 (Evaluation) 完整指南
  • 如何更好地作为数据科学家进行沟通
  • 3.1