首页
图床推荐
实用链接
友链
关于
Search
1
彻底卸载Cloudflare Tunnel(解决 cloudflared service uninstall 报错问题)
387 阅读
2
从零开始注册Hugging Face账号到部署网页应用
91 阅读
3
Debian 11.2 搭建 Typecho 个人博客教程
83 阅读
4
Linux配置frps与frpc的四种隧道并设置开机启动
77 阅读
5
紫电猫8.8元随身WIFI刷Debian系统教程
73 阅读
默认分类
教程
随笔
软件开发
笔记
登录
/
注册
Search
标签搜索
Datawhale
AI+X
Fun-Transformer
#Datewhale组队学习
隧道
Debian
Transformer
教程
随身wifi
frp
frpc
frps
内网穿透
Linux
toml
我的世界
Minecraft
MySQL
单片机
OLED
Simuoss
累计撰写
17
篇文章
累计收到
8
条评论
首页
栏目
默认分类
教程
随笔
软件开发
笔记
页面
图床推荐
实用链接
友链
关于
搜索到
13
篇与
的结果
2025-01-18
【2025.1 Datawhale AI+X 共学活动】Fun-Transformer —— Task2:Transformer
Datewhale组队学习Transformer结构概述1. Attention 机制1.1 引入Attention机制 Attention机制最初是为了改进基于Encoder-Decoder的神经机器翻译系统而提出的,解决了RNN/LSTM在处理长序列时的长程依赖问题。传统的Encoder-Decoder模型通过编码器生成一个固定长度的上下文向量,解码器基于该向量生成输出。然而,这种方法在处理长句子时效果不佳,因为编码器难以有效总结长序列信息。Bahdanau等人(2015)提出了Attention机制,允许模型在生成每个输出时动态关注输入序列的不同部分,从而更好地捕捉长距离依赖关系。1.2 Attention机制的工作原理 Attention机制的核心是“加权求和”。它通过以下步骤实现:分解输入:将输入序列分解为单个元素(如单词)。分配重要性:根据每个元素与当前任务的关联性,分配一个权重。加权求和:根据权重对输入元素进行加权求和,生成上下文向量。Attention机制的优势在于它能够动态地为输入序列中的不同部分分配不同的权重,从而更好地捕捉序列中的关键信息。1.3 全局注意力与局部注意力全局注意力:考虑所有输入元素的隐藏状态,计算复杂度较高,适合处理较短的序列。局部注意力:只考虑输入序列的一部分,减少了计算量,适合处理较长的序列。局部注意力通过预测对齐位置和定义注意力窗口来实现。2. Transformer模型2.1 Transformer模型架构 Transformer模型由编码器和解码器组成,每个编码器和解码器层包含自注意力机制和前馈网络。Transformer通过自注意力机制捕捉序列中的全局依赖关系,并通过位置编码引入序列的顺序信息。2.2 Transformer的工作流程 Transformer通过自注意力机制为每个输入元素生成多个注意力分数,从而捕捉序列中不同元素之间的关系。例如,在处理代词“it”时,模型可以通过自注意力机制确定“it”指代的具体对象。2.3 Transformer的发展历程 Transformer模型自2017年提出以来,迅速成为自然语言处理领域的主流模型。后续的BERT、GPT等模型基于Transformer架构,进一步推动了NLP技术的发展。2.4 Transformer对seq2seq模型的影响摒弃RNN结构:Transformer完全摒弃了RNN结构,使用自注意力机制处理序列数据,提高了并行计算能力。引入自注意力机制:自注意力机制允许模型在处理每个序列元素时考虑到序列中所有其他元素的信息,有效捕捉长距离依赖关系。位置编码:由于Transformer没有递归结构,位置编码被引入以保留序列的顺序信息。训练效率提升:Transformer的并行化处理显著提高了训练效率,能够处理更长的序列。2.5 迁移学习与预训练模型 Transformer的成功推动了预训练模型的发展,如BERT、GPT等。这些模型通过在大规模语料上进行预训练,然后在特定任务上进行微调,显著提升了NLP任务的性能。3. Transformer vs CNN vs RNN计算复杂度:Transformer的自注意力机制计算复杂度为O(n²d),RNN为O(nd²),CNN为O(knd²)。当序列长度n小于维度d时,Transformer的计算效率更高。并行操作数量:Transformer和CNN的并行度较高,而RNN由于序列依赖关系,难以并行化。最长计算路径:Transformer的最长计算路径为O(1),而RNN为O(n),CNN为O(n/k)。4. 输入嵌入与位置编码4.1 词嵌入(Word Embedding) 词嵌入通过将单词映射到低维向量空间,捕捉单词的语义信息。可以使用预训练的词嵌入(如Word2Vec、GloVe)或随机初始化的词嵌入。4.2 位置编码(Position Embedding) 由于Transformer没有递归结构,位置编码被引入以保留序列的顺序信息。位置编码通过正弦和余弦函数生成,能够捕捉序列中元素的相对位置关系。词向量生成过程总结词向量是将自然语言中的词语转化为计算机可理解的数值向量表示的过程。词向量的生成方法主要分为两类:基于统计的方法和基于神经网络的方法。以下是词向量生成过程的详细总结:一、引言词向量的核心目标是将自然语言中的词语转化为计算机可处理的数值向量。词向量的生成方法主要包括:独热编码(One-hot Encoding):稀疏表示,每个词用一个高维向量表示,向量中只有一个位置为1,其余为0。分布式表征(Distributed Representation):稠密表示,每个词用一个低维稠密向量表示,向量中的每个元素都是实数。分布式表征能够捕捉词语之间的语义关系。Word2Vec 是生成分布式表征词向量的主流方法之一,其他方法包括 LSA、PLSA、LDA 等。二、基于统计的词向量生成方法(一)词袋模型(Bag-of-Words, BoW)原理:将文本视为词的集合,忽略词序和语法结构。每个文本表示为一个向量,向量的每个元素对应词汇表中的一个词,值为该词在文本中出现的次数。构建过程:构建词汇表:统计语料库中所有不重复的词。对每个文本,统计词汇表中每个词的出现次数,生成向量。缺点:忽略词序和语义信息。向量维度高,计算成本大。(二)TF-IDF(词频-逆文档频率)原理:在词袋模型的基础上,引入词的重要性权重。TF(词频):词在文本中出现的频率。IDF(逆文档频率):词在整个语料库中的稀有程度。TF-IDF = TF × IDF。构建过程:计算每个词的 TF 和 IDF。将 TF 和 IDF 相乘,得到每个词的 TF-IDF 值。优点:能够体现词在文本中的重要性。缺点:仍然无法捕捉语义信息。对常见词(如“的”“是”)的权重可能过高。三、基于神经网络的词向量生成方法(一)Word2Vec原理:通过神经网络学习词的分布式表示。两种主要架构:CBOW(Continuous Bag-of-Words):根据上下文预测中心词。Skip-Gram:根据中心词预测上下文。训练过程:CBOW:输入:上下文词的 one-hot 编码。输出:预测中心词的概率分布。Skip-Gram:输入:中心词的 one-hot 编码。输出:预测上下文词的概率分布。通过反向传播算法优化模型参数。优点:能够捕捉词的语义信息。支持词向量的语义运算(如“国王 - 男人 + 女人 ≈ 女王”)。(二)GloVe(Global Vectors for Word Representation)原理:结合统计方法和神经网络方法,基于词的共现矩阵学习词向量。训练过程:构建词的共现矩阵。定义目标函数,最小化预测共现概率与实际共现概率的差异。通过优化算法(如随机梯度下降)更新词向量。优点:有效利用语料库的统计信息。训练速度快,适合大规模语料库。四、词向量的完整生成过程(一)数据收集与预处理阶段收集语料库:获取大量文本数据(如新闻、论文、社交媒体等)。文本清洗:去除噪声(如 HTML 标签、特殊字符)。分词:对中文等语言进行分词。构建词汇表:统计语料库中所有不重复的词,并为每个词分配唯一索引。(二)模型选择与架构设计阶段基于统计的模型:词袋模型(BoW):简单,忽略词序。TF-IDF:引入词的重要性权重。基于神经网络的模型:Word2Vec:CBOW 和 Skip-Gram 架构。GloVe:基于共现矩阵学习词向量。(三)模型训练阶段定义目标函数:最小化预测结果与真实标签之间的误差。选择优化算法:常用算法:随机梯度下降(SGD)、Adam 等。训练过程监督与调整:监控损失值,调整超参数(如学习率)。(四)词向量生成与评估阶段生成词向量:训练完成后,为词汇表中的每个词生成词向量。评估词向量质量:通过词向量之间的相似度评估语义关系。在下游任务(如文本分类、命名实体识别)中评估词向量的性能。欢迎各位大佬在评论区交流&批评指正!Datewhale组队学习参考链接Datawhale AI+X 共学活动 Fun-Transformer —— Task2:TransformerAttention Is All You Need
2025年01月18日
2 阅读
0 评论
0 点赞
2024-08-18
从零开始注册Hugging Face账号到部署网页应用
背景问题引入你是否遇到过这样的情形:开发好了自己的网页应用,但是苦于手头没有云服务器,或是有云服务器但是环境搭建起来太麻烦,最终导致无法给朋友们展示?那我就要向你推荐 Hugging Face 了!Hugging Face 简介Hugging Face 是一个以自然语言处理(NLP)为主的人工智能公司,提供开源工具和平台,旨在推动机器学习和 NLP 技术的发展。Hugging Face 有一个 Spaces 在线平台,用于创建和分享机器学习应用。用户可以构建、测试和展示自己的模型和应用程序,支持多种机器学习框架和库。Hugging Face 致力于简化和加速 NLP 技术的应用,推动开源和社区驱动的创新。注册与搭建注册并获取Access Tokens进入Hugging Face官网按正常流程进行注册注册完成后,先不要按照自动跳转的官方教程进行部署进入以下链接:获取Access Tokens点击左上角 Create new token 按钮,并选择 Write 权限,确定。 此时,一定要好好保存你的Access Tokens,这个私钥不会在远程服务器存储,如果忘记或者丢掉就只能重新获取一个了。使用 HuggingFace CLI 从本地创建远程网页应用在你开发当前应用时使用的python环境中下载 HuggingFace Hub:pip install huggingface_hub运行以下命令,使用CLI登录HugginFace账号:huggingface-cli login在其中粘贴你刚才获取的 Access Tokens。如果一切顺利,现在就已经登录上了。使用以下指令创建远程仓库:huggingface-cli repo create 你的仓库名 --type space --space-sdk {gradio} -y其中,--type space是说创建了一个space仓库,用来发布网页。--space-sdk {gradio} 是说该网页应用使用Gradio构建。如果你使用streamlit或其他构建,可以修改成你需要的({gradio,streamlit,docker,static},可以多选),也可以不写这一条,随后配置。创建成功后,找一个合适的目录,将仓库克隆至本地:git clone http://huggingface.co/spaces/你的名字/你的仓库名如果你是在 C:\WorkSpace 运行的该指令,那么仓库目录将会被下载到 C:\WorkSpace\你的仓库名。使用cd命令进入你的仓库,会发现当前目录一共有两个文件,分别是 READEME.md 和 .gitattributes。现在,你可以把你先前的项目文件目录复制进来了。不过要注意的是,项目的入口文件一定要是根目录下的 app.py,才能在上传时自动构建。你可能需要稍作修改。在上传至space之前,你还需要生成一份 requirements.txt 依赖文件。如果你还没有生成,推荐使用 pipreqs 工具自动生成。在工作目录下执行:pip install pipreqs pipreqs ./ # 在当前目录自动搜寻依赖,不需要指定入口文件现在,自动生成的requirements.txt应该已经在你的目录下了。在上传至space之前,推荐创建一份 .gitignore 文件,避免将目录下一些编译缓存或不必要的垃圾文件上传。一份 .gitignore 文件的示例如下:# all .DS_Store Thumbs.db *.log *.tmp *.swp *.swo *.bak # Python __pycache__/ *.pyc *.pyo *.pyd env/ venv/ *.env # Visual Studio Code .vscode/ # macOS .DS_Store # Windows Thumbs.db desktop.ini # Custom在一切都准备妥当后,使用以下git命令上传至space。上传之前一定要留意上传的文件中没有你的个人信息。git add * git commit -m "first commit" git push这时,打开 http://huggingface.co/spaces/你的名字/你的仓库名 ,应该就可以看到应用程序在构建了。如果出现在构建中报错,或过程中哪一步卡住,可以在评论区留言或直接邮件联系我,或查阅官方文档寻找解决方案。{lamp/}参考链接:HuggingFace 官方文档HuggingFace CLI 命令全面指南
2024年08月18日
91 阅读
0 评论
0 点赞
2024-08-17
【2024 Datawhale AI 夏令营】Task3:RAG实战
RAG 技术简介技术用途RAG(检索增强生成)是为解决基础大模型在实际业务场景中所面临的一些局限性问题而提出的一种方法。主要解决的问题包括:知识局限性:大模型的知识来源于训练数据,无法覆盖实时性或非公开的数据。数据安全性:企业需要保护数据安全,而大模型训练往往需要接触大量数据,这可能带来数据泄露的风险。大模型幻觉:大模型基于概率生成回答,有时会在没有知识的领域生成不准确的内容。RAG 通过引入外部知识库来增强大模型的生成能力,通常分为以下三个步骤:索引:将文档分割为文本块,并构建向量索引。检索:根据问题检索与其相似的文本块。生成:将检索到的文本块作为背景信息,用于生成更加准确的回答。当前,RAG 已成为解决知识盲区和生成准确答案的主流方法,在实际应用中非常有效。构建流程离线计算:离线计算是 RAG 系统的基础,主要工作是对知识库中的文档进行解析、清理、切割、向量化,并将这些向量存储到数据库中,具体包括以下步骤:文档解析与清洗:知识库包含多种文档格式(如 PDF、Word、PPT 等)。首先对文档进行解析,清理无关内容,切割成较短的文本块(Chunk),同时去除重复内容。这样可以提高系统的知识覆盖率和查询的准确性。向量化(Vectorization):每个文本块会被转换为一个向量,这需要一个预训练的向量模型(Embedding Model)。该模型可以将具有相似语义的文本映射到语义空间中相近的位置,而语义不同的文本则会被映射到更远的地方。存储:由于知识库的规模较大,向量化后的结果会存储在向量数据库中,如 Milvus、Faiss 等。向量数据库有助于高效管理这些向量,并在后续的检索过程中提高性能。离线计算的核心在于提前做好大规模的计算和存储准备,确保在线计算时可以高效、准确地响应用户查询。在线计算:用户查询与检索:用户输入查询时,系统首先会将该查询向量化,并与数据库中的向量进行相似度计算,检索出一系列与查询最相关的文本块。这一过程的效率与数据库规模相关,因此可能会使用召回机制来缩小计算范围。召回与精排:召回阶段快速获取大概率相关的文本块,通常采用简单的基于字符串的匹配算法(如 TF-IDF、BM25 等),然后在这些文本块中进一步进行精排,即基于向量相似度对文本块排序。精排确保相关性更高的文本块排在前列。重排(Rerank):为提高检索精度,在精排之后还可以进行重排。重排模型通过更复杂的算法对精排结果重新排序,确保最相关的内容优先被选中。随着知识库规模的增加,重排能够有效提升整体检索效果。生成回复:最终,将检索到的 k 个最相关文本块与用户的查询拼接成一个提示(prompt),输入到大模型中。大模型基于这些背景信息生成更加准确的回答,解决用户的问题。通过离线与在线计算的配合,RAG 系统能够在保证数据安全的前提下,提供快速且精确的问答服务。场景举例:法律咨询服务系统:离线计算:解析、切割和向量化法律法规、合同模板等法律文档,并将它们存入数据库。在线计算:用户输入具体问题(如“租赁合同中的解除条款是什么?”),系统检索相关法律条文和合同条款,将其作为背景信息,结合大模型生成具体的法律建议。实战体验注册社区注册社区启动实例的部分可以参照前几天发布的[【2024 Datawhale AI 夏令营】Task1:借助魔塔(ModelScope)社区基于[源-2B]模型构建智能编程助手](https://blog.simuoss.cn/index.php/archives/15/)操作。搭建Demo环境进入实例,点击终端。 运行下面代码,下载文件,并将 Task 3:源大模型RAG实战中的内容拷贝到当前目录。git lfs install git clone https://www.modelscope.cn/datasets/Datawhale/AICamp_yuan_baseline.git cp AICamp_yuan_baseline/Task\ 3:源大模型RAG实战/* .双击打开 Task 3:源大模型RAG实战.ipynb,然后运行所有单元格。 通过下面的命令,我们可以看到 ModelScope 已经提供了所需的大部分依赖,如 torch,transformers 等。pip list但是为了进行模型微调以及 Demo 搭建,还需要在环境中安装 streamlit。pip install streamlit==1.24.0安装成功后,我们的环境就准备好了。模型下载在 RAG 实战中,我们需要构建一个向量模型。向量模型通常采用 BERT 架构,它是一个 Transformer Encoder。 输入向量模型前,首先会在文本的最前面额外加一个 [CLS] token,然后将该 token 最后一层的隐藏层向量作为文本的表示。 在本次学习中,我们选用基于 BERT 架构的向量模型 bge-small-zh-v1.5,它是一个 4 层的 BERT 模型,最大输入长度 512,输出的向量维度也为 512。向量模型下载:from modelscope import snapshot_download model_dir = snapshot_download("AI-ModelScope/bge-small-zh-v1.5", cache_dir='.')这里使用的是 modelscope 中的 snapshot_download 函数,第一个参数为模型名称 AI-ModelScope/bge-small-zh-v1.5,第二个参数 cache_dir 为模型保存路径,这里 . 表示当前路径。 模型大小约为 91.4M,由于是从魔搭直接进行下载,速度会非常快。 下载完成后,会在当前目录增加一个名为 AI-ModelScope 的文件夹,其中 bge-small-zh-v1___5 里面保存着我们下载好的向量模型。 另外,还需要下载源大模型 IEITYuan/Yuan2-2B-Mars-hf。下载方法和 Task 1:零基础玩转源大模型 一致。from modelscope import snapshot_download model_dir = snapshot_download('IEITYuan/Yuan2-2B-Mars-hf', cache_dir='.')RAG实战模型下载完成后,就可以开始 RAG 实战了。索引为了构造索引,这里我们封装了一个向量模型类 EmbeddingModel:# 定义向量模型类 class EmbeddingModel: """ class for EmbeddingModel """ def __init__(self, path: str) -> None: self.tokenizer = AutoTokenizer.from_pretrained(path) self.model = AutoModel.from_pretrained(path).cuda() print(f'Loading EmbeddingModel from {path}.') def get_embeddings(self, texts: List) -> List[float]: """ calculate embedding for text list """ encoded_input = self.tokenizer(texts, padding=True, truncation=True, return_tensors='pt') encoded_input = {k: v.cuda() for k, v in encoded_input.items()} with torch.no_grad(): model_output = self.model(**encoded_input) sentence_embeddings = model_output[0][:, 0] sentence_embeddings = torch.nn.functional.normalize(sentence_embeddings, p=2, dim=1) return sentence_embeddings.tolist()通过传入模型路径,新建一个 EmbeddingModel 对象 embed_model。 初始化时自动加载向量模型的 tokenizer 和模型参数。print("> Create embedding model...") embed_model_path = './AI-ModelScope/bge-small-zh-v1___5' embed_model = EmbeddingModel(embed_model_path)EmbeddingModel 类还有一个 get_embeddings() 函数,它可以获得输入文本的向量表示。 注意,这里为了充分发挥 GPU 矩阵计算的优势,输入和输出都是一个 List,即多条文本及其向量表示。2.3.2 检索为了实现向量检索,我们定义了一个向量库索引类 VectorStoreIndex:# 定义向量库索引类 class VectorStoreIndex: """ class for VectorStoreIndex """ def __init__(self, doecment_path: str, embed_model: EmbeddingModel) -> None: self.documents = [] for line in open(doecment_path, 'r', encoding='utf-8'): line = line.strip() self.documents.append(line) self.embed_model = embed_model self.vectors = self.embed_model.get_embeddings(self.documents) print(f'Loading {len(self.documents)} documents for {doecment_path}.') def get_similarity(self, vector1: List[float], vector2: List[float]) -> float: """ calculate cosine similarity between two vectors """ dot_product = np.dot(vector1, vector2) magnitude = np.linalg.norm(vector1) * np.linalg.norm(vector2) if not magnitude: return 0 return dot_product / magnitude def query(self, question: str, k: int = 1) -> List[str]: question_vector = self.embed_model.get_embeddings([question])[0] result = np.array([self.get_similarity(question_vector, vector) for vector in self.vectors]) return np.array(self.documents)[result.argsort()[-k:][::-1]].tolist()通过传入知识库文件路径,新建一个 VectorStoreIndex 对象 index。 初始化时会自动读取知识库的内容,然后传入向量模型,获得向量表示。print("> Create index...") doecment_path = './knowledge.txt' index = VectorStoreIndex(doecment_path, embed_model)VectorStoreIndex 类还有一个 get_similarity() 函数,用于计算两个向量之间的相似度,采用余弦相似度。VectorStoreIndex 类的入口是查询函数 query()。传入用户的提问后,首先会送入向量模型获得其向量表示,然后与知识库中的所有向量计算相似度,最后将 k 个最相似的文档按顺序返回,k 默认为 1。question = '介绍一下广州大学' print('> Question:', question) context = index.query(question) print('> Context:', context)生成为了实现基于 RAG 的生成,我们还需要定义一个大语言模型类 LLM:# 定义大语言模型类 class LLM: """ class for Yuan2.0 LLM """ def __init__(self, model_path: str) -> None: print("Creat tokenizer...") self.tokenizer = AutoTokenizer.from_pretrained(model_path, add_eos_token=False, add_bos_token=False, eos_token='<eod>') self.tokenizer.add_tokens(['<sep>', '<pad>', '<mask>', '<predict>', '<FIM_SUFFIX>', '<FIM_PREFIX>', '<FIM_MIDDLE>', '<commit_before>', '<commit_msg>', '<commit_after>', '<jupyter_start>', '<jupyter_text>', '<jupyter_code>', '<jupyter_output>', '<empty_output>'], special_tokens=True) print("Creat model...") self.model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.bfloat16, trust_remote_code=True).cuda() print(f'Loading Yuan2.0 model from {model_path}.') def generate(self, question: str, context: List): if context: prompt = f'背景:{context}\n问题:{question}\n请基于背景,回答问题。' else: prompt = question prompt += "<sep>" inputs = self.tokenizer(prompt, return_tensors="pt")["input_ids"].cuda() outputs = self.model.generate(inputs, do_sample=False, max_length=1024) output = self.tokenizer.decode(outputs[0]) print(output.split("<sep>")[-1])我们传入 Yuan2-2B-Mars 的模型路径,新建一个 LLM 对象 llm。 初始化时自动加载源大模型的 tokenizer 和模型参数。print("> Create Yuan2.0 LLM...") model_path = './IEITYuan/Yuan2-2B-Mars-hf' llm = LLM(model_path)LLM 类的入口是生成函数 generate(),它有两个参数:question: 用户提问,是一个 strcontext: 检索到的上下文信息,是一个 List,默认是 [],代表没有使用 RAG运行下面的代码,即可体验使用 RAG 技术之后 Yuan2-2B-Mars 模型的回答效果:print('> Without RAG:') llm.generate(question, []) print('> With RAG:') llm.generate(question, context)
2024年08月17日
14 阅读
0 评论
1 点赞
2024-08-17
彻底卸载Cloudflare Tunnel(解决 cloudflared service uninstall 报错问题)
问题引入Cloudflare 是一家国际知名的互联网基础设施服务的公司。对国内用户来说,很多人用 Cloudflare 的免费服务来给网页带上 https (比如本站),又或者是用 Cloudflare Tunnel(Cloudflare Argo Tunnel) 来穿透本地网页到公网。但是,由于众所周知的原因,国内访问 Cloudflare 服务通常不是很通畅,而在配置 Cloudflare Tunnel 时也偶尔会因为各种原因失败,需要重新安装。这时,cloudflared 会提示如下:这是由于 cloudflared 没有完全清理安装文件导致的。如何解决在执行卸载指令之后,执行指令清除 cloudflared 的所有配置文件:sudo cloudflared service uninstall sudo rm /etc/systemd/system/cloudflared*这时再重新执行安装指令即可。切换到HTTP2连接有时候在隧道创建成功后,Cloudflare 后台会显示隧道状态是 degraded (退化状态),这可能是由于新版的Cloudflare隧道“强制”使用QUIC进行连接,而国内的网络接入服务商对UDP协议支持很不好造成的。可以通过以下方式设置默认使用HTTP2连接。编辑配置文件:sudo vi /etc/systemd/system/cloudflared.service在 ExecStart 一行的启动指令里添加如下参数:--protocol http2此时启动指令应该是类似 ExecStart=/usr/bin/cloudflared --no-autoupdate --protocol http2 tunnel run --token <your_token> 的形式。重新启动服务sudo systemctl daemon-reload sudo systemctl restart cloudflared #由于网络环境原因可能启动不成功,多执行几次本句参考链接:遇事不决,量子力学!搞定Cloudflare Tunnels无法建立隧道的问题【便笺】配置Cloudflare隧道默认使用HTTP2Cloudflare Tunnel 中文文档Cloudflared service not removed after uninstall
2024年08月17日
387 阅读
0 评论
2 点赞
2024-08-13
【2024 Datawhale AI 夏令营】Task2:头脑风暴会(发言人分享)
三个Idea首先感谢浪潮科技提供了系统化学习平台。我们团队提出了三个创新想法,旨在为AI开发提供启发。以下为各项构想的简要介绍。1. 公文大模型的开发与应用背景与初衷当前,各类AI模型在生成文本、图像和语音方面展现出巨大潜力,但实际应用中用户反馈常与预期不符。以QQ 9.0版的机器人功能为例,尽管具备多项实用功能,但使用率并不高,表明应用场景和用户体验存在改进空间。因此,设想通过融合AI模型,聚焦具体应用场景,以提升用户兴趣。功能概述公文生成模型通过以下三大功能提升写作效率:公文润色:针对语言口语化现象,提供公文写作风格的迁移工具,平衡上级要求与通俗易懂性。情景化公文模板:自动生成特定场景下的标准化公文模板,简化重复性工作。立意深化:引用政策报告和领导发言等,提升文章深度。2. AI赋能线下零售应用场景与目标尽管电商零售技术已广泛应用,线下中小型商超对AI技术的利用仍较为有限。开发了一个系统,汇总中小企业ERP数据,分析大量企业的零售数据,以发掘潜在的业务价值。该系统旨在帮助零售企业从大量数据中提取有用信息,支持决策和业务优化。功能概述信息查询:通过自然语言查询销售数据、库存情况等信息,AI检索并整合相关数据。数据对比:未来计划引入线上电商价格对比功能,增强线下零售企业的市场竞争力。3. 高校新生问答模型模型的起源每年高校论坛上,新生反复提出相同或类似的问题,增加了老生和管理者的负担。为解决这一问题,设计了专门针对高校新生常见问题的AI问答模型。功能概述模型利用增强型检索技术(RAG),不仅检索现有资料,还能整合信息,生成简明扼要的回答。典型应用场景包括:课程相关问题:例如“如何查看下学期课表?”、“选修课有哪些?”。校园生活问题:例如“宿舍住几人?”、“假期能否留校?”。资源使用问题:例如“功率限制是多少?”、“电费如何计算?”。学术相关问题:例如“保研资格是什么?”、“保研率是多少?”。优势与改进方向与传统FAQ相比,模型不仅检索相关内容,还能整合生成结构清晰的回答,提升用户体验。
2024年08月13日
24 阅读
0 评论
0 点赞
1
2
3