iOS Moyu Weekly #83 | O vento do ChatGPT está de volta

Resumo deste problema

  • Tópico desta edição: Principais mecanismos de busca começam a acessar funções semelhantes ao ChatGPT
  • Aprenda esta semana: Funções anônimas e fechamentos em Python
  • Conteúdo recomendado: detecção de jailbreak do iOS, obtenção do status da memória virtual, uso do KeyChain para persistência, etc.
  • Toque no peixe: primeiros usuários das funções de difusão estável; pensamentos sobre planejamento técnico; revisão de documentos dos principais fabricantes

Tópicos desta edição

Edição e edição: zhangferry

O vento do ChatGPT está de volta

Recentemente, o ChatGPT tornou-se popular novamente. Não apenas os mecanismos de pesquisa introduziram recursos semelhantes ao ChatGPT, mas até mesmo os preços das ações de várias empresas relacionadas ao ChatGPT aumentaram. Com o fluxo contínuo de novos usuários, o site oficial interrompeu o login do usuário várias vezes.

É natural que os motores de busca se concentrem no ChatGPT.Desde o início do desenvolvimento do ChatGPT, havia uma discussão sobre se ele poderia substituir o Google, porque a maioria de seus cenários de uso tem uma alta sobreposição com a pesquisa. Se ele pode substituir o Google ainda não foi verificado, mas o impacto no StackOverflow foi muito óbvio.De acordo com relatórios, o número de visitas ao StackOverflow caiu 32 milhões em um mês. Isso levou a maioria dos produtos a considerar o impacto do ChatGPT e como fazer seus próprios produtos aproveitarem recursos semelhantes.

1. O Google anunciou o Bard, um concorrente do ChatGPT , um serviço de diálogo inteligente baseado no treinamento do modelo LaMDA. O serviço está em fase final de testes e estará mais disponível nas próximas semanas.

2. A capacidade do "novo Bing" da Microsoft de integrar o ChatGPT já pode ser testada, mas não foi totalmente lançada. Visite: www.bing.com/new, faça login e você poderá... novo Bing.

OpenAI 对外开放的 ChatGPT 是基于 GPT 3.5 的,这个能力已经非常惊艳,Bing 则是使用训练量更大的 GPT-4 模型。根据训练模型评估,GPT 3.5 就已经超过了 Google 的 LaMDA,所以就回答准确性 new Bing 应该稳稳强于Bard 的。微软能否抢占一些搜索引擎的份额就看这次发挥了。

3、百度也宣称推出类 ChatGPT 服务,即将上线聊天机器人「文心一言」,3 月完成内测。未说明使用的技术,因为百度在人工智能方面布局还比较多,应该是使用自己的训练模型,具体效果如何要等上线之后来看了。

本周学习

整理编辑:zhangferry

Python 中的匿名函数与闭包

Python 中正常的函数是这样的:

# 函数名是 add
def add(x, y):
    return x + y
复制代码

匿名函数是没有函数名的函数,但可以做一些函数做的事情,对应就指 Lambda 表达式。

func = lambda x, y: x + y
    print(func(1, 2)) # 3
复制代码

关于闭包可以先看一个计算平均数的例子:

def make_averager():
    # 以下整体属于闭包 
    series = []  # 自由变量

    def averager(new_value):
        series.append(new_value)
        total = sum(series)
        return total / len(series)

    return averager

avg = make_averager() # 可调用对象
print(avg(10))  # 10.0
print(avg(11))  # 10.5
print(avg(12))  # 11.0
复制代码

make_averager()创建了一个 avg,它表示内部函数averager。正常来说一个函数调用完之后就返回了,本地作用域数据也就释放了,为什么它还可以存储数据呢?数据是存在哪里了呢?

关键点就在于那个自由变量 series。Python 里的函数有几个内部属性,avg.__code__表示编译后的定义体:

# 局部变量
avg.__code__.co_varnames
('new_value', 'total')
# 自由变量
avg.__code__.co_freevars
('series',)
复制代码

再看闭包的内容avg.__closure__

我们传入的值都存放到了闭包里。再说回闭包,闭包也是一种函数,它会保留定义函数时存在的自由变量的绑定,这样调用函数时,虽然定义作用域不可用了,但是仍能使用那些绑定。自由变量的生命周期是跟着闭包走的。

再稍微改下代码:

def make_averager():
    count = 0
    total = 0
    def averager(new_value):
        count+= 1
        total+= new_value
        return total / count
    return averager
复制代码

这个代码在 PyCharm 里会直接报编译错误,用命令行执行报 UnboundLocalError: local variable 'count' referenced before assignment,提示变量未定义,但实际问题是这里变量类型有冲突。默认闭包内部函数外的变量为自由变量,但内部函数里包含赋值语句,这样count 和 total 就应该是局部变量了,两者冲突引发问题。

修改方式是引入 nolocal 字段,告诉编译器它不是局部变量,而是自由变量,就可以正常赋值了。

def make_averager():
    count = 0
    total = 0
    def averager(new_value):
    		nonlocal count, total
        count+= 1
        total+= new_value
        return total / count
    return averager
复制代码

内容推荐

本期将推荐近期的一些优秀博文,涵盖 iOS 越狱检测、获取虚拟内存状态、使用 KeyChain 进行持久化 以及 SwiftGG 但新项目等方面的内容

整理编辑:东坡肘子

1、iOS 数据持久化 —— KeyChain -- 来自:庄周晓梦

@东坡肘子: 为了安全的在本地存储敏感数据,不少开发者都会采用系统提供的 KeyChain 框架。在本文中,作者将为你展示如何创建一个通用的同时适用于 iOS、 MacOS 的 keyChain 辅助类,以提高数据增删改查操作的便利性。

2、2023 年 iOS 越狱检测 -- 来自:Marco Eidinger

@东坡肘子: 在这篇博文中,作者将展示现有的检测越狱的方法并分享代码示例。但更重要的是,通过讨论越狱检测的动机、分享相关实现并提供信息,方便开发者评估越狱检测在 2023 年(或总体上)是否仍是一个好主意。

3、SwiftUI Layout -- 来自:东吴贾诩

@东坡肘子: 本文作者对 SwiftUI 4 中提供的 Layout 协议做了比较详尽的说明。即使你目前仍使用老版本的 SwiftUI ,通过本文可以了解更多有关 SwiftUI 布局的内部逻辑。

4、好久不见,SwiftGG -- 来自:SwiftGG

@东坡肘子: SwiftGG 是国内知名的苹果生态开发社区,尽管它的公众号处于歇业状态已经很久了,但 SwiftGG 翻译组在这几年并没有处于停滞状态。在本文中,SwiftGG 对近两年的工作进行了总结,并介绍了接下来一些新的计划和打算。同时,也回答了一些网友提出的问题。

5、iOS APP虚拟内存用量初探 -- 来自:呦呦君

@东坡肘子: 在作者当前的项目中有用于 APP 物理内存、系统物理内存等内存状态的获取 API,但是一直缺少获取虚拟内存的 API。由于之前业务上出现过因为虚拟内存耗尽所导致的 Crash,因此本文将基于以上的背景对虚拟内存进行一些调研与探讨。

摸一下鱼

整理编辑:zhangferry

1、diffusionbee-stable:Stable Diffusion 是一个开源的人工智能模型,它可以根据文字描述生成一张图像。现在已经有不少图像类项目基于这个模型进行产品设计。如果你想本地跑这个模型的话,还需要租用 GPU,配置也比较麻烦。因为 PyTorch 对苹果的 ARM 芯片进行了完善的支持,已经完全可以用手头的 M1/M2 设备去运行 Stable Diffusion 了。Github 有一个开源项目 diffusionbee,把整个配置流程封装到了一个 Mac Applicaiton 上,我们可以更快速的体验这项功能。项目依赖模型将近 8 个 G,下载体验需要准备好足够的磁盘空间。

2、技术三板斧:关于技术规划、管理、架构的思考:最近关于技术规划写了不少,参考了团队内部其他人的技术规划文档,也查了一些技术规划相关的文章,对如何做技术规划有这些总结。

第一步:问题分析。如果是从零开始的项目,分析的是痛点,如果是已有项目分析的是现状。这里要结合数据指标,客户反馈,历史事件,并对未来有一定畅想。

第二步:目标制定。目标选择要结合上一步的问题分析,用于解决实际痛点。目标制定要具体明确可量化,对每个目标进行拆解,确定实现路径。

第三步:以终为始。以最终结果溯源开始,明确时间节点,设置可验收的 Milestone。项目结果从业务、平台、效能视角等视角审视结果。

3、大厂项目复盘:UED 方向的各大厂项目复盘文档汇总。

关于我们

iOS Fishing Weekly, principalmente compartilhando experiências e lições encontradas no processo de desenvolvimento, blogs de alta qualidade, materiais de aprendizado de alta qualidade, ferramentas práticas de desenvolvimento, etc. O depósito semanal está aqui: github.com/zhangferry/… , se você tiver boas recomendações de conteúdo, pode enviá-las por meio de edição. Além disso, você também pode se inscrever para se tornar nosso editor residente e manter este jornal semanal juntos. Você também pode prestar atenção à conta oficial: iOS Growth Road, clique no fundo para entrar na comunicação do grupo, entre em contato conosco e obtenha mais conteúdo.

Recomendação anterior

iOS Moyu Weekly #82 | Software social descentralizado Damus

iOS Fishing Weekly #81 | Apple lança o Apple Business Connect

iOS Moyu Weekly #80 | Gerenciar modelos de dados no acelerador de desenvolvimento SwiftUI

iOS Moyu Weekly Report #79 | Freeform está online e D2 começa esta semana

Acho que você gosta

Origin juejin.im/post/7198375183421702205
Recomendado
Clasificación