[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Shark-NLP--OpenICL":3,"tool-Shark-NLP--OpenICL":65},[4,17,27,35,48,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",153609,2,"2026-04-13T11:34:59",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,3,"2026-04-06T11:19:32",[15,26,14,13],"图像",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":10,"last_commit_at":33,"category_tags":34,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,"2026-04-10T11:13:16",[26,43,44,45,14,46,15,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":54,"last_commit_at":55,"category_tags":56,"status":16},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[15,43,46],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":54,"last_commit_at":63,"category_tags":64,"status":16},6590,"gpt4all","nomic-ai\u002Fgpt4all","GPT4All 是一款让普通电脑也能轻松运行大型语言模型（LLM）的开源工具。它的核心目标是打破算力壁垒，让用户无需依赖昂贵的显卡（GPU）或云端 API，即可在普通的笔记本电脑和台式机上私密、离线地部署和使用大模型。\n\n对于担心数据隐私、希望完全掌控本地数据的企业用户、研究人员以及技术爱好者来说，GPT4All 提供了理想的解决方案。它解决了传统大模型必须联网调用或需要高端硬件才能运行的痛点，让日常设备也能成为强大的 AI 助手。无论是希望构建本地知识库的开发者，还是单纯想体验私有化 AI 聊天的普通用户，都能从中受益。\n\n技术上，GPT4All 基于高效的 `llama.cpp` 后端，支持多种主流模型架构（包括最新的 DeepSeek R1 蒸馏模型），并采用 GGUF 格式优化推理速度。它不仅提供界面友好的桌面客户端，支持 Windows、macOS 和 Linux 等多平台一键安装，还为开发者提供了便捷的 Python 库，可轻松集成到 LangChain 等生态中。通过简单的下载和配置，用户即可立即开始探索本地大模型的无限可能。",77307,"2026-04-11T06:52:37",[15,13],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":76,"owner_avatar_url":77,"owner_bio":76,"owner_company":78,"owner_location":78,"owner_email":78,"owner_twitter":78,"owner_website":78,"owner_url":79,"languages":80,"stars":85,"forks":86,"last_commit_at":87,"license":88,"difficulty_score":54,"env_os":89,"env_gpu":89,"env_ram":89,"env_deps":90,"category_tags":96,"github_topics":97,"view_count":10,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":101,"updated_at":102,"faqs":103,"releases":134},7265,"Shark-NLP\u002FOpenICL","OpenICL","OpenICL is an open-source framework to facilitate research, development, and prototyping of in-context learning.","OpenICL 是一个专为“上下文学习”（In-Context Learning）设计的开源框架，旨在降低大语言模型相关研究与开发的门槛。它主要解决了研究人员在探索不同提示策略、检索方法及推理机制时，面临代码重复编写、实验流程繁琐以及难以系统性对比效果的痛点。\n\n这款工具非常适合 AI 研究人员、算法工程师以及希望快速验证想法的开发者使用。通过 OpenICL，用户可以轻松将多种先进的检索算法（如 TopK）和推理方法集成到工作流中，无需从零构建底层逻辑。其独特的技术亮点在于提供了高度模块化的接口，支持灵活自定义提示模板，并内置了状态评估器以便快速计算准确率等指标。此外，最新版本已增加对 LLaMA 模型及自一致性（self-consistency）策略的支持。无论是进行情感分类等基础任务的原型验证，还是开展复杂的学术对比实验，OpenICL 都能帮助用户高效完成从数据加载、示例检索到最终推理评分的全流程，让创新想法更快地落地验证。","\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_OpenICL_readme_570930082592.png\" border=\"0\" width=600px\u002F>\n\u003C\u002Fdiv>\n\n------\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#overview\">Overview\u003C\u002Fa> •\n  \u003Ca href=\"#installation\">Installation\u003C\u002Fa> •\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2303.02913\">Paper\u003C\u002Fa> •\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\u002Ftree\u002Fmain\u002Fexamples\">Examples\u003C\u002Fa> •\n  \u003Ca href=\"https:\u002F\u002Fopenicl.readthedocs.io\u002Fen\u002Flatest\u002Findex.html\">Docs\u003C\u002Fa> •\n  \u003Ca href=\"#citation\">Citation\u003C\u002Fa> \n\u003C\u002Fp>\n\n![version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-0.1.8-blue)\n\n\n## Overview\nOpenICL provides an easy interface for in-context learning, with many state-of-the-art retrieval and inference methods built in to facilitate systematic comparison of LMs and fast research prototyping. Users can easily incorporate different retrieval and inference methods, as well as different prompt instructions into their workflow. \n\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_OpenICL_readme_ade0d1dd4ef5.jpg\"  border=\"0\" \u002F>\n\u003C\u002Fdiv>\n\n## What's News\n+ **v0.1.8** Support LLaMA and self-consistency\n\n## Installation\nNote: OpenICL requires Python 3.8+\n\n**Using Pip**\n```\npip install openicl\n```\n\n\n**Installation for local development:**\n```\ngit clone https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\ncd OpenICL\npip install -e .\n```\n\n## Quick Start\nFollowing example shows you how to perform ICL on sentiment classification dataset.  More examples and tutorials can be found at [examples](https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\u002Ftree\u002Fmain\u002Fexamples)\n\n#### Step 1: Load and prepare data\n```python\nfrom datasets import load_dataset\nfrom openicl import DatasetReader\n\n# Loading dataset from huggingface\ndataset = load_dataset('gpt3mix\u002Fsst2')\n\n# Define a DatasetReader, with specified column names where input and output are stored.\ndata = DatasetReader(dataset, input_columns=['text'], output_column='label')\n```\n\n#### Step 2: Define the prompt template (Optional)\n```python\nfrom openicl import PromptTemplate\ntp_dict = {\n    0: \"\u003C\u002FE>Positive Movie Review: \u003C\u002Ftext>\",\n    1: \"\u003C\u002FE>Negative Movie Review: \u003C\u002Ftext>\" \n}\n\ntemplate = PromptTemplate(tp_dict, {'text': '\u003C\u002Ftext>'}, ice_token='\u003C\u002FE>')\n```\nThe placeholder `\u003C\u002FE>` and `\u003C\u002Ftext>` will be replaced by in-context examples and testing input, respectively. For more detailed information about `PromptTemplate` (such as string-type template) , please see [tutorial1](https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\u002Fblob\u002Fmain\u002Fexamples\u002Ftutorials\u002Fopenicl_tutorial1_getting_started.ipynb).\n\n#### Step 3: Initialize the Retriever\n```python\nfrom openicl import TopkRetriever\n# Define a retriever using the previous `DataLoader`.\n# `ice_num` stands for the number of data in in-context examples.\nretriever = TopkRetriever(data, ice_num=8)\n```\nHere we use the popular \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2101.06804\">TopK\u003C\u002Fa> method to build the retriever. \n\n#### Step 4: Initialize the Inferencer \n```python\nfrom openicl import PPLInferencer\ninferencer = PPLInferencer(model_name='distilgpt2')\n```\n\n#### Step 5: Inference and scoring\n```python\nfrom openicl import AccEvaluator\n# the inferencer requires retriever to collect in-context examples, as well as a template to wrap up these examples.\npredictions = inferencer.inference(retriever, ice_template=template)\n# compute accuracy for the prediction\nscore = AccEvaluator().score(predictions=predictions, references=data.references)\nprint(score)\n```\n\n\n\n## Docs\n**(updating...)**\n\n[OpenICL Documentation](https:\u002F\u002Fopenicl.readthedocs.io\u002Fen\u002Flatest\u002Findex.html)\n\n## Citation\nIf you find this repository helpful, feel free to cite our paper:\n```bibtex\n@article{wu2023openicl,\n  title={OpenICL: An Open-Source Framework for In-context Learning},\n  author={Zhenyu Wu, Yaoxiang Wang, Jiacheng Ye, Jiangtao Feng, Jingjing Xu, Yu Qiao, Zhiyong Wu},\n  journal={arXiv preprint arXiv:2303.02913},\n  year={2023}\n}\n```\n","\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_OpenICL_readme_570930082592.png\" border=\"0\" width=600px\u002F>\n\u003C\u002Fdiv>\n\n------\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#overview\">概述\u003C\u002Fa> •\n  \u003Ca href=\"#installation\">安装\u003C\u002Fa> •\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2303.02913\">论文\u003C\u002Fa> •\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\u002Ftree\u002Fmain\u002Fexamples\">示例\u003C\u002Fa> •\n  \u003Ca href=\"https:\u002F\u002Fopenicl.readthedocs.io\u002Fen\u002Flatest\u002Findex.html\">文档\u003C\u002Fa> •\n  \u003Ca href=\"#citation\">引用\u003C\u002Fa> \n\u003C\u002Fp>\n\n![version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-0.1.8-blue)\n\n\n## 概述\nOpenICL 提供了一个简单易用的上下文学习接口，内置了多种最先进的检索和推理方法，便于系统地比较大型语言模型，并快速进行研究原型开发。用户可以轻松地将不同的检索和推理方法以及不同的提示指令整合到自己的工作流中。\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_OpenICL_readme_ade0d1dd4ef5.jpg\"  border=\"0\" \u002F>\n\u003C\u002Fdiv>\n\n## 最新动态\n+ **v0.1.8** 支持 LLaMA 和自洽性\n\n## 安装\n注意：OpenICL 需要 Python 3.8+\n\n**使用 Pip**\n```\npip install openicl\n```\n\n\n**本地开发安装：**\n```\ngit clone https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\ncd OpenICL\npip install -e .\n```\n\n## 快速入门\n以下示例展示了如何在情感分类数据集上执行 ICL。更多示例和教程请参见 [examples](https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\u002Ftree\u002Fmain\u002Fexamples)。\n\n#### 第一步：加载并准备数据\n```python\nfrom datasets import load_dataset\nfrom openicl import DatasetReader\n\n# 从 Hugging Face 加载数据集\ndataset = load_dataset('gpt3mix\u002Fsst2')\n\n# 定义一个 DatasetReader，指定存储输入和输出的列名。\ndata = DatasetReader(dataset, input_columns=['text'], output_column='label')\n```\n\n#### 第二步：定义提示模板（可选）\n```python\nfrom openicl import PromptTemplate\ntp_dict = {\n    0: \"\u003C\u002FE>积极电影评论： \u003C\u002Ftext>\",\n    1: \"\u003C\u002FE>消极电影评论： \u003C\u002Ftext>\" \n}\n\ntemplate = PromptTemplate(tp_dict, {'text': '\u003C\u002Ftext>'}, ice_token='\u003C\u002FE>')\n```\n占位符 `\u003C\u002FE>` 和 `\u003C\u002Ftext>` 将分别被上下文示例和测试输入替换。有关 `PromptTemplate` 的更详细信息（例如字符串类型的模板），请参阅 [tutorial1](https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\u002Fblob\u002Fmain\u002Fexamples\u002Ftutorials\u002Fopenicl_tutorial1_getting_started.ipynb)。\n\n#### 第三步：初始化检索器\n```python\nfrom openicl import TopkRetriever\n# 使用之前的 DataLoader 定义一个检索器。\n# `ice_num` 表示上下文示例中的数据数量。\nretriever = TopkRetriever(data, ice_num=8)\n```\n这里我们使用流行的 \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2101.06804\">TopK\u003C\u002Fa> 方法来构建检索器。\n\n#### 第四步：初始化推理器\n```python\nfrom openicl import PPLInferencer\ninferencer = PPLInferencer(model_name='distilgpt2')\n```\n\n#### 第五步：推理与评分\n```python\nfrom openicl import AccEvaluator\n# 推理器需要检索器来收集上下文示例，以及一个模板来封装这些示例。\npredictions = inferencer.inference(retriever, ice_template=template)\n# 计算预测的准确率\nscore = AccEvaluator().score(predictions=predictions, references=data.references)\nprint(score)\n```\n\n\n\n## 文档\n**(正在更新中…)**\n\n[OpenICL 文档](https:\u002F\u002Fopenicl.readthedocs.io\u002Fen\u002Flatest\u002Findex.html)\n\n## 引用\n如果您觉得本仓库对您有帮助，请随时引用我们的论文：\n```bibtex\n@article{wu2023openicl,\n  title={OpenICL：一个用于上下文学习的开源框架},\n  author={吴振宇、王耀翔、叶嘉诚、冯江涛、徐晶晶、乔宇、吴志勇},\n  journal={arXiv 预印本 arXiv:2303.02913},\n  year={2023}\n}\n```","# OpenICL 快速上手指南\n\nOpenICL 是一个开源的上下文学习（In-Context Learning, ICL）框架，内置了多种先进的检索和推理方法，旨在帮助用户轻松构建工作流，进行大语言模型（LLM）的系统性对比研究和快速原型开发。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux \u002F macOS \u002F Windows\n*   **Python 版本**：3.8 或更高版本\n*   **依赖管理**：建议使用 `pip` 或虚拟环境（如 `venv`, `conda`）\n\n## 安装步骤\n\n您可以通过 PyPI 直接安装稳定版，或者克隆源码进行本地开发。\n\n### 方式一：使用 Pip 安装（推荐）\n\n```bash\npip install openicl\n```\n\n> **提示**：国内用户若下载速度较慢，可使用清华或阿里镜像源加速：\n> ```bash\n> pip install openicl -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n### 方式二：本地开发安装\n\n如果您需要修改源码或运行最新示例：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\ncd OpenICL\npip install -e .\n```\n\n## 基本使用\n\n以下示例演示如何使用 OpenICL 在情感分类数据集（SST-2）上执行上下文学习任务。整个流程分为五个简单步骤。\n\n### 第一步：加载并准备数据\n\n使用 Hugging Face `datasets` 加载数据，并通过 `DatasetReader` 指定输入和输出列。\n\n```python\nfrom datasets import load_dataset\nfrom openicl import DatasetReader\n\n# 从 Hugging Face 加载数据集\ndataset = load_dataset('gpt3mix\u002Fsst2')\n\n# 定义 DatasetReader，指定输入列 ('text') 和输出列 ('label')\ndata = DatasetReader(dataset, input_columns=['text'], output_column='label')\n```\n\n### 第二步：定义提示词模板（可选）\n\n自定义提示词格式。占位符 `\u003C\u002FE>` 将被上下文示例替换，`\u003C\u002Ftext>` 将被测试输入替换。\n\n```python\nfrom openicl import PromptTemplate\n\ntp_dict = {\n    0: \"\u003C\u002FE>Positive Movie Review: \u003C\u002Ftext>\",\n    1: \"\u003C\u002FE>Negative Movie Review: \u003C\u002Ftext>\" \n}\n\n# ice_token 用于标识上下文示例的插入位置\ntemplate = PromptTemplate(tp_dict, {'text': '\u003C\u002Ftext>'}, ice_token='\u003C\u002FE>')\n```\n\n### 第三步：初始化检索器 (Retriever)\n\n选择检索策略来获取上下文示例。此处使用经典的 **TopK** 方法，选取 8 个示例。\n\n```python\nfrom openicl import TopkRetriever\n\n# ice_num 表示上下文中包含的示例数量\nretriever = TopkRetriever(data, ice_num=8)\n```\n\n### 第四步：初始化推理器 (Inferencer)\n\n选择推理方法和基础模型。此处使用基于困惑度（PPL）的推理器和 `distilgpt2` 模型。\n\n```python\nfrom openicl import PPLInferencer\n\ninferencer = PPLInferencer(model_name='distilgpt2')\n```\n\n### 第五步：执行推理与评估\n\n结合检索器和模板进行推理，并计算准确率。\n\n```python\nfrom openicl import AccEvaluator\n\n# 执行推理：需要传入检索器以获取示例，以及模板来格式化内容\npredictions = inferencer.inference(retriever, ice_template=template)\n\n# 计算预测准确率\nscore = AccEvaluator().score(predictions=predictions, references=data.references)\nprint(score)\n```\n\n完成以上步骤后，您将看到模型在该任务上的准确率评分。更多高级用法（如不同的检索策略、自一致性解码等）请参考官方 Examples 仓库。","某电商数据团队需要快速构建一个能识别用户评论情感倾向（正面\u002F负面）的模型，以监控新品上市后的口碑波动。\n\n### 没有 OpenICL 时\n- **重复造轮子**：每次尝试新的上下文学习（ICL）策略，都要手动编写代码拼接提示词、检索示例和解析输出，开发效率极低。\n- **实验对比困难**：想比较不同检索算法（如随机采样 vs 语义相似度）对结果的影响，需要重构大量底层逻辑，难以进行系统性评估。\n- **模板管理混乱**：针对不同类别的商品（如电子产品 vs 服装）调整提示词模板时，硬编码导致代码臃肿且极易出错。\n- **模型切换成本高**：若要测试从 DistilGPT2 切换到 LLaMA 等大模型的效果，需重新适配推理接口，耗时耗力。\n\n### 使用 OpenICL 后\n- **流程标准化**：通过 `DatasetReader` 和 `PromptTemplate` 组件，仅需几行代码即可定义数据输入与动态提示词模板，大幅减少样板代码。\n- **灵活策略组合**：内置 `TopkRetriever` 等多种检索器，可一键切换不同数量的上下文示例（ice_num），快速验证哪种检索策略准确率最高。\n- **解耦设计**：提示词模板与推理逻辑完全分离，修改商品分类的描述规则只需调整字典配置，无需触碰核心推理代码。\n- **无缝模型集成**：`PPLInferencer` 支持直接加载 HuggingFace 模型（包括 LLaMA），轻松在同一框架下对比不同基座模型的性能表现。\n\nOpenICL 将繁琐的上下文学习实验转化为模块化配置，让研发团队能从“写代码”转向“调策略”，显著加速了垂直领域大模型的落地迭代。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_OpenICL_57093008.png","Shark-NLP","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FShark-NLP_6c8f9739.png",null,"https:\u002F\u002Fgithub.com\u002FShark-NLP",[81],{"name":82,"color":83,"percentage":84},"Python","#3572A5",100,584,30,"2026-02-27T08:58:36","Apache-2.0","未说明",{"notes":91,"python":92,"dependencies":93},"README 中未明确列出底层深度学习框架（如 PyTorch）及具体 GPU 需求，但示例代码使用了 'distilgpt2' 和 'LLaMA' 等模型，实际运行通常需要根据所选模型配置相应的 GPU 显存。支持 LLaMA 模型及自一致性（self-consistency）方法。","3.8+",[94,95],"openicl","datasets",[15],[98,99,100],"in-context-learning","nlp","language-model","2026-03-27T02:49:30.150509","2026-04-14T04:34:43.447019",[104,109,114,119,124,129],{"id":105,"question_zh":106,"answer_zh":107,"source_url":108},32627,"如何为 PIQA 等 NLP 任务构建标准的 PromptTemplate（模板）？","可以使用以下代码结构定义模板。注意映射列名到特定的标记（如 \u003C\u002FS1>, \u003C\u002FS2>, \u003C\u002FG>），并设置 ice_token。示例代码如下：\n```python\ntemplate=PromptTemplate(\n    {\n        0: \"\u003C\u002FE>\\nQuestion: \u003C\u002FG>\\nAnswer: \u003C\u002FS1>\",\n        1: \"\u003C\u002FE>\\nQuestion: \u003C\u002FG>\\nAnswer: \u003C\u002FS2>\"\n    },\n    column_token_map={'sol1':'\u003C\u002FS1>', 'sol2':'\u003C\u002FS2>', 'goal':'\u003C\u002FG>'},\n    ice_token='\u003C\u002FE>' \n)\n```\n在测试中，使用 gpt2-xl 模型配合此模板可达到约 73.83% 的准确率。","https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\u002Fissues\u002F16",{"id":110,"question_zh":111,"answer_zh":112,"source_url":113},32628,"如何在提示词中添加定义、约束条件或通用上下文知识（而不仅仅是示例）？","除了用于组织示例的 `ice_template` 外，还可以在 `inference()` 方法中设置 `prompt_template` 来格式化最终提示，从而添加约束。例如，若要限制输出空间为 (positive, negative, neutral)，可以定义两个模板：\n```python\n# 示例模板\nice_tp_str = \"\u003C\u002FD>\\t\u003C\u002FA>\"\nice_template=PromptTemplate(\n    ice_tp_str,\n    column_token_map={'description':'\u003C\u002FD>', 'answer':'\u003C\u002FA>'},\n)\n\n# 包含约束的主提示模板\nprompt_tp_str = \"Model select results from (postive, negative, netural):\\n\u003C\u002FE>\u003C\u002FD>\\t\u003C\u002FA>\"\nprompt_template=PromptTemplate(\n    prompt_tp_str,\n    column_token_map={'description':'\u003C\u002FD>', 'answer':'\u003C\u002FA>'},\n    ice_token='\u003C\u002FE>'\n)\n```\n定义好 retriever 和 inferencer 后，调用 `inference()` 时传入这些模板即可。","https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\u002Fissues\u002F13",{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},32629,"遇到 'cannot import name PartialState from accelerate' 错误如何解决？","该问题通常是由于 `accelerate` 库版本过低导致的。`PartialState` 是在 `accelerate` 0.17 版本中引入的。请尝试升级 accelerate 库：\n```bash\npip install --upgrade accelerate\n```\n如果问题依然存在，请检查是否使用了其他项目（如 MMT-LLM）中修改过的 OpenICL 版本，建议确认依赖环境的一致性。","https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\u002Fissues\u002F15",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},32630,"如何启用多 GPU 推理以加载超大模型（如几十亿或上千亿参数）？","OpenICL 的 `Inferencer` 已支持多 GPU 推理。只需将 `model_parallel` 参数设置为 `True`。对于不同模型，可能还需要传递 `device_map` 来映射模型组件（基于 Huggingface Accelerate 实现）。如果不传 `device_map`，系统会自动生成映射，但某些结构（如残差连接）可能无法正确分离。\n示例配置：\n1. 直接传入 `device_map` 给 `Inferencer`。\n2. 或者针对特定模型（如 opt-30b）添加额外约束：`no_split_module_classes=[\"OPTDecoderLayer\"]`。","https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\u002Fissues\u002F6",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},32631,"使用 GPT-3 API 时出现 'TypeError: NoneType object is not callable' 错误是什么原因？","这是一个已知问题。当调用 API 且设置了 `max_model_token_num` 时，由于目前缺乏官方的 Python GPT-3 tokenizer 来检测输入长度，导致 tokenizer 未初始化从而报错。维护者计划在未来实现该 tokenizer 或修复此逻辑。临时解决方案是避免设置 `max_model_token_num`，或者等待主分支更新禁用 GPT-3 的输入令牌长度检测功能。","https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\u002Fissues\u002F4",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},32632,"SNLI 教程中的模板没有包含标签（label）信息，这符合上下文学习（ICL）的要求吗？","是的，这是符合要求的。在上下文中展示的示例（in-context examples）实际上是可以显示标签的。模板中省略标签通常是为了展示格式，但在实际运行时，示例部分会包含“问题 - 答案”对（即包含 label）。只有在最后一个需要预测的样本中，标签才是由模型生成的。因此，确保你的 DatasetReader 正确加载了 output_column (label)，框架会在构建 ICE (In-Context Examples) 时自动填入标签。","https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FOpenICL\u002Fissues\u002F21",[]]