AI大语言模型LLM学习-入门篇

概念解释


LLM

英文是Large Language Model,即大语言模型。

Prompt

提示词

Vector Database

向量数据库

Embedding

一种将高维离散数据映射到低维连续向量空间的技术。这个过程通过生成嵌入向量来实现,这些向量在低维空间中表示原始数据的语义或特征信息。

RAG

RAG是英文Retrieval Augmented Generation的缩写,即检索增强生成。
RAG把一个信息检索插件和大模型结合在一起,根据用户的提示词,通过信息检索插件检索相关的文档,再将文档连同用户原始输入作为提示词输入到大模型,从而产生更优的结果。
其中,RAG的信息检索插件可以是从互联网搜索引擎获取数据,也可以是从本地的向量数据库甚至关系数据库中检索数据。

Agent

Agent的中文翻译是代理,在国内的AI领域,习惯称之为智能体。
Agent,可以理解为一个能够自主规划决策、综合运用多种工具以完成复杂任务的系统。在这个系统中,大语言模型充当着‘核心调度器’的角色。这个调度器负责解读用户的自然语言输入,规划出一连串可执行的动作,然后依托记忆模块等其他组件和外部工具,逐步完成这些任务。

AI大模型应用目标的选择


一、搭建私有领域的大模型服务

这要求拥有性价较好的GPU显卡,建议尝试使用ollama,省心又省力。
https://ollama.com/

二、搭建问答型知识库及各类智能体

出于这一目的,如果不需要特别的网络限制,可以购买或者免费使用各大AI平台的API接口实现,当然使用私有的大模型API也是很好的选择。
以下是几大AI平台的模型服务,大家可以按需购买自己希望的API服务,当然对于我这个free主义者来说,免费的才是最好的。
1、通义千问(阿里系)
2、文心一言(百度系)

代码走起


本示例中注册了通义千问的API服务,使用限时免费的API接口。

  • 依赖安装
pip install langchain_openai
  • 一个简单的问答代码
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

api_key = "api_key(平台注册获得)"
llm = ChatOpenAI(
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    api_key=api_key,
    model="qwen2-1.5b-instruct",
)
prompt_template = ChatPromptTemplate.from_messages([
    ("system", "你是一个很出色的交通警察."),
    ("user", "{input}")
])

#使用|操作符将prompt_template和llm连接在一起,创建一个chain对象。
chain =prompt_template | llm

#使用invoke方法调用chain对象,传入用户的输入,并获取响应。
response = chain.invoke(input="请你给违反交通规则的小朋友讲解危害!")

print(response.content)
  • 运行效果
    在这里插入图片描述
    当然,你可以尝试修改提示词的内容,同时为了连续测试,笔者做了如下调整
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

api_key = "api_key(平台注册获得)"
llm = ChatOpenAI(
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    api_key=api_key,
    model="qwen2-1.5b-instruct",
)
prompt_template = ChatPromptTemplate.from_messages([
    ("system", "你是一个很出色的历史老师,给我讲讲历史人物的故事吧。"),
    ("user", "{input}")
])

#使用|操作符将prompt_template和llm连接在一起,创建一个chain对象。
chain =prompt_template | llm


#使用invoke方法调用chain对象,传入用户的输入,并获取响应。
while True:
    question = input("请输入你需要了解的历史人物,按q退出:")
    if question == "q":
        break
    else:
        response = chain.invoke(input=question)
        print(response.content)

再次运行代码获得效果:
在这里插入图片描述

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值