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

Transformers和Langchain中几个组件的区别

1.对于Transformers框架的介绍

1.1 介绍: transformers 是由 Hugging Face 开发的一个开源库,它提供了大量预训练模型,主要用于自然语言处理(NLP)任务。这个库提供的模型可以用于文本分类、信息抽取、问答、文本生成等多种任务。

1.2 应用场景:

  1. 文本分类:使用 BERT、RoBERTa 等模型进行情感分析、意图识别等。
  2. 命名实体识别(NER):使用序列标注模型来识别文本中的具体实体(如人名、地点、组织名)。
  3. 机器翻译:使用像 T5 或 Marian NMT 这样的序列到序列的模型进行语言之间的翻译。
  4. 文本摘要:使用 GPT、BART 等模型生成文章的摘要。
  5. 问答系统:使用预训练的问答模型直接从文本中提取答案或使用知识库支持的问答。
  6. 文本生成:使用 GPT 系列模型进行文章生成、对话生成或任何其他形式的文本自动完成。

2.Langchain的介绍

2.1 介绍: Langchain 是一个高级库,用于构建语言理解应用。它主要关注于结合语言模型和其他技术(如搜索引擎、数据库)来构建复杂的语言理解系统。

2.2 应用场景:

  1. 聊天机器人:构建能够理解和生成人类语言的对话系统。
  2. 信息检索与问答系统:通过整合语言模型生成能力和文档搜索,创建能回答复杂问题的系统。【本质就是RAG】
  3. 内容创建和摘要:结合搜索和生成技术自动创建内容或摘要。
  4. 多模态任务:结合文本和其他数据源(如数据库)来执行任务。

3.二者区别

3.1 主要方向: Transformers主要提供的是对于模型的底层访问和操作,因此我们可以利用Transformers用于模型训练、评估与推理进而微调各种NLP模型。对比之下,Langchain提供的是更加高级的接口,符合应用系统中。

3.2 几个组件的区别:
3.2.1 Langchain:

from langchain_openai import ChatOpenAI, OpenAI
from langchain_community.vectorstores import DocArrayInMemorySearch
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnableParallel, RunnablePassthrough
from langchain_openai import OpenAIEmbeddings


# 1.这行代码创建了一个 ChatOpenAI 的实例,使用的是 GPT-3.5 模型。
model = OpenAI(model="gpt-3.5-turbo-instruct")

# 2.创建了一个【文档向量存储】(vectorstore),使用 【DocArrayInMemorySearch】 类从提供的文本列表中创建,
# 【向量的嵌入】使用了 OpenAIEmbeddings()
text = [
    "Fairy是一个英俊无比的男生,即便他身高不高但依旧有很多女生追他"
]
vectorstore = DocArrayInMemorySearch.from_texts(
    text,
    embedding=OpenAIEmbeddings(),
)

模型 (OpenAI):这通常指的是使用OpenAI提供的API来访问像GPT-3这样的强大模型,用于生成文本或处理语言任务。
嵌入 (OpenAIEmbeddings):用于生成文本的嵌入向量,这些向量可以用于文档相似度搜索或其他检索任务。这与 AutoModelForCausalLM 的用途不同,后者主要用于生成文本,而不是生成用于文档相似度计算的嵌入。

3.2.2 Transformers 中的模型和分词器:

MODEL_PATH = os.environ.get('MODEL_PATH', '/mnt/workspace/models/chatglm3-6b')
TOKENIZER_PATH = os.environ.get("TOKENIZER_PATH", MODEL_PATH)
tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_PATH)
model = AutoModelForCausalLM.from_pretrained(MODEL_PATH).to(device).eval()  # 使用适合的模型类

作用:AutoModelForCausalLM 是一个专为因果语言建模设计的模型,通常用于文本生成任务。它的输出是 logits,即预测每个可能的下一个词的分数。而分词器 (AutoTokenizer)用于将原始文本转换成模型可以理解的格式(如token IDs)。这是处理任何NLP任务的标准步骤。【主要用于文本生成或特征提取】

相关文章:

  • 医学记录 --- 腋下异味
  • LogicFlow 学习笔记——11. 对齐线 和 键盘快捷键
  • Android应用保活实践
  • CARLA自动驾驶模拟器基础
  • 深入理解 JS/TS 中的 filter 方法及其布尔值筛选功能
  • 移动端 UI 风格,诠释精致
  • 【计算机体系结构】
  • 啥移动硬盘格式能更好兼容Windows和Mac系统 NTFS格式苹果电脑不能修改 paragon ntfs for mac激活码
  • getPhysicalNumberOfCells获取列数不是合并前实际列数
  • Linux操作系统
  • vos3000外呼系统通话会话超时中断详解
  • Day10—Spark SQL基础
  • HTML(12)——背景属性
  • React@16.x(34)动画(中)
  • 【linuxC语言】第一个简单的TCP/IP服务器
  • 智慧校园综合门户有哪些特点?
  • RTSP协议分析与安全实践
  • 计算机组成原理 —— 存储系统(DRAM和SRAM,ROM)
  • [Django学习]Q对象实现多字段模糊搜索
  • ping命令返回结果实例分析
  • 商务部再回应中美经贸高层会谈
  • 建筑瞭望|融入自然的新泳池,治愈了中央公园的历史旧伤
  • 马斯克的胜利?OpenAI迫于压力放弃营利性转型计划
  • 泰国培训十万网络安全人员加强网络防御打击电诈
  • 全国铁路迎来返程客流高峰,预计今日发送2040万人次
  • 广西科学调度保障春灌面积1373.53万亩