自然语言处理从入门到应用——LangChain:模型(Models)-[大型语言模型(LLMs):基础知识]

分类目录:《自然语言处理从入门到应用》总目录


大型语言模型(LLMs)是LangChain的核心组件。LangChain不提供大型语言模型,而是提供了一个标准接口,通过该接口我们可以与各种LLMs进行交互。LLM类是专为与LLM接口设计的类。有许多LLM提供者(如:OpenAI、Cohere、Hugging Face),此类旨在为所有LLM提供一个标准接口。在《自然语言处理从入门到应用------LangChain:模型(Models)-[大型语言模型(LLMs)]》系列文章中,我们将专注于通用的LLM功能,而有关使用特定LLM包装器的详细信息,请参见具体的示例。

在本文中,我们将使用OpenAI LLM包装器,其功能对于所有LLM类型都是通用的。

dart 复制代码
from langchain.llms import OpenAI
llm = OpenAI(model_name="text-ada-001", n=2, best_of=2)

生成文本(Generate Text)是LLM最基本的功能,其传入一个字符串并返回一个字符串:

dart 复制代码
llm("Tell me a joke")

输出:

复制代码
'\n\nWhy did the chicken cross the road?\n\nTo get to the other side.'

generate:我们还可以用一个输入列表来调用它,得到是比仅输入文本更完整的响应。这个完整的响应包括多个顶级响应,以及LLM供应商特定的信息。

dart 复制代码
llm_result = llm.generate(["Tell me a joke", "Tell me a poem"]*15)
len(llm_result.generations)

输出:

dart 复制代码
30

输入:

dart 复制代码
llm_result.generations[0]

输出:

dart 复制代码
[Generation(text='\n\nWhy did the chicken cross the road?\n\nTo get to the other side!'), 
Generation(text='\n\nWhy did the chicken cross the road?\n\nTo get to the other side.')]

输入:

dart 复制代码
llm_result.generations[-1]
dart 复制代码
[Generation(text="\n\nWhat if love neverspeech\n\nWhat if love never ended\n\nWhat if love was only a feeling\n\nI'll never know this love\n\nIt's not a feeling\n\nBut it's what we have for each other\n\nWe just know that love is something strong\n\nAnd we can't help but be happy\n\nWe just feel what love is for us\n\nAnd we love each other with all our heart\n\nWe just don't know how\n\nHow it will go\n\nBut we know that love is something strong\n\nAnd we'll always have each other\n\nIn our lives."), 
Generation(text='\n\nOnce upon a time\n\nThere was a love so pure and true\n\nIt lasted for centuries\n\nAnd never became stale or dry\n\nIt was moving and alive\n\nAnd the heart of the love-ick\n\nIs still beating strong and true.')]

我们还可以访问返回的特定于服务提供商的信息,这些信息在不同的服务提供商之间并不标准化:

dart 复制代码
llm_result.llm_output

输出:

dart 复制代码
{'token_usage': {'completion_tokens': 3903, 'total_tokens': 4023, 'prompt_tokens': 120}}

Number of Tokens:我们还可以估算在该模型中一段文本将包含多少tokens。这很有用,因为模型有一个上下文长度,并且对于更多tokens的成本更高,这意味着我们需要知道传入的文本有多长。按默认设置,使用tiktoken估计tokens:

dart 复制代码
llm.get_num_tokens("what a joke")

输出:

dart 复制代码
3

参考文献:

1\] LangChain 🦜️🔗 中文网,跟着LangChain一起学LLM/GPT开发:https://www.langchain.com.cn/ \[2\] LangChain中文网 - LangChain 是一个用于开发由语言模型驱动的应用程序的框架:http://www.cnlangchain.com/

相关推荐
格林威6 分钟前
机器视觉检测的光源基础知识及光源选型
人工智能·深度学习·数码相机·yolo·计算机视觉·视觉检测
今天也要学习吖39 分钟前
谷歌nano banana官方Prompt模板发布,解锁六大图像生成风格
人工智能·学习·ai·prompt·nano banana·谷歌ai
Hello123网站39 分钟前
glean-企业级AI搜索和知识发现平台
人工智能·产品运营·ai工具
AKAMAI40 分钟前
Queue-it 为数十亿用户增强在线体验
人工智能·云原生·云计算
索迪迈科技1 小时前
INDEMIND亮相2025科技创变者大会,以机器人空间智能技术解锁具身智能新边界
人工智能·机器人·扫地机器人·空间智能·陪伴机器人
栒U1 小时前
一文从零部署vLLM+qwen0.5b(mac本地版,不可以实操GPU单元)
人工智能·macos·vllm
沫儿笙1 小时前
FANUC发那科焊接机器人铝材焊接节气
人工智能·机器人
THMAIL2 小时前
量化股票从贫穷到财务自由之路 - 零基础搭建Python量化环境:Anaconda、Jupyter实战指南
linux·人工智能·python·深度学习·机器学习·金融
~-~%%2 小时前
从PyTorch到ONNX:模型部署性能提升
人工智能·pytorch·python
xcnn_2 小时前
深度学习基础概念回顾(Pytorch架构)
人工智能·pytorch·深度学习