0%

2025年6月26日,Qwen团队发布了Qwen VLo,一个定位是“unified multimodal understanding and generation model”的模型,包括多模态的理解和生成。

根据官方的介绍博客,Qwen VLo包含下面的功能:

  • 图像生成:文生图、2D卡通图像转真实图像
  • 图像编辑:例如修改某个主体、更换颜色、更换风格
  • 图像算法能力:例如检测框、canny 算子、图像分割结果

经过一段时间的测试,我个人的总结是:

  1. 生图能力:效果比较差,感觉是一两年前生图模型的水平
  2. 图像风格转换:效果比较稳定,生图有美感
  3. 图像编辑能力:还算可以,有一些case做不好
  4. 检测框:能稳定生成,单人没问题,多人场景下也不算很准
  5. 图像分割:没有成功
  6. canny算子:细节更丰富,但有一些地方与原图并非完全对齐

再单独吐槽一个点,刚开始没找到Qwen VLo的入口,看微信公众号文章的留言才发现,并不是以一个模型列在可选模型列表中的,而是不管选择什么模型,只要做生图任务或者上传图片进行对话,都调用Qwen VLo。这种不遵从用户已有习惯的设置,随意而为的做法,用户体验很差,要是没看到留言回复,真的不知道怎么用。

下面详细展开我上面总结中各个条目的实际结果。

阅读全文 »

Andrej Karpathy 有一条关于AI时代产品文本化的推文如下:

Products with extensive/rich UIs lots of sliders, switches, menus, with no scripting support, and built on opaque, custom, binary formats are ngmi in the era of heavy human+AI collaboration.

If an LLM can’t read the underlying representations and manipulate them and all of the related settings via scripting, then it also can’t co-pilot your product with existing professionals and it doesn’t allow vibe coding for the 100X more aspiring prosumers.

Example high risk (binary objects/artifacts, no text DSL): every Adobe product, DAWs, CAD/3D Example medium-high risk (already partially text scriptable): Blender, Unity
Example medium-low risk (mostly but not entirely text already, some automation/plugins ecosystem): Excel
Example low risk (already just all text, lucky!): IDEs like VS Code, Figma, Jupyter, Obsidian, …

Al’s will get better and better at human UIUX (Operator and friends), but I suspect the products that attempt to exclusively wait for this future without trying to meet the technology halfway where it is today are not going to have a good time.

以下是我的一些见解。

阅读全文 »

1. 说明

mcp是一种创新的开源协议,用于规范大模型对外部工具的调用流程。mcp服务是供大模型调用的外部服务,用于增强大模型解决问题的能力。

mcp服务可以用mcp python-sdk来搭建,官方教程在这里。对第一次尝试的同学来说,官方的sdk还是有一定门槛的。

最近发现gradio 默认支持mcp server的部署,也就是launch一个gradio demo后,默认就起一个mcp服务,无需额外学习mcp python sdk的使用。这对于已经熟悉gradio demo搭建的同学来说,方便了不少。下面我将展示一个简单的基于gradio的mcp server搭建,以及在一个mcp client中调用。

阅读全文 »

1. 原理说明

在跑LLM推理的时候,有时候会出现模型不断复读的现象,也就是模型一直输出同一个token或者token序列,不结束输出。transformers库中有一个参数repetition_penality专门针对此现象进行优化,通过将其设置为大于1.0的一个浮点数(如1.05, 1.1, 1.2等),有些情况下能缓解重复问题。 这个优化思路是在2019年的论文CTRL中提出的。

那这个参数是怎么解决重复问题的呢?其实实现原理很简单:对于之前出现过的token,在其logits(没有经过softmax的raw score)上作用一个repetition_penality 系数,使得它的logits数值降低,进而减少被选做下一个token的概率。

阅读全文 »

1. 问题说明

在git管理中,有时候会遇到下面的报错:

1
2
Encountered 1 file that should have been a pointer, but wasn't:
/path/to/file

或像下面这样:

1
2
3
Encountered <n> files that should have been pointers, but weren't:
/path/to/file1
/path/to/file2

调查一番后发现,这种报错的核心原因是本应该用Git LFS管理的文件,直接被git来管理了。报错中提到的pointer ,实际上指的就是Git LFS 格式的文件,它不包含完整的数据,而只是一个指向完整数据的指针。

阅读全文 »

1. 说明

看到最近为微软更新了一个BitNet新版本bitnet-b1.58-2B-4T,参数只采用{-1, 0, 1}来表示,在普通CPU上性能挺好,而网络上测试结果不多,因此这里试试看到底效果怎么样。

这里尝试了2种方式,一个是利用官方提供的网站,进行效果测试,另一个是下载模型自己本地搭建C++推理环境,两种情况都只在CPU上进行测试。整体测试下来,两种情况的效果都还是不能让人满意,有一点智商但不高,速度倒确实挺快的。不过随着模型不断迭代,或许未来能走出跟云端GPU环境部署的模型完全不一样的道路。

阅读全文 »

conceal 是 Vim/Neovim 中一个用于优化显示效果的机制,它可以将某些语法符号替换为更简洁的视觉表示(或完全隐藏)。这在 Markdown、LaTeX 等格式中常用于提升可读性,但有一个问题:不太好确定自己的markdown标签是否写完了,因此markdown文件可能最后少了一个```,渲染结果出错。而对于我来说,我不需要在编辑器里面看到最终的渲染效果,所以这个功能完全可以去掉。

为了确定是插件导致的还是Neovim自带的功能,我用下面的命令打开不启用所有插件的Neovim:

1
nvim -u NORC /path/to/file

结果markdown渲染正常,因此确认问题是由某个插件引入的。

然后可以通过一个个启用插件的方式,来验证是哪个插件导致的问题,但由于插件太多,太麻烦,我问了DeepSeek R1,验证下面的语句可以解决这个问题:

1
2
let g:vim_markdown_conceal = 0
let g:vim_markdown_conceal_code_blocks = 0

也有人说是indentLine设置导致的,但没有再验证。

也是通过这次搜索,了解了conceal这个术语。

Whether it’s working on a project, solving a difficult problem, or even refining soft skills like communication, the act of showing up and putting in the hours is essential. Practice makes perfect, but more so it’s all about progress rather than perfection. Each hour you spend iterating, refining, failing and retrying brings you closer to excellence. It doesn’t always feel that way in the moment but when you look back at what you did before, you will see your progress. And that act of looking back, and seeing how you improved, is immensely rewarding and in turn makes you enjoy your work.

Armin Ronacher’s Reflecting on Life