KIMI 与文心一言、通义千问大模型能力对比评测
本文对比评测了 KIMI、文心一言和通义千问三款国产大模型。通过天气查询、房产政策、法律问答、Java 部门树构建、数据清洗及多线程下载六个维度的测试,发现各模型在不同场景下表现各异。KIMI 在实时信息获取上占优,但代码生成稳定性不足;通义千问在代码质量和逻辑完整性上表现最佳;文心一言在细节处理和常识推理上较为均衡。文章深入分析了模型背后的技术路径差异,指出当前大模型仍需结合具体场景选择,并强调了垂直领域深耕的重要性。

本文对比评测了 KIMI、文心一言和通义千问三款国产大模型。通过天气查询、房产政策、法律问答、Java 部门树构建、数据清洗及多线程下载六个维度的测试,发现各模型在不同场景下表现各异。KIMI 在实时信息获取上占优,但代码生成稳定性不足;通义千问在代码质量和逻辑完整性上表现最佳;文心一言在细节处理和常识推理上较为均衡。文章深入分析了模型背后的技术路径差异,指出当前大模型仍需结合具体场景选择,并强调了垂直领域深耕的重要性。

近期国产大模型 KIMI 热度颇高。目前国内大模型领域竞争激烈,面对众多产品,用户需要保持理性判断,支持真正具备技术实力的国货,避免盲目跟风。
本次测试不与其他国外模型或收费服务对比,仅选取三款免费的大模型:KIMI、文心一言和通义千问进行横向评测。本文包含六道原创题目,测试结果仅代表这三家大模型在特定场景下的表现,不能全面代表整体优劣。



背景信息: 杭州西湖今日天气:温度 18-28 度,多云,15 点 10% 概率有雨,空气有点污染。
结果评估:
小结: 文心一言 > KIMI > 通义千问



背景信息: 杭州于 3 月 14 日取消了二手房限购政策。
结果评估:
小结: KIMI > 文心一言 > 通义千问



结果评估:
小结: 文心一言 > KIMI > 通义千问
输入数据:
[
{"id": 1, "pid": 0, "name": "产品研发中心"},
{"id": 2, "pid": 1, "name": "后端"},
{"id": 3, "pid": 1, "name": "前端"},
{"id": 4, "pid": 2, "name": "JAVA"},
{"id": 5, "pid": 3, "name": "JS"},
{"id": 6, "name": "测试数据"}
]
*注:最后一条为故意造的错误数据(缺少 pid)。
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
class Department {
int id;
String name;
List<Department> children = new ArrayList<>();
public Department(int id, String name) {
this.id = id;
this.name = name;
}
public void addChild(Department child) {
children.add(child);
}
public static Department fromJson(Map<String, Object> jsonMap) {
return new Department((Integer) jsonMap.get("id"), (String) jsonMap.get("name"));
}
}
public class DepartmentTreeBuilder {
public static Department buildTree(List<Map<String, Object>> departments) {
Map<Integer, Department> departmentMap = new HashMap<>();
List<Department> roots = new ArrayList<>();
for (Map<String, Object> deptJson : departments) {
int id = (Integer) deptJson.get("id");
String name = (String) deptJson.get("name");
Department dept = Department.fromJson(deptJson);
departmentMap.put(id, dept);
if (deptJson.get("pid") != null && ((Integer) deptJson.get("pid")).equals(0)) {
roots.add(dept);
}
}
for (Map<String, Object> deptJson : departments) {
int id = (Integer) deptJson.get("id");
Integer pid = (Integer) deptJson.get("pid");
if (pid != null && pid != 0 && departmentMap.containsKey(pid)) {
Department dept = departmentMap.get(id);
Department parent = departmentMap.get(pid);
if (parent != null) {
parent.addChild(dept);
}
}
}
return roots.isEmpty() ? null : roots.get(0);
}
public static void main(String[] args) {
// 测试代码略
}
}
public class DepartmentTreeBuilder {
public static void main(String[] args) {
List<Department> departments = new ArrayList<>();
departments.add(new Department(1, 0, "产品研发中心"));
departments.add(new Department(2, 1, "后端"));
departments.add(new Department(3, 1, "前端"));
departments.add(new Department(4, 2, "JAVA"));
departments.add(new Department(5, 3, "JS"));
departments.add(new Department(6, 0, "测试数据"));
List<Department> tree = buildDepartmentTree(departments);
for (Department dept : tree) {
printDepartmentTree(dept, 0);
}
}
public static List<Department> buildDepartmentTree(List<Department> departments) {
Map<Integer, Department> idMap = new HashMap<>();
List<Department> tree = new ArrayList<>();
for (Department dept : departments) {
idMap.put(dept.getId(), dept);
}
for (Department dept : departments) {
if (dept.getPid() == 0) {
tree.add(dept);
} else {
Department parent = idMap.get(dept.getPid());
if (parent != null) {
if (parent.getChildren() == null) {
parent.setChildren(new ArrayList<>());
}
parent.getChildren().add(dept);
}
}
}
return tree;
}
public static void printDepartmentTree(Department dept, int level) {
for (int i = 0; i < level; i++) {
System.out.print("--");
}
System.out.println(dept.getName());
if (dept.getChildren() != null) {
for (Department child : dept.getChildren()) {
printDepartmentTree(child, level + 1);
}
}
}
static class Department {
private int id;
private int pid;
private String name;
private List<Department> children;
public Department(int id, int pid, String name) {
this.id = id;
this.pid = pid;
this.name = name;
}
public int getId() { return id; }
public int getPid() { return pid; }
public String getName() { return name; }
public List<Department> getChildren() { return children; }
public void setChildren(List<Department> children) { this.children = children; }
}
}
class Department {
int id;
int pid;
String name;
List<Department> children = new ArrayList<>();
Department(int id, int pid, String name) {
this.id = id;
this.pid = pid;
this.name = name;
}
@Override
public String toString() {
return "Department{" +
"id=" + id +
", pid=" + pid +
", name='" + name + '\'' +
", children=" + children +
'}';
}
static Department buildDepartmentTree(List<Department> depts) {
Map<Integer, Department> map = new HashMap<>();
for (Department dept : depts) {
map.put(dept.id, dept);
}
for (Department dept : depts) {
if (map.containsKey(dept.pid)) {
map.get(dept.pid).children.add(dept);
}
}
return map.values().stream()
.filter(d -> d.pid == 0)
.findFirst()
.orElse(null);
}
public static void main(String[] args) {
List<Department> depts = new ArrayList<>();
depts.add(new Department(1, 0, "产品研发中心"));
depts.add(new Department(2, 1, "后端"));
depts.add(new Department(3, 1, "前端"));
depts.add(new Department(4, 2, "JAVA"));
depts.add(new Department(5, 3, "JS"));
depts.add(new Department(6, -1, "测试数据"));
Department root = buildDepartmentTree(depts);
System.out.println(root);
}
}
Department 类缺少 pid 字段定义,且逻辑处理存在瑕疵,无法直接运行。小结: 通义千问 > 文心一言 > KIMI
需求: 去除根组织和部门 ID,将部门名用 - 分隔输出。
小结: 文心一言 > 通义千问 > KIMI
需求: JDK8 编写代码,多线程下载指定 URL 到本地,处理文件名重复问题。
小结: 通义千问 > 文心一言 > KIMI
通过上述六道题目的实测,我们可以得出以下结论:
综上所述,目前尚无一款大模型在所有维度上完全碾压对手。用户应根据实际需求灵活选择,并保持对新技术的持续学习与验证。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online