anaksor-ocr
Sokheng · 工具包
这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。
把约 100 种语言的文本变成 1024 个数字的向量,用于搜索、匹配和检索。这是 intfloat 基于 xlm-roberta-large 的 5.6 亿参数嵌入模型。
multilingual-e5-large 是一款工具包,属于开发类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。在本页下载,是一个装着它全部文件的 zip 压缩包。这些文件不会自己运行。
pip install -U huggingface_hub hf download intfloat/multilingual-e5-large
multilingual-e5-large 是一个文本嵌入模型。它把一句话或一段文字转换成 1024 个数字组成的列表,这样意思相近的文本会靠得很近,即使语言不同也一样。
它有 24 层。它从 xlm-roberta-large 出发,在多种多语言数据集的混合数据上继续训练,支持约 100 种语言。
适合想构建多语言搜索、问题匹配或文档检索、并希望用自己能运行的开源嵌入模型的开发者和数据团队。
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| 软件 | 搜索工程师 | 为语义搜索嵌入文档和查询 | 用英文问题找到中文帮助文章 |
| 客户服务 | 支持团队 | 把新问题和过去的答案配对 | 把西班牙语工单和英文回复关联起来 |
| 研究 | NLP 研究者 | 把它当作多语言基线 | 比较不同语言的检索质量 |
| 内容 | 知识库负责人 | 为混合语言文档建索引 | 为英文和中文笔记建立同一个索引 |
如果你只需要英文文本,可以跳过它,因为有更小的纯英文嵌入模型,或者你需要的是会写文字的模型。
它在装有 transformers 库的 Python 里运行,页面还把它列为 sentence-transformers 模型。
| Use case | Who | What they get back |
|---|---|---|
| 语义搜索 | 搜索工程师 | 查询与每段文字之间的相似度得分 |
| 问题匹配 | 支持团队 | 与新问题最接近的已存答案 |
| 跨语言查找 | 内容团队 | 查询和文段语言不同时也能匹配 |
你需要 Python 和几个库。模型卡自带的脚本用到 PyTorch 和 transformers,权重在你第一次加载时从 Hugging Face 下载。
pip install -U huggingface_hub hf download intfloat/multilingual-e5-large
每个输入都要以 query 加冒号,或 passage 加冒号开头,非英文文本也一样。对于检索以外的任务,模型卡说用 query 前缀。脚本随后做池化、归一化和打分。
import torch.nn.functional as F
from torch import Tensor
from transformers import AutoTokenizer, AutoModel
def average_pool(last_hidden_states: Tensor,
attention_mask: Tensor) -> Tensor:
last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]
# Each input text should start with "query: " or "passage: ", even for non-English texts.
# For tasks other than retrieval, you can simply use the "query: " prefix.
input_texts = ['query: how much protein should a female eat',
'query: 南瓜的家常做法',
"passage: As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.",
"passage: 1.清炒南瓜丝 原料:嫩南瓜半个 调料:葱、盐、白糖、鸡精 做法: 1、南瓜用刀薄薄的削去表面一层皮,用勺子刮去瓤 2、擦成细丝(没有擦菜板就用刀慢慢切成细丝) 3、锅烧热放油,入葱花煸出香味 4、入南瓜丝快速翻炒一分钟左右,放盐、一点白糖和鸡精调味出锅 2.香葱炒南瓜 原料:南瓜1只 调料:香葱、蒜末、橄榄油、盐 做法: 1、将南瓜去皮,切成片 2、油锅8成热后,将蒜末放入爆香 3、爆香后,将南瓜片放入,翻炒 4、在翻炒的同时,可以不时地往锅里加水,但不要太多 5、放入盐,炒匀 6、南瓜差不多软和绵了之后,就可以关火 7、撒入香葱,即可出锅"]
tokenizer = AutoTokenizer.from_pretrained('intfloat/multilingual-e5-large')
model = AutoModel.from_pretrained('intfloat/multilingual-e5-large')
# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=512, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])
# normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:2] @ embeddings[2:].T) * 100
print(scores.tolist())| Tool | What it does |
|---|---|
| AutoTokenizer | 把文本切成词元,每条最多 512 个词元 |
| AutoModel | 加载嵌入模型 |
| average_pool | 对词元向量取平均,忽略填充部分 |
| F.normalize | 把每个嵌入缩放到单位长度 |
你传入两个问题,一个是关于蛋白质的英文问题,一个是关于南瓜做法的中文问题,再加两段文字。脚本会打印一个二乘二的得分列表,每个问题都和匹配的文段得分最高。
如果你是新手,原样运行模型卡的脚本。在换成自己的句子之前,它会展示文本如何加前缀、变成向量并被比较。
如果你熟悉这个领域:模型先在弱监督文本对上做对比预训练,再做有监督微调。文本对来自网页、新闻、翻译和维基百科等来源。模型卡提醒,低资源语言的质量可能较弱。
第一阶段训练用了大量文本对,见下表。模型卡还链接了一份 2024 年关于 Multilingual E5 文本嵌入的技术报告。
| Source | Kind of pair | Count |
|---|---|---|
| NLLB | 翻译对 | 2.4B |
| Filtered mC4 | 网页标题和内容 | 1B |
| Filtered Reddit | 评论和回复 | 800M |
| CC News | 新闻标题和内容 | 400M |
| Wikipedia | 章节标题和文段 | 150M |
| S2ORC | 标题、摘要和引用 | 100M |
| xP3 | 提示和回复 | 80M |
| Stackexchange | 问题和答案 | 50M |
把约 100 种语言的文本变成 1024 个数字的向量,用于搜索、匹配和检索。这是 intfloat 基于 xlm-roberta-large 的 5.6 亿参数嵌入模型。
由 intfloat 在 Hugging Face 上制作。这些说明是 Mindket 根据它的模型页面和模型卡写的,模型自己的文件和许可证在 Hugging Face 上。
它是什么:multilingual-e5-large 是一个文本嵌入模型。它把一句话或一段文字转换成 1024 个数字组成的列表,这样意思相近的文本会靠得很近,即使语言不同也一样。
它有 24 层。它从 xlm-roberta-large 出发,在多种多语言数据集的混合数据上继续训练,支持约 100 种语言。
适合谁:适合想构建多语言搜索、问题匹配或文档检索、并希望用自己能运行的开源嵌入模型的开发者和数据团队。
Industry | Who uses it | How they use it | Example
软件 | 搜索工程师 | 为语义搜索嵌入文档和查询 | 用英文问题找到中文帮助文章
客户服务 | 支持团队 | 把新问题和过去的答案配对 | 把西班牙语工单和英文回复关联起来
研究 | NLP 研究者 | 把它当作多语言基线 | 比较不同语言的检索质量
内容 | 知识库负责人 | 为混合语言文档建索引 | 为英文和中文笔记建立同一个索引
如果你只需要英文文本,可以跳过它,因为有更小的纯英文嵌入模型,或者你需要的是会写文字的模型。
用在哪里:它在装有 transformers 库的 Python 里运行,页面还把它列为 sentence-transformers 模型。
Use case | Who | What they get back
语义搜索 | 搜索工程师 | 查询与每段文字之间的相似度得分
问题匹配 | 支持团队 | 与新问题最接近的已存答案
跨语言查找 | 内容团队 | 查询和文段语言不同时也能匹配
如何设置:你需要 Python 和几个库。模型卡自带的脚本用到 PyTorch 和 transformers,权重在你第一次加载时从 Hugging Face 下载。
pip install -U huggingface_hub
hf download intfloat/multilingual-e5-large
如何使用:每个输入都要以 query 加冒号,或 passage 加冒号开头,非英文文本也一样。对于检索以外的任务,模型卡说用 query 前缀。脚本随后做池化、归一化和打分。
import torch.nn.functional as F
from torch import Tensor
from transformers import AutoTokenizer, AutoModel
def average_pool(last_hidden_states: Tensor,
attention_mask: Tensor) -> Tensor:
last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]
# Each input text should start with "query: " or "passage: ", even for non-English texts.
# For tasks other than retrieval, you can simply use the "query: " prefix.
input_texts = ['query: how much protein should a female eat',
'query: 南瓜的家常做法',
"passage: As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.",
"passage: 1.清炒南瓜丝 原料:嫩南瓜半个 调料:葱、盐、白糖、鸡精 做法: 1、南瓜用刀薄薄的削去表面一层皮,用勺子刮去瓤 2、擦成细丝(没有擦菜板就用刀慢慢切成细丝) 3、锅烧热放油,入葱花煸出香味 4、入南瓜丝快速翻炒一分钟左右,放盐、一点白糖和鸡精调味出锅 2.香葱炒南瓜 原料:南瓜1只 调料:香葱、蒜末、橄榄油、盐 做法: 1、将南瓜去皮,切成片 2、油锅8成热后,将蒜末放入爆香 3、爆香后,将南瓜片放入,翻炒 4、在翻炒的同时,可以不时地往锅里加水,但不要太多 5、放入盐,炒匀 6、南瓜差不多软和绵了之后,就可以关火 7、撒入香葱,即可出锅"]
tokenizer = AutoTokenizer.from_pretrained('intfloat/multilingual-e5-large')
model = AutoModel.from_pretrained('intfloat/multilingual-e5-large')
# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=512, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])
# normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:2] @ embeddings[2:].T) * 100
print(scores.tolist())
Tool | What it does
AutoTokenizer | 把文本切成词元,每条最多 512 个词元
AutoModel | 加载嵌入模型
average_pool | 对词元向量取平均,忽略填充部分
F.normalize | 把每个嵌入缩放到单位长度
示例:你传入两个问题,一个是关于蛋白质的英文问题,一个是关于南瓜做法的中文问题,再加两段文字。脚本会打印一个二乘二的得分列表,每个问题都和匹配的文段得分最高。
新手与专家:如果你是新手,原样运行模型卡的脚本。在换成自己的句子之前,它会展示文本如何加前缀、变成向量并被比较。
如果你熟悉这个领域:模型先在弱监督文本对上做对比预训练,再做有监督微调。文本对来自网页、新闻、翻译和维基百科等来源。模型卡提醒,低资源语言的质量可能较弱。
加上 query 或 passage 前缀
对文本分词
运行模型
平均池化并归一化
比较嵌入得出分数
注意事项:第一阶段训练用了大量文本对,见下表。模型卡还链接了一份 2024 年关于 Multilingual E5 文本嵌入的技术报告。
Title: 第一阶段文本对
Source | Kind of pair | Count
NLLB | 翻译对 | 2.4B
Filtered mC4 | 网页标题和内容 | 1B
Filtered Reddit | 评论和回复 | 800M
CC News | 新闻标题和内容 | 400M
Wikipedia | 章节标题和文段 | 150M
S2ORC | 标题、摘要和引用 | 100M
xP3 | 提示和回复 | 80M
Stackexchange | 问题和答案 | 50M
用 Hugging Face 的命令行下载它的文件:
pip install -U huggingface_hub
hf download intfloat/multilingual-e5-large
然后按它的模型卡使用它。这个工具包里没有会自己运行的东西。
README.md 8 KB
同一分类里与本产品共有标签最多的已上架 Hugging Face 模型。
| 产品 | 最近 30 天下载 | 点赞 | 参数量 | 许可证 | 最近更新 |
|---|---|---|---|---|---|
| multilingual-e5-large 本页 | 7,120,555 | 1,284 | 560M | mit | |
| bge-small-en-v1.5共有 mteb · model-index · sentence-similarity | 45,750,548 | 671 | 33.4M | mit | |
| bge-base-en-v1.5共有 mteb · model-index · sentence-similarity | 8,508,165 | 542 | 109M | mit | |
| paraphrase-multilingual-MiniLM-L12-v2共有 openvino · sentence-similarity · text-embeddings-inference | 26,540,125 | 1,505 | 118M | apache-2.0 | |
| nomic-embed-text-v1.5共有 mteb · model-index · sentence-similarity | 11,809,681 | 994 | 137M | apache-2.0 | |
| bge-m3共有 xlm-roberta · sentence-similarity · text-embeddings-inference | 29,282,167 | 3,989 | — | mit |
Hacker News、Bluesky、X、Reddit、Facebook 和 YouTube 上提到这个项目的帖子和评论,来自每周一次的搜索和 Trendshift。它们不是 Mindket 写的,也未经核实,点开即可在原帖处阅读。
Sokheng · 工具包
这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。
Qwen · 工具包
Qwen2.5-7B-Instruct 的 GGUF 文件,提供八种量化大小,可通过 llama.cpp 在本地聊天。适合想在自己电脑上用 7.6B 强力模型、又不想搭 Python 环境的人。
ACE-Step · 工具包
用 4B 扩散解码器根据文字生成音乐,50 步并带引导控制,音频质量高于基础版。适合拥有 12 GB 或更多显存 GPU 的创作者。
alirezarezvani · 技能
为 Claude Code 和其他编程智能体提供 411 个现成技能,按角色分组,从工程、产品到营销、财务和合规。以插件方式安装。适合开发者和业务团队。
block · 工具包
可自行托管的工作空间,人和 AI 智能体在同样的房间里协作,基于 Nostr 中继,把每个动作记录为签名事件。适合想自己运行中继的团队。
backnotprop · 工具包
把你的 AI 编程智能体的计划、规格和代码改动在浏览器里打开,让你加批注或评论,并把反馈直接发回给智能体。