分类: ai

  • 我的 AI 学习一周总结:GPT-4.0 发布

    我的 AI 学习一周总结:GPT-4.0 发布

    学习 AI 一时爽,一直学习一直爽。不知道这周能攒多少笔记,总之边学边努力吧。今天 GPT-4 发布了,感觉内容一下就够了,所以发布吧。

    GPT-4.0 发布

    今天的重大消息,昨天夜里(美国 3 月 14 日),OpenAI 发布了新版本大模型 GPT-4.0。新版本的训练量大幅提升,带来效果的大幅提升。群友做了一张总结图片,我先引用一下,方便大家快速了解:

    建议看下官方博客:GPT-4 is OpenAI’s most advanced system, producing safer and more useful responses。以及官方视频:OpenAI – YouTube。可以得到更准确、更全面的信息。

    这里我说几个我关注的点:

    1. GPT-4 的数据集与 GPT-3.5 一样,仍然截止于 2021 年 9 月份,并没有新数据进来。
    2. GPT-4 的可靠性据说提升了 40%,也就是编造不准确信息的概率降低了40%,某种程度上利好依赖事实查证的领域,但是考虑到他的数据滞后性和非联网,这方面的效果仍然有待观察。
    3. GPT-4 大幅提升了逻辑推理能力,可以得到更有价值的结果
    4. 大幅增加了上下文容量,最高可达 32k,是原先的 8 倍之多。更长的上下文意味着更好的结果、更大的可能性。
    5. 但是也带来了更高的价格,32k 是之前的 30 倍(8倍长度,30倍价格,啧啧)
    6. 目前只向 plus 用户开放,频率限制为 100 次请求/4小时。

    至于多模态,支持读图,我个人不太看重。当然,能给盲人带来更好的生活体验,是非常棒的一件事。只是我暂时不太能想出来,能用它快速做些什么。

    更大的上下文容量,配合更好的逻辑推理能力,我认为极大利好专业辅助领域,比如专业文献解读、商业文书生成与校验,等等。同时,因为大幅涨价,可能也只有这些领域愿意支付这样的成本。但是普通应用领域,我觉得 GPT-3.5 的潜力尚未完全开发,作为基础入门版学习 OpenAI 的产品开发也很足够,看起来 OpenAI 的产业布局相当到位,不知道国内外的竞争者是不是压力山大。

    ChatGPT

    chatpdf.com 中英文提问表现不一

    我向 Vincent 推荐了 chatpdf.com,他尝试之后,我们发现,如果用英文提问,ChatGPT 找不到内容就会老老实实回答:不知道,目标资料里没有相关内容。如果用中文,它就会编造一个答案。不知道是语料导致的,还是 ChatGPT 里有相关的配置。

    这也让我想到之前提到的,用英文让 ChatGPT 编造一个哈姆雷特的故事,它会拒绝;用中文,它就会满足用户的要求。不知道是语料问题还是设置问题。我其实怀疑是人为设置,毕竟中文语料不够,如果不瞎编答案的话,可能很多问题都没有结果,所以预料不够的环境,OpenAI 就会让 ChatGPT 自由发挥;语料够的话,就尽量保守(从模型产出)。

    Supabase

    Supabase(firebase 的替代品)使用 ChatGPT 重构了他们家的文档系统,现在搜索框里选择“Ask Clippy“就可以使用自然语言得到尽可能精确的答案。比如我问:how to migrate from firebase,就得到下图的答复(实际过程是 stream 输出,很 ChatGPT):

    考虑到上面所说,英文提问,ChatGPT 不会瞎编答案,这个搜索结果可能相当可靠。如此一来,感觉 Algodia 也有危机 😂。

    Supabase 写了篇博客介绍这次升级:Supabase Clippy: ChatGPT for Supabase Docs,可以当作参考。他们用到了 PG Vector 这个 PostgreSQL 数据库的插件,感觉可以学起来。

    Embedding

    GPT-4 发布之前,最近一周大家的关注点主要有两个:首先,让 ChatGPT 掌握额外的知识,即 fine-tuning。我们可以通过 OpenAI embedding API 完成这个功能:

    1. 把新的内容利用 embedding API 生成符合 OpenAI 定义的向量
    2. 存入 Vector DB
    3. 新请求先从 Vector DB 取出可能的关联数据,然后一起发给 OpenAI 进行判断和答案生成
    4. Vector DB 可以选用 Supabase(存在架构限制),或者 PostgreSQL + 插件

    这方面成功案例已经不少,上一节的两个案例都是很成功的表现。我这周也想花点时间把自己的博客导进去试试,感觉这个方向必须有点积累。

    小模型好效果

    斯坦福微调(fine-tuning)了 7B LLaMA 模型,用 52K 的数据,达到跟达芬奇003 (在某些领域)接近的效果。因为模型小数据少,可以跑在更低端的消费级设备上,比如树莓派。群里也有朋友实测成功。

    tatsu-lab/stanford_alpaca: Code and documentation to train Stanford’s Alpaca models, and generate the data. (github.com)

    这也是大家关注的方向之一。即从大模型中切出一小部分,用在某个特定领域,满足某个特定需求,使用比较低端的设备,得到比以前好得多的结果。降本增效,始终是个好策略。

    我正好有个 4B 4G 内存,抽空试试看,不过只能用英文。


    没想到 GPT-4 这么快就发布了,坦率地说对我们这样的应用层来说,变化不大。对其它专业领域,会有深远影响。希望其它家尽快跟进,把价格干下来。

    我本人计划尽快开始学习 embedding 和尝试小模型,以及 whisper,先积累一些浅显的理解。

  • 我的 AI 学习一周总结:ChatGPT API 的改进

    我的 AI 学习一周总结:ChatGPT API 的改进

    本周也在继续学习 AI based 应用研发,继续总结+做笔记。

    ChatGPT API 的改进

    新 API 除支持 ChatGPT 模型以外,还增加了一些功能参数,能让我们提升工具效率,同时降低费用消耗。

    新增 messages 参数,显示定义角色

    ChatGPT API 增加了 messages 参数,支持显示定义角色,可以取代之前的 prompt,更清晰的标记每一个内容的来源,方便 API 生成更有价值的内容输出。OpenAI 称之为“Chat Markup Language(ChatML)”,格式如下:

    type MessageItem = {
      role: 'user' | 'system' | 'assistant';
      content: string;
    };
    type Messages = MessageItem[];

    具体文档参见:Chat completion – OpenAI API

    以前我们必须手动保留全部来往信息,放在 prompt 里。这样有几个问题:

    1. 往来数据量很大,很多时候要浪费钱在传输前面产生的内容上
    2. 除了 ChatGPT 以外,其它工具无法分析数据结构
    3. 我估计,OpenAI 那边的计算效率也不高

    n 参数,支持一次性返回多个结果

    以前虽然名为 choices,但每次只返回一个结果,如果要调整,就要多次发送 prompt,还要带上之前的结果,很浪费。

    现在,如果是文字润色、内容仿写等场景,就可以从多个结果中选择最好的一个,再进行微调,无疑会大大提升效率,也会降低消费。

    突破 token 限制

    使用 OpenAI 自己的 embedding API,将自己的数据(比如聊天记录中的数据)导入,生成更符合自己需要的模型。新的模型被之前的数据重塑过,就会看起来更符合新的要求。

    原文在此:这确实是一个相当好的绕过tokens长度限制解决方案,我尝试将这个方案整理一下

    仓库在此:mckaywrigley/paul-graham-gpt: AI search & chat for all of Paul Graham’s essays. (github.com)

    值得关注的项目

    LlamaIndex(gpt-index)

    Welcome to LlamaIndex (GPT Index)! — LlamaIndex documentation (gpt-index.readthedocs.io)

    正在更名为 LlamaIndex(羊驼),可以将自己的数据和 LLM 结合,得到更适合自己的模型。基本上就是上面 “突破 token 限制” 逻辑的实现。比如,我们可以把一本书通过 LlamaIndex 喂给 ChatGPT, 得到的模型里就有了我们最近喂进去的知识,然后我们可以再用自然语言向 ChatGPT 提问,就会得到包含了新知识的答案。

    感觉一扇新的大门正在打开。几乎所有说明书、客服,甚至一些高阶职位都可以(可能)被这个方案替代。据说实测结果,它对新知识的理解归纳总结能力都很强。

    ChatPDF

    ChatPDF – Chat with any PDF!

    不知道跟上面一个项目是什么关系,感觉实现的功能很像。上传一个 PDF,然后使用自然语言的方式让 ChatGPT 帮你提炼内容。我试了一下,感觉很神奇,虽然我觉得不能替代完整读完一本书的价值,但帮我们快速归纳查找内容应该作用很大。

    然则,我试用之后发现,它还是做不到“不知道就说不知道”,于是,如果我们的问题超出了书本和它原本模型的边界,它就又开始瞎编了。这仍然是很大的问题。因为用户可能默认它包含了书的全部内容,用户自己却不十分确定书的内容,于是很可能把错误的知识归纳当成正确的吸收。

    bilingual_book_maker

    yihong0618/bilingual_book_maker: Make bilingual epub books Using AI translate (github.com)

    基于 ChatGPT/OpenAI 的全书翻译工具,可以把完整的一本书交给它,它会帮你拆开,一节一节的翻译,然后生成一本新的返回给你。

    酷表

    酷表ChatExcel

    上传 excel,然后用自然语言描述你的需求,它会帮你自动调整表结构、编写函数,等。直到你满意,就可以下载表格,继续编辑。

    目前来看有些文件会上传失败,可能还不太稳定,可以持续观望。

    部署 Stable Diffusion 到 AutoDL.com

    经 Easy 推荐,我在 AutoDL.com 购买了一台 3090 服务器,给几个朋友部署 Stable Diffusion 环境。AutoDL 的价格比较便宜,支持按小时租用,还有做好的镜像,使用起来比较方便。大概过程如下:

    1. 抢一台服务器。因为显卡数量有限,价格比较便宜,所以必须过抢。
    2. 服务器就位后,登录 JupyterLab,按照提示运行
    3. 使用“自定义服务”获取对外的 IP 和端口
    4. 因为系统盘容量有限,可以把模型放在数据盘上,然后软链过去使用
    5. 实测 3090 出图速度很快

    复制周姐成功,接下来该学习 Lora 炼丹了。

    Hackathon

    近期跟 AI 有关的 Hackathon 也很多,我报名了好几个,已经有点忙不过来了……

    推荐给大家:

    1. SegmentFault AIGC Hackathon 2023 黑客马拉松
    2. 即刻(App 里搜索“AIHackathon”)
    3. 腾讯 Light(报名已经截止)

    现在各种 AI 的新知识简直太多了,看着各种新闻,一方面精神振奋,另一方面又觉得有点慌,感觉不自觉就会地落在别人后面……

    另外,原则上来说,ChatGPT 是 OpenAI 的作品之一,很多功能可能要借助 OpenAI API 实现。不过实际讲述时,我就懒得区分了,相信读者应该能看明白。

  • 我的 AI 学习一周总结:ChatGPT API 发布

    我的 AI 学习一周总结:ChatGPT API 发布

    即然接下来的时间准备投身 AI 行业应用层开发,那就隔三岔五分享一下近期学到的知识、在做的事情吧。(配图是今天用第一次用 SD 生成的图片,prompt:“a beautiful girl“。)

    ChatGPT API 发布

    今天(2023-03-02,美国时间 03-01) OpenAI 正式发布了 ChatGPT API,即 基于 gpt-3.5-turbo 模型的。它的价格更便宜,$0.002/1k tokens,比之前 text-davince-003 便宜 10 倍。它能提供更好的对话质量,还提供了新的结构化数据接口,相信会给应用开发者带来更多的空间。

    chatgpt 等 npm 包也相应更新,如果没有办法搞定绑卡操作,可以继续用这些社区接口白嫖。

    尝试 Vercel Edge Function

    之前开发 GPT-3 插件的时候,有同学介绍了 Building a GPT-3 app with Next.js and Vercel Edge Functions 一文,于是我尝试把 API 挪到 Vercel Edge Function 上,然后失败。

    今天写本文的时候,又看了眼 TwitterBio 的例子,发现自己并没有做错。排查来排查去,还是自己犯蠢,部署环节出了问题。如今已经可以使用了。回头重构下插件,添加一些功能进去。

    学习社区 ChatGPT API 仓库

    ChatGPT 的开发商 OpenAI 提供两大块服务,API 和 ChatGPT 网页版。API 需要绑卡,有一定门槛;网页版可以免费用,不过存在偶尔连不上、响应慢等情况,据说买 plus 之后会有好转。

    于是社区就开发了网页版转 API 的工具,可以用来搭建自己的 ChatGPT API。但是需要使用反向代理服务器作为中转,开发者也不提供反向代理服务器的源码,存在一些风险,所以我看完就不打算使用了。

    本地搭建 Stable Diffusion 环境

    搭建过程其实很简单,难点主要在下载 pip 包和模型上,受限于墙内的网络环境,原本简单的下载变得异常艰辛。还好在换用国内 pip 源之后,我终于在本地搭建成功 Stable Diffusion Web UI 环境。大体过程如下:

    1. 安装必须的软件环境,比如 cmake、python3.10 等
    2. clone AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI (github.com)
    3. 修改 pip 源
    4. 反复执行 ./webui 直至安装成功
    5. 换模型可以在 Civitai 下载

    Whisper 模型

    Whisper 模型是 OpenAI 释出的开源模型,可以用来做语音识别,据说效果非常好。它不仅可以识别语音内容,还可以根据声纹,区分不同的发言人。所以用途也很广,比如视频会议之后,可以用它生成会议的文字记录。如果再结合 ChatGPT,就可以进行内容总结、会议摘要等工作,想象空间很大。

    因为开源,所以可以自己搭建服务器,据说不需要很强的计算能力,庶民可用。OpenAI 这次也放出了 Whisper API,方便用户使用。

    ChatGPT 新知

    中文语料少的副作用

    使用英文要求 ChatGPT 创作哈姆雷特的故事,它会拒绝,因为它知道哈姆雷特,新故事如果背景差异过大,它就会拒绝。但如果用中文,因为语料不足,哈姆雷特对它来说也只是个人命,它就会很配合。

    名人资料

    GPT-3 会大量混淆中国名人,比如郭德纲、岳云鹏;相对来说,ChatGPT 就好很多。


    现在 AI 工具与 AI 基础设施层出不穷,日新月异应接不暇,学起来既有动力也有压力。下一步希望能把所有工具的环境都搭建起来,先积累感性认识再说。