nlp.js 非常冗长的日志记录,内容为:"Epoch 1 loss 0.132985497437162 time 0ms"

ct2axkht  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(37)

描述bug

在使用nlu时,库会发出形式为

Epoch 1 loss 0.132985497437162 time 0ms
Epoch 418 loss 0.00014440620801799714 time 0ms

的418条日志消息。我找不到从配置中禁用它的方法。我创建了一个MR #1363,展示了如何永久禁用它。从MR中:
nlu默认配置为记录日志。我非常确定它不能通过编程方式禁用,因为没有从nlu传递设置给它。默认输出这些日志消息也非常烦人。我所做的只是禁用了它,但我认为它应该使用配置的记录器,而不是console.log。我还希望可能有些设置应该传递给train()函数。
这真的非常烦人。请修复。

重现

const dock = await dockStart({
			settings: {
				log: false,
				nlp: {
					forceNER: true,
					log: false,
					languages: ['en'],
					corpora: [
						path.join(corpus_root, 'en', 'corpus-en-music.json'),
						path.join(corpus_root, 'en', 'corpus-en.json')
					]
				},
				nlu: {
					log: false
				}
			},
			use: [
				'Basic',
				'Nlp',
			]
		});

		const manager = dock.get('nlp');

		const ner = dock.get('ner');
		const builtin = new BuiltinMicrosoft();
		ner.container.register('extract-builtin-??', builtin);
		await manager.train();

预期行为

默认情况下不应启用详细日志记录。
日志记录应可配置。

桌面(请完成以下信息):

  • 节点版本20
oxf4rvwz

oxf4rvwz1#

我找到了一种关闭它的方法:

import { containerBootstrap } from "@nlpjs/core";
import { Nlp } from "@nlpjs/nlp";

const container = await containerBootstrap();
const nlp = new Nlp({ 
  languages: ["de"], 
  forceNER: true,

  nlu: { log: false }}, //  is doing the trick
  container);

// then use container as desired 
container.use(LangDe);

对我有效

相关问题