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任务的标准步骤。【主要用于文本生成或特征提取】

GitHub 加速计划 / tra / transformers
78
5
下载
huggingface/transformers: 是一个基于 Python 的自然语言处理库,它使用了 PostgreSQL 数据库存储数据。适合用于自然语言处理任务的开发和实现,特别是对于需要使用 Python 和 PostgreSQL 数据库的场景。特点是自然语言处理库、Python、PostgreSQL 数据库。
最近提交(Master分支:8 个月前 )
555693fb * fix mpt test Signed-off-by: jiqing-feng <jiqing.feng@intel.com> * fix mpt tests with Expectations Signed-off-by: jiqing-feng <jiqing.feng@intel.com> * fix typo Signed-off-by: jiqing-feng <jiqing.feng@intel.com> * fix output Signed-off-by: jiqing-feng <jiqing.feng@intel.com> * fix format Signed-off-by: jiqing-feng <jiqing.feng@intel.com> --------- Signed-off-by: jiqing-feng <jiqing.feng@intel.com> 2 小时前
0cfbf9c9 * fix all main files * fix test files * oups forgot modular * add link * update message 4 小时前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐