HCC vietnamese-bi-encoder
This is a sentence-transformers model finetuned from bkai-foundation-models/vietnamese-bi-encoder. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.
Model Details
Model Description
- Model Type: Sentence Transformer
- Base model: bkai-foundation-models/vietnamese-bi-encoder
- Maximum Sequence Length: 256 tokens
- Output Dimensionality: 768 tokens
- Similarity Function: Cosine Similarity
- Language: vn
- License: apache-2.0
Model Sources
Full Model Architecture
SentenceTransformer(
(0): Transformer({'max_seq_length': 256, 'do_lower_case': False}) with Transformer model: RobertaModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)
Usage
Direct Usage (Sentence Transformers)
First install the Sentence Transformers library:
pip install -U sentence-transformers
Then you can load this model and run inference.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("ictumuk/hcc-vietnamese-bi-encoder")
sentences = [
'Không, Theo quy định tại Khoản 1, Điều 7, Thông tư 06/2016/TT-BKHCN ngày 22/4/2016 của Bộ Khoa học và Công nghệ về việc cấp Giấy đăng ký và cấp Chứng chỉ hành nghề đối với một số hoạt động dịch vụ hỗ trợ ứng dụng năng lượng nguyên tử, Tổ chức phải làm thủ tục gia hạn Giấy đăng ký chậm nhất 60 (sáu mươi) ngày trước khi Giấy đăng ký hết hạn. Sau thời hạn này, tổ chức phải làm thủ tục và nộp phí thẩm định, lệ phí như đề nghị cấp Giấy đăng ký mới.',
'Công ty tôi được Cục ATBXHN cấp Giấy đăng ký hoạt động dịch vụ hỗ trợ ứng dụng năng lượng nguyên tử - kiểm xạ có thời hạn đến ngày 30/6/2019, vậy tôi nộp hồ sơ đề nghị gia hạn giấy đăng ký trước thời hạn nêu trên là đúng quy định?',
'Cấp giấy xác nhận nguyên liệu thủy sản khai thác trong nước (theo yêu cầu) có yêu cầu gì? ',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
Evaluation
Metrics
Information Retrieval
Metric |
Value |
cosine_accuracy@1 |
0.4926 |
cosine_accuracy@3 |
0.7517 |
cosine_accuracy@5 |
0.8105 |
cosine_accuracy@10 |
0.8645 |
cosine_precision@1 |
0.4926 |
cosine_precision@3 |
0.2506 |
cosine_precision@5 |
0.1621 |
cosine_precision@10 |
0.0865 |
cosine_recall@1 |
0.4926 |
cosine_recall@3 |
0.7517 |
cosine_recall@5 |
0.8105 |
cosine_recall@10 |
0.8645 |
cosine_ndcg@10 |
0.6881 |
cosine_mrr@10 |
0.6304 |
cosine_map@100 |
0.635 |
Information Retrieval
Metric |
Value |
cosine_accuracy@1 |
0.4913 |
cosine_accuracy@3 |
0.7496 |
cosine_accuracy@5 |
0.8066 |
cosine_accuracy@10 |
0.8672 |
cosine_precision@1 |
0.4913 |
cosine_precision@3 |
0.2499 |
cosine_precision@5 |
0.1613 |
cosine_precision@10 |
0.0867 |
cosine_recall@1 |
0.4913 |
cosine_recall@3 |
0.7496 |
cosine_recall@5 |
0.8066 |
cosine_recall@10 |
0.8672 |
cosine_ndcg@10 |
0.6875 |
cosine_mrr@10 |
0.629 |
cosine_map@100 |
0.6333 |
Information Retrieval
Metric |
Value |
cosine_accuracy@1 |
0.4891 |
cosine_accuracy@3 |
0.7417 |
cosine_accuracy@5 |
0.8036 |
cosine_accuracy@10 |
0.8641 |
cosine_precision@1 |
0.4891 |
cosine_precision@3 |
0.2472 |
cosine_precision@5 |
0.1607 |
cosine_precision@10 |
0.0864 |
cosine_recall@1 |
0.4891 |
cosine_recall@3 |
0.7417 |
cosine_recall@5 |
0.8036 |
cosine_recall@10 |
0.8641 |
cosine_ndcg@10 |
0.6846 |
cosine_mrr@10 |
0.6262 |
cosine_map@100 |
0.6307 |
Information Retrieval
Metric |
Value |
cosine_accuracy@1 |
0.4647 |
cosine_accuracy@3 |
0.7274 |
cosine_accuracy@5 |
0.7879 |
cosine_accuracy@10 |
0.855 |
cosine_precision@1 |
0.4647 |
cosine_precision@3 |
0.2425 |
cosine_precision@5 |
0.1576 |
cosine_precision@10 |
0.0855 |
cosine_recall@1 |
0.4647 |
cosine_recall@3 |
0.7274 |
cosine_recall@5 |
0.7879 |
cosine_recall@10 |
0.855 |
cosine_ndcg@10 |
0.6672 |
cosine_mrr@10 |
0.6061 |
cosine_map@100 |
0.6107 |
Information Retrieval
Metric |
Value |
cosine_accuracy@1 |
0.4508 |
cosine_accuracy@3 |
0.703 |
cosine_accuracy@5 |
0.7696 |
cosine_accuracy@10 |
0.8336 |
cosine_precision@1 |
0.4508 |
cosine_precision@3 |
0.2343 |
cosine_precision@5 |
0.1539 |
cosine_precision@10 |
0.0834 |
cosine_recall@1 |
0.4508 |
cosine_recall@3 |
0.703 |
cosine_recall@5 |
0.7696 |
cosine_recall@10 |
0.8336 |
cosine_ndcg@10 |
0.6476 |
cosine_mrr@10 |
0.5874 |
cosine_map@100 |
0.5922 |
Training Details
Training Dataset
Unnamed Dataset
- Size: 20,664 training samples
- Columns:
positive
and anchor
- Approximate statistics based on the first 1000 samples:
|
positive |
anchor |
type |
string |
string |
details |
- min: 4 tokens
- mean: 121.62 tokens
- max: 256 tokens
|
- min: 6 tokens
- mean: 36.22 tokens
- max: 256 tokens
|
- Samples:
positive |
anchor |
- Khoản 1 Điều 12 của Luật quy định hoạt động tín ngưỡng của cơ sở tín ngưỡng phải được đăng ký, trừ cơ sở tín ngưỡng là nhà thờ dòng họ. - Việc đăng ký hoạt động tín ngưỡng của cơ sở tín ngưỡng được quy định tại khoản 2 Điều 12 của Luật, đó là người đại diện hoặc ban quản lý cơ sở tín ngưỡng có trách nhiệm gửi văn bản đăng ký hoạt động tín ngưỡng đến Ủy ban nhân dân cấp xã nơi có cơ sở tín ngưỡng chậm nhất là 30 ngày trước ngày cơ sở tín ngưỡng bắt đầu hoạt động tín ngưỡng, trừ trường hợp tổ chức lễ hội tín ngưỡng lần đầu, lễ hội tín ngưỡng được khôi phục sau thời gian gián đoạn hoặc lễ hội tín ngưỡng được tổ chức định kỳ nhưng có thay đổi về quy mô, nội dung, thời gian, địa điểm. Đối với cơ sở tín ngưỡng đã thông báo hoạt động tín ngưỡng hằng năm trước ngày Luật có hiệu lực, chậm nhất 30 ngày kể từ ngày Luật có hiệu lực có trách nhiệm đăng ký hoạt động tín ngưỡng theo quy định tại khoản 2 Điều 12 của Luật. Văn bản đăng ký phải nêu rõ tên cơ sở tín ngưỡng, các hoạt động tín ngưỡng, nội dung, quy mô, thời gian, địa điểm diễn ra hoạt động. Ủy ban nhân dân cấp xã có trách nhiệm trả lời bằng văn bản trong thời hạn 15 ngày kể từ ngày nhận được văn bản đăng ký hợp lệ; trường hợp từ chối đăng ký phải nêu rõ lý do. |
Hoạt động tín ngưỡng của cơ sở tín ngưỡng có phải đăng ký không? Nếu phải đăng ký thì thực hiện như thế nào? |
Điều 9, Quyết định số 3661/QĐ-BNN-TCCB ngày 19 tháng 9 năm 2018 của Bộ Nông nghiệp và PTNT quy định:Trước ngày 25 tháng 11 hàng năm. Vụ Khoa học, Công nghệ và Môi trường chủ trì, phối hợp với Vụ Tài chính, Trung tâm Khuyến nông Quốc gia thẩm định, trình Bộ trưởng phê duyệt dự án (nội dung, kinh phí) và thuyết minh dự án. Căn cứ quyết định phê duyệt của Bộ, Vụ Tài chính, Trung tâm Khuyến nông Quốc gia ký thuyết minh dự án trước ngày 30 tháng 11. |
Phê duyệt và ký thuyết minh dự án khuyến nông trung ương? |
Người có chứng chỉ tốt nghiệp đào tạo nghề Thừa phát lại hoặc giấy chứng nhận hoàn thành khóa bồi dưỡng nghề Thừa phát lại hoặc quyết định công nhận tương đương đào tạo nghề Thừa phát lại ở nước ngoài; - Người thuộc một trong các trường hợp sau không được đăng ký tập sự hành nghề Thừa phát lại: + Người bị mất hoặc bị hạn chế năng lực hành vi dân sự; có khó khăn trong nhận thức, làm chủ hành vi theo quy định của Bộ luật Dân sự; + Người đang là cán bộ, công chức, viên chức, sĩ quan, quân nhân chuyên nghiệp, công nhân, viên chức quốc phòng trong cơ quan, đơn vị thuộc Quân đội nhân dân, sĩ quan, hạ sĩ quan, chiến sỹ trong cơ quan, đơn vị thuộc Công an nhân dân; +Người đang bị truy cứutrách nhiệm hình sự; người đã bị kết án về tội phạm do vô ý, tội phạm ít nghiêm trọng do cố ý mà chưa được xóa án tích;người đã bị kết án về tội phạm liên quan đến chiếm đoạt tài sản,trục lợi, gian lận, gian dối, xâm phạm an ninh quốc gia, tội phạm nghiêm trọng, tội phạm rất nghiêm trọng, tội phạm đặc biệt nghiêm trọng do cố ý, kể cả trường hợp đã được xóa án tích; +Cán bộ, công chức, viên chức, sĩ quan, quân nhân chuyên nghiệp, công nhân, viên chức quốc phòng trong cơ quan, đơn vị thuộc Quân đội nhân dân, sĩ quan, hạ sĩ quan, chiến sỹ trong cơ quan, đơn vị thuộc Công an nhân dânbị bãi nhiệm, bị xử lý kỷ luật bằng hình thức cách chức, buộc thôi việc, tước danh hiệu hoặc đưa ra khỏi ngành; +Người bị xử lý kỷ luật bằng hình thức xóa tên khỏi danh sách luật sư của Đoàn luật sư do vi phạm pháp luật hoặc vi phạm quy tắc đạo đức nghề nghiệp luật sư; người bị xử phạt vi phạm hành chính bằng hình thức tước quyền sử dụng chứng chỉ hành nghề luật sư mà chưa hết thời hạn 03 năm, kể từ ngày chấp hành xong quyết định xử phạt vi phạm hành chính đó; +Người bị xử phạt vi phạm hành chính bằng hình thức tước quyền sử dụng thẻ công chứng viên, thẻ thẩm định viên về giá, chứng chỉ hành nghề đấu giá, chứng chỉ hành nghề quản tài viên mà chưa hết thời hạn 03 năm, kể từ ngày chấp hành xong quyết định xử phạt vi phạm hành chính đó. |
Yêu cầu, điều kiện thực hiện thủ tục đăng ký tập sự hành nghề Thừa phát lại? |
- Loss:
MatryoshkaLoss
with these parameters:{
"loss": "MultipleNegativesRankingLoss",
"matryoshka_dims": [
768,
512,
256,
128,
64
],
"matryoshka_weights": [
1,
1,
1,
1,
1
],
"n_dims_per_step": -1
}
Evaluation Dataset
Unnamed Dataset
- Size: 2,296 evaluation samples
- Columns:
positive
and anchor
- Approximate statistics based on the first 1000 samples:
|
positive |
anchor |
type |
string |
string |
details |
- min: 4 tokens
- mean: 114.12 tokens
- max: 256 tokens
|
- min: 6 tokens
- mean: 36.66 tokens
- max: 206 tokens
|
- Samples:
positive |
anchor |
Nếu công ty bạn thực hiện đăng ký trong thời gian 7 ngày làm việc kể từ ngày có chất phóng xạ thì không khải làm thủ tục khai báo chất phóng xạ.(Theo Thông tư số 08/2010/TT-BKHCN ngày 22/7/2010, khoản 2, điều 4. Trường hợp tổ chức, cá nhân đề nghị cấp giấy phép tiến hành công việc bức xạ trong thời hạn nêu tại khoản 1 Điều này thì được miễn thực hiện thủ tục khai báo) |
Công ty tôi nhập chất phóng xạ và làm thủ tục đề nghị cấp giấy phép tiến hành công việc bức xạ ngay khi chất phóng xạ về tới Công ty thì chúng tôi có phải làm thủ tục khai báo chất phóng xạ không? |
Hỗ trợ đơn vị đưa lao động đi làm việc ở nước ngoài theo thỏa thuận và đi làm việc ngoài tỉnh có yêu cầu là * Điều kiện thực hiện thủ tục hành chính: - Đơn vị, doanh nghiệp đưa người lao động của tỉnh Hà Giang đi làm việc tại nước ngoài theo thỏa thuận là các đơn vị, doanh nghiệp được UBND tỉnh giao nhiệm vụ tư vấn, tuyển chọn và đưa người lao động Hà Giang sang Trung Quốc làm việc theo thỏa thuận quản lý lao động qua biên giới giữa tỉnh Hà Giang, Việt Nam và các địa phương phía Trung Quốc. - Đơn vị, doanh nghiệp đưa người lao động của tỉnh Hà Giang đi làm việc tại các doanh nghiệp ngoài tỉnh là các đơn vị, doanh nghiệp có chức năng hoạt động dịch vụ việc làm theo quy định của pháp luật trên địa bàn tỉnh. * Đối tượng không áp dụng: Đơn vị, doanh nghiệp đưa lao động đi làm việc ở nước ngoài theo Thỏa thuận quản lý lao động qua biên giới và đưa lao động đi làm việc ngoài tỉnh (với số lao động đơn vị tư vấn, đưa đi) đã được hỗ trợ theo Quyết định số 352/QĐ-UBND ngày 27/2/2018 của UBND tỉnh về phê duyệt Phương án thí điểm lựa chọn doanh nghiệp đưa lao động sang Trung Quốc làm việc theo Thỏa thuận quản lý lao động qua biên giới và Nghị quyết số 47/2012/NQ-HĐND ngày 14/7/2012 của HĐND tỉnh. |
Hỗ trợ đơn vị đưa lao động đi làm việc ở nước ngoài theo thỏa thuận và đi làm việc ngoài tỉnh có yêu cầu gì? |
Bước 1: Thương nhân nước ngoài chuẩn bị hồ sơ theo quy định của pháp luật; + Bước 2: Thương nhân nước ngoài nộp hồ sơ tại Bộ phận tiếp nhận thủ tục hành chính của Ban Quản lý Khu kinh tế Vân Đồn đặt tại Trung tâm Hành chính công huyện Vân Đồn. + Bước 3: Công chức của Ban Quản lý Khu kinh tế Vân Đồn được cử đến Trung tâm Hành chính công huyện Vân Đồn kiểm tra hồ sơ và trao giấy tiếp nhận hồ sơ cho Thương nhân nước ngoài; + Bước 4: Thương nhân nước ngoài căn cứ thời gian ghi trên giấy tiếp nhận hồ sơ đến Trung tâm Hành chính công huyện Vân Đồn nhận kết quả. |
Trình tự thực hiện Thủ tục: Thủ tục Gia hạn giấy phép thành lập Văn phòng đại diện của thương nhân nước ngoài tại Việt Nam là gì ? |
- Loss:
MatryoshkaLoss
with these parameters:{
"loss": "MultipleNegativesRankingLoss",
"matryoshka_dims": [
768,
512,
256,
128,
64
],
"matryoshka_weights": [
1,
1,
1,
1,
1
],
"n_dims_per_step": -1
}
Training Hyperparameters
Non-Default Hyperparameters
eval_strategy
: epoch
per_device_train_batch_size
: 16
per_device_eval_batch_size
: 16
gradient_accumulation_steps
: 16
learning_rate
: 2e-05
lr_scheduler_type
: cosine
warmup_ratio
: 0.1
fp16
: True
load_best_model_at_end
: True
optim
: adamw_torch_fused
batch_sampler
: no_duplicates
All Hyperparameters
Click to expand
overwrite_output_dir
: False
do_predict
: False
eval_strategy
: epoch
prediction_loss_only
: True
per_device_train_batch_size
: 16
per_device_eval_batch_size
: 16
per_gpu_train_batch_size
: None
per_gpu_eval_batch_size
: None
gradient_accumulation_steps
: 16
eval_accumulation_steps
: None
learning_rate
: 2e-05
weight_decay
: 0.0
adam_beta1
: 0.9
adam_beta2
: 0.999
adam_epsilon
: 1e-08
max_grad_norm
: 1.0
num_train_epochs
: 3
max_steps
: -1
lr_scheduler_type
: cosine
lr_scheduler_kwargs
: {}
warmup_ratio
: 0.1
warmup_steps
: 0
log_level
: passive
log_level_replica
: warning
log_on_each_node
: True
logging_nan_inf_filter
: True
save_safetensors
: True
save_on_each_node
: False
save_only_model
: False
restore_callback_states_from_checkpoint
: False
no_cuda
: False
use_cpu
: False
use_mps_device
: False
seed
: 42
data_seed
: None
jit_mode_eval
: False
use_ipex
: False
bf16
: False
fp16
: True
fp16_opt_level
: O1
half_precision_backend
: auto
bf16_full_eval
: False
fp16_full_eval
: False
tf32
: None
local_rank
: 0
ddp_backend
: None
tpu_num_cores
: None
tpu_metrics_debug
: False
debug
: []
dataloader_drop_last
: False
dataloader_num_workers
: 0
dataloader_prefetch_factor
: None
past_index
: -1
disable_tqdm
: False
remove_unused_columns
: True
label_names
: None
load_best_model_at_end
: True
ignore_data_skip
: False
fsdp
: []
fsdp_min_num_params
: 0
fsdp_config
: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
fsdp_transformer_layer_cls_to_wrap
: None
accelerator_config
: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
deepspeed
: None
label_smoothing_factor
: 0.0
optim
: adamw_torch_fused
optim_args
: None
adafactor
: False
group_by_length
: False
length_column_name
: length
ddp_find_unused_parameters
: None
ddp_bucket_cap_mb
: None
ddp_broadcast_buffers
: False
dataloader_pin_memory
: True
dataloader_persistent_workers
: False
skip_memory_metrics
: True
use_legacy_prediction_loop
: False
push_to_hub
: False
resume_from_checkpoint
: None
hub_model_id
: None
hub_strategy
: every_save
hub_private_repo
: False
hub_always_push
: False
gradient_checkpointing
: False
gradient_checkpointing_kwargs
: None
include_inputs_for_metrics
: False
eval_do_concat_batches
: True
fp16_backend
: auto
push_to_hub_model_id
: None
push_to_hub_organization
: None
mp_parameters
:
auto_find_batch_size
: False
full_determinism
: False
torchdynamo
: None
ray_scope
: last
ddp_timeout
: 1800
torch_compile
: False
torch_compile_backend
: None
torch_compile_mode
: None
dispatch_batches
: None
split_batches
: None
include_tokens_per_second
: False
include_num_input_tokens_seen
: False
neftune_noise_alpha
: None
optim_target_modules
: None
batch_eval_metrics
: False
batch_sampler
: no_duplicates
multi_dataset_batch_sampler
: proportional
Training Logs
Epoch |
Step |
Training Loss |
loss |
dim_128_cosine_map@100 |
dim_256_cosine_map@100 |
dim_512_cosine_map@100 |
dim_64_cosine_map@100 |
dim_768_cosine_map@100 |
0.1238 |
10 |
1.4689 |
- |
- |
- |
- |
- |
- |
0.2477 |
20 |
0.9103 |
- |
- |
- |
- |
- |
- |
0.3715 |
30 |
0.8956 |
- |
- |
- |
- |
- |
- |
0.4954 |
40 |
0.6214 |
- |
- |
- |
- |
- |
- |
0.6192 |
50 |
0.5611 |
- |
- |
- |
- |
- |
- |
0.7430 |
60 |
0.4804 |
- |
- |
- |
- |
- |
- |
0.8669 |
70 |
0.5237 |
- |
- |
- |
- |
- |
- |
0.9907 |
80 |
0.4436 |
0.2884 |
0.5861 |
0.6055 |
0.6113 |
0.5647 |
0.6128 |
1.1146 |
90 |
0.3729 |
- |
- |
- |
- |
- |
- |
1.2384 |
100 |
0.2057 |
- |
- |
- |
- |
- |
- |
1.3622 |
110 |
0.2133 |
- |
- |
- |
- |
- |
- |
1.4861 |
120 |
0.1405 |
- |
- |
- |
- |
- |
- |
1.6099 |
130 |
0.1612 |
- |
- |
- |
- |
- |
- |
1.7337 |
140 |
0.1521 |
- |
- |
- |
- |
- |
- |
1.8576 |
150 |
0.1729 |
- |
- |
- |
- |
- |
- |
1.9814 |
160 |
0.1609 |
- |
- |
- |
- |
- |
- |
1.9938 |
161 |
- |
0.2162 |
0.6079 |
0.6247 |
0.6273 |
0.5847 |
0.6305 |
2.1053 |
170 |
0.1553 |
- |
- |
- |
- |
- |
- |
2.2291 |
180 |
0.0789 |
- |
- |
- |
- |
- |
- |
2.3529 |
190 |
0.0894 |
- |
- |
- |
- |
- |
- |
2.4768 |
200 |
0.0806 |
- |
- |
- |
- |
- |
- |
2.6006 |
210 |
0.0789 |
- |
- |
- |
- |
- |
- |
2.7245 |
220 |
0.0837 |
- |
- |
- |
- |
- |
- |
2.8483 |
230 |
0.1165 |
- |
- |
- |
- |
- |
- |
2.9721 |
240 |
0.104 |
0.2056 |
0.6107 |
0.6307 |
0.6333 |
0.5922 |
0.635 |
- The bold row denotes the saved checkpoint.
Framework Versions
- Python: 3.10.13
- Sentence Transformers: 3.0.1
- Transformers: 4.41.2
- PyTorch: 2.1.2
- Accelerate: 0.30.1
- Datasets: 2.19.2
- Tokenizers: 0.19.1
Citation
BibTeX
Sentence Transformers
@inproceedings{reimers-2019-sentence-bert,
title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
author = "Reimers, Nils and Gurevych, Iryna",
booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
month = "11",
year = "2019",
publisher = "Association for Computational Linguistics",
url = "https://arxiv.org/abs/1908.10084",
}
MatryoshkaLoss
@misc{kusupati2024matryoshka,
title={Matryoshka Representation Learning},
author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi},
year={2024},
eprint={2205.13147},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
MultipleNegativesRankingLoss
@misc{henderson2017efficient,
title={Efficient Natural Language Response Suggestion for Smart Reply},
author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
year={2017},
eprint={1705.00652},
archivePrefix={arXiv},
primaryClass={cs.CL}
}