Day 2465 / OlmOCR for pdf-png-xxx to text
allenai/olmocr: Toolkit for linearizing PDFs for LLM datasets/training
Online demo: https://olmocr.allenai.org/
- can be exposed through eg vllm
- really cool results on messy docs
My name is Serhii Hamotskyi, welcome to my personal website!
It was created as a way to organize information about all the things I'm interested in. The main parts are listed on the right.
allenai/olmocr: Toolkit for linearizing PDFs for LLM datasets/training
Online demo: https://olmocr.allenai.org/
curl -X 'POST' \
'http://localhost:8001/tokenize' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"model": "mistralai/Mistral-Small-24B-Instruct-2501",
"prompt": "my prompt",
"add_special_tokens": true,
"additionalProp1": {}
}'
uv add jupyterlab-vim
uv run jupyter labextension list
uv run jupyter labextension enable jupyterlab_vim
uv run jupyter lab
def pdb_debug(
main_func,
): # pylint: disable=missing-function-docstring, broad-exception-caught
"""Run a function, optionally drop to pdb on exception"""
def wrapper():
import pdb
import sys
import traceback
try:
main_func()
except Exception as e:
# PDB is actually read from .env
if PDB:
_, _, tb = sys.exc_info()
traceback.print_exc()
pdb.post_mortem(tb)
else:
raise e
return wrapper
A spin over the usual: 220214-1756 python run pdb on exception
apt install progress
: Xfennec/progress: Linux tool to show progress for cp, mv, dd, … (formerly known as cv)progress -w
gives status of running copy/mv operationsrsync -aP
) pip install -U "huggingface_hub[cli]"
#either of
hf auth login
hf auth login --token $HF_TOKEN
# models
hf download adept/fuyu-8b --cache-dir ./path/to/cache
// TODO — vllm — will it be VLLM_CACHE_ROOT
or HF_HOME
?
Also: Troubleshooting - vLLM — they literally recommend getting it first via hf cli and passing the full path
Lost cumulatively hours on these things this months.
MODEL_CONFIG = ConfigDict(
serialize_by_alias=True, # why doesn't this, alone, work?
)
Guess why? Because I have pydantic 2.10, the config above was introduced in 2.11, and it just quietly allows me to set this config value.
(Configuration - Pydantic)
(Ty ty
for picking up on this)
Next. Configuration - Pydantic
ConfigDict(
arbitrary_types_allowed=False, # disallow obj.invalid_field = "whatever"
)
For my own models as well. Setting obj.name='test'
when you want obj.step_name
is almost never a good idea.
And again about serialize_by_alias: will be default in pydantic v3, which I welcome, because if you forget to model_dump(by_alias=True)
then the model will be dumped with unexpected names, which will then be quietly deleted when you try to initialize a new model from that dict through e.g. NewModel(**old_model.model_dump())
.
(Should’ve validated anyway, but…)
~/.pdbrc
gets read by both of them, and can import stuff and use aliases!
# ! makes it python code to be executed
!import rich
# # alternative if not !importing it above in one comman:d
# alias P !import rich; rpprint(%1)
alias I rich.inspect(%1)
alias ppp rpprint(%1)
print("Custom commands:")
print("\t i $thing — rich inspect $thing")
print("\t ppp $thing — rich pretty print $thing")
EDIT: the above works only if rich is already imported.
I found out about uv self upgrade
which took me from 0.5 to 0.8, read the CHANGELOGs etc. and many neat things exist.
upgrade --all
· Issue #1419 · astral-sh/uvuv add -U pydantic
one packageuv lock --upgrade
all of them?uv build
package you want to useuv add ../other/dist/package-2.4.0-py3-none-any.whl
[tool.uv.sources]
coral-ucf = { path = "../other/dist/package-2.4.0-py3-none-any.whl" }
Copied from the old Semantic Wiki. Half of the old links are gone, yet another reminder of bit rot and memento mori.
Оригінал: .:: Phrack Magazine ::.
Контекст: Маніфест хакера — Вікіпедія / Hacker Manifesto - Wikipedia
Існуючий дуже класний переклад, не відкривав, поки не закінчив свій: Маніфест хакера | Hacker’s Manifesto | webKnjaZ: be a LifeHacker
==Phrack Inc.==
Том I, випуск 7, Ph-айл[0] 3 з 10
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Наступне було написано невдовзі після мого арешту...
\/\Совість хакера/\/
автор:
+++The Mentor+++
8 січня 1986р.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Сьогодні ще одного спіймали, пишуть у всіх газетах. "Кібер-скандал:
підлітку повідомили про підозру", "Кіберзлочинця затримали після
проникнення в систему банку".
Тупа школота[1], вони всі однакові.
Та чи ви, з вашою трафаретною ментальністю[2] та знаннями
інформатики зразка першої половини пʼятидесятих[3], коли-небудь дивилися
в душу хакера?[4] Чи вас колись цікавило, що є причиною його поведінки[5],
які сили на нього впливали, що його сформувало?
Я хакер, ласкаво прошу у мій світ...
Мій світ почався ще зі школи... Я розумніший за більшість інших
дітей, і дурниці, які нам викладають, мені набридають.
Тупий відстаючий[6], вони всі однакові.
Восьмий, девʼятий, десятий, одинадцятий клас[7]. В пʼятнадцятий
раз слухаю, як вчителька пояснює, як скорочувати дроби. Мені все ясно. "Ні,
Вікторія Миколаївна[8], я не написав проміжні кроки, я розвʼязав все усно..."
Тупий підліток. Мабуть списав. Всі вони такі.
Сьогодні я зробив відкриття. Я знайшов компʼютер. Ха, почекай-но,
це круто. Він робить те, що я від нього хочу. І якщо він помиляється,
це тому, що помилився я. А не тому що він мене не любить...
Або відчуває від мене загрозу...
Або думає що я тіпа самий умний[9]...
Або не любить викладати[10] і йому тут не місце...
Тупий підліток. Він постійно тільки грає в свої ігри. Всі вони такі...
Потім це відбулось... відчинились двері в світ... несучись телефонною
лінією як героїн венами наркомана, надсилається електронний пульс,
шукається спасіння від невігластва навколо...[11] Знаходиться борд.[12]
"Це воно... це те, до чого я належу..."
Я з усіма тут знайомий... попри те, що я з ними ніколи не
зустрічався, не розмовляв, і колись можливо більше нічого не чутиму про
них... Я їх всіх знаю...
Тупий підліток. Знову займає телефонну лінію... Вони всі однакові.
Та можете не сумніватись,[13] що ми всі однакові... Нас годували
дитячими сумішами з ложки, коли ми хотіли стейк... а ті куски мʼяса, які
до нас все ж потрапляли, були вже пережовані і без смаку. Над нами
панували садисти, або нас ігнорували байдужі. Для тих, хто хотіли чомусь
нас навчити, ми були вдячними учнями, але їх було як краплин дощу в
пустелі.
Цей світ зараз наш... світ електрона і комутатора, світ краси
бода[14]. Ми користуємося існуючою послугою не платячи за те, що могло б
бути дуже дешевим, якби ним не завідували ненажерливі бариги[15], і ви
називаєте нас злочинцями. Ми досліджуємо... і ви називаєте нас
злочинцями. Ми шукаємо знання... і ви називаєте нас злочинцями. Ми
існуємо без кольору шкіри, без національності і без релігійної
нетерпимості... і ви називаєте нас злочинцями. Ви будуєте атомні бомби,
ви ведете війни, ви вбиваєте, обманюєте, і брешете нам, намагаючись
заставити нас повірити, що ви це робите для нашого блага, і попри все -
це ми тут злочинці.
Так, я злочинець. Мій злочин - моя допитливість. Мій злочин -
оцінювати людей по тому, що вони кажуть і думають, а не по тому, як
вони виглядають. Мій злочин в тому, що я вас перехитрив, і ви мене
ніколи не пробачите за це.
Я хакер, і це мій маніфест. Можливо ви зупините мене як особу, але ви
ніколи не зупините нас всіх... зрештою, ми всі однакові.
Замітки:
Hat tip to:
Головне, щоб слова не були занадто новими: КОМП’ЮТЕР — СЛОВОВЖИВАННЯ | Горох — українські словники:
Компʼютер
Правильніше: верстак
(Хоча можна ще цікавіше: Комп’ютер - Як перекладається слово Комп’ютер українською - Словотвір)
Random:
(1) Букви on X: “@donikroman Пане, Ви знову з матами, як школота ¯_(ツ)_/¯ Зауваження, до слова, правильне, українською мовою, а не “на українській мові”, це калька з російської. Може б варто почати з такого? https://t.co/LEEEIX9Bwd” / X ↩︎
„підліток“ синоніми, антоніми, відмінки та тлумачення слова ↩︎