使用GPT2、FastAPI和ReactJS训练与部署AI格言生成器

「文智助手」全场景办公AI助理AI+OPC全流程实践方案(大赛作品) 阅读详情

如何训练与部署自定义AI生成的格言:使用GPT2、FastAPI和ReactJS

问题

好的格言能让我们更坚强。格言真正鼓舞人心的并非其语调或满足感,而是分享者所反映的、真正有益于他人的生活经验。上面这段关于格言的话(格言套娃)并不是我写的,而是我训练的一个AI模型生成的。而且它说得比我可能表达的更好。格言对不同的人意味着不同的事物。有时它们激励我们,鼓舞我们。另一些时候,它们让我们思考生活、宗教,有时它们只是让我们发笑。

那么,我们能否训练一个AI模型来生成更多格言,让我们思考、发笑或受到启发?这就是我开始这段旅程的动机。

太长不看版
我已经在具有特定风格的格言上微调了GPT2模型,风格包括励志/鼓舞人心、有趣以及严肃/哲学,并部署在一个可即用的网站上:AI格言生成器。

模型

2020年6月3日,某中心发布了GPT3,这是一个在570GB互联网文本上训练的巨型语言模型。人们将这个多才多艺的模型应用于各种场景,从创建应用设计、网站,到实现近乎魔法的Excel函数。但存在一个问题——模型权重从未公开。我们访问它的唯一方式是通过付费的API。

所以,让我们时光倒流到2019年11月,那时GPT-2发布了。GPT-2虽然不如GPT-3强大,但在文本生成领域引发了一场革命。我记得当我阅读模型生成的演示文本时,惊讶得下巴都要掉下来了——其连贯性和语法结构近乎完美。我对模型的要求不是成为魔术师,而是能够生成结构完美的英语句子。为此,GPT2已经绰绰有余。

数据集

首先我需要一个数据集。从网上爬取格言是一个选择,但在那之前我想看看是否已经有人做过这件事。果然!Quotes-500k是一个包含近50万条格言的数据集,所有格言都是从网上爬取的,并附有诸如知识、爱情、友谊等标签。

现在我希望模型能够根据特定主题生成格言。由于我计划使用预训练模型,条件性文本生成并不容易实现。PPLM是某机构发布的一个模型,或者更确切地说,是一种使用预训练模型的方法,旨在实现这一目标(一篇非常有趣的论文,一定要看看),但最终我选择了另一条路。我决定训练三个模型,每个都针对特定类型的格言进行微调。

我考虑了三种类型——励志型、严肃型和有趣型。我使用Quotes500k数据集及其标签,根据标签将格言分离到这三个类别中。对于励志数据集,我使用了诸如爱情、生活、鼓舞人心、励志、人生教训、梦想等标签。对于严肃型,我选择了哲学、生活、上帝、时间、信仰、恐惧等标签。最后,对于有趣型,我只用了幽默和搞笑这类标签。

预处理

这里没什么特别的;只是基本的清理工作。例如:

  • 转换为小写
  • 替换缩写,如将"wasn’t"替换为完整形式"was not"。
  • 移除HTML特殊实体(因为这是一个从网上抓取的语料库)
  • 移除多余的空格
  • 在单词和标点符号之间插入空格
  • 拼写检查和纠正(使用pyenchant)

你可能会有疑问:那停用词呢?词形还原呢?那些步骤在哪里?删除停用词和词形还原并不是你在每个NLP任务中都必须执行的强制性步骤。这真的取决于任务。如果我们使用TF-IDF这类模型进行文本分类,那么,是的,做所有这些是有意义的。但对于使用上下文(如神经网络模型或N-Gram模型)的文本分类来说,必要性就小一些。如果你在进行文本生成或机器翻译,那么删除停用词和词形还原实际上可能会损害性能,因为我们正在从语料库中丢失有价值的上下文信息。

句首/句尾标记与最大长度

我还希望生成的格言不要太长。所以我查看了数据集,绘制了格言长度的频率分布图,并决定了一个适当的截断长度。在励志语料库中,我丢弃了所有超过100个单词的格言。

格言长度频率(励志型)
另一个使格言简短的重要方面是模型预测句尾标记的能力。因此,我们用句首标记和句尾标记来包装每条格言。

tokenizer = AutoTokenizer.from_pretrained('gpt2')
MAX_LEN = 100
train_m = ""
with open(train_path, "r", encoding='utf-8') as f:
    for line in f.readlines():
        if len(line.split())>MAX_LEN:
            continue
        train_m += (tokenizer.special_tokens_map['bos_token']+line.rstrip()+tokenizer.special_tokens_map['eos_token'])
with open(train_mod_path, "w", encoding='utf-8') as f:
    f.write(train_m)

test_m = ""
with open(test_path, "r", encoding='utf-8') as f:
    for line in f.readlines():
        if len(line.split())>MAX_LEN:
            continue
        test_m += (tokenizer.special_tokens_map['bos_token']+line.rstrip()+tokenizer.special_tokens_map['eos_token'])
with open(test_mod_path, "w", encoding='utf-8') as f:
    f.write(test_m)

训练

现在我们已经准备好并处理了数据集,让我们开始训练模型。来自某机构的Transformers库因其易于使用的API和惊人的预训练权重模型集合而成为显而易见的选择。得益于某机构,训练或微调模型是一件轻而易举的事。

我们首先加载GPT2的模型和分词器。

tokenizer = AutoTokenizer.from_pretrained('gpt2')
model = AutoModelWithLMHead.from_pretrained('gpt2')

就这样。在你编码时,巨大的预训练模型的全部力量就掌握在你手中。

现在,让我们定义一个加载数据集的函数。

def load_dataset(train_path,test_path,tokenizer):
    train_dataset = TextDataset(
          tokenizer=tokenizer,
          file_path=train_path,
          block_size=128)
    test_dataset = TextDataset(
          tokenizer=tokenizer,
          file_path=test_path,
          block_size=128)
    data_collator = DataCollatorForLanguageModeling(
        tokenizer=tokenizer, mlm=False,
    )
    return train_dataset,test_dataset,data_collator

train_dataset,test_dataset,data_collator = load_dataset(train_mod_path,test_mod_path,tokenizer)

现在我们有了数据集,让我们创建Trainer。这是处理所有训练过程的核心类。

from transformers import Trainer, TrainingArguments

training_args = TrainingArguments(
    output_dir="./storage/gpt2-motivational_v6", #输出目录
    overwrite_output_dir=True, #覆盖输出目录的内容
    num_train_epochs=10, #训练轮数
    per_gpu_train_batch_size=32, #训练批大小
    per_gpu_eval_batch_size=64,  #评估批大小
    logging_steps = 500, #两次评估之间的更新步数
    save_steps=500, #每#步后保存模型
    warmup_steps=500,#学习率调度器的预热步数
    )

trainer = Trainer(
    model=model,
    args=training_args,
    data_collator=data_collator,
    train_dataset=train_dataset,
    eval_dataset=test_dataset,
    prediction_loss_only=True,
)

到这个时候,我们已经拥有了开始训练所需的所有要素——模型、分词器和训练器。剩下要做的就是训练模型。训练完成后,我们只需要保存模型和分词器以备使用。

trainer.train()
trainer.save_model("./storage/gpt2-motivational_v6")
tokenizer.save_pretrained("./storage/gpt2-motivational_v6")

每个模型都在单个P5000 GPU上训练了约50轮,总共约12小时(不包括所有测试运行以及出现问题的运行)。

推理

我们已经训练并保存了模型。现在呢?为了进行推理,我们使用了某机构的另一个杰出特性——管道。这个很棒的特性让你只需几行代码就能将模型投入生产。

tokenizer = AutoTokenizer.from_pretrained("./storage/gpt2-motivational_v6")
model = AutoModelWithLMHead.from_pretrained("./storage/gpt2-motivational_v6")

gpt2_finetune = pipeline('text-generation', model=model, tokenizer=tokenizer)

# gen_kwargs有不同的选项,如max_length、beam_search选项、top-p、top-k等
gen_text = gpt2_finetune (seed, *gen_kwargs)

gen_kwargs配置文本生成。使用了k=50的top_k采样和p=0.95的top_p采样的混合方法。为了避免文本生成中的重复,使用了no_repeat_ngram_size = 3和repetition_penalty=1.2。

用户界面

现在我们已经训练好了核心模型,我们需要一种与它交互的方式。每次需要它生成内容时都写代码对用户不友好。所以,我们需要一个UI。我选择用ReactJS快速构建一个简单的UI。

虽然我无法将整个项目放到Github上,但我会将关键部分作为Github Gists发布。

出于UI的目的,我给三个模型起了代号——Inspiratobot(励志型)、Aristobot(严肃型)和FunnyBot(有趣型)。

UI的主要功能包括:

  • 能够在三种不同风格之间进行选择
  • 可以自己输入引语开头,也可以使用众多随机的起始种子之一(将自动填充)。如果不喜欢某个种子,点击随机按钮获取另一个种子。
  • 在高级设置中,可以调整引语的最小和最大长度。也可以调整多样性(或采样中的温度参数)
  • UI还使用了来自Unsplash的库存照片作为引语的背景,因为这是近来的潮流。它会从一系列适合当前生成引语风格的照片中进行选择。
  • 还可以让你以1到5的等级为引语评分。

UI项目的文件夹结构如下:

|                  
 +---public
 |       favicon.ico
 |       index.html
 |       logo.png
 |       logo.svg
 |       manifest.json
 |       
 ---src
         App.js
         customRatings.js # 心形评分组件
         debug.log
         index.js
         quotes.css # 页面的CSS
         quotes.js # 核心页面
         theme.js
 |
 |   .gitignore
 |   package-lock.json
 |   package.json

后端API服务器

为了托管和服务模型,我们需要一个服务器。为此,我选择了FastAPI,这是一个直截了当的Web框架,专门用于构建API。

由于它的极致简单性,我强烈推荐FastAPI。一个非常简单的API示例(来自文档)如下:

from typing import Optional
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
    return {"item_id": item_id, "q": q}

不到10行代码就能为你的API搭建一个Web服务器,这听起来好得不像真的,但它确实如此。

不深入细节,API的关键部分是引语的生成,以下是相关代码。

def postprocess_gen_text(gen_text):
    sentences = gen_text.split(".")
    for i, sent in enumerate(sentences):
        sent = ". ".join([s.strip() for s in sent.split(".")]).capitalize().strip()
        sent = re.sub(r"\bi\b", "I", sent)
        sent = re.sub(r"\bgod\b", "God", sent)
        sent = re.sub(r"\bchrist\b", "Christ", sent)
        sentences[i] = sent
    return ". ".join(sentences).strip()

def generate_quote(model_name: ModelName, seed: str, gen_kwargs: dict):
    global model
    global tokenizer
    global current_model_name
    if model_name != current_model_name:
        _load_model(model_name)

    gpt2_finetune = pipeline(
        "text-generation", model=model, tokenizer=tokenizer, device=-1,
    )

    gen_text = gpt2_finetune(seed, **gen_kwargs)[0]["generated_text"]
    return postprocess_gen_text(gen_text)

项目的文件夹结构:

+---app
 |   |   api.py
 |   |   db_utils.py
 |   |   enums.py
 |   |   timer.py
 |   |   init.py
 |   |
 +---data
 |       funny_quotes.txt
 |       motivational_quotes.txt
 |       serious_quotes.txt
 |
 +---models
 |   +---gpt2-funny
 |   |
 |   +---gpt2-motivational
 |   |
 |   |---gpt2-serious
 |
 |   app_config.yml
 |   logger.py
 |   logging_config.json
 |   main.py
 |   memory_profiler.log
 |   pipeline.log
 |   requirements.txt

部署

将应用程序容器化,启动一个EC2实例并进行托管,这本来会很容易。但我想要一个便宜(如果不是免费的话)的方案。另一个挑战是每个模型大约500MB,将它们加载到内存中会使RAM消耗徘徊在1GB左右。所以EC2实例成本会很高。除此之外,还需要在云端存储三个模型,这也需要存储成本。最重要的是,还需要一个数据库来存储用户给出的评分。

带着这些需求,我开始寻找产品/服务。为了让事情更简单,我将应用分成了两部分——一个后端API服务器和一个内部调用后端API的前端UI。

在搜索过程中,我偶然发现了一个开发者可以使用的免费服务的超棒列表。在评估了几个选项之后,我最终确定了以下选项,以使部署的总成本尽可能低:

  • 后端API服务器 – Kintohub
  • 前端托管 – Firebase(免费)
  • 数据库 – MongoDB Atlas(免费)

KintoHub
“KintoHub是一个为全栈开发者设计的一体化部署平台”,主页上写道。如果成本不是问题,我本可以将整个应用程序部署在KintoHub上,因为这就是他们提供的服务——一个可以很好扩展的后端服务器、一个服务静态HTML文件的前端服务器以及一个数据库。在后台,他们通过一个非常易于使用的Web界面将应用程序容器化,并部署在选定配置的机器上。最棒的是,所有这些都可以通过Github完成。你将代码提交到Github仓库(公共或私有),并通过指向该仓库直接部署应用。

就必须要完成的最低限度设置而言,一个页面就足够了。

就是这样。当然还有更多可用设置,比如应用程序运行所需的内存等。虽然KintoHub有一个免费层,但我很快意识到,由于模型的内存消耗,我需要至少1.5GB才能使其运行而不崩溃。所以我转到了按需付费层,他们每月慷慨地赠送5美元信用额度。成本计算器显示应用程序托管将花费5.5美元,我可以接受(仍在等待月底看实际成本)。

Google Firebase
Firebase是很多东西的集合。它的主页上说它是一个完整的应用开发平台,事实也确实如此。但我们只对Firebase Hosting感兴趣,他们允许你免费托管单页网站。部署应用非常轻松。你需要做的就是:

  1. 安装firebase CLI
  2. 在你的React项目上运行npm build
  3. 从项目的根文件夹运行firebase init,并将源路径从public指向build
  4. 运行firebase deploy

只需要一个非常简短的教程就能完成。

MongoDB Atlas
MongoDB Atlas是一个云数据库即服务,在云上提供MongoDB,好处是他们提供了一个具有512MB存储空间的免费层。对于我们的用例来说,这绰绰有余。

创建一个新的集群是直截了当的,一旦解决了访问问题,就可以使用像pymongo这样的Python包装器来实现我们的数据库连接。

成果

所有这些工作的成果是一个网站,你可以在其中与模型互动,生成格言并假装是自己的作品 😄。

虽然模型并不完美,但它仍然能产生一些真正让你思考的好格言。这不就是你对任何格言的期望吗?玩得开心。

免责声明

本项目中提及的公司名称仅用于技术背景描述,不构成任何形式的商业推广。相关技术实现和部署方案的选择基于作者的个人评估和项目需求。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

船载 OpenHarmony AIS 航海工作台:告警与防碰撞预警系统 船载OpenHarmony AIS航海工作台的告警与防碰撞系统,集成十余类告警(超速、偏航、会遇、SOS等),通过网格空间索引实现高效邻近判定,保障实时性。告警管理器统一调度规则、去重、通知与日志,支持悬浮球、语音、跑马灯、弹窗多渠道触达,确保航行安全。SOS紧急通道独立运行,避免干扰。系统设计强调性能优化与多场景适配,为航海安全提供核心支撑。 阅读详情

相关推荐

【异常】解决JDK21升级中的SecurityException: JCE无法验证BC提供者问题

本文详细解析了JDK21升级中常见的SecurityException: JCE无法验证BC提供者问题的根源与解决方案。核心在于JDK21强化了JCE安全验证,导致签名不合规的老版本Bouncy Castle库被拒绝。文章提供了通过Maven依赖树精准定位、排除旧版本并引入兼容的bcprov-jdk18on新库的完整步骤,以及清理缓存等实战技巧,帮助开发者彻底解决此兼容性问题。

weixin_29197051的博客 491

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 228

使用.NET 免费开源包ViewFaceCore做一个人脸识别并注册的功能,没有比我更全的

本文介绍了一个基于WinForm的免费人脸识别系统实现方案。系统使用AForge和ViewFaceCore库,支持从USB或电脑自带摄像头采集图像,具备人脸注册和快速识别功能。硬件方面仅需普通摄像头,软件依赖多个NuGet包(如AForge.Video、ViewFaceCore等)。界面包含视频显示、图像预览和功能按钮控件,后台采用SQLServer存储用户面部特征数据。核心代码展示了人脸检测、特征提取和多线程处理逻辑,通过ViewFaceCore实现高效识别。系统具有识别速度快、准确率高的特点,适合Win

一个靠“吃代码”长大的程序猿,专治各种“Bug 饥饿症”。 817

6 款电商 AI 图片生成软件实测|国内 + 跨境卖家工具清单

电商 AI 作图工具已经从 "能不能用" 进入了 "好不好用" 的阶段。对于绝大多数卖家而言,现在的 AI 工具已经可以覆盖 60%-80% 的基础商品图需求,显著降低拍摄和设计成本。选择工具的核心逻辑不是 "哪款最强",而是 "哪款最适配你的品类、平台规模和团队能力"。垂直电商工具胜在工作流效率,通用生图工具强在创意上限,模板类工具赢在上手速度。建议根据自身业务阶段,搭配 1-2 款主力工具 + 1 款辅助工具,形成适合自己的视觉生产流程。

Mardi_Ladin的博客 402

[0352]基于JAVA的停车场收费智慧管理系统的设计与实现

其次,从经营管理层面考虑,本系统涵盖了丰富的月卡管理和财务结算功能,如月卡用户管理、缴费、注销、挂失、解挂、补办等全流程服务,以及临保和月保的结算汇总与欠费查询等功能,这不仅有助于规范停车场的日常运营管理,更能有效提高财务管理效率,降低运营成本,实现精细化、数字化的财务管控。综上所述,本课题计划研发的基于Java的停车场收费智慧管理系统将在现有研究成果的基础上,重点优化月卡用户全生命周期管理和财务统计分析功能,以满足现代停车场高效、精准、安全的管理需求,紧跟行业发展趋势,为推动智慧城市的建设贡献一份力量。

muyu2980的专栏 589

如何在NVIDIA CX6 网卡和华为CE交换机上为RDMA协议使能DCQCN和PFC

【代码】如何在NVIDIA CX6 网卡和华为CE交换机上使能DCQCN和PFC。

Markchen7788的博客 5092

我用 GPUWorks 在 M1 Pro 上搭了个发票识别原型

公司里经常要看电子发票。我想先做个小原型:把 PDF 发给一个自己部署的图文模型,让它提取发票类型、日期、交易双方和金额,再把结果交给同事核对。这个原型不用先接财务系统,先看看从部署到调用要走多少步,模型返回的内容能不能帮上忙。

鸽芷咕的博客 2万+

Calibre LVS效率翻倍秘籍:用Hierarchical Flow处理亿级晶体管设计的5个关键阶段

本文详细解析了如何利用Hierarchical Flow技术提升Calibre LVS在亿级晶体管SoC设计中的验证效率。通过五个关键阶段的分层验证流程,包括顶层抽象验证、模块级独立验证等,可显著降低内存占用40-60%,缩短迭代周期50-70%,特别适用于SMIC等先进工艺节点。文章还分享了算力资源优化、并行化处理等实战技巧,帮助工程师应对大规模芯片验证挑战。

sam99的博客 768

您您这可以把问小白的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭

第三层是格式编译层。这个决策背后的判断很清晰:一个批量导出工具的价值,不在于“试三次”,而在于你真正用它处理了几十份技术文档、访谈记录或课程讲义之后,它是否值得留在你的工作流里。问小白的会话列表通过分页接口加载,AI导出鸭 在页面运行时建立旁路监听,捕获每一次分页请求返回的完整对话清单,包括会话 ID、标题、时间戳和隐藏的元数据字段。让AI导出回归优雅——这句话说的是:导出不该是体力活,而应该是一次完整的、可预期的文件交付。注意:这里的“批量”指的是左侧列表里的多个独立会话,不是一条会话内的多轮对话。

laoyunsi的博客 248

电路板功能测试系统-FCT for PCBA

电路板功能测试系统用于电路板组件(PCBA)的功能测试(FCT),满足自动化大批量生产的要求。  ● 用户根据自己需要定义测试步骤,灵活方便  ● 适合工业自动化大批量生产应用  ● 系统测试精度高,稳定可靠   一、电路板功能测试系统概述 电路板测试过程通常由多个步骤组成,每单个步骤中需要对多个物理量(电压、电流、电阻、频率、波形等)进行测试。在每个步骤测试时

6813

OpenClaw人人养虾:发现与传输

客户端需要先"发现"Gateway 的地址和端口,才能建立连接。OpenClaw 支持多种发现(Discovery)和传输(Transport)机制。

王国平的博客 572

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 503

手把手实现STM32+ESP8266+原子云服务器+手机APP应用——第三节-编写STM32程序实现STM32+ESP8266+原子云服务器+手机APP互相通信—远程数据传输及控制灯

接上一篇,本节使用原子云服务器。编写STM32程序实现STM32+ESP8266+原子云服务器+手机APP互相通信—远程数据传输及控制灯。使用的硬件包括:STM32F103(任意其他款系列也可以的)、正点原子ATK-ESP8266、LED灯。实现编写STM32程序代码来传输单片机数据到原子云服务器和手机APP进行显示,同时通过手机APP和原子云服务器可以远程控制单片机,例如本节实现远程点/灭灯,以此可以扩展开发更多的功能。本专栏本系列的相关文章可查看下面链接:

嵌入式阿齐Archie 8414

河道漂浮物目标检测数据集

目标检测,yolo,河道漂浮物目标检测数据集

DL_data_set的博客 203

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

AI Agent之核心框架

A: 显式 Thought 有三类价值:可解释性(便于人类审计)、可调试性(定位哪一步选错工具)、学习信号(可做监督微调或评估中间步骤质量)。ReAct 把推理与 可执行行动 绑定,每一步行动后都有 真实 Observation 反馈,从而用工具结果约束生成,降低闭卷幻觉。做完不等于结束——还要 评估做得好不好,把 教训 记下来,下次 带着教训重试,反思作为 记忆,影响后续尝试的策略。工作流程:Action → Evaluation → Reflection → Retry。A: 普通 CoT 只在。

剑雨巍巍的博客 201

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

AI 应用开发工程师技术实践:大模型接入、通用组件封装与性能优化

本文提出AI应用从PoC到生产的核心挑战:模型调用的持续可用、可控与可优化。通过构建统一LLM网关实现多供应商路由与故障转移,封装对话、工具调用与RAG组件以解耦业务逻辑,结合前缀缓存、批处理与流式背压治理等性能优化手段,形成“接通→接稳→接快”的工程路径,最终以工程化能力决定AI应用的生产可用性。

2301_79189962的博客 560

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

AI前沿日报 · 2026-11-04 | 祛魅时刻:Astra“纯读权重“神话的崩塌

①Astra"裸权重通吃"被spaCy创始人Honnibal精准祛魅——仅1/3实验真裸读,数学能力提升依赖Python+50次迭代;②Simon Willison用Qwen 3.8-27B端侧复现权重空间编程;③Nvidia开源Auto-Ontology自动知识图谱;④$800开源全域抓取机器人Stringman;⑤OpenAI悄然重开Codex训练开关引信任危机;⑥DeepMind发布Gemini 4 Argon机器人基础模型;⑦美国科技巨头隐性AI债务达3.2万亿美元,6个月增90%。

johnsong2009的博客 575

大模型 Embedding 与向量相似度详解

Embedding 解决的问题:计算机不懂文字,但懂数字│▼文本 → 向量(1024维浮点数数组)│▼相似度解决的问题:怎么判断两个向量(文本)有多接近│▼余弦相似度:看向量方向的夹角,越接近0°越相似│▼最终效果:语义搜索——理解意思,而非字面匹配一句话总结:Embedding 把文字变成数字,余弦相似度比较数字的方向,两者结合实现了"理解语义"的搜索。

T3165919332的博客 92

GPT-1 架构和计算细节

下面配合框图,对 GPT-1 的每个组件做公式展开 + 数值实例(配置:12 层 × 768,12 头,FFN 3072,词表 40478,共 117M 参数)。GPT-1 把翻译模型的编码器-解码器砍掉一半,只留解码器,然后以"预测下一个词"为目标在 BooksCorpus 上预训练。与 2017 原版的四个架构差异(框图中标 ★):h0=E[token]+Epos[position],E∈R40478×768, Epos∈R512×768h^0 = E[\text{token}] + E_{pos}[\

eloudy的专栏 280

终端 AI 审计与 “龙虾” 类智能体风险治理:从可见性到闭环溯源

生成式 AI 办公普及之后,数据泄露风险逐步下沉到终端。员工将合同、源代码、客户资料粘贴至公有大模型,以及龙虾(OpenClaw)这类本地开源 AI 智能体的滥用,成为企业安全新挑战。传统网络边界防护存在审计盲区,本文从风险链路拆解、核心能力模型、分级治理策略、落地踩坑点以及技术局限性多角度,分享终端侧 AI 安全治理的实践思路。

2401_86491085的博客 642

2.53 基于极稀疏指纹的室内定位注意力图元学习

该论文发表于IEEE Transactions on Mobile Computing(TMC)2026年6月,面向极稀疏指纹条件下的WiFi室内定位,针对指纹采集人力成本高、标记指纹稀缺时定位精度大幅下降的痛点,提出注意力图元学习模型AGML(Attentional Graph Meta‑Learning),结合图神经网络、元学习、两种指纹数据增强与分布对齐技术,在标记指纹极少的场景实现高精度室内定位,同时公开了多套真实+仿真定位数据集用于基准测试。场景:二维室内空间,障碍物造成信号遮挡,

weixin_42963026的博客 339

语音识别与语音合成的技术原理及应用

语音识别 #语音合成 #人工智能 #大模型。语音识别与语音合成的技术原理及应用。一、语音识别的核心原理。二、语音合成的核心原理。三、工程落地的主要难点。五、需要关注的现实问题。

weixin_62919816的博客 214

设计师工作室 GEO 实操:如何提升 AI 实体推荐概率

设计工作室 GEO 的本质,是把创意服务转化为 AI 可理解的结构化信息。核心动作可归纳为:区分事实与审美、建立实体图谱、预判用户提问、输出脱敏内容、搭建多信源、持续测试验证。梳理工作室的 6 个实体属性:品类、城市、流程、边界、团队、渠道。在官网或作品集平台发布至少 3 篇结构化项目复盘,只陈述事实。输出 1 篇「设计报价影响因素」科普内容,覆盖甲方高频提问。争取 1 次行业媒体或本地媒体专访,形成第三方信源。每周用「XX 城市 + 品类 + 设计工作室推荐」指令测试,记录出现频率。

goujunwe的博客 339

AI作图软件技术选型:从4个技术维度出发的实测对比

AI作图软件技术选型:从4个技术维度出发的实测对比

Vbaoke的博客 207

WorkBuddy 实战:一句话需求 → 七屏可交互原型,户外徒步 App 的 AI 设计全流程

WorkBuddy 实战:一句话需求 → 七屏可交互原型,户外徒步 App 的 AI 设计全流程,跟着博主一起来还原整个过程。

夜郎King的博客 4650

影视场景怎么用AI生成3D镜头预演?从概念图、场景白模到网页审片

概念图有氛围,不代表能直接用于镜头预演。本文围绕剧本拆镜、资料与尺度假设、场景白模、机位走位、动作节拍和网页审片,介绍 AI 生成 3D 场景的预演流程。通过稳定对象与相机编号、统一镜头表、意见关联版本和三轮审核,让讨论落到具体镜头,同时明确白模与网页预演不能替代真实场地勘景及现场安全判断。

Solange__的博客 542
上一篇: 哥伦比亚AI技术中心公布首批研究资助项目与博士生奖学金
下一篇: 定制芯片数据处理平台获巨额融资,性能提升百倍
codeshare1135
博客等级 码龄1年 978粉丝 2644原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值