Instructions to use moncefem/memory-lora-gemma4 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use moncefem/memory-lora-gemma4 with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
moncefem Claude Opus 4.8 commited on
Commit ·
f1c3402
1
Parent(s): fb5235a
Push current state: v3 checkpoints + metrics + batch2 scripts
Browse filesv3 trained on complete 1647-repo dataset (best cr_val 2.5995); batch2 novel
dataset scripts (enhanced QA + orchestrator).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
data/batch2_novel_repos.txt
ADDED
|
@@ -0,0 +1,500 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
openstack/akanda-rug python
|
| 2 |
+
rgardner/ouimeaux python
|
| 3 |
+
plainas/tq python
|
| 4 |
+
timraasveld/ansible-string-split-filter python
|
| 5 |
+
adampiskorski/lpr_poc python
|
| 6 |
+
ranisalt/enigma python
|
| 7 |
+
claudiopastorini/claudiopastorini.github.io python
|
| 8 |
+
bshaffer/appengine-python-vm-hello python
|
| 9 |
+
RainCity471/lyCompiler python
|
| 10 |
+
chiphogg/vim-vtd python
|
| 11 |
+
egafford/sahara python
|
| 12 |
+
VirusTotal/misp-modules python
|
| 13 |
+
benedfit/SublimeLinter-contrib-pug-lint python
|
| 14 |
+
thebinarypenguin/SublimeLinter-contrib-raml-cop python
|
| 15 |
+
monostable/haskell-kicad-data python
|
| 16 |
+
Dybov/real_estate_agency python
|
| 17 |
+
nagilum/script.rndmov python
|
| 18 |
+
ianfieldhouse/number_to_words python
|
| 19 |
+
andylytical/brewpi-scripts python
|
| 20 |
+
HHS-IntroProgramming/Multiplication-table python
|
| 21 |
+
potatolondon/contentious python
|
| 22 |
+
sassoftware/mint python
|
| 23 |
+
ikaruswill/vector-space-model python
|
| 24 |
+
NewKnowledge/punk python
|
| 25 |
+
igstan/redis-grep python
|
| 26 |
+
gviot/nadis python
|
| 27 |
+
kevgathuku/top40 python
|
| 28 |
+
MichaelYusko/Bot-Chucky python
|
| 29 |
+
associazionepoltronieri/blender-ap python
|
| 30 |
+
jefrailey/basic-scraper python
|
| 31 |
+
haridsv/fabric python
|
| 32 |
+
gadventures/gapipy python
|
| 33 |
+
sk-/python2.7-type-annotator python
|
| 34 |
+
mythmon/kitsune python
|
| 35 |
+
j4mie/django-activelink python
|
| 36 |
+
jwg4/flask-autodoc python
|
| 37 |
+
EmadMokhtar/halaqat python
|
| 38 |
+
EDUlib/edx-platform python
|
| 39 |
+
Graylog2/graylog-ansible-role python
|
| 40 |
+
armab/st2contrib python
|
| 41 |
+
KrzysztofSendor/dactyl python
|
| 42 |
+
nurav/balrog python
|
| 43 |
+
Pierre-Sassoulas/django-survey python
|
| 44 |
+
microsoft/dpu-utils python
|
| 45 |
+
PersonalGenomesOrg/open-humans python
|
| 46 |
+
vayan/external-video python
|
| 47 |
+
simonjbeaumont/xcp-rrdd python
|
| 48 |
+
lozadaOmr/ansible-admin python
|
| 49 |
+
ulikoehler/UliEngineering python
|
| 50 |
+
kxxoling/fabric python
|
| 51 |
+
EmilStenstrom/nephele python
|
| 52 |
+
chingc/DJRivals python
|
| 53 |
+
docsbox/docsbox python
|
| 54 |
+
uva-financial-engineering/cifer-tournament python
|
| 55 |
+
OSGConnect/freesurfer_workflow python
|
| 56 |
+
aaronkurtz/bricky python
|
| 57 |
+
worldforge/libwfut python
|
| 58 |
+
churchlab/millstone python
|
| 59 |
+
asteroide/immo_spider python
|
| 60 |
+
odoo-chile/l10n_cl_account_vat_ledger python
|
| 61 |
+
jeenalee/sklearn_pmml python
|
| 62 |
+
attenzione/SublimeLinter-scss-lint python
|
| 63 |
+
pudo/spendb python
|
| 64 |
+
hackebrot/cibopath python
|
| 65 |
+
mokieyue/mopidy python
|
| 66 |
+
textbook/flask-forecaster python
|
| 67 |
+
ncareol/spatialdb python
|
| 68 |
+
fna/owning-a-home-api python
|
| 69 |
+
gitpython-developers/GitPython python
|
| 70 |
+
spyder-ide/qtawesome python
|
| 71 |
+
ravel-net/ravel python
|
| 72 |
+
humangeo/preflyt python
|
| 73 |
+
ucb-sts/sts python
|
| 74 |
+
jlaunonen/kirppu python
|
| 75 |
+
matthiask/towel python
|
| 76 |
+
jmiserez/sts python
|
| 77 |
+
teonlamont/mne-python python
|
| 78 |
+
EinsamHauer/graphite-web-iow python
|
| 79 |
+
OCA/contract python
|
| 80 |
+
spreadflow/spreadflow-core python
|
| 81 |
+
djangogirlstaipei/eshop python
|
| 82 |
+
99designs/colorific python
|
| 83 |
+
revng/llvmcpy python
|
| 84 |
+
Antrikshy/reddit2Kindle python
|
| 85 |
+
foliant-docs/foliant python
|
| 86 |
+
estebistec/django-twitter-bootstrap python
|
| 87 |
+
Antojitos/chalupas python
|
| 88 |
+
MasonM/hssonline-conference python
|
| 89 |
+
2baOrNot2ba/dreamBeam python
|
| 90 |
+
k4nar/inbox python
|
| 91 |
+
ctsit/nacculator python
|
| 92 |
+
kytos/python-openflow python
|
| 93 |
+
victorpoluceno/xwing python
|
| 94 |
+
Stratoscale/skipper python
|
| 95 |
+
SUSE/azurectl python
|
| 96 |
+
pinax/django-waitinglist python
|
| 97 |
+
CA-APM/ca-apm-fieldpack-asm java
|
| 98 |
+
emicklei/melrose go
|
| 99 |
+
dev-brutus/427 javascript
|
| 100 |
+
sabre-io/vobject php
|
| 101 |
+
logentries/le_ruby ruby
|
| 102 |
+
chunye/azure-functions-ux typescript
|
| 103 |
+
jhelwig/homers rust
|
| 104 |
+
matayoshi/tools c
|
| 105 |
+
philipphager/disclosure-android-app java
|
| 106 |
+
hashicorp/go-getter go
|
| 107 |
+
jlord/git-it-electron javascript
|
| 108 |
+
armadito/armadito-glpi php
|
| 109 |
+
kolorahl/acls ruby
|
| 110 |
+
neild3r/vscode-php-docblocker typescript
|
| 111 |
+
LesPepitos/gist rust
|
| 112 |
+
ROCm-Developer-Tools/HIP c
|
| 113 |
+
veyndan/paper-for-reddit java
|
| 114 |
+
torinos-io/api go
|
| 115 |
+
alphagov/notifications-admin javascript
|
| 116 |
+
ProjetPP/PPP-Wikidata php
|
| 117 |
+
uhoh-itsmaciek/pg-quilter ruby
|
| 118 |
+
Ragg-/Delir typescript
|
| 119 |
+
cobalt-org/cobalt.rs rust
|
| 120 |
+
k4rtik/btp-gvn c
|
| 121 |
+
kryptnostic/rhizome java
|
| 122 |
+
resumic/schema go
|
| 123 |
+
topherauyeung/portfolio javascript
|
| 124 |
+
EOL/eol_php_code php
|
| 125 |
+
jiajiawang/load_more ruby
|
| 126 |
+
jchakra/discord-raider typescript
|
| 127 |
+
hoodie/rust-email rust
|
| 128 |
+
GNOME/telepathy-account-widgets c
|
| 129 |
+
Hypersonic/Starlorn java
|
| 130 |
+
declanshanaghy/bbqberry go
|
| 131 |
+
var-bin/reactjs-training javascript
|
| 132 |
+
joshmassey/sga-itracker php
|
| 133 |
+
spatchcock/calc-json-ruby ruby
|
| 134 |
+
what3words/w3w-node-wrapper typescript
|
| 135 |
+
bitwalker/rustcalc rust
|
| 136 |
+
fergul/Cache c
|
| 137 |
+
Monospark/ActionControl java
|
| 138 |
+
qskycolor/gofrontend go
|
| 139 |
+
slightly-askew/portfolio-2017 javascript
|
| 140 |
+
digitickets/omnipay-verifone-web-service php
|
| 141 |
+
emodeqidao/Kiwi ruby
|
| 142 |
+
sdeleuze/mixit typescript
|
| 143 |
+
aopicier/cryptopals-rust rust
|
| 144 |
+
bbockelm/condor-network-accounting c
|
| 145 |
+
steria/skuldsku java
|
| 146 |
+
mattn/go-mastodon go
|
| 147 |
+
cristiana214/cristianachavez214-cristianachavez javascript
|
| 148 |
+
ob-ivan/sd-currency php
|
| 149 |
+
chrishunt/github-auth ruby
|
| 150 |
+
thecjharries/slim-ace typescript
|
| 151 |
+
tum-rt/emoji-feedback rust
|
| 152 |
+
ytaben/WakeOnLanRelay c
|
| 153 |
+
yingyun001/ovirt-engine java
|
| 154 |
+
soudy/eparser go
|
| 155 |
+
mg4tv/mg4tv-web javascript
|
| 156 |
+
tux-rampage/zend-di php
|
| 157 |
+
chrisvanheuveln/cisco-network-node-utils ruby
|
| 158 |
+
jordwest/news-feed-eradicator typescript
|
| 159 |
+
DaGenix/rust-crypto rust
|
| 160 |
+
hikoLab/pebcessing c
|
| 161 |
+
bogdansolga/nokia-spring-boot-training java
|
| 162 |
+
btobolaski/terraform-provider-linode go
|
| 163 |
+
testlnord/wurfelspiel javascript
|
| 164 |
+
fullybaked/pslackr php
|
| 165 |
+
pch/lastfm-client ruby
|
| 166 |
+
cookingfox/stibble-api-client-angular typescript
|
| 167 |
+
oakes/neovim-rs rust
|
| 168 |
+
reupen/mmh c
|
| 169 |
+
Charling-Huang/birt java
|
| 170 |
+
anthonyrego/gosmf go
|
| 171 |
+
hellsgate1001/waypoints javascript
|
| 172 |
+
renyuneyun/core php
|
| 173 |
+
Validic/validic ruby
|
| 174 |
+
artsy/force-public typescript
|
| 175 |
+
mijnadres/serde_elm rust
|
| 176 |
+
pressel/mpi4py c
|
| 177 |
+
RoboZonky/robozonky java
|
| 178 |
+
ftcjeff/AirlineCode-go go
|
| 179 |
+
dmitriiabramov/esfmt javascript
|
| 180 |
+
artesaos/laravel-linkedin php
|
| 181 |
+
aruprakshit/sync ruby
|
| 182 |
+
dkocich/osm-pt-ngx-leaflet typescript
|
| 183 |
+
zslayton/cron rust
|
| 184 |
+
aaronriekenberg/openbsd_cproxy c
|
| 185 |
+
rajdavies/fabric8 java
|
| 186 |
+
ziutek/thread go
|
| 187 |
+
vigetlabs/microcosm javascript
|
| 188 |
+
whathejoe/lms-m4g4 php
|
| 189 |
+
mongodb/mongoid ruby
|
| 190 |
+
wishtack/wishtack-steroids typescript
|
| 191 |
+
burtonageo/rebind rust
|
| 192 |
+
thoughtbot/BotKit c
|
| 193 |
+
smalldatalab/omh-dsu java
|
| 194 |
+
Versent/saml2aws go
|
| 195 |
+
dimkarakostas/unimeet javascript
|
| 196 |
+
symfony/security-bundle php
|
| 197 |
+
moneyadviceservice/middleman-i18n-markdown ruby
|
| 198 |
+
xtina-starr/reaction typescript
|
| 199 |
+
tzkhan/roman-rust rust
|
| 200 |
+
ferrous26/cs452-flaming-meme c
|
| 201 |
+
QuickBlox/quickblox-android-sdk java
|
| 202 |
+
willfaught/gockle go
|
| 203 |
+
coryhouse/react-slingshot javascript
|
| 204 |
+
LogicAndTrick/twhl php
|
| 205 |
+
eric/metriks_log_webhook ruby
|
| 206 |
+
BillWagner/WorkingWithTypeScript typescript
|
| 207 |
+
mulkieran/stratisd rust
|
| 208 |
+
abusalimov/SublimeCImproved c
|
| 209 |
+
danshannon/javastrava-test java
|
| 210 |
+
projectatomic/buildah go
|
| 211 |
+
shioyang/EmotionalReader javascript
|
| 212 |
+
sparkframework/spark php
|
| 213 |
+
r7kamura/altria-simple_cov ruby
|
| 214 |
+
murmur76/beyond.ts typescript
|
| 215 |
+
nathanrosspowell/rust_guessing_game rust
|
| 216 |
+
deniscostadsc/playground c
|
| 217 |
+
helun/Ektorp java
|
| 218 |
+
guildencrantz/ask_nest go
|
| 219 |
+
sgmap/mes-aides-ui javascript
|
| 220 |
+
webfactory/content-mapping-sourceadapter-propel php
|
| 221 |
+
benwbrum/fromthepage ruby
|
| 222 |
+
artivilla/desktop typescript
|
| 223 |
+
adRichter/plantex rust
|
| 224 |
+
coreboot/chrome-ec c
|
| 225 |
+
hpautonomy/find java
|
| 226 |
+
go-playground/generate go
|
| 227 |
+
mrkmarron/ChakraCore javascript
|
| 228 |
+
atehnix/laravel-stubs php
|
| 229 |
+
costolo/chain ruby
|
| 230 |
+
github/webauthn-json typescript
|
| 231 |
+
pacman82/odbc-sys rust
|
| 232 |
+
mundue/MMTrackingController c
|
| 233 |
+
proxer/ProxerLibJava java
|
| 234 |
+
flynn-examples/go-flynn-example go
|
| 235 |
+
eJRF/ejrf javascript
|
| 236 |
+
jolantis/artlantis php
|
| 237 |
+
rasnom/sorryyoufeelthatway ruby
|
| 238 |
+
formigio/angular-frontend typescript
|
| 239 |
+
dtolnay/cxx rust
|
| 240 |
+
dslab-epfl/asap c
|
| 241 |
+
Microsoft/ApplicationInsights-Android java
|
| 242 |
+
buchgr/bazel-remote go
|
| 243 |
+
amos-ws16/amos-ws16-arrowjs-server javascript
|
| 244 |
+
engram-design/FieldManager php
|
| 245 |
+
gina-alaska/ttnmanager ruby
|
| 246 |
+
cannoneyed/fiddle typescript
|
| 247 |
+
Boddlnagg/rustup.rs rust
|
| 248 |
+
thomaskeck/root c
|
| 249 |
+
pilot51/voicenotify java
|
| 250 |
+
mongrelion/gapp go
|
| 251 |
+
virtool/virtool javascript
|
| 252 |
+
stof/symfony php
|
| 253 |
+
twitter/twurl ruby
|
| 254 |
+
amalshehu/angular-tour-of-heroes typescript
|
| 255 |
+
dylanmckay/protocol rust
|
| 256 |
+
mlaz/mynewt-core c
|
| 257 |
+
openmhealth/sample-data-generator java
|
| 258 |
+
opencontainers/runc go
|
| 259 |
+
dtekcth/dfotose javascript
|
| 260 |
+
edvinaskrucas/counter-laravel php
|
| 261 |
+
amatsuda/nested_scaffold ruby
|
| 262 |
+
sgtoj/cw-manage-slack-bot typescript
|
| 263 |
+
tsion/miri rust
|
| 264 |
+
HalCanary/skia-hc c
|
| 265 |
+
kits-ab/gakusei java
|
| 266 |
+
didip/tollbooth go
|
| 267 |
+
pd4d10/tiza javascript
|
| 268 |
+
phalcon/zephir php
|
| 269 |
+
slate-studio/openapi-rails ruby
|
| 270 |
+
dsebastien/DefinitelyTyped typescript
|
| 271 |
+
lowRISC/opentitan rust
|
| 272 |
+
rubenk/burp c
|
| 273 |
+
smalecki/motech java
|
| 274 |
+
mrekucci/euler go
|
| 275 |
+
bitclaw/apptmnt javascript
|
| 276 |
+
mdlayher/wavepipe php
|
| 277 |
+
dhensby/silverstripe-cms ruby
|
| 278 |
+
goloveychuk/tsruntime typescript
|
| 279 |
+
exe-dealer/rust-md5 rust
|
| 280 |
+
mk12/morse c
|
| 281 |
+
HubSpot/jinjava java
|
| 282 |
+
elwinar/adeptus go
|
| 283 |
+
tidepool-org/blip javascript
|
| 284 |
+
listabierta/census-ahoraencomun php
|
| 285 |
+
backus/guard-rubocop ruby
|
| 286 |
+
dl988/quedro typescript
|
| 287 |
+
ggez/ggez rust
|
| 288 |
+
robertmaynard/Sandbox c
|
| 289 |
+
kaltsimon/Chasing-Pictures-front-end java
|
| 290 |
+
StroblIndustries/codeutilsShared go
|
| 291 |
+
TripleSpeeder/StandingOrderDapp javascript
|
| 292 |
+
jeffersonmartin/code-examples php
|
| 293 |
+
julik/mal ruby
|
| 294 |
+
thehyve/glowing-bear typescript
|
| 295 |
+
mneumann/expression-rs rust
|
| 296 |
+
Gluttton/PslRK c
|
| 297 |
+
inbloom/secure-data-service java
|
| 298 |
+
Dirbaio/btcd go
|
| 299 |
+
intervention-engine/frontend javascript
|
| 300 |
+
burnflare/CrowdBuy php
|
| 301 |
+
postmodern/kramdown-man ruby
|
| 302 |
+
zentol/flink typescript
|
| 303 |
+
oxcable/oxcable rust
|
| 304 |
+
CollegeBart/bart-sdl-engine-e16 c
|
| 305 |
+
outofcoffee/testcontainers-java java
|
| 306 |
+
scode/saltybox go
|
| 307 |
+
MacPaw/eslint-config-webservices javascript
|
| 308 |
+
jimmythongtran/recipe_tracker php
|
| 309 |
+
samvera/hyrax ruby
|
| 310 |
+
j-f1/forked-desktop typescript
|
| 311 |
+
habitat-sh/habitat rust
|
| 312 |
+
anagromataf/Fountain c
|
| 313 |
+
sake/bouncycastle-java java
|
| 314 |
+
liam-middlebrook/csh-plug go
|
| 315 |
+
benefitcloud/ember-uploader javascript
|
| 316 |
+
siad007/json-schema php
|
| 317 |
+
solidusio-contrib/solidus_easypost ruby
|
| 318 |
+
influxdb/influxdb typescript
|
| 319 |
+
bolinfest/serde-jsonrc rust
|
| 320 |
+
UrbanCompass/RMGallery c
|
| 321 |
+
TehSAUCE/imagej java
|
| 322 |
+
asobti/kube-monkey go
|
| 323 |
+
CartoDB/Windshaft-cartodb javascript
|
| 324 |
+
ponkrit/developer-test php
|
| 325 |
+
lukeredpath/xcodesnippets ruby
|
| 326 |
+
trustpilot/skift typescript
|
| 327 |
+
stepancheg/rust-ide-rust rust
|
| 328 |
+
cxa/MenuItemKit c
|
| 329 |
+
VinnyQ/blueflood java
|
| 330 |
+
melange-app/melange go
|
| 331 |
+
mzrimsek/resume_site javascript
|
| 332 |
+
wesley1001/Kurogo-Mobile-Web php
|
| 333 |
+
giedomak/table_cloth ruby
|
| 334 |
+
t123yh/simple-sandbox typescript
|
| 335 |
+
dati91/servo rust
|
| 336 |
+
bespider/STTweetLabel c
|
| 337 |
+
Team694/joebot java
|
| 338 |
+
v4lproik/no-name go
|
| 339 |
+
bassettmb/slack-bot-dev javascript
|
| 340 |
+
biplobice/concrete5 php
|
| 341 |
+
heavenstudio/spree_pag_seguro ruby
|
| 342 |
+
BitGo/BitGoJS typescript
|
| 343 |
+
keeperofdakeys/asn1-rs rust
|
| 344 |
+
BGWoodward/FishDetector c
|
| 345 |
+
rwinch/spring-security java
|
| 346 |
+
wrapp/wrapplog go
|
| 347 |
+
kiboit/phast javascript
|
| 348 |
+
alexweissman/UserFrosting php
|
| 349 |
+
chronogolf/lightspeed_restaurant ruby
|
| 350 |
+
gund/ng-http-interceptor typescript
|
| 351 |
+
ajroetker/rustc-serialize rust
|
| 352 |
+
greenplum-db/gpdb c
|
| 353 |
+
malucs-developer/Android-Simulator java
|
| 354 |
+
otoolep/raft go
|
| 355 |
+
escaip/smart_bike javascript
|
| 356 |
+
imabug/raddb php
|
| 357 |
+
ruby/spec ruby
|
| 358 |
+
SaschaNaz/TypeScript typescript
|
| 359 |
+
dinfuehr/rust rust
|
| 360 |
+
kazmasaurus/CRToast c
|
| 361 |
+
apache/jmeter java
|
| 362 |
+
ccirello/gochatbot go
|
| 363 |
+
rowanoulton/prefix-matches javascript
|
| 364 |
+
vanderlee/PHPSwaggerGen php
|
| 365 |
+
dtan4/c2y ruby
|
| 366 |
+
tsvetie/nativescript-cli typescript
|
| 367 |
+
qdot/systray-rs rust
|
| 368 |
+
filom/ASN1Decoder c
|
| 369 |
+
Arabidopsis-Information-Portal/intermine java
|
| 370 |
+
lstolyarov/terraform go
|
| 371 |
+
squarewave/addons-frontend javascript
|
| 372 |
+
symfony-cmf/Resource php
|
| 373 |
+
syncrou/manageiq ruby
|
| 374 |
+
arthot/calque typescript
|
| 375 |
+
dwrensha/capnproto-rust rust
|
| 376 |
+
cxd4/trig c
|
| 377 |
+
Syncleus/aparapi java
|
| 378 |
+
rancher/k3s go
|
| 379 |
+
mozilla/webmaker-app-cordova javascript
|
| 380 |
+
LaurentEsc/Laravel-Subdomain-Localization php
|
| 381 |
+
mahimahi42/microblogger ruby
|
| 382 |
+
robak86/neography typescript
|
| 383 |
+
minijackson/INF-4301A rust
|
| 384 |
+
k0gaMSX/kcc c
|
| 385 |
+
holandajunior/workaday java
|
| 386 |
+
myodc/go-micro go
|
| 387 |
+
sigurdga/barteby javascript
|
| 388 |
+
anqh/anqh php
|
| 389 |
+
ValiMail/griddler ruby
|
| 390 |
+
polyaxon/polyaxon typescript
|
| 391 |
+
gchp/termbox-sys rust
|
| 392 |
+
leovegetium/Trabalho-P c
|
| 393 |
+
pzn/clipapp java
|
| 394 |
+
ephemeralsnow/packer go
|
| 395 |
+
dkrathi457/app javascript
|
| 396 |
+
GrottoPress/jentil php
|
| 397 |
+
crepe/creperie ruby
|
| 398 |
+
Dkendal/battle_snake typescript
|
| 399 |
+
snewt/bnf rust
|
| 400 |
+
netzimme/mbed-os c
|
| 401 |
+
mkarneim/luamod java
|
| 402 |
+
resourced/resourced-master go
|
| 403 |
+
manifoldco/torus-cli javascript
|
| 404 |
+
kjhoerr/august-offensive php
|
| 405 |
+
matiaskorhonen/libpixel-ruby ruby
|
| 406 |
+
tjoskar/ng2-lazyload-image typescript
|
| 407 |
+
jonas-schievink/sneeze rust
|
| 408 |
+
adobe-rnd/cordova-osx c
|
| 409 |
+
mrdon/AMPS java
|
| 410 |
+
bernardolins/clustereasy go
|
| 411 |
+
CVBDL/EagleEye-App javascript
|
| 412 |
+
hernantas/MangaReader php
|
| 413 |
+
k0nserv/Humus ruby
|
| 414 |
+
paypac/node-concierge typescript
|
| 415 |
+
jzhu98/telescope rust
|
| 416 |
+
IFTTT/JazzHands c
|
| 417 |
+
fhoeben/hsac-fitnesse-fixtures java
|
| 418 |
+
spacedock-io/registry go
|
| 419 |
+
weepower/wee-core javascript
|
| 420 |
+
DNepovim/kraj-praha php
|
| 421 |
+
ifosch/skyed ruby
|
| 422 |
+
shiftkey/desktop typescript
|
| 423 |
+
aptos-labs/aptos-core rust
|
| 424 |
+
willpatterson/HOPSTACK c
|
| 425 |
+
Steveice10/MCProtocolLib java
|
| 426 |
+
go-gl/gl go
|
| 427 |
+
burningtomatoes/Bitsmashers javascript
|
| 428 |
+
tmingos/sassy-roots php
|
| 429 |
+
mirego/hanzo ruby
|
| 430 |
+
bradyholt/aspnet-core-react-template typescript
|
| 431 |
+
Logicalshift/tame-tree rust
|
| 432 |
+
qsctr/vex-4194b-2016 c
|
| 433 |
+
gabrielavara/music-player java
|
| 434 |
+
ianopolous/go-ipfs go
|
| 435 |
+
SentinelsOfMagic/SentinelsOfMagic javascript
|
| 436 |
+
dxw/php-missing php
|
| 437 |
+
moneyadviceservice/mas-feedback ruby
|
| 438 |
+
nrlquaker/nfov typescript
|
| 439 |
+
crumblingstatue/rust-libnotify-sys rust
|
| 440 |
+
darkbuck/Halide c
|
| 441 |
+
scottfrederick/spring-boot java
|
| 442 |
+
firestudios/qor-example go
|
| 443 |
+
etopian/codebox-package-menubar javascript
|
| 444 |
+
dkgndec/DrupalConsole php
|
| 445 |
+
Teino1978-Corp/Teino1978-Corp-kaminari ruby
|
| 446 |
+
rtsjs/rts typescript
|
| 447 |
+
fanderzon/rocket-api rust
|
| 448 |
+
isbadawi/badavi c
|
| 449 |
+
ryanbrainard/richsobjects java
|
| 450 |
+
rancher/rancher go
|
| 451 |
+
jamen/craze javascript
|
| 452 |
+
unl/UNL_UCBCN_System php
|
| 453 |
+
joeyates/ruby-sun-times ruby
|
| 454 |
+
larsvanbraam/vue-transition-component typescript
|
| 455 |
+
terminalcloud/libnetfilter_queue rust
|
| 456 |
+
qtmediahub/sasquatch c
|
| 457 |
+
InnovateUKGitHub/innovation-funding-service java
|
| 458 |
+
PufferPanel/PufferPanel go
|
| 459 |
+
npmcomponent/ramitos-midway javascript
|
| 460 |
+
Radvance/Radvance php
|
| 461 |
+
sandro/ephemeral_response ruby
|
| 462 |
+
molstar/molstar typescript
|
| 463 |
+
spacejam/sled rust
|
| 464 |
+
AAChartModel/AAChartKit c
|
| 465 |
+
microprofile/microprofile-conference java
|
| 466 |
+
monzo/typhon go
|
| 467 |
+
formidable-coffee/masterfully javascript
|
| 468 |
+
facile-it/paraunit php
|
| 469 |
+
zurb/inky-rb ruby
|
| 470 |
+
dragma/styled-bootstrap-grid typescript
|
| 471 |
+
musoke/inspirer rust
|
| 472 |
+
echonest/libechonest c
|
| 473 |
+
aleph-zero/presto java
|
| 474 |
+
cloudfoundry-incubator/nsync go
|
| 475 |
+
MichaelKohler/mozilla-watcher javascript
|
| 476 |
+
nordsoftware/lumen-core php
|
| 477 |
+
dtan4/organicat ruby
|
| 478 |
+
Flatline4/Flatline4 typescript
|
| 479 |
+
Zamicol/Challenge rust
|
| 480 |
+
ryepdx/keyphrase c
|
| 481 |
+
robertoschwald/cas java
|
| 482 |
+
zombiezen/go-log go
|
| 483 |
+
ONSdigital/florence javascript
|
| 484 |
+
dweidner/laravel-goutte php
|
| 485 |
+
pinzolo/redmine_persist_wfmt ruby
|
| 486 |
+
sheldarr/Votenger typescript
|
| 487 |
+
adeschamps/lcm rust
|
| 488 |
+
jpoirier/picoc c
|
| 489 |
+
Suseika/collections-utils java
|
| 490 |
+
qasim/what-class-is-this go
|
| 491 |
+
nissoh/core javascript
|
| 492 |
+
dafik/CodeGen php
|
| 493 |
+
braintree/braintree-web-drop-in ruby
|
| 494 |
+
kawamon/hue typescript
|
| 495 |
+
GuzTech/tray_rust rust
|
| 496 |
+
crontab/libobjc2 c
|
| 497 |
+
aNNiMON/JECP java
|
| 498 |
+
Urethramancer/lbapi go
|
| 499 |
+
facebook/draft-js javascript
|
| 500 |
+
alfaproject/omnipay-skrill php
|
runs/sixview_v2/head.push_latest.pt
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 754581395
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8d9dd24838eff6b9f40342b93de86fbed724bdc8f35eb9a8b579cc869ae384e3
|
| 3 |
size 754581395
|
runs/sixview_v2/metrics.jsonl
CHANGED
|
@@ -4,3 +4,6 @@
|
|
| 4 |
{"step": 600, "epoch": 0, "end_of_epoch": false, "eval_loss": 2.647629145788428, "suites": {"cr_val": {"eval_loss": 2.647629145788428, "n_docs": 40, "n_tokens": 7696}, "cr_test": {"eval_loss": 2.5539493785098246, "n_docs": 40, "n_tokens": 7924}, "ir_test": {"eval_loss": 2.71551365456855, "n_docs": 37, "n_tokens": 1706}}}
|
| 5 |
{"step": 900, "epoch": 0, "end_of_epoch": false, "eval_loss": 2.6266876440766325, "suites": {"cr_val": {"eval_loss": 2.6266876440766325, "n_docs": 40, "n_tokens": 7696}, "cr_test": {"eval_loss": 2.523330387534787, "n_docs": 40, "n_tokens": 7924}, "ir_test": {"eval_loss": 2.7079888427802574, "n_docs": 37, "n_tokens": 1706}}}
|
| 6 |
{"step": 1200, "epoch": 0, "end_of_epoch": false, "eval_loss": 2.599496544259378, "suites": {"cr_val": {"eval_loss": 2.599496544259378, "n_docs": 40, "n_tokens": 7696}, "cr_test": {"eval_loss": 2.501433642448529, "n_docs": 40, "n_tokens": 7924}, "ir_test": {"eval_loss": 2.7031463161372913, "n_docs": 37, "n_tokens": 1706}}}
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
{"step": 600, "epoch": 0, "end_of_epoch": false, "eval_loss": 2.647629145788428, "suites": {"cr_val": {"eval_loss": 2.647629145788428, "n_docs": 40, "n_tokens": 7696}, "cr_test": {"eval_loss": 2.5539493785098246, "n_docs": 40, "n_tokens": 7924}, "ir_test": {"eval_loss": 2.71551365456855, "n_docs": 37, "n_tokens": 1706}}}
|
| 5 |
{"step": 900, "epoch": 0, "end_of_epoch": false, "eval_loss": 2.6266876440766325, "suites": {"cr_val": {"eval_loss": 2.6266876440766325, "n_docs": 40, "n_tokens": 7696}, "cr_test": {"eval_loss": 2.523330387534787, "n_docs": 40, "n_tokens": 7924}, "ir_test": {"eval_loss": 2.7079888427802574, "n_docs": 37, "n_tokens": 1706}}}
|
| 6 |
{"step": 1200, "epoch": 0, "end_of_epoch": false, "eval_loss": 2.599496544259378, "suites": {"cr_val": {"eval_loss": 2.599496544259378, "n_docs": 40, "n_tokens": 7696}, "cr_test": {"eval_loss": 2.501433642448529, "n_docs": 40, "n_tokens": 7924}, "ir_test": {"eval_loss": 2.7031463161372913, "n_docs": 37, "n_tokens": 1706}}}
|
| 7 |
+
{"step": 1341, "epoch": 0, "end_of_epoch": true, "eval_loss": 2.606481142984916, "suites": {"cr_val": {"eval_loss": 2.606481142984916, "n_docs": 40, "n_tokens": 7696}, "cr_test": {"eval_loss": 2.4960094789914686, "n_docs": 40, "n_tokens": 7924}, "ir_test": {"eval_loss": 2.644830758169136, "n_docs": 37, "n_tokens": 1706}}}
|
| 8 |
+
{"step": 1500, "epoch": 1, "end_of_epoch": false, "eval_loss": 2.6363723853877947, "suites": {"cr_val": {"eval_loss": 2.6363723853877947, "n_docs": 40, "n_tokens": 7696}, "cr_test": {"eval_loss": 2.521588217604347, "n_docs": 40, "n_tokens": 7924}, "ir_test": {"eval_loss": 2.67671262980346, "n_docs": 37, "n_tokens": 1706}}}
|
| 9 |
+
{"step": 1800, "epoch": 1, "end_of_epoch": false, "eval_loss": 2.632204555261594, "suites": {"cr_val": {"eval_loss": 2.632204555261594, "n_docs": 40, "n_tokens": 7696}, "cr_test": {"eval_loss": 2.508357783750354, "n_docs": 40, "n_tokens": 7924}, "ir_test": {"eval_loss": 2.6669074774906476, "n_docs": 37, "n_tokens": 1706}}}
|
runs/sixview_v2/tb/events.out.tfevents.1784937854.MAC-722851.47533.0
CHANGED
|
Binary files a/runs/sixview_v2/tb/events.out.tfevents.1784937854.MAC-722851.47533.0 and b/runs/sixview_v2/tb/events.out.tfevents.1784937854.MAC-722851.47533.0 differ
|
|
|
scripts/generate_repo_scoped_qa_v2.py
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""ENHANCED repo-scoped QA generator (batch2 / novelty pass).
|
| 3 |
+
|
| 4 |
+
Same 6-view input as generate_repo_scoped_qa.py, but the prompt asks for a
|
| 5 |
+
BROADER, NOVEL set of judgment aspects that the earlier passes under-covered --
|
| 6 |
+
so the new repos teach the model NEW capabilities, not just more of the same:
|
| 7 |
+
|
| 8 |
+
existing aspects : architecture, data_flow, why, contracts, conventions, impact, ops
|
| 9 |
+
NEW aspects here : debugging (failure modes / how to diagnose),
|
| 10 |
+
security (attack surface / trust boundaries / validation),
|
| 11 |
+
performance (hot paths / scaling / cost),
|
| 12 |
+
concurrency (races / ordering / data consistency),
|
| 13 |
+
migration (how to evolve/refactor safely / deprecation),
|
| 14 |
+
testing_strategy (what a good test here asserts)
|
| 15 |
+
|
| 16 |
+
Still Tier-A/B discipline: short judgment answers, NO exact file/line lists.
|
| 17 |
+
Appends to the SAME data/qna/repo_scoped_qa.jsonl (resume-safe by doc_id) so the
|
| 18 |
+
next-day assemble picks it up automatically.
|
| 19 |
+
|
| 20 |
+
Usage:
|
| 21 |
+
./venv/bin/python scripts/generate_repo_scoped_qa_v2.py \
|
| 22 |
+
--sources data/docs/multiview_sources.jsonl \
|
| 23 |
+
--model google/gemma-4-31b-it --workers 10 --only-repos data/batch2_novel_repos.txt
|
| 24 |
+
"""
|
| 25 |
+
from __future__ import annotations
|
| 26 |
+
import argparse, hashlib, json, os, re, sys, time
|
| 27 |
+
from pathlib import Path
|
| 28 |
+
from typing import Dict, List
|
| 29 |
+
from openai import OpenAI
|
| 30 |
+
|
| 31 |
+
HERE = Path(__file__).resolve().parent; REPO_ROOT = HERE.parent
|
| 32 |
+
sys.path.insert(0, str(REPO_ROOT))
|
| 33 |
+
from memory_lora.data_paths import QNA_DIR, DOCS_DIR, CACHE_DIR, ensure_dirs # noqa: E402
|
| 34 |
+
|
| 35 |
+
def _load_dotenv(p: Path):
|
| 36 |
+
if p.exists():
|
| 37 |
+
for line in p.read_text().splitlines():
|
| 38 |
+
if "=" in line and not line.strip().startswith("#"):
|
| 39 |
+
k, v = line.split("=", 1); os.environ.setdefault(k.strip(), v.strip())
|
| 40 |
+
_load_dotenv(REPO_ROOT / ".env")
|
| 41 |
+
MODEL = "google/gemma-4-31b-it"; BASE_URL = "https://openrouter.ai/api/v1"
|
| 42 |
+
|
| 43 |
+
SYSTEM = (
|
| 44 |
+
"You are a 20-year staff engineer writing ADVANCED onboarding Q&A for a senior "
|
| 45 |
+
"engineer joining a repository. You get 6 views: call/import graph, architecture "
|
| 46 |
+
"(readme/tree), git history, test contracts, code conventions, and ops/build "
|
| 47 |
+
"config. Produce a JSON array of 10-14 objects with keys 'aspect','question',"
|
| 48 |
+
"'answer'. aspect in: debugging, security, performance, concurrency, migration, "
|
| 49 |
+
"testing_strategy, data_flow, impact. Rules: (1) questions are REPO-LEVEL and "
|
| 50 |
+
"test HARD JUDGMENT a senior would reason about -- 'where would a bug in X most "
|
| 51 |
+
"likely surface', 'what is the trust boundary / attack surface here', 'what is "
|
| 52 |
+
"the likely hot path or scaling bottleneck', 'what ordering/consistency "
|
| 53 |
+
"assumption could break under concurrency', 'how would you evolve Y without "
|
| 54 |
+
"breaking callers', 'what must a good test here assert'. (2) answers SHORT -- one "
|
| 55 |
+
"phrase or sentence, copyable, NO file-path or line-number lists. (3) ground "
|
| 56 |
+
"every answer in the provided views; invent nothing; if a view is thin, reason "
|
| 57 |
+
"from what IS present. Output ONLY the JSON array."
|
| 58 |
+
)
|
| 59 |
+
|
| 60 |
+
def ckey(*p): return hashlib.sha256("||".join(p).encode()).hexdigest()[:24]
|
| 61 |
+
|
| 62 |
+
def gen(client, ctx, cache_dir, retries=4) -> List[Dict]:
|
| 63 |
+
cf = cache_dir / f"rsqa2_{ckey(MODEL, ctx)}.json"
|
| 64 |
+
if cf.exists():
|
| 65 |
+
raw = cf.read_text()
|
| 66 |
+
else:
|
| 67 |
+
for a in range(retries):
|
| 68 |
+
try:
|
| 69 |
+
r = client.chat.completions.create(model=MODEL,
|
| 70 |
+
messages=[{"role": "system", "content": SYSTEM}, {"role": "user", "content": ctx}],
|
| 71 |
+
max_tokens=4000, temperature=0.6)
|
| 72 |
+
raw = r.choices[0].message.content or ""; cf.write_text(raw); break
|
| 73 |
+
except Exception: # noqa: BLE001
|
| 74 |
+
time.sleep(2 ** a)
|
| 75 |
+
else:
|
| 76 |
+
return []
|
| 77 |
+
m = re.search(r"\[.*\]", raw, re.DOTALL)
|
| 78 |
+
if not m: return []
|
| 79 |
+
try: items = json.loads(m.group(0))
|
| 80 |
+
except json.JSONDecodeError: return []
|
| 81 |
+
out = []
|
| 82 |
+
for it in items:
|
| 83 |
+
q = (it.get("question") or "").strip(); a = (it.get("answer") or "").strip()
|
| 84 |
+
asp = (it.get("aspect") or "general").strip()
|
| 85 |
+
if q and a and len(a) < 240: out.append({"aspect": asp, "question": q, "answer": a})
|
| 86 |
+
return out
|
| 87 |
+
|
| 88 |
+
def build_ctx(repo: str, vt: Dict[str, str]) -> str:
|
| 89 |
+
parts = [f"REPOSITORY: {repo}\n"]
|
| 90 |
+
for k in ["v_arch", "v_graph", "v_history", "v_contracts", "v_conventions", "v_ops"]:
|
| 91 |
+
parts.append(f"=== {k} ===\n{vt.get(k,'')}\n")
|
| 92 |
+
return "\n".join(parts)
|
| 93 |
+
|
| 94 |
+
def main():
|
| 95 |
+
import threading
|
| 96 |
+
from concurrent.futures import ThreadPoolExecutor, as_completed
|
| 97 |
+
ap = argparse.ArgumentParser()
|
| 98 |
+
ap.add_argument("--sources", default=str(DOCS_DIR / "multiview_sources.jsonl"))
|
| 99 |
+
ap.add_argument("--only-repos", default="", help="file of repo\\tlang -- restrict to these repos (the novel batch)")
|
| 100 |
+
ap.add_argument("--model", default=MODEL)
|
| 101 |
+
ap.add_argument("--workers", type=int, default=10)
|
| 102 |
+
args = ap.parse_args()
|
| 103 |
+
globals()["MODEL"] = args.model
|
| 104 |
+
ensure_dirs()
|
| 105 |
+
key = os.environ.get("OPENROUTER_API_KEY")
|
| 106 |
+
if not key: raise SystemExit("OPENROUTER_API_KEY not set")
|
| 107 |
+
client = OpenAI(base_url=BASE_URL, api_key=key)
|
| 108 |
+
|
| 109 |
+
only = None
|
| 110 |
+
if args.only_repos and Path(args.only_repos).exists():
|
| 111 |
+
only = {l.split("\t")[0].split()[0].strip() for l in open(args.only_repos) if l.strip()}
|
| 112 |
+
|
| 113 |
+
src = [json.loads(l) for l in open(args.sources)]
|
| 114 |
+
if only is not None:
|
| 115 |
+
src = [r for r in src if r["doc_id"] in only or r.get("repo") in only]
|
| 116 |
+
outp = QNA_DIR / "repo_scoped_qa.jsonl"
|
| 117 |
+
done = set()
|
| 118 |
+
if outp.exists():
|
| 119 |
+
done = {json.loads(l)["doc_id"] for l in open(outp)}
|
| 120 |
+
todo = [r for r in src if r["doc_id"] not in done]
|
| 121 |
+
print(f"enhanced QA: {len(todo)} repos to do (of {len(src)} selected)", flush=True)
|
| 122 |
+
out_f = outp.open("a")
|
| 123 |
+
lock = threading.Lock()
|
| 124 |
+
n_docs = [0]; n_qa = [0]; t0 = time.time()
|
| 125 |
+
|
| 126 |
+
def work(row):
|
| 127 |
+
doc_id = row["doc_id"]
|
| 128 |
+
qas = gen(client, build_ctx(row["repo"], row["view_text"]), CACHE_DIR)
|
| 129 |
+
if not qas: return
|
| 130 |
+
with lock:
|
| 131 |
+
for qa in qas:
|
| 132 |
+
out_f.write(json.dumps({"doc_id": doc_id, "doc_version": "head",
|
| 133 |
+
"split": "train", "qna_split": "train", "aspect": qa["aspect"],
|
| 134 |
+
"question": qa["question"], "prefix": f"Q: {qa['question']}\nA:",
|
| 135 |
+
"target": " " + qa["answer"], "lang": row.get("lang", "unknown"),
|
| 136 |
+
"source": "batch2_novel"}) + "\n")
|
| 137 |
+
n_qa[0] += 1
|
| 138 |
+
n_docs[0] += 1
|
| 139 |
+
if n_docs[0] % 25 == 0:
|
| 140 |
+
print(f" {n_docs[0]}/{len(todo)} repos, {n_qa[0]} QA "
|
| 141 |
+
f"({n_docs[0]/max(1e-9,(time.time()-t0)/60):.1f}/min)", flush=True)
|
| 142 |
+
|
| 143 |
+
with ThreadPoolExecutor(max_workers=args.workers) as ex:
|
| 144 |
+
for _ in as_completed([ex.submit(work, r) for r in todo]):
|
| 145 |
+
pass
|
| 146 |
+
out_f.close()
|
| 147 |
+
print(f"\nDone. {n_docs[0]} novel repos -> {n_qa[0]} enhanced (debug/security/perf/"
|
| 148 |
+
f"concurrency/migration) QA.", flush=True)
|
| 149 |
+
|
| 150 |
+
if __name__ == "__main__":
|
| 151 |
+
main()
|
scripts/orchestrate_batch2.sh
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
# Independent batch2 pipeline: wait for the novel-repo CPU build to finish, then
|
| 3 |
+
# run the ENHANCED QA pass on exactly those repos. Never touches training.
|
| 4 |
+
# Leaves everything staged for a next-day assemble (does NOT re-assemble aligned6).
|
| 5 |
+
set -u
|
| 6 |
+
cd /Users/moncif/gemma4-hack
|
| 7 |
+
BL=runs/build_batch2.log
|
| 8 |
+
QL=runs/qa_batch2.log
|
| 9 |
+
OL=runs/batch2_orchestrator.log
|
| 10 |
+
log(){ echo "$(date '+%F %T'): $*" >> "$OL"; }
|
| 11 |
+
|
| 12 |
+
log "batch2 orchestrator started; waiting for build to finish"
|
| 13 |
+
# wait for the build process to end
|
| 14 |
+
while pgrep -f "build_repo_multiview.py --repos-file data/batch2_novel_repos.txt" >/dev/null 2>&1; do
|
| 15 |
+
sleep 30
|
| 16 |
+
done
|
| 17 |
+
log "build finished: $(grep -oE 'Done\. [0-9]+ repos.*' "$BL" | tail -1)"
|
| 18 |
+
|
| 19 |
+
# run enhanced QA on just the novel batch repos (resume-safe, appends to main qna)
|
| 20 |
+
log "launching enhanced QA (debug/security/perf/concurrency/migration)"
|
| 21 |
+
./venv/bin/python scripts/generate_repo_scoped_qa_v2.py \
|
| 22 |
+
--sources data/docs/multiview_sources.jsonl \
|
| 23 |
+
--only-repos data/batch2_novel_repos.txt \
|
| 24 |
+
--model google/gemma-4-31b-it --workers 10 >> "$QL" 2>&1
|
| 25 |
+
log "enhanced QA done: $(grep -oE 'Done\. [0-9]+ novel repos.*' "$QL" | tail -1)"
|
| 26 |
+
log "batch2 dataset READY for next-day assemble (novel repos in main pool; enhanced QA appended)"
|