LangChain实战派(一)

1、认识LLM应用开发

1.1 LLM

​ 大语言模型(英语:Large Language Model,简称LLM)是指使用大量文本数据训练的深度学习模型,使得该模型可以生成自然语言文本或理解语言文本的含义。这些模型可以通过在庞大的数据集上进行训练来提供有关各种主题的深入知识和语言生产。其核心思想是通过大规模的无监督训练学习自然语言的模式和结构,在一定程度上模拟人类的语言认知和生成过程。

​ 与传统的NLP相比,LLM在理解和生成自然文本方面表现更加出色,同时展现出强大的逻辑思维和推理能力。

1.1.1 分类

1、根据是否开源

  • 闭源:亦称专有大预言模型,以API接口的形式对外提供服务,如OpenAI、Anthropic、文心一言。费用昂贵。
  • 开源:开放模型权重的预训练模型,如BLOOM、Alpaca、通义千问、ChatGLM、Llama、Vicuna。

2、根据是否经过指令微调

  • 基座:基础大语言模型(Base LLM):可以回答基础问题,面对复杂的问题可能会出错。
  • 精调:指令调整大语言模型(Instruction Tuned LLM):采用人类反馈的强化学习-RLHF。

3、根据返回消息的类型

  • 基础模型:文本字符串输入并返回字符串
  • 聊天模型:输入输出均为聊天消息列表

1.1.2 发展历程

  • 1956-达特茅斯会议
  • 1989-Stallman提出通用许可证协议
  • 2000-LSTM
  • 2017-Transformer
  • 2018-GPT
  • 2020-GPT-3
  • 2021-T5
  • 2022-ChatGPT
  • ...

1.1.3 应用

  • 机器翻译
  • 语音识别与生成
  • 自然语言推理
  • 聊天机器人与虚拟助手
  • 智能客服
  • 信息检索与推荐
  • 教育培训
  • 游戏与娱乐
  • 内容生成

1.1.4 面临挑战

  • Token数量限制
  • 实时更新问题
  • 缺乏对外部世界的感知
  • 短期记忆问题
  • 多任务处理能力不足
  • 数据偏差问题
  • 长期依赖问题
  • 泛化能力问题
  • 可解释性问题
  • 缺乏创新和想象力
  • 安全、隐私和社会问题
  • 法律和道德问题

1.2 LLM应用开发

1.2.1 LLM应用开发前景

  • 创新应用:智能客服、内容生成、自然语言理解
  • 行业解决方案:金融、医疗、教育
  • 个性化定制:内容推荐
  • 模型优化与迭代:
  • 跨领域跨行业合作

1.2.2 LLM应用开发的技术方向

  1. 模型调优:参数微调、模型结构的优化、训练方法的改进
  2. 数据增强:
  3. 分布式训练
  4. 模型压缩:减枝、量化
  5. 指令工程
  6. API集成

1.3 LangChain

LangChain 是一个帮助在应用程序中使用大型语言模型(LLM)的编程框架。

2022年10月,作为一款 Python 工具。

2023年2月,增加了对 TypeScript 的支持。

2023年4月,支持多种 JavaScript 环境,包括 Node.js、浏览器、Cloudflare Workers、Vercel/Next.js、Deno 和 Supabase Edge Functions。

LangChain以外的开发框架

2、搭建环境并实现简单的应用

2.1 环境搭建

1、搭建Python开发环境:使用Anaconda搭建Python开发环境。

2、安装langchain

python 复制代码
pip install --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple langchain
    
pip install --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple langchain-core
        
pip install --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple langchain-community
            

查看版本

python 复制代码
import langchain
print(langchain.__version__)

3、搭建LLM环境

采用本地搭建LLM环境的方式。

具体步骤如下

Ollama官网下载

ollama.com/

根据自己的机型进行下载

在终端输入命令

python 复制代码
ollama run qwen:1.8b
python 复制代码
ollama run qwen2.5:0.5b

2.2 问答应用-基于基础模型

python 复制代码
#导入包
from langchain_community.llms import Ollama
#配置模型信息
llm = Ollama(model="qwen:1.8b")
#调用模型的生成功能并输出返回信息
print(llm.invoke("AI会对人类文明产生深远的影响吗"))
python 复制代码
#导入包
from langchain_community.llms import Ollama
#配置模型信息
llm = Ollama(model="qwen2.5:0.5b")
#调用模型的生成功能并输出返回信息
print(llm.invoke("AI会对人类文明产生深远的影响吗"))

2.3 翻译应用-基于聊天模型和指令模板

python 复制代码
from langchain_community.llms import Ollama
from langchain_community.chat_models import ChatOllama
from langchain.prompts.chat import ChatPromptTemplate,SystemMessagePromptTemplate,HumanMessagePromptTemplate

# ChatPromptTemplate 构建聊天指令模板的基类
# SystemMessagePromptTemplate 构建系统消息指令模板的类
# HumanMessagePromptTemplate 构建人类消息指令模板的类


chat = ChatOllama(model="qwen2.5:0.5b")
#template设置翻译任务的基本指令
template = "你是一个翻译助理,请将用户输入的内容由{input_language}直接翻译为{output_language}."

#system_message_prompt 基于template创建系统消息指令,向聊天模型明确翻译任务要求
system_message_prompt = SystemMessagePromptTemplate.from_template(template)

#human_template:简单定义人类消息指令模板,仅仅包含翻译文本{text}
human_template = "{text}"

#human_message_prompt  定义人类消息指令。
human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)

#ChatPromptTemplate.from_messages()将系统消息指令和人类消息指令组合为完整的聊天指令,用于与聊天模型交互
chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt,human_message_prompt])

#format_prompt()  填充模板变量
#to_messages() 将格式化后的指令转换为适合聊天模型接收的消息格式
#chat.invoke() 将消息提交给聊天模型,获取翻译结果

print(chat.invoke(chat_prompt.format_prompt(input_language="中文",output_language="日语",
                                            text="北京欢迎你!").to_messages()))
相关推荐
睿深渊19 分钟前
【2025最新】Poe保姆级订阅指南,Poe订阅看这一篇就够了!最方便使用各类AI!
人工智能
Eric.Lee202136 分钟前
数据集-目标检测系列- 电话 测数据集 call_phone >> DataBall
人工智能·计算机视觉
脚踏实地的大梦想家1 小时前
【自然语言处理】P1 自然语言处理概述
人工智能·自然语言处理
香菜烤面包1 小时前
大语言模型LLM推理框架简单总结
人工智能·语言模型·自然语言处理
XianxinMao1 小时前
《语言模型的新型推理范式:基于链式思考与强化学习的突破》
人工智能·语言模型
不二青衣1 小时前
使用gtsam添加OrientedPlane3Factor平面约束因子
人工智能·算法·平面
Bioinfo Guy1 小时前
NHANES数据挖掘|特征变量对死亡率预测的研究设计与分析
人工智能·数据挖掘
点云SLAM1 小时前
CVPR 2024 自动驾驶方向总汇
人工智能·计算机视觉·自动驾驶·slam·cvpr·cvpr 2024·道路检测
985小水博一枚呀1 小时前
【大厂面试AI算法题中的知识点】方向涉及:ML/DL/CV/NLP/大数据...本篇介绍自动驾驶检测模型如何针对corner case 优化?
人工智能·深度学习·神经网络·算法·面试·cnn