GPT不是唯一选择:Hugging Face五款优秀的开源LLM

之前,我们分享了国内一些开源的大型语言模型(LLM)。今天,我想向大家介绍在Hugging Face平台上发现的一些国际上备受关注、被誉为超越GPT的LLM。对于熟悉LLM的朋友们而言,你们一定知道这些模型的强大之处:它们能够根据输入内容生成多样化的文本。这些模型经过大量数据训练,能够灵活模仿不同的写作风格、体裁和文本类型,其强大功能和多样性使它们在众多场景中发挥作用,例如文本摘要、问题解答和文本创作等。

但为什么会说这些模型超越了GPT呢?GPT作为OpenAI开发的一款广受欢迎的LLM,推出了多个版本,如GPT-2、GPT-3和GPT-4等,每个版本在规模和能力上都各有卓越。然而,GPT并非LLM的唯一选择。市场上存在许多其他由不同研究团队和机构开发的模型,这些模型在某些方面甚至有超越GPT的潜力。在这篇文章中,我将向大家展示这些模型的特点,并解释如何在Hugging Face平台上使用它们。

Hugging Face不仅是一个平台,它更像是一个资源库,汇集了超过12万个模型、2万个数据集以及5万个演示应用(Spaces),这些资源都是开源的,对公众开放。通过这个平台,你可以轻松地浏览、下载和使用这些模型,尤其是通过transformers库------一个既便捷又高效的Python库,专为LLM设计。值得一提的是,你还可以将自己的模型和数据集上传至Hugging Face Hub,与全球的LLM爱好者和AI专家交流合作。

1、Vigogne

Vigogne是蒙特利尔大学Bofeng Huang团队开发的一系列先进的大型语言模型(LLM)。这些模型在GPT架构的基础上进行了创新性的修改和优化,使得它们在效率和功能上更加卓越。一个关键的创新是引入了LORA(局部重权注意力)技术,这项技术有效减少了注意力机制的内存和计算需求。此外,Vigogne模型还采用了PEFT(位置编码微调)技术,这使得模型能够更好地适应不同任务和领域的特定位置编码要求。

模型地址:huggingface.co/bofenghuang...

Vigogne模型的种类众多,大小从7B到33B不等,展现出极强的多样性和适应性。这些模型在多个领域表现出色,能够生成高质量的文本,适用于聊天、指令生成和其他领域。你可以在Hugging Face Hub上找到这些模型,只需搜索用户名bofenghuang即可。比如,你可以试试vigogne-7b-chat模型,它专门设计用于生成引人入胜、流畅连贯的对话。下面是一个示例,展示了如何通过transformers库来使用这个模型:

ini 复制代码
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
from vigogne.preprocess import generate_inference_chat_prompt

model_name_or_path = "bofenghuang/vigogne-7b-chat"
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, padding_side="right", use_fast=False)
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, torch_dtype=torch.float16, device_map="auto")

user_query = "Expliquez la différence entre DoS et phishing."
prompt = generate_inference_chat_prompt([[user_query, ""]], tokenizer=tokenizer)
input_ids = tokenizer(prompt, return_tensors="pt")["input_ids"].to(model.device)
input_length = input_ids.shape[1]

generated_outputs = model.generate(
    input_ids=input_ids,
    generation_config=GenerationConfig(
        temperature=0.1,
        do_sample=True,
        repetition_penalty=1.0,
        max_new_tokens=512,
    ),
    return_dict_in_generate=True,
)
generated_tokens = generated_outputs.sequences[0, input_length:]
generated_text = tokenizer.decode(generated_tokens, skip_special_tokens=True)
print(generated_text)

2、JAIS

JAIS是由Core42和阿尔伯塔大学团队共同开发的一系列先进的大型语言模型(LLM)。这些模型基于GPT架构,但引入了若干关键的增强和优化措施,使得它们在性能上更加健壮和可扩展。例如,它们采用了名为GPTQ(GPT量化)的技术,这一技术通过使用低精度算术运算来减少模型的大小和响应时间。另一个创新是ACTORDER(激活函数排序)技术,它通过重新排序激活函数来提高模型的并行处理能力和吞吐量。

模型地址:huggingface.co/core42/jais...

JAIS模型有着多种不同的规模和版本,其参数的规模从13B到30B不等,展示了其在不同应用场景中的适应性和多功能性。这些模型在众多领域中都能够产生高质量的文本,如聊天、bloom等领域。你可以在Hugging Face Hub上通过用户名core42找到这些模型。举个例子,jais-13b-chat-hf模型能够基于特定输入生成幽默而机智的对话。下面是一个示例,展示了如何通过transformers库的使用:

ini 复制代码
# -*- coding: utf-8 -*-

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_path = "inception-mbzuai/jais-13b"

device = "cuda" if torch.cuda.is_available() else "cpu"

tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto", trust_remote_code=True)


def get_response(text,tokenizer=tokenizer,model=model):
    input_ids = tokenizer(text, return_tensors="pt").input_ids
    inputs = input_ids.to(device)
    input_len = inputs.shape[-1]
    generate_ids = model.generate(
        inputs,
        top_p=0.9,
        temperature=0.3,
        max_length=200-input_len,
        min_length=input_len + 4,
        repetition_penalty=1.2,
        do_sample=True,
    )
    response = tokenizer.batch_decode(
        generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=True
    )[0]
    return response


text= "عاصمة دولة الإمارات العربية المتحدة ه"
print(get_response(text))

text = "The capital of UAE is"
print(get_response(text))

3、BERTIN

BERTIN是一个由Manuel Romero和他在Platzi团队开发的特别的大型语言模型(LLM)。它是基于EleutherAI创造的GPT-3变种------GPT-J架构的,但BERTIN远不止是GPT-J的一个复制版本。这个模型是专门针对广泛的西班牙语文本进行训练的,成为了第一个能够高效生成高质量西班牙语文本的LLM。除此之外,它还具备处理代码生成和其他任务的能力。

模型地址:huggingface.co/mrm8488/ber...

BERTIN拥有不同的规模和版本,其参数的范围从6B到12B。这使得它能够适应多种领域的需求,生成高质量的文本,比如在聊天、alpaca和chivo等方面。你可以在Hugging Face Hub上通过用户名mrm8488找到它。例如,bertin-gpt-j-6B-ES-8bit模型就是其中之一,它擅长根据给定的输入生成流畅和连贯的西班牙语文本。下面是一个示例,展示了如何利用transformers库来使用这个模型:

ini 复制代码
import transformers
import torch

from Utils import GPTJBlock, GPTJForCausalLM

device = "cuda" if torch.cuda.is_available() else "cpu"

transformers.models.gptj.modeling_gptj.GPTJBlock = GPTJBlock  # monkey-patch GPT-J

ckpt = "mrm8488/bertin-gpt-j-6B-ES-8bit"

tokenizer = transformers.AutoTokenizer.from_pretrained(ckpt)
model = GPTJForCausalLM.from_pretrained(ckpt, pad_token_id=tokenizer.eos_token_id, low_cpu_mem_usage=True).to(device)


prompt = tokenizer("El sentido de la vida es", return_tensors='pt')
prompt = {key: value.to(device) for key, value in prompt.items()}

out = model.generate(**prompt, max_length=64, do_sample=True)

print(tokenizer.decode(out[0]))

4、Mistral

Mistral是剑桥大学的FPHam团队开发的一系列新型大型语言模型(LLM)。这些模型虽然以GPT-2架构为基础,经过扩展和改进,从而在表现力和多样性方面有了显著提升。例如,它们引入了CLP(对比性语言预训练)技术,这种技术特别强化了模型在理解自然语言的风格、情感和主题方面的能力。此外,Mistral模型还采用了PEFT(位置编码微调)技术,以更好地适应不同任务和领域中的位置编码需求。

模型地址:huggingface.co/mistralai/M...

Mistral模型涵盖多种规模和版本,参数大小从6B到7B不等,这使得它们能够广泛应用于各类领域,包括指导性文本、提问、bloom等。在Hugging Face Hub上,你可以通过搜索用户名FPHam来找到这些模型。比如,你可以尝试使用mistral-7b-chat模型,这个模型擅长根据特定输入生成相关且引人入胜的问题。下面是一个展示如何通过transformers库使用这个模型的简单示例:

ini 复制代码
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("openskyml/mistral-7b-chat")
model = AutoModelForCausalLM.from_pretrained("openskyml/mistral-7b-chat")

# encode the input text
input_ids = tokenizer.encode("The Eiffel Tower is a famous landmark in Paris.", return_tensors="pt")

# generate the output text
output_ids = model.generate(input_ids, max_length=50)

# decode the output text
output_text = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(output_text)

5、Igel

Igel是由Phil Schmid及其在Hugging Face团队开发的一款新颖的大型语言模型(LLM)。该模型建立在EleutherAI创造的GPT-3变种GPT-Neo架构之上。但是,Igel并不仅仅是GPT-Neo的翻版,而是一个全新的模型,专门针对大量多样化的德语文本进行训练。这使得Igel成为首个能够高效生成高质量德语文本的LLM,并且它还具备处理代码生成和其他任务的能力。

模型地址:huggingface.co/philschmid/...

Igel提供了多种不同的规模和版本,其参数的规模从2.7B到13B不等,显示出其广泛的应用潜力。这个模型在多个领域都能生成高质量的文本,比如聊天、alpaca和igel等。你可以在Hugging Face Hub上通过用户名philschmid找到它。例如,instruct-igel-001模型是其中的一个选择,它擅长根据给定的输入生成流畅和连贯的德语文本。以下是一个展示如何利用transformers库来使用这个模型的示例:

ini 复制代码
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("philschmid/instruct-igel-001")
model = AutoModelForCausalLM.from_pretrained("philschmid/instruct-igel-001")

# encode the input text
input_ids = tokenizer.encode("Wie macht man einen Kuchen?", return_tensors="pt")

# generate the output text
output_ids = model.generate(input_ids, max_length=50)

# decode the output text
output_text = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(output_text)

结论

在Hugging Face平台上,你能发现一些相较于GPT更具优势的大型语言模型(LLM)。这些模型不仅功能全面,让人印象深刻,还充满创新和多样性。它们能够适用于各种不同的领域、语言和任务,生成高质量的文本,同时还可以轻松地结合transformers库进行使用。在Hugging Face Hub上,还有更多其他LLM模型等待你去探索,你可以找到符合你需求和兴趣的新奇、令人兴奋的模型。

相关推荐
网络研究院2 小时前
如何安全地大规模部署 GenAI 应用程序
网络·人工智能·安全·ai·部署·观点
凭栏落花侧2 小时前
决策树:简单易懂的预测模型
人工智能·算法·决策树·机器学习·信息可视化·数据挖掘·数据分析
xiandong205 小时前
240929-CGAN条件生成对抗网络
图像处理·人工智能·深度学习·神经网络·生成对抗网络·计算机视觉
innutritious6 小时前
车辆重识别(2020NIPS去噪扩散概率模型)论文阅读2024/9/27
人工智能·深度学习·计算机视觉
橙子小哥的代码世界6 小时前
【深度学习】05-RNN循环神经网络-02- RNN循环神经网络的发展历史与演化趋势/LSTM/GRU/Transformer
人工智能·pytorch·rnn·深度学习·神经网络·lstm·transformer
985小水博一枚呀8 小时前
【深度学习基础模型】神经图灵机(Neural Turing Machines, NTM)详细理解并附实现代码。
人工智能·python·rnn·深度学习·lstm·ntm
SEU-WYL9 小时前
基于深度学习的任务序列中的快速适应
人工智能·深度学习
OCR_wintone4219 小时前
中安未来 OCR—— 开启高效驾驶证识别新时代
人工智能·汽车·ocr
matlabgoodboy9 小时前
“图像识别技术:重塑生活与工作的未来”
大数据·人工智能·生活
最近好楠啊9 小时前
Pytorch实现RNN实验
人工智能·pytorch·rnn