BigScience bloom模型

这篇具有很好参考价值的文章主要介绍了BigScience bloom模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

项目叫 BigScience,

模型叫 BLOOM,

BLOOM 的英文全名代表着大科学、大型、开放科学、开源的多语言语言模型。

拥有 1760 亿个参数的模型.

BLOOM 是去年由 1000 多名志愿研究人员,学者 在一个名为“大科学 BigScience”的项目中创建的.

BLOOM 和今天其他可用大型语言模型存在的一个主要区别:该模型可以理解多达 46 种人类语言,包括法语、越南语、普通话、印度尼西亚语、加泰罗尼亚语、13 种印度语言(如印地语)和 20 种非洲语言。超过 30% 的训练数据是英文的。该模型还可以理解 13 种编程语言。

下载部署步奏

  1. 新建一个Anaconda conda 环境,然后安装 pytorch >1.3版本

  1. 下载模型

模型下载:https://huggingface.co/bigscience

打开以后 Models 模块就可以看到 它不同参数级别的模型 ,B代表英文简写亿 1B1,就代表模型的参数是1亿1千万.1B3好像丢失了下不了.

这里选择单击 bloom-1b1 模型,然后在单击 Files and versions ,下载所有文件,新建文件夹取名1b1,放里面.

加载本地模型,只要写上本地模型所在的目录

#分词

tokenizer = AutoTokenizer.from_pretrained('./1b1/')

#模型

model = AutoModelForCausalLM.from_pretrained('./1b1/')

3.运行代码,代码放到1b1父级目录

cmd调用模型代码

from transformers import AutoTokenizer, AutoModelForCausalLM
from transformers import pipeline
import torch

#从https://huggingface.co/bigscience/bloom-1b1/tree/main
#下载所有文件,放到新创建的文件夹1b1
checkpoint = "./1b1/"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)#分词
model = AutoModelForCausalLM.from_pretrained(checkpoint)#模型
#设置为gpu,推理更快
device = torch.device('cuda')
model.to(device)
#device=0表示使用第一个可用的GPU
generator = pipeline(task="text-generation", model=model, tokenizer=tokenizer, device=0)



out = generator("你是谁?", max_length=30)
print(out[0]['generated_text']) #输出 "你是谁?我:她说"

因为1B1只是一个文本生成模型,你给一个短语,它接着生成.没有问答功能.而且中文生成效果也不好.文章来源地址https://www.toymoban.com/news/detail-414505.html

GUI调用代码

from transformers import AutoTokenizer, AutoModelForCausalLM
from transformers import pipeline
import tkinter as tk
import torch

checkpoint = "./1b1/"
#分词
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
#模型
model = AutoModelForCausalLM.from_pretrained(checkpoint)
#设置为gpu,推理更快
device = torch.device('cuda')
model.to(device)
#device=0表示使用第一个可用的GPU
generator = pipeline(task="text-generation", model=model, tokenizer=tokenizer, device=0)

def clean_string(s, substr): #substr=问题,s=回答
    s = s.replace(substr, '')
    lst = s.split(',')
    result_lst = list(set(lst))
    result_lst.sort()
    result = ','.join(result_lst) + ','
    return result


# 创建主窗口
root = tk.Tk()
root.title("Bloom:1亿3千万参数版")
root.geometry("800x600+{}+{}".format(root.winfo_screenwidth() // 2 - 400, root.winfo_screenheight() // 2 - 350))

# 创建输入框和滚动条
input_frame = tk.Frame(root)
input_label = tk.Label(input_frame, text="用户:")

input_text = tk.Text(input_frame, height=10, width=87,padx=6, pady=6)
input_scrollbar = tk.Scrollbar(input_frame)

input_text.config(yscrollcommand=input_scrollbar.set)
input_scrollbar.config(command=input_text.yview)
input_label.pack(side="left")
input_text.pack(side="left",pady=10)
input_scrollbar.pack(side="right", fill="y")
input_frame.pack()

# 创建按钮
button_frame = tk.Frame(root)

def show_text():

    #清空 Tkinter Text 组件中的文本
    output_text.delete('1.0', 'end')
    input_str = input_text.get("1.0", "end-1c")
    # 去掉最后一个换行符
    if input_str.endswith('\n'):
        input_str = input_str[:-1]
    
    out = generator(input_str, max_length=30)
    print(out[0])
    anwer = out[0]['generated_text'] #clean_string(out[0]['generated_text']) 
    output_text.insert("end",anwer)
    
button = tk.Button(button_frame, text="回答", command=show_text,width=6, height=3)
button.pack(pady=10)
button_frame.pack()

# 创建输出框和滚动条
output_frame = tk.Frame(root)
output_label = tk.Label(output_frame, text="bloom:")
output_text = tk.Text(output_frame, height=26, width=87,padx=6, pady=6)
output_scrollbar = tk.Scrollbar(output_frame)
output_text.config(yscrollcommand=output_scrollbar.set)
output_scrollbar.config(command=output_text.yview)
output_label.pack(side="left",pady=10)
output_text.pack(side="left",pady=10)
output_scrollbar.pack(side="right", fill="y")
output_frame.pack()


def copy():
    global text
    text.event_generate("<<Copy>>")

def cut():
    global text
    text.event_generate("<<Cut>>")

def paste():
    global text
    text.event_generate("<<Paste>>")

# 创建右键菜单
menu = tk.Menu(root, tearoff=0)
menu.add_command(label="复制", command=copy)
menu.add_command(label="剪切", command=cut)
menu.add_command(label="粘贴", command=paste)

# 创建右键菜单2
menu2 = tk.Menu(root, tearoff=0)
menu2.add_command(label="复制", command=copy)


# 绑定鼠标右键(第一个文本框)
def show_menu1(event):
    global text
    text = input_text
    menu.post(event.x_root, event.y_root)

input_text.bind("<Button-3>", show_menu1)

# 绑定鼠标右键(第二个文本框)
def show_menu2(event):
    global text
    text = output_text
    menu2.post(event.x_root, event.y_root)

output_text.bind("<Button-3>", show_menu2)

# 创建按钮
button_frame = tk.Frame(root)
button = tk.Button(button_frame, text="回答", command=show_text,width=6, height=3)
# 响应回车键 绑定 <Return> 事件
root.bind("<Return>", lambda event: show_text())



root.lift()
# 运行主循环
root.mainloop()

生成300字效果

BigScience bloom模型

中英翻译 效果 不堪 ,诱导式

BigScience bloom模型
BigScience bloom模型
BigScience bloom模型

问答

BigScience bloom模型
BigScience bloom模型
BigScience bloom模型
BigScience bloom模型

到了这里,关于BigScience bloom模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大型语言模型比较: Gen2/Gen3模型(Bloom、 Gopher、 OPT 和 其它)

    大语言模型是产生文本的复杂的神经网络。自2018年成立以来,它们发生了戏剧性的进化,传递的信息可以与人类媲美。为了更好地理解这种演变,这个博客系列调查模型,以揭示它们如何前进。具体来说,从已发表的论文中对每个模型的见解进行了解释,并从基准比较中得出

    2024年02月22日
    浏览(51)
  • 大模型之Bloom&LLAMA----Pre-Training(二次预训练)

    随着chatgpt的爆火,最近也有很多大模型在不断地出现,比如说Bloom系列以及以LLAMA为基础的ziya和baichuan。这些模型相较于chatglm来说,更加具有发展前景,因为其是完全可商用,并可以不断迭代更新的。最近作者在跟着hiyouga大佬的LLaMA-Efficient-Tuning进行学习,相较于其他的项目

    2024年02月14日
    浏览(41)
  • 简介maven核心:pom项目对象模型

    Maven 意思是知识的积累者,最初是为了简化 Jakarta Turbine 项目中的构建过程。有几个项目,每个项目都有自己的 Ant 构建文件,它们都略有不同。JAR 被检入 CVS。我们想要一种标准的方式来构建项目,清楚地定义项目的组成,发布项目信息的简单方法,以及在多个项目之间共享

    2024年03月09日
    浏览(53)
  • 使用您自己的计算机训练 Stable Diffusion 和 Bloom (175B) 等模型

    在我们最近的几篇文章中,我们一直在提到围绕大型语言和生成 AI 模型的炒作,以及如何减少推理和训练时间。随着我们的用户开始使用这些模型并对其进行微调,他们自然希望微调和部署包含数千亿参数的模型,以提高其特定用例的性能。 通常,这是一项要求非常高的任

    2024年01月16日
    浏览(34)
  • LLMs模型速览(GPTs、LaMDA、GLM/ChatGLM、PaLM/Flan-PaLM、BLOOM、LLaMA、Alpaca)

    参考: 《总结从T5、GPT-3、Chinchilla、PaLM、LLaMA、Alpaca等近30个最新模型》 LLaMA、Palm、GLM、BLOOM、GPT模型结构对比 基础模型: 下表是在上述基础模型上进行指令微调的大模型: 在datalearner.com上,可以查看所有已发布的AI大模型: 模型 发布日期 GPT 2018-11-14 GPT-2 2019-11-27 GPT-3 2020-

    2024年02月11日
    浏览(50)
  • ChatGPT中文版Prompt提示工程超详细指南《提示工程简介及示例》Github最新破万星项目Meta AI前工程师解密百万年薪提示工程师GPT-4模型优化利器(一)

    近期,Meta AI前工程师推出的最强辅助——提示工程师指南在Github上引起了极大的反响。 这份全面指南详细列出了提示工程师所需的所有资料,使得他们在开发过程中拥有更多的技巧。这份指南提供的信息十分丰富,覆盖了从提示技巧使用到提示应用等各个方面,甚至还提供

    2024年02月02日
    浏览(60)
  • 布隆过滤器(Bloom Filter)

    通常我们会遇到很多要判断一个元素是否在某个集合中的业务场景,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路。但是随着集合中元素的增加,我们需要的存储空间也会呈现线性增长,

    2024年02月08日
    浏览(47)
  • Redis系列--布隆过滤器(Bloom Filter)

    在实际开发中,会遇到很多要判断一个元素是否在某个集合中的业务场景,类似于垃圾邮件的识别,恶意ip地址的访问,缓存穿透等情况。类似于缓存穿透这种情况,有许多的解决方法,如:redis存储null值等,而对于垃圾邮件的识别,恶意ip地址的访问,我们也可以直接用 H

    2024年02月09日
    浏览(41)
  • LLaMA, ChatGLM, BLOOM的参数高效微调实践

    作者:回旋托马斯x(腾讯NLP算法工程师) 项目地址:https://zhuanlan.zhihu.com/p/635710004 大语言模型的训练分为两个阶段: (1)在海量文本语料上的无监督预训练,学习通用的语义表示和世界知识。 (2)在小规模数据上,进行指令微调和基于人类反馈的强化学习,更好地对齐最

    2024年02月16日
    浏览(37)
  • 【Redisson】Redisson--布隆(Bloom Filter)过滤器

    Redisson系列文章: 【Redisson】Redisson–基础入门 【Redisson】Redisson–布隆(Bloom Filter)过滤器 【Redisson】Redisson–分布式锁的使用(推荐使用) 【分布式锁】Redisson分布式锁底层原理 【Redisson】Redisson–限流器 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包