Xgboost: [Peta Jalan] XGBoost 1.0.0 Peta Jalan

Dibuat pada 18 Jul 2019  ·  52Komentar  ·  Sumber: dmlc/xgboost

@dmlc/xgboost-committer silakan tambahkan item Anda di sini dengan mengedit posting ini. Mari kita pastikan itu

  • setiap item harus dikaitkan dengan tiket

  • desain/refactoring utama dikaitkan dengan RFC sebelum melakukan kode

  • masalah pemblokiran harus ditandai sebagai pemblokiran

  • perubahan melanggar harus ditandai sebagai melanggar

untuk kontributor lain yang tidak memiliki izin untuk mengedit posting, silakan komentar di sini tentang apa yang menurut Anda harus di 1.0.0

Saya telah membuat tiga jenis label baru, 1.0.0, Blocking, Breaking

  • [x] Tingkatkan pengalaman penginstalan di Mac OSX (#4477)
  • [x] Hapus tujuan GPU lama.
  • [x] Hapus gpu_exact updater (usang) #4527
  • [x] Hapus dukungan multi-ulir multi gpu (usang) #4531
  • [x] Memori eksternal untuk gpu dan refactoring dmatrix terkait #4357 #4354
  • [ ] Peningkatan Kinerja Titik Pemeriksaan Spark (https://github.com/dmlc/xgboost/issues/3946)
  • [x] [BLOCKING] mekanisme sinkronisasi dalam metode hist di cabang master rusak karena bentuk pohon yang tidak konsisten pada pekerja yang berbeda (https://github.com/dmlc/xgboost/pull/4716, https://github. com/dmlc/xgboost/issues/4679
  • [x] Sinkronisasi per-node memperlambat pelatihan terdistribusi dengan 'hist' (#4679)
  • [x] Tes regresi termasuk kompatibilitas IO biner, stabilitas output, regresi kinerja.
roadmap

Komentar yang paling membantu

Bukan pembuat, tetapi bisakah kami menargetkan API PySpark untuk 1.0?
Edisi: #3370
PR saat ini: #4656

Semua 52 komentar

Bukan pembuat, tetapi bisakah kami menargetkan API PySpark untuk 1.0?
Edisi: #3370
PR saat ini: #4656

untuk kontributor lain yang tidak memiliki izin untuk mengedit posting, silakan komentar di sini tentang apa yang menurut Anda harus di 1.0.0

Juga, haruskah kita menargetkan pemindahan secara eksklusif ke pelacak Rabit berbasis Scala (untuk Spark) di 1.0?

Saya juga bukan seorang committer tetapi saya dan perusahaan tempat saya bekerja sangat tertarik untuk memperbaiki masalah kinerja dengan checkpointing (atau setidaknya menguranginya) #3946

@trams @thesuperzapper Saya pikir ini adalah gambaran umum bagi semua orang untuk merasakan apa yang akan terjadi selanjutnya. Akan sulit untuk membuat daftar semua yang akan datang karena XGBoost adalah proyek berbasis komunitas. Buka saja PR jika sudah siap.

Bukan pembuat, tetapi bisakah kami menargetkan API PySpark untuk 1.0?

@thesuperzapper Mari kita lacak perkembangannya. Saya tentu berharap bahwa saya dapat mulai mengujinya. :-)

Ada juga pertimbangan sekunder, bahwa kita mungkin tidak siap untuk 1.0, dan jaminan API yang menyertainya, misalnya, kita bisa melakukan 0.10.0 selanjutnya?

@thesuperzapper 1.0 tidak akan menjadi versi final. Hanya saja kami mencoba melakukan semantic versioning.

Menambahkan beberapa item terkait GPU.

ingin mendapatkan perbaikan xgb asli disertakan.
https://github.com/dmlc/xgboost/issues/4753

JSON dihapus dari daftar. Lihat https://github.com/dmlc/xgboost/pull/4683#issuecomment -520485615

Saya mengajukan masalah untuk saran saya di atas: #4781 (Untuk menghapus pelacak python Rabit)

FeatureImportance dalam versi Spark juga akan bagus (yaitu dengan mudah memiliki fitur Importance)
https://github.com/dmlc/xgboost/pull/988

Ditambahkan uji regresi.

@chenqin Saya ingin mendengar dari Anda tentang tes regresi, karena Anda memiliki pengalaman mengelola ML dalam produksi. Ada saran?

@chenqin Saya ingin mendengar dari Anda tentang tes regresi, karena Anda memiliki pengalaman mengelola ML dalam produksi. Ada saran?

Saya pikir kita harus mencakup uji regresi pada berbagai beban kerja dan benchmark terhadap akurasi dan stabilitas prediksi (sama atau lebih baik) dari versi sebelumnya dalam perkiraan waktu yang sama. Dua kandidat di atas kepalaku adalah

https://archive.ics.uci.edu/ml/datasets/HIGGS

Dmatrix jarang
https://www.kaggle.com/c/ClaimPredictionChallenge

Kami dapat mencoba berbagai metode dan konfigurasi pohon untuk memastikan cakupan yang baik

tree_method, konfigurasi / dataset / standalone atau cluster

pernyataan:
Saya pikir perlu diklarifikasi sedikit.

  • Regresi rilis bukanlah sesuatu yang sudah kami lakukan di perusahaan tempat saya bekerja.
  • Kumpulan data yang saya usulkan adalah sewenang-wenang yang mungkin tidak digunakan sebagai patokan untuk mengklaim satu kerangka kerja lebih baik dari yang lain. (ini yang paling memprihatinkan ketika saya melihat tolok ukur yang bias dari waktu ke waktu)

  • Faktanya, esensi dari menyetel dan mengungkap fitur/pengaturan yang tepat selalu lebih penting. Sayangnya kami mungkin tidak membahas ini dalam tes regresi.

Mungkin rencana yang lebih terorganisir adalah membangun alat otomatisasi di mana pengguna dapat mengambil dan membandingkan berbagai pengaturan terhadap kumpulan data pribadi dan model di pusat data mereka sendiri.

Kami harus menambahkan pemasangan #4779 sebagai persyaratan untuk mengirim 1.0

Saya menambahkan #4899 sebagai langkah pembersihan.

@dmlc/xgboost-committer Karena kita memiliki beberapa tugas tersisa untuk 1.0, mungkin kita harus membuat rilis sementara 0.91?

@hcho3 Atau mungkin 0.10.0

@thesuperzapper Itu akan membingungkan sistem versi. Saya tidak keberatan dengan rilis 0,91, tetapi saya masih ingin melihat prosedur yang tepat untuk uji regresi.

@trivialfis Jika master memiliki perubahan API, bukankah seharusnya kita menabrak versi utama, yang saya kira akan terlihat seperti 0.100.0

@thesuperzapper Versi 1.0.0 adalah versi pertama kami akan mengadopsi skema versi semantik, jadi tidak, versi semantik tidak akan berlaku untuk rilis sementara. Ini agak rumit, karena kami memiliki cukup banyak yang harus dilakukan sampai 1.0.0 dirilis.

Jika kita menginginkan 0,91, kita harus meninjau semua perubahan dan memastikan bahwa 0,91 adalah
pembaruan tambahan berdasarkan 0,90, dan karena itu, kami tidak merusak peta jalan kami
1.0.0 dengan menggeser beberapa fitur ke 0.9x atau versi lainnya

Saran saya adalah rilis 1.0.0.preview.1, beberapa proyek lain juga
melakukan ini sebelum rilis besar

Pada Sabtu, 5 Okt 2019 pukul 10:19 Philip Hyunsu Cho [email protected]
menulis:

@thesuperzapper https://github.com/thesuperzapper Versi 1.0.0 adalah
versi pertama kami akan mengadopsi skema versi semantik, jadi tidak,
versi semantik tidak akan berlaku untuk rilis sementara.


Anda menerima ini karena Anda yang menulis utas.
Balas email ini secara langsung, lihat di GitHub
https://github.com/dmlc/xgboost/issues/4680?email_source=notifications&email_token=AAFFQ6GBEQSXJKFW6QDPN53QNDEALA5CNFSM4IE5CQGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBWQEDAN5NMVXHJKTUL52
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AAFFQ6BYMDES3537PDMGE5DQNDEALANCNFSM4IE5CQGA
.

@CodingCat 1.0.0.preview.1 adalah saran yang menarik. Apakah Maven menerima versi ini?

ya, Anda dapat memiliki huruf non-numerik di nomor versi

Pada Sabtu, 5 Okt 2019 pukul 11:11 Philip Hyunsu Cho [email protected]
menulis:

@CodingCat https://github.com/CodingCat 1.0.0.preview.1 adalah
saran yang menarik. Apakah Maven menerima versi ini?


Anda menerima ini karena Anda disebutkan.

Balas email ini secara langsung, lihat di GitHub
https://github.com/dmlc/xgboost/issues/4680?email_source=notifications&email_token=AAFFQ6H64Y75JBSSDRVYIS3QNDKFNA5CNFSM4IE5CQGKYY3PNVWWK3TUL52HS4DFVREXG43VMWS2Zcom46PSQ67WWS2ZCOM46DN5MVXHJKTOLORP67
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AAFFQ6BHKVVMQIDMRPY4DSTQNDKFNANCNFSM4IE5CQGA
.

Rilis sementara adalah ide yang bagus, ada banyak peningkatan sejak 0.9.

Oke, saya akan melakukan beberapa pemipaan di sistem CI dalam beberapa hari ke depan, dan kemudian menyiapkan rilis 1.0.0.preview.1.

@CodingCat Bagaimana dengan 0.100 atau 0.95? "Pratinjau" terdengar seperti rilis 1.0.0 sudah dekat, tetapi kami memiliki beberapa fitur utama (PySpark) di telepon.

Apakah itu mendukung berat xgboost?

Saya tidak khawatir tentang kesan 1.0.0 kepada pengguna

Pratinjau Spark 3.0 dirilis pada bulan ini, tetapi rilis resmi berikutnya
April (sekitar puncak percikan) mungkin

Pada Selasa, 8 Okt 2019 pukul 11:41 Philip Hyunsu Cho [email protected]
menulis:

@CodingCat https://github.com/CodingCat Bagaimana dengan 0.100 atau 0.95?
"Pratinjau" terdengar seperti rilis 1.0.0 sudah dekat, tapi kami
memiliki beberapa fitur utama (PySpark) di telepon.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/dmlc/xgboost/issues/4680?email_source=notifications&email_token=AAFFQ6AOGIWIB6W6TW3R5W3QNTH6TA5CNFSM4IE5CQGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBGW63LNMVX6420issue
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AAFFQ6HF52HBR7ZNSKLIY3TQNTH6TANCNFSM4IE5CQGA
.

@CodingCat setidaknya dari sudut pandang xgboost4j-spark, pratinjau 1.0.0 itu tidak akan berguna bagi kebanyakan orang, karena hampir tidak ada yang menjalankan Spark pada 2.12. Selain itu, Anda tidak dapat dengan mudah mendapatkan biner terkompilasi karena https://spark.Apache.org/downloads.html tidak mendistribusikan versi Spark yang dikompilasi untuk 2.12 dengan binari Hadoop disertakan.

Lalu kita harus melepaskan apa-apa?

Pada Kam, 10 Okt 2019 pukul 22:05 Mathew Wicks [email protected]
menulis:

@CodingCat https://github.com/CodingCat setidaknya dari sudut pandang
dari xgboost4j-spark, pratinjau 1.0.0 itu tidak akan berguna bagi kebanyakan orang, karena
hampir tidak ada yang menjalankan Spark pada 2.12. Selain itu, Anda tidak dapat dengan mudah mendapatkan
biner yang dikompilasi sebagai https://spark.Apache.org/downloads.html tidak
mendistribusikan versi Spark yang dikompilasi untuk 2.12 dengan binari Hadoop
termasuk.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/dmlc/xgboost/issues/4680?email_source=notifications&email_token=AAFFQ6AN3FJQ7ZE7EOTXLW3QOACSFA5CNFSM4IE5CQGKYY3PNVWWK3TUL52HS4DFVREXG43VMVB2JKTDN6ZWZ2JKTN6ZWZ2JKW63LNMVX
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/AAFFQ6EJRRMTNY7R7JVALTDQOACSFANCNFSM4IE5CQGA
.

@CodingCat @thesuperzapper Saya pikir #4574 akan memungkinkan untuk mengkompilasi XGBoost dengan Scala 2.11 dan 2.12? Dalam hal ini, kita harus mengkompilasi XGBoost dengan 2.11 dan mengunggah JAR ke Maven.

DIHAPUS:

  • [ ] Lepaskan memori GPU setelah pelatihan #4668

Saya tidak berpikir kita bisa sampai ke sana sekarang.

@thesuperzapper Akan menjadi lebih mudah untuk dikembangkan melawan cabang master Apache Spark (3.0) dan Scala 2.12 setelah Spark merilis pratinjau 3.0 (ditargetkan segera musim gugur ini). Saya mengharapkan perubahan yang jauh lebih besar ke Scala 2.12 di komunitas Spark setelah rilis 3.0 final (ditargetkan awal 2020), tetapi Anda benar bahwa tidak ada banyak penggunaan 2.12 sekarang. Saya membuat https://github.com/dmlc/xgboost/issues/4926 untuk mengumpulkan diskusi seputar rilis Spark yang akan datang.

@CodingCat @thesuperzapper Saya pikir #4574 akan memungkinkan untuk mengkompilasi XGBoost dengan Scala 2.11 dan 2.12? Dalam hal ini, kita harus mengkompilasi XGBoost dengan 2.11 dan mengunggah JAR ke Maven.

4574 tidak mengizinkan kompilasi silang.

Apa yang memungkinkan seseorang untuk memeriksa kode, secara manual mengganti versi scala dan mengkompilasi ulang

Jadi seseorang dapat mengkompilasi toples dengan 2.11 dan mengunggah ke Maven
Saya memiliki permintaan tarik dengan migrasi ke SBT yang memungkinkan kompilasi silang
Saya juga tahu trik bagaimana mendukung kompilasi silang di Maven (kami menggunakannya di perusahaan kami). Saya dapat berbagi jika Anda tertarik

@hcho3 Apakah mungkin menggunakan CPack untuk memudahkan instalasi untuk OSX? Harap abaikan komentar ini jika tidak memungkinkan.

Apakah itu mendukung pembelajaran Multi objektif?

@douglasren Sayangnya tidak. Bisakah Anda memulai masalah baru sehingga kita bisa mendiskusikannya? Istilah "multi tujuan" dapat bervariasi tergantung pada konteksnya, seperti satu fungsi tujuan untuk beberapa keluaran, beberapa tujuan dengan satu keluaran atau beberapa tujuan dengan banyak keluaran?

Saya ingin memberikan suara saya untuk rilis sementara juga.

5146 memperbaiki #4477.

DIHAPUS:

  • [ ] Dukungan API PySpark (https://github.com/dmlc/xgboost/issues/3370) (https://github.com/dmlc/xgboost/pull/4656) .

Rilis sementara akan sangat bagus karena penginstalan macOS masih merepotkan saat ini

Bisakah kami mendapatkan dukungan terdokumentasi untuk belajar menentukan peringkat (berpasangan) dengan XGBoost4J-Spark? Saat ini, tidak ada solusi konkret tentang bagaimana menentukan data pelatihan. Ada beberapa kebingungan seputar partisi berdasarkan groupID dan data pelatihan yang perlu mengikuti strategi partisi yang sama, tetapi cukup kabur.
Contoh atau dokumentasi yang jelas akan sangat membantu!

Saya ingin memberikan suara saya untuk rilis sementara juga. Kami menantikan versi berikutnya sebagian besar untuk perbaikan nilai yang hilang oleh @cpfarrell (lihat https://github.com/dmlc/xgboost/pull/4805).

Apakah ada perkiraan waktu terkait rilis berikutnya (mayor atau sementara)?

PS: @thesuperzapper kami menggunakan 2.11 dan 2.12 dan rilis sementara akan sangat membantu kami

@hcho3 Bisakah kita membuat cabang rilis dan memiliki waktu sekitar satu minggu untuk pengujian?

Ya!

@hcho3 Selain cabang, kami juga dapat membuat kandidat rilis resmi di GitHub Rilis sehingga komunitas dapat lebih percaya diri untuk mengujinya juga.

Ini terdengar luar biasa! Sangat menantikan rilis berikutnya. Beri tahu saya jika kami dapat membantu. Kami pasti akan mengujinya di Yelp.

Saya akan memotong cabang baru release_1.0.0 setelah https://github.com/dmlc/xgboost/pull/5248 digabungkan. Terima kasih semuanya atas kesabaran Anda.

Kandidat rilis sekarang tersedia untuk Python: https://github.com/dmlc/xgboost/issues/5253. Anda dapat mencobanya hari ini dengan berlari

pip3 install xgboost==1.0.0rc1

1.0.0 sekarang keluar:

pip3 install xgboost==1.0.0
Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

trivialfis picture trivialfis  ·  3Komentar

frankzhangrui picture frankzhangrui  ·  3Komentar

ivannz picture ivannz  ·  3Komentar

RanaivosonHerimanitra picture RanaivosonHerimanitra  ·  3Komentar

choushishi picture choushishi  ·  3Komentar