Kaggle最新LLM相关大赛复盘总结!


Kaggle最新LLM相关大赛复盘总结!

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

↑↑↑关注后\“星标\“kaggle竞赛宝典
kaggle竞赛宝典
作者:宅码
Kaggle竞赛复盘:DrawingwithLLMs(图形生成)
DrawingwithLLMs
竞赛名称
DrawingwithLLMs
竞赛关键词
[‘生成对抗网络’,’自然语言处理’,’矢量图形生成’,’模型部署’]
竞赛组织者
Kaggle
竞赛总览
给定描述图像的文本提示,您的任务是生成可伸缩矢量图形(SVG)代码,使其尽可能准确地将图像呈现出来。您的提交将使用KagglePackages构建,KagglePackages是一个用于将可重用模型构建为Python库的新功能。
竞赛网址
https ://www. kaggle.com/competitions/drawing-with-llms
竞赛描述
专用解决方案可以显著超越生成模型(如ChatGPT和Gemini)的卓越能力,同时提供更高的透明度以了解它们的构建方式。尽管大型语言模型(LLM)可能展示了“AGI的火花”,但它们在生成图像渲染代码方面的能力仍需改进。
本次比赛挑战您构建实用的、可重用的图像生成解决方案,并遵循稳健的软件工程模式。给定一段图像的文字描述,您的任务是生成SVG代码,使其尽可能逼真地渲染该图像。可缩放矢量图形(SVG)是一种矢量图像格式,使用XML描述二维图形,可以在不丧失质量的情况下调整大小。
您的提交作品将使用Kaggle的新特性——KagglePackages创建,它将是一个包含predict()函数的Model类,用于为给定的提示生成SVG代码。最终结果将是一组可部署的模型包,其评估依据是它们深入理解抽象描述并将其转换为精确、可执行代码的能力。
如果您有反馈或问题,请在本次比赛的讨论论坛中告诉我们。我们感谢您的意见,同时我们正在改进并继续开发KagglePackages,作为运行Kaggle比赛的新方式。
前排方案分享
(以下由宅小K智能体生成,内容仅供参考)
1
4thPlaceSolutionSD35M+DRaFT+diffvg
Rank:4
URL:https ://www. kaggle.com/competitions/drawing-with-llms/discussion/581108
1)方案介绍
该解决方案通过使用StableDiffusion3. 5Medium模型生成图像,并使用DRaFT进行微调以优化输出质量和得分。生成的图像被转换为粗略的SVG格式,然后使用diffvg进行精细化处理。微调过程包括使用人类偏好数据训练的奖励函数,以提高图像的美学得分和VQA(视觉问答)得分,并最终提高整体竞赛得分。SVG转换部分利用了一种启发式方法,并通过diffvg优化,确保最终输出的SVG在视觉质量和压缩效率上表现良好。
2)核心技巧
●StableDiffusion3. 5Medium
选择使用StableDiffusion3. 5Medium模型进行图像生成,因为其内存占用较小,适合进行微调。此模型被用来生成初始图像,这些图像随后通过SVG转换和优化步骤来提升质量。该选择是基于该模型在生成高质量图像时的效率和稳定性。
●DRaFTFine-Tuning
通过DRaFT(DifferentiableRewardFine-Tuning)对StableDiffusion模型进行微调,使用特别设计的奖励函数来优化生成图像的得分。训练过程中,利用LoRA和DRaFT-LV,以人类偏好为基础的数据集进行训练,目标是提高图像的美学和VQA得分。微调不仅提高了得分,还减少了对prompt工程的依赖。
●SVGConversionandOptimizationwithdiffvg
使用启发式方法将图像转换为SVG格式,并通过diffvg进行优化。diffvg是一个可微分的SVG光栅化工具,通过梯度下降法最小化渲染SVG与原始图像之间的L1距离。在此过程中,利用RichOlson的OCRdecoytrick以减少OCR幻觉,提高最终输出的可用性和质量。
●BestofnApproach
为每个prompt生成多个SVG候选,通常在60秒内产生5-6个候选图像。通过VQA得分最高的SVG被选为最终输出,同时确保OCR得分达到标准。这种策略确保了即使在时间限制下,也能获得质量最佳的图像。
3)方案总结
该方案通过使用StableDiffusion3. 5Medium生成图像,并利用DRaFT进行细致的微调,提高生成图像的美学和VQA得分。生成的图像被转换为SVG格式,并通过diffvg优化,提升了视觉质量和压缩效率。通过多候选策略确保了最终输出的图像质量。整个解决方案在对图像生成的细节处理上,展示了从模型选择到微调,再到输出优化的全面考虑,使其在比赛中获得了优异的成绩。
2
5thplacesolution-VTracerandDiffVGoptimization
Rank:5
URL:https ://www. kaggle.com/competitions/drawing-with-llms/discussion/581128
1)方案介绍
这项解决方案通过生成大量使用SDXL-turbo的图像,然后转换为SVG格式,并添加优化的补丁以显著提高美学得分。使用代理函数评估VQA模型,以选择最佳SVG。VTracer用于快速图像转换,而最终图像选择则基于VQA得分的代理函数。通过在不同资源上并行运行过程,最大化利用了Kaggle的计算资源,提高了方案的效率和效果。
2)核心技巧
●图像生成与优化补丁
使用SDXL-turbo生成图像,然后将其转换为SVG格式,并添加优化补丁以提高美学得分。补丁通过全微分的预处理、美学模型和VQA模型的流水线生成。通过梯度上升在小数据集上找到的补丁提升了图像的平均美学得分。补丁的大小和位置经过精心调整,以平衡补丁大小和VQA得分的影响。
●VTracer和资源优化
VTracer被用于快速将图像转换为SVG格式,尽管Primitive在调优后可能生成更好的图像,但由于Kaggle的CPU限制,选择VTracer以提高效率。通过并行运行三个不同的进程(扩散模型、Vtracer转换和代理函数运行),最大化利用了Kaggle的资源,缩短了总运行时间。
●代理函数和VQA得分
使用代理函数来评估VQA模型,选择最佳的SVG。代理函数通过对问题的“是/否”概率进行评估,而不是生成问题、选项和答案。尽管使用其他模型版本也与主要指标相关,但原始VQA模型始终表现更佳。
●提示优化与模型集成
通过在生成的数据集上使用光束搜索选择一组提示词,优化图像生成。通过排除文本和其他颜色的提示,进一步提高了结果质量。
3)方案总结
该解决方案通过生成大量图像并添加优化补丁来提高美学得分,并使用代理函数选择最佳SVG,成功在比赛中取得了第五名。通过使用SDXL-turbo生成图像,VTracer进行快速转换,并在Kaggle的资源限制下优化资源利用率,最终实现了高效而有竞争力的方案。尽管面临CPU和内存限制,方案通过巧妙的资源管理和技术选择,达到了很好的评分平衡,并在美学和VQA得分上取得了显著提升。
3
8thPlaceSolution
Rank:8
URL:https ://www. kaggle.com/competitions/drawing-with-llms/discussion/581095
1)方案介绍
该解决方案通过使用一个优化的流水线来提高生成图像的质量和评分。首先,作者创建了一个本地验证集来评估模型的表现,并观察到虽然本地验证分数与公共排行榜(LB)分数相关,但结果存在高方差。最终,选择了两个高分支的方案以减少随机性。解决方案的核心是利用SDXL模型,并对16次先前运行的最佳图像进行微调。通过API的方法来解决kaggle包的上下文错误问题。流水线中生成的位图图像被转换为SVG格式,并进行了尺寸和大小的优化以符合比赛要求。此外,为了加速OCR,作者在每个角上添加了一个小的“+”号。最终图像使用代理提示进行评分,最佳图像被选出并返回。
2)核心技巧
●本地验证与高方差处理
在本地生成了数百个提示/问题样本以进行验证。尽管在公共排行榜上的分数较低,但本地验证分数表现出良好的相关性。然而,由于分数存在高方差,最终选择了两个仅在种子上不同的高分支方案以减少随机性。
●SDXL模型微调
使用SDXL模型对16次先前运行的最佳图像进行微调。通过比较本地验证集上的得分来选择最佳模型。该过程利用了并行GPU来加速图像生成和单线程评分。
●位图到SVG的转换优化
生成的位图图像被转换为SVG格式,使用优化的VTracer设置和一些缩小步骤来减少原始图像的大小以满足10kB的要求。同时在图像的一个角上添加了一个小的“+”号以进行OCR,这种方法既稳健又廉价。
●代理提示评分
所有图像都使用一个代理提示进行VQA评分,并使用MedianBlur来减少运行时间。通过这种方法,能够快速地为每个样本选择和返回最佳图像。
3)方案总结
该解决方案通过优化的流水线和一系列精心设计的技术来提高生成图像的质量和评分。首先,作者创建了一个本地验证集来评估模型的表现,并选择了两个高分支的方案来减少随机性。关键技术包括对SDXL模型进行微调、优化位图到SVG的转换,以及通过代理提示进行快速评分。尽管在使用diffvg和其他可微图像预处理步骤时遇到了一些困难,但整体方案仍然在比赛中取得了第八名的好成绩。
4
10thPlaceSolutionFlux1Dev-SVGoptimization-Postprocessing
Rank:10
URL:https ://www. kaggle.com/competitions/drawing-with-llms/discussion/581213
1)方案介绍
这项解决方案首先生成高质量的图像,然后将其转换为符合10KB限制的紧凑、准确的SVG格式。管道主要强调图像质量、转换保真度以及通过比赛评估器的智能选择,尤其是在SVG转换效率方面表现出色。图像生成使用了Flux1Dev、HyperSD和Nunchaku等工具,SVG转换使用了vtracer和路径简化,最终的选择过程结合了VQA、审美评分和OCR鲁棒性。
2)核心技巧
●图像生成优化
使用Flux1Dev、HyperSDLoRA和Nunchaku对图像生成进行了优化。将推理步骤从默认的50步减少到8步,通过BitsAndBytes将所有组件量化为4bit,以便适配单个T4。最初无法并行生成,但通过切换到最新的Nunchaku开发版本解决了这一问题。最终的处理速度为单个T4在约20秒内生成约10张图像。
●SVG转换与优化
每个图像使用vtracer转换为干净的分层SVG,然后通过几何简化去除增加可忽略曲率的中间点,例如,如果点B位于线A-C2个像素内,则删除B。接下来,使用SVGO进行压缩,通过vtracer参数的二分搜索找到在10000字节以下的最佳配置,这一步开销较大,并使用四个线程并行处理。此外,为了减少OCR误判,添加了两个小的黑白“M”水印。
●候选选择与评估
使用VQA和审美评估器对SVG进行评分,按分数排名所有候选者,然后向后搜索第一个通过OCR检查的图像。在最佳候选者上创建两个变体:一个是原始的,另一个是带有渐变银色边框的,选择得分最高的一个。
●调试与工程挑战
在调试过程中遇到了多个问题,如SVGO的Python接口封装及安装,Nunchaku的安装问题,以及多进程和执行图依赖。确保图像生成、SVG转换和图像选择阶段在不同的CUDA设备上不互相阻塞可能会显著提高速度,但未能在提交服务器上成功运行。
●生成行为与调优
方案在生成不同类型图像时表现不同:风景近乎完美,时尚细节在SVG转换中易丢失,几何图形成功率低。此外,尝试过另一种未选用的提交方式,通过重写提示词并传递给不同的编码器来提高性能,尽管在公共排行榜上得分略低。
3)方案总结
该方案通过集成先进的图像生成与SVG转换技术,在“DrawingwithLLMs”比赛中取得了第10名。其管道设计强调在有限的文件大小限制下保持高图像质量与转换精度,使用了多种技术组合,包括Nunchaku优化、SVGO压缩和智能候选选择等。团队在调试过程中克服了多项技术挑战,最终实现了一个高效的图像生成与优化流程。虽然在不同类型的图像生成中面临不同的挑战,但通过优化提示词和评估策略,为未来的图像处理任务提供了有价值的经验。
5
16thplacesolution-SDXL-Flash+SiglipAESReranking+ProxyVQA
Rank:16
URL:https ://www. kaggle.com/competitions/drawing-with-llms/discussion/581094
1)方案介绍
该方案在图像生成任务中采用了一种重排序方法,以优化在给定时间内生成的SVG图像的评估分数。首先,生成N个图像(N取决于图像分辨率),转换为SVG并计算每个图像的美学分数。在此基础上,使用siglip模型计算SVG与提示的对齐分数,并将其与美学分数相乘以获得重排序分数。根据重排序分数对SVG进行排序,并在时间限制内进行VQA/OCR评估,最终选择代理保真度评分最高的SVG。该方案在500个验证集上的表现稳定,CV和LB得分均在0. 700附近,但并未尝试使用vtracer或其他SVG优化方法,也未对稳定扩散模型进行微调。
2)核心技巧
●重排序方法
方案通过生成一组候选图像并对其进行美学评分和对齐评分的乘积计算重排序分数,以确定哪些图像更有可能在评分指标上获得更高分数。这种方法允许在给定时间内生成更多候选SVG,并有效提升了384x384和512x512分辨率下的结果。重排序分数是通过siglip模型计算SVG与提示的对齐度,并将其与美学评分相乘得到的。
●VQA/OCR评估与选择
在对候选SVG进行重排序后,方案在时间限制内对排名靠前的SVG进行VQA/OCR评估,以确定最终选择的SVG。在平均63秒的时间内,可以进行大约7次这样的评估。最终选择的SVG是代理保真度评分最高的,这种方法有效地实现了在有限时间内的最佳图像选择。
3)方案总结
该方案通过重排序方法在有限时间内生成和评估多个候选SVG图像,以优化图像生成任务中的评估分数。通过结合美学评分与SVG与提示的对齐评分计算重排序分数,这种方法显著提升了384x384和512x512分辨率下的结果。最终策略是在时间限制内对重排序后的SVG进行VQA/OCR评估,选择代理保真度评分最高的SVG。尽管方案未对SVG进行进一步优化或模型微调,但在验证集上的表现稳定,CV和LB得分接近0. 700。
6
18thPlaceSolution-HomemadeVectorizer+ImageReward+NLTK
Rank:18
URL:https ://www. kaggle.com/competitions/drawing-with-llms/discussion/582286
1)方案介绍
该解决方案结合了自制的图像矢量化工具和ImageReward评估指标,通过生成多张图像并选取得分最高的图像来优化TIFA分数。首先,使用Flux. 1Schnell生成多张图像,然后通过自制方法进行矢量化,接着计算每张图像的ImageReward和美学分数,最后选取得分最高的图像进行微调。过程中使用NLTK修改原始提示词,并通过将提示词拆分为多个子提示词来提高评分。方案还涉及到多个图像生成和评估工具的对比和选择。
2)核心技巧
●图像生成与矢量化
方案使用Flux. 1Schnell生成多张图像,并通过自制的矢量化方法进行处理。矢量化过程包括色彩量化和轮廓提取,色彩量化使用K均值聚类和Felsenszwalb算法,并将图像从RGB转换为LAB空间以提高质量。轮廓提取则通过重新实现的marchingsquares算法,避免多次调用API来提高效率。路径简化使用Douglas-Peucker算法,同时考虑了邻域色彩的影响,避免简化时出现不必要的结构。
●ImageReward评估与提示词处理
核心策略是使用ImageReward评估指标来选择得分最高的图像。为了优化提示词,方案使用NLTK将提示词拆分成多个部分,并为每个部分计算ImageReward得分,以凹函数计算所有子提示词的平均得分。此方法在实验中被证明优于Clip和SigLIP。方案还通过附加定义来处理抽象主题的提示词,例如将’梯形’的定义附加到提示词中,以改善Flux. 1的生成效果。
3)方案总结
该方案在Kaggle比赛中取得了第18名,主要通过自制的图像矢量化工具和ImageReward评估指标来优化图像生成和选择。方案利用Flux. 1Schnell生成图像,并通过特定方法进行矢量化处理,以生成干净的几何结构。在评估阶段,使用ImageReward和NLTK对提示词进行处理,提高了图像的美学分数和TIFA分数。尽管作者对比赛的初衷未能完全实现,但他对比赛组织方提供的资源和评分指标的改进表示赞赏,同时也提出了对比赛评估标准的改进建议,认为应更加关注矢量图像的特性。
7
45thPlaceSolution
Rank:44
URL:https ://www. kaggle.com/competitions/drawing-with-llms/discussion/581194
1)方案介绍
该解决方案主要通过五个步骤完成从位图到SVG的转换和优化。首先,使用SDXL-Turbo模型生成多样性和质量较高的位图图像,利用特定的前缀和后缀提示语来提升图像的风格和一致性。然后,将生成的位图图像通过vtracer转换为SVG格式,在此过程中对不同参数组合进行实验以确保文件尺寸小于10k且视觉质量保持良好。接着,应用scour对SVG文件进行优化,并利用SSIM(结构相似性指数)来选择与原始位图视觉上最接近且文件大小接近10k的SVG。为了解决OCR识别错误的问题,作者在图像中加入一个微妙的“O”字符。最后,使用PaliGemma2和美学预测器选择最终的SVG,以确保其视觉吸引力和与提示的对齐度。
2)核心技巧
●BitmapGenerationwithSDXL-Turbo

●InitialSVGConversionwithvtracer
利用vtracer将位图图像转换为SVG格式,通过调整参数如speckle_values,layer_diff_values和color_precision_values来实验不同组合,最终找到在保持视觉质量的前提下文件大小小于10k的最佳参数组合。这些参数直接影响SVG文件的大小和细节保留程度,因此需要反复实验以找到最佳平衡。
●SVGOptimizationwithscour
使用scour工具对使用vtracer生成的SVG文件进行优化,进一步减小文件大小。优化后,通过SSIM(结构相似性指数)来评估SVG与原始位图的视觉相似度,确保选择的SVG不仅文件尺寸接近目标值(10k),而且与原始图像在视觉上最为接近。
●OCRHallucinationDefense
为防止OCR误识别,方案中加入了一种简单但有效的技术,即在图像中添加一个不显眼的“O”字符。这一技术灵感来源于社区讨论,旨在通过图像中的细微变化来破坏OCR的误判,从而提高模型的鲁棒性和输出质量。
●BestSVGSelectionwithPaliGemma2
方案的最后一步是通过PaliGemma2和美学预测器来选择最终的SVG文件。这一步确保了最终选择的SVG不仅在视觉上具有吸引力,还与初始提示语保持一致性。这种选择方法通过结合自动化工具和人工审美标准,确保了输出结果的高质量和一致性。
3)方案总结
该解决方案通过一系列精心设计的步骤来实现高质量位图到SVG的转换和优化。首先,使用SDXL-Turbo模型生成具有一致风格的位图图像,并利用vtracer将其转换为SVG格式,实验不同参数组合以确保文件尺寸小于10k。然后,使用scour进一步优化SVG文件,并应用SSIM选择最佳视觉相似度的SVG。为防止OCR误识别,在图像中加入了微妙的“O”字符。最终,使用PaliGemma2和美学预测器选择视觉和风格上最符合要求的SVG。这一解决方案在保证输出文件小巧的同时,最大限度地保留了原始图像的视觉质量和艺术风格。
8
79thPlaceSolutionUsingstable-diffusion-cpp-python
Rank:77
URL:https ://www. kaggle.com/competitions/drawing-with-llms/discussion/581106
1)方案介绍
本解决方案采用stable-diffusion-cpp-python与FLUX. 1-schnellQ6_K相结合,以期在生成图像任务中超越基于SD或更重量化的FLUX. 1方案。为了生成符合要求的SVG格式图像,使用了VTracer和Scour工具。通过二分搜索和基于SSIM的比较来优化参数。然而,图像生成速度较慢,是方案中的主要问题。尝试在T4x2GPU上进行模型组件的分割来提升速度,但未能成功。由于时间限制,未能充分优化VQA或美学得分。使用了一些启发式的方法,例如带有固定位置的OCR诱饵以及经过微调的CLIP模型来稳定分数。
2)核心技巧
●stable-diffusion-cpp-python与FLUX. 1-schnellQ6_K
通过结合stable-diffusion-cpp-python和FLUX. 1-schnellQ6_K,作者希望能够在图像生成任务中超过基于SD或更重量化的FLUX. 1方案。作者之前已经在其他比赛中编译过llama-cpp-python,因此熟悉此类工具的使用。然而,由于生成速度过慢,未能达到预期效果。
●VTracer和Scour工具
为了将生成的图像转换为合规的SVG格式,作者使用了VTracer和Scour工具。这两者在图像的矢量化和优化方面起到了关键作用,尽管作者未详细描述具体的实现过程,但可以推测是通过这些工具对生成的图像进行格式转换和优化。
●启发式提示和分数稳定化
作者使用了一些启发式的方法来提高生成图像的美学分数。具体而言,提示中加入了简单的图标风格和有限的色彩调色板等元素。此外,使用了三种固定位置的OCR诱饵和CLIP-GmP-ViT-L-14模型来稳定分数。这些方法未经过充分测试,因此效果未知。
3)方案总结
本方案通过结合stable-diffusion-cpp-python和FLUX. 1-schnellQ6_K,以期在图像生成任务中获得较高的性能。然而,由于图像生成速度较慢,未能实现预期的性能提升。为了解决这一问题,作者尝试在T4x2GPU上进行模型组件的分割,但未能成功。此外,使用VTracer和Scour工具进行SVG格式转换和优化。尽管尝试过一些启发式的方法来提高美学分数,但由于时间限制,这些方法未经过充分测试,效果不明。最终,方案在比赛中排名第77位。
9
84thPlaceSolutionSDXL-Turbo-GPUSVGConversion+OCRDecoy
Rank:80
URL:https ://www. kaggle.com/competitions/drawing-with-llms/discussion/581175
1)方案介绍
该解决方案采用SDXL-Turbo生成图像,然后通过GPU加速将这些图像转换为SVG格式。通过加入OCRdecoy来防止幻觉发生,并使用比赛提供的评分指标对图像进行评分。整个过程在大约5秒内完成,从而允许每个提示最多进行12次尝试。在生成位图时,使用了不同的前缀来优化SVG转换并增加输出多样性。此外,还进行了GPU加速的SVG转换,以快速生成视觉上准确的矢量图。最后,方案加入了反OCR幻觉的策略,以提高评分准确性。
2)核心技巧
●SDXL-Turbo生成图像
使用SDXL-Turbo模型生成图像,因为它能够在约700毫秒内生成图像,这使得在有限的时间内可以进行多次尝试。通过旋转使用不同的提示前缀,优化了SVG转换并增加了输出多样性。虽然其他模型如FluxSchnell和SanaSprint生成的图像在视觉上更好,但由于速度较慢,未能提高排行榜成绩。
●GPU加速的SVG转换
采用GPU加速的K-means聚类方法快速将图像简化为12种颜色,同时保持视觉质量。通过分层特征提取,识别重要视觉元素,并采用自适应空间管理技术,确保关键特征被保留。通过Numba加速实现智能多边形简化,平衡文件大小和视觉保真度。使用CuPy进行GPU计算和NumbaJIT编译,确保SVG转换在不到一秒内完成,从而适合快速迭代。
●OCRDecoy策略
在SVG中加入一个小’o’形状作为OCR幻觉的诱饵,限制SVG转换大小为9650字节。这一策略通过使用次暗和次亮颜色来最小化视觉影响,同时提供了可靠的字符计数。虽然尝试过使用更高对比度和明显的形状,但未能进一步提高评分,可能是因为影响了美学评分。
●评分与提示问题
通过评分指标来判断图像与提示的匹配程度,使用了两个具体问题来提高排行榜成绩。虽然使用单个问题可以处理更多图像,但结果显示得分较低。还尝试使用不同版本的PaliGemma进行评分,虽然速度更快,但得分较低。尝试了TIFA问题生成技术,但未能超过静态问题的性能。
3)方案总结
该解决方案通过SDXL-Turbo生成图像,快速进行GPU加速的SVG转换,加入OCRDecoy策略来提高评分的准确性。整个过程在短时间内完成,以便最大化每个提示的尝试次数。虽然探索了多种图像生成和评分技术,但最终选择了能够在时间和质量上取得平衡的策略。通过不同的提示前缀和评分问题,优化了图像生成和评分过程。该方案展示了在快速迭代和时间限制下进行高效图像处理的可能性。


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录