返回首页
最新
我一直在开发一个基于浏览器的图像编辑器,使用的是C++语言。当我告诉我的朋友们这个项目时,他们最常见的反应是“哈???”和“为什么???”……让我们来详细解释一下。
首先:等等,C++是如何在浏览器中运行的?
我并不是简单地将原始C++代码放入浏览器标签中。浏览器只懂两种语言:JavaScript和WebAssembly。WebAssembly(WASM)是一种在浏览器中解释的字节码语言。关键在于编写C++函数,并使用Emscripten将其编译为WASM。JavaScript仍然控制着DOM,因此WASM并不能做所有事情——你需要从JavaScript中调用C++函数。
如果JavaScript和WASM需要协同工作,它们就需要一种通信和数据传输的方式!为此,JavaScript分配共享缓冲区,将数据写入其中,然后通过ccall调用C++。C++函数处理数据后,将控制权返回给JavaScript,后者可以从共享缓冲区读取数据。
C++编译器通常会通过编码额外信息(如参数类型)来改变函数名称,以支持函数重载等特性并防止命名冲突。为了使C++函数可以被JavaScript访问,我使用了“extern C”指令,这告诉编译器保留原始函数名称并禁用名称改变。
是的,如果你管理内存分配不当或忘记释放,可能会导致浏览器应用程序出现未定义的行为。
其次:为什么要经历这些麻烦?
图像编辑——尤其是实时滤镜、频繁的画布更新以及支持数十(甚至数百)层——计算量很大。仅靠JavaScript可能无法跟上,特别是在你追求高性能和流畅用户体验时。
为什么?因为JavaScript是一种解释性语言——它在运行时逐行读取和执行,这会增加开销。而WebAssembly则是一种更底层的字节码。当你将C++编译为WASM时,你可以享受到LLVM编译器优化的好处,以及Web的可移植性。
所以,尽管WASM在技术上仍然是解释性的,但它更接近机器代码,并以接近本地速度运行。这意味着复杂的图像处理操作——如应用自定义滤镜或合并高分辨率层——可以快速完成,而不会导致浏览器卡顿或掉帧。最终结果是?一个感觉像本地桌面应用程序的前端,但却在你的浏览器中运行。
对于任何感兴趣的人,这里是GitHub仓库! https://github.com/alicehe2003/ImageEditor
这个项目的灵感来自于Figma的构建方式!
https://www.linkedin.com/posts/alice-he-95406b293_github-alicehe2003imageeditor-web-based-activity-7340407818077859842-r3FK?utm_source=share&utm_medium=member_desktop&rcm=ACoAAEcFpZABjEOydMovU7l8KMPjazq9tzhE9Rc
这是一个研究/发现的帖子,而不是一个完善的工具包或产品。
简而言之,这个想法是:“幻觉”并不意味着训练不佳,而是每个标记的语义模糊性。通过在请求确定性响应之前考虑这种模糊性,我们可以提高输出的可靠性。
两步上下文增强(TSCE)是一项实验,探讨在第二次低温处理中的系统提示中使用高温“强制幻觉”是否能够减少最终结果中的幻觉并缩小大型语言模型(LLMs)的输出方差。
我注意到,在超过4000次对GPT-4o、GPT-3.5-turbo和Llama-3的自动测试中,TSCE将任务通过率提高了24到44个百分点,额外延迟小于0.5秒。
所有日志和原始JSON数据都是公开的,任何想要复制(或反驳)这些发现的人都可以获取。
我很想听听任何做类似工作的人的意见,我知道还有其他多轮提示技术,但我认为这个方法有些不同。
主要是因为在第一步中,我们故意指示LLM不直接引用或回应用户,建立在对抗性提示等理念之上。
我发布了这篇论文的早期版本,但自那时以来,我使用GPT-3.5-turbo和Llama-3-8B以外的其他模型进行了大约3100次额外测试,并更新了论文以反映这一点。
代码采用MIT许可,论文采用CC-BY-4.0许可。
嗨,HN,
我拥有一家专注于开发人员招聘的代理机构。我已经进行了数百次筛选面试,这占用了我大量的时间。过去一个月,我用React/Next.js/Typescript开发了这个工具。如果你访问<a href="https://app.screenz.ai/signup" rel="nofollow">https://app.screenz.ai/signup</a>,可以注册一个账户并获得3个免费积分。开始时会有一个“导览”,解释这个工具的工作原理。你可以创建一个职位,在角色标签中复制该职位的筛选链接,然后将其粘贴到浏览器中,导航到该链接并进行自己的面试。
我希望获得的反馈是:
我想了解更多技术人员对这个工具的看法,以及它是否能模拟真实的一对一筛选面试。我知道有人会说“我绝对不会和计算机进行筛选面试!”是的,市场上非常抢手的高级开发人员可能不愿意接受这种面试。对我而言,这个工具的目标是大型公司,这些公司招聘的是低至中等技能水平的人才。希望你喜欢这个工具。谢谢!
附言:
如果你想了解更多关于这个工具的功能,可以访问<a href="https://screenz.ai" rel="nofollow">https://screenz.ai</a>。