Edit model card
import torch
from transformers import T5ForConditionalGeneration, T5Tokenizer

model_path = "twwch/mt5-base-summary"
model = T5ForConditionalGeneration.from_pretrained(model_path)
tokenizer = T5Tokenizer.from_pretrained(model_path)

device = torch.device('cuda:0') if torch.cuda.is_available() else torch.device('cpu')
model.to(device)
model.eval()

text = """
什么是Nginx
Nginx是一个开源的高性能HTTP和反向代理服务器。它可以用于处理静态资源、负载均衡、反向代理和缓存等任务。Nginx被广泛用于构建高可用性、高性能的Web应用程序和网站。它具有低内存消耗、高并发能力和良好的稳定性,因此在互联网领域非常受欢迎。
为什么使用Nginx

高性能:Nginx采用事件驱动的异步架构,能够处理大量并发连接而不会消耗过多的系统资源。它的处理能力比传统的Web服务器更高,在高并发负载下表现出色。
高可靠性:Nginx具有强大的容错能力和稳定性,能够在面对高流量和DDoS攻击等异常情况下保持可靠运行。它能通过健康检查和自动故障转移来保证服务的可用性。
负载均衡:Nginx可以作为反向代理服务器,实现负载均衡,将请求均匀分发给多个后端服务器。这样可以提高系统的整体性能和可用性。
静态文件服务:Nginx对静态资源(如HTML、CSS、JavaScript、图片等)的处理非常高效。它可以直接缓存静态文件,减轻后端服务器的负载。
扩展性:Nginx支持丰富的模块化扩展,可以通过添加第三方模块来提供额外的功能,如gzip压缩、SSL/TLS加密、缓存控制等。

如何处理请求
Nginx处理请求的基本流程如下:


接收请求:Nginx作为服务器软件监听指定的端口,接收客户端发来的请求。


解析请求:Nginx解析请求的内容,包括请求方法(GET、POST等)、URL、头部信息等。


配置匹配:Nginx根据配置文件中的规则和匹配条件,决定如何处理该请求。配置文件定义了虚拟主机、反向代理、负载均衡、缓存等特定的处理方式。


处理请求:Nginx根据配置的处理方式,可能会进行以下操作:

静态文件服务:如果请求的是静态资源文件,如HTML、CSS、JavaScript、图片等,Nginx可以直接返回文件内容,不必经过后端应用程序。
反向代理:如果配置了反向代理,Nginx将请求转发给后端的应用服务器,然后将其响应返回给客户端。这样可以提供负载均衡、高可用性和缓存等功能。
缓存:如果启用了缓存,Nginx可以缓存一些静态或动态内容的响应,在后续相同的请求中直接返回缓存的响应,减少后端负载并提高响应速度。
URL重写:Nginx可以根据配置的规则对URL进行重写,将请求从一个URL重定向到另一个URL或进行转换。
SSL/TLS加密:如果启用了SSL/TLS,Nginx可以负责加密和解密HTTPS请求和响应。
访问控制:Nginx可以根据配置的规则对请求进行访问控制,例如限制IP访问、进行身份认证等。

响应结果:Nginx根据处理结果生成响应报文,包括状态码、头部信息和响应内容。然后将响应发送给客户端。
"""


def _split_text(text, length):
    chunks = []
    start = 0
    while start < len(text):
        if len(text) - start > length:
            pos_forward = start + length
            pos_backward = start + length
            pos = start + length
            while (pos_forward < len(text)) and (pos_backward >= 0) and (pos_forward < 20 + pos) and (
                    pos_backward + 20 > pos) and text[pos_forward] not in {'.', '。', ',', ','} and text[
                pos_backward] not in {'.', '。', ',', ','}:
                pos_forward += 1
                pos_backward -= 1
            if pos_forward - pos >= 20 and pos_backward <= pos - 20:
                pos = start + length
            elif text[pos_backward] in {'.', '。', ',', ','}:
                pos = pos_backward
            else:
                pos = pos_forward
            chunks.append(text[start:pos + 1])
            start = pos + 1
        else:
            chunks.append(text[start:])
            break
    # Combine last chunk with previous one if it's too short
    if len(chunks) > 1 and len(chunks[-1]) < 100:
        chunks[-2] += chunks[-1]
        chunks.pop()
    return chunks


def summary(text):
    chunks = _split_text(text, 300)
    chunks = [
        "summarize: " + chunk
        for chunk in chunks
    ]
    input_ids = tokenizer(chunks, return_tensors="pt",
                          max_length=512,
                          padding=True,
                          truncation=True).input_ids.to(device)
    outputs = model.generate(input_ids, max_length=250, num_beams=4, no_repeat_ngram_size=2)
    tokens = outputs.tolist()
    output_text = [
        tokenizer.decode(tokens[i], skip_special_tokens=True)
        for i in range(len(tokens))
    ]
    for i in range(len(output_text)):
        print(output_text[i])


summary(text)

输出:

段落内容Nginx是一个开源的高性能HTTP和反向代理服务器,可以用于处理静态资源、负载均衡、反反代理和缓存等任务。它被广泛用于构建高可用性、高性能的Web应用程序和网站,具有低内存消耗、高并发能力和良好的稳定性,因此在互联网领域非常受欢迎。高性能和高可靠性相比传统的Web服务器更高,在高并且发负担下表现出色。高稳定性和容错能力,能够在面对高流量和DDoS攻击等异常情况下保持可靠运行。
段落内容Nginx处理请求的基本流程,包括负载均衡、静态文件服务、扩展性、如何解决请求的流程和如何处理。其中包括接收请求和解析请求,以及对客户端发来的请求进行解析。
段落内容Nginx的配置匹配和处理请求。配置文件定义了虚拟主机、反向代理、负载均衡、缓存等特定的处理方式,并根据配置进行静态文件服务和反面信息处理的操作。通过调用静存来实现高可用性,并且可以提供高可性和缓储等功能。
段落内容主要涉及到缓存静态或动态内容的响应,包括URL重写、SSL/TLS加密、访问控制、响应结果生成和发送给客户端等功能。Nginx可以根据配置的规则对URL进行重写作,将请求从一个URL轻定向到另一个URL或进行转换。 综上所述,Nginx的缓解和响应速度可以快速提高。
Downloads last month
76
Safetensors
Model size
582M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Dataset used to train twwch/mt5-base-summary