Every piece of all creatures in this freezing world, are racing for freedom.
AI 创作中的版权难题 在 AI 的创作中，往往会遇到版权问题。因为 AI 是模拟了一个人物，如果这个人物是一个比较著名的人物，那么他的形象、他的声音都会存在版权难题。这也许就是为什么很少公开的模拟某一个具体的现在存在的人物形象。即便是虚拟的人物，由于这个虚拟人物的归属与某一个特定的公司，那也存在版权的问题。要规避这个问题，可能只能去创作历史人物，这个人物你如果有一些现代的演绎，比如说在电影、电视剧中曾经被人扮演过，那么他就会形成一个认知，这是这个人物的形象，或者他的声音应该是什么样子的。那假如说要规避它的这个已经认知的声音和形象，就需要重新去配音和重新去生成形象。按照现在的 AI 绘画的水平，它的形象的生成很难一次性就生成自己想要的那种样子，就会出现反复多次的修改的情况。会浪费必要多的时间和精力，当然这已经比你请人去从头开始绘画好很多了，声音也是如此。如何才能仿照书不同人的声音，老年人的小孩、女人的声音，正好又让他去符合自己心目中的历史形象，是一个很大的问题。这里也估计有反复尝试，试错的过程，会使一个形象的生成，包括他的头像、声音等等都需要花费比较巨大的时间。这和简单的生成一个人物的背景提示词相比，可能就有比较大的时间成本上的差异。
AI编程到今天，应该用了已经快一年时间了。慢慢的逐渐考虑它用于比较复杂的项目。 什么是复杂的项目？ 人工智能要理解定制的框架、开发库，而不是公开的那些。由于定制的框架和开发库缺乏公开文档，在人工智能的训练过程中，肯定不会有任何相关的资料做训练。如何能正确的使用这些框架和开发库，这是第1个复杂所在。 人工智能要理解ui界面的设计，并且精确地按照涉及生成软件界面。正常情况下，ui界面一定是使用画图工具来做的。但是人工智能做ui界面，首先就遇到了内容一致性问题和将文字置于图像上的问题无法完美解决。这是第2个复杂所在。 人工智能对文档中缺乏的部分，会通过幻觉自作主张的进行脑补。并且以脑补的内容作为基础填充代码的其他部分。如果没有早期发觉，它可能会污染项目的很多代码文件，导致代码最终难以修复。这是第3个复杂所在。 一旦项目中的文档代码过多的时候，实现一个功能就需要引入非常多的内容作为参考才能开发。在人工智能上下文token有限的情况下，可能会导致人工智能难以正确回答。并且给人工智能输入过长的上下文会导致其注意力不集中，最终并不会完全遵循上下文的内容，甚至会遗漏很多部分。 尝试去实现复杂的项目，就要解决上述的问题。 对于定制的框架和开发库，可以先让人工智能去阅读整个开发库，去生成对应的开发文档。后面通过上下文带入开发文档，方便开发。还可以先写一个框架代码，提前将定制的库引入，这样人工智能会先阅读框架代码。并去顺着框架代码阅读引入的库。但对于api调用这种情况，还是要从文档入手。或者先让人工智能写一个api调用的库，再去写其他代码。 对于现阶段人工智能还不能很好地生成图形ui设计的情况下，可以先让他设计文字形式的ui图。在文字图中标注ui元素的长宽。 对于幻觉脑补，则需要对人工智能生成的代码进行立即测试，及早发现问题，避免扩散。避免生成不能测试的代码。现在还好的是，多数ai编程工具可以回退。 对于引用上下文过多的情况，可以先进行模块化划分。已经划分模块的，可以将较大的模块划分成更小的模块。在每个模块中引用相对较少的上下文，并且在当前模块中实现一个较小的接口代码，其他模块引用这个接口代码，避免大模型每次都需要阅读模块代码的所有细节。 总的原则是要把复杂的项目拆分成大模型可以很好遵循的小项目，小项目的标准是引用的上下文要少，实现的代码要少，少到大模型可以很好遵循为止。当然目前这个度还不是特别好把握。 应该坚持用AI编程吗? 是的。我发现一个最大的好处，尤其是对于独立开发者来说，AI编程总会用一些让你从未见过的、令人惊喜的语言特性或者函数。因为一个人的编程习惯容易固化，越早学习一种编程语言，越习惯用这种语言的早期风格。而如今编程语言的进化日新月异，新的语言版本带来了新的特性，而自己由于对旧模式得心应手，也就不会在关注和使用。对于第三方库来说更加明显，一般都是到了某个函数需要弃用、或者弃用以后才会去想办法找新的替代，也就是不出问题就不会去查文档的。比如我看到好多人写JS仍然喜欢用callback回调地狱处理异步函数， 各种括号真得深入地狱十八层了，也没有使用promise风格；我自己一直很喜欢使用promise，却不知道css标准早已经支持了变量var和计算calc，以为这个还是其他第三方CSS扩展如SCSS/LESS才有的功能(因为了解SCSS和LESS太早了)；也是AI帮我知道了页面栈获取函数getCurrentPages其实有超强的能力，因为栈中页面的所有函数包括setData都可以调用而且起作用(即使页面是hide状态)。新的语言特性让代码变得清爽简洁，自然也能节约大量时间，这是从AI编程可以学到的。 另外, AI处理页面UI确实速度又快又好, 不过有些情况AI会考虑不到, 如微信小程序自动注入一些CSS, 这些需要在和AI的配合中逐步写入它的规则中。
看了把科学带回家的一篇文章名字叫：为什么在沙发上睡着很容易，在床上睡着很难。我有一个洞察是：睡不着的原因并不是脑袋里想事情，而是对未知的焦虑。相反来说，能睡着的原因是略带新鲜的完全掌控感。 人的大脑几乎是无时无刻都在想事情的，很少情况会脑袋空空如也地发呆。即便对于躺倒就睡的人在躺倒的前一刻，至少也想着要盖被子，枕枕头。而现代人的生活一般都是连续的。今天应有未做完的事情，需要明天继续做。明天怎么完成这个事情的方法，今天还没有想出来。因为工作是充斥了整个白天一整天的最主要的事物，所以到了晚上睡觉前，那些没有完成的事情就会在脑海里翻转出来，寻找解决方案。但无论你找得到方案还是找不到方案，都需要第2天白天去实施，没法躺在床上尝试的。这就意味着你无法检验这个方案到底是否可行。所以最终不管你找不找得到方案，都会焦虑的睡不着。因此归根结底，你在睡觉前脑子里想的这个事情是无法获得完全掌控感的。 所以这里的第1个洞察就是要获得完全掌控感。 那么为什么要略带新鲜呢？如果在思考的事情非常乏味，很容易丢失注意力，而转回到白天的工作上去。如果思考的事情。非常新鲜有趣，会导致自己忍不住要持续的想下去，也会睡不着。 这里就有第2个洞察，略带新鲜，目的是牵引注意力在完全掌控感之中。同时又不让注意力沉浸在新鲜感中。 由于新鲜是相对的。所以同一种方法可能对不同的人有不同的适用。