Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
from timeit import timeit
def t1():
# складываем 10 строк через + из переменной
t = 'text'
for _ in range(1000):
s = t + t + t + t + t + t + t + t + t
def t2():
# склеиваем список строк через метод join
arr = ['text'] * 10
for _ in range(1000):
s = ''.join(arr)
def t3():
# складываем через + но не из переменной а непосредственно инлайн объекты
for _ in range(1000):
s = 'text' + 'text' + 'text' + ... # всего 10 раз
Теперь каждую строку склейки запустим по 10М раз
>>> timeit(t1, number=10000)
0.21951690399964718
>>> timeit(t2, number=10000)
1.4978306379998685
>>> timeit(t3, number=10000)
0.2213820789993406
Хм, а нам говорили что через "+" это плохо и медленно ))) 😁
Тут стоит учитывать, что речь идёт о склейке множества длинных строк.
Давайте изменим условия:
def t4():
t = 'text'*100
for _ in range(1000):
s = t + t + t + t + t + t + t + t + t
def t5():
arr = ['text'*100] * 10
for _ in range(1000):
s = ''.join(arr)
def t6():
for _ in range(1000):
s = 'text'*100 + 'text'*100 + ... # всего 10 раз
>>> timeit(t4, number=10000)
12.795130728000004
>>> timeit(t5, number=10000)
2.642637542999182
>>> timeit(t6, number=10000)
0.2184546610005782
Вот, уже другой разговор, сразу видна разница, в среднем в 6 раз. Но погодите, почему последний тест t6() по скорости такой же как и t3()? Ведь строки теперь в 100 раз длиннее!
Это вопросы оптимизации кода, какие простые изменения ускоряют или замедляют выполнение программы. Мы столкнулись с примером обхода обращения к переменной. Например, именно так работает директива #define в С++, во время компиляции подставляя значение переменной вместо ссылки на неё.
В Python это тоже работает, но часто ли вы сможете встретить такой способ работы со строками? К сожалению, способ почти только теоретический.
В целом, тесты показали то, что мы хотели. Делаем выводы самостоятельно.
Полный листинг 🌍
#tricks
Еще про ИИ и когнитивные искажения
Всю ночь смотрела интервью Дурова перечитывала статьи про использование ИИ в науке, готовясь к упомянутой выше дискуссии и к докладам на двух конференциях.
В частности, обратилась к статье «Artificial intelligence and illusions of understanding in scientific research», вышедшей в марте в журнале Nature.
Авторы статьи, как водится, отмечают, что распространение ИИ-инструментов в науке рано или поздно приведет к тому, что мы будем производить больше знания (в том числе и «мусорного»), но при этом меньше понимать его источники и содержание.
Ученые делят применяемые сегодня исследовательские ИИ-инструменты на генеративные и предиктивные и на основе этого выводят 4 условных типа ИИ в современнойнауке:
▪️Оракул (генерация научных гипотез и study design)
▪️Суррогат (моделирование сложных системных процессов и сбор данных)
▪️Квант (анализ данных для исследования)
▪️Арбитр (рецензирование полученных результатов исследования)
Их совместное применение увеличивает некоторые эпистемические риски, связанные с подверженностью ученых «иллюзиям понимания» (в т.ч. иллюзиям объяснительной глубины, широты и объективности).
Таким образом, самый актуальный вопрос сегодняшнего дня не «Что даст ИИ науке?» а «Как у нас формируются когнитивные иллюзии нового типа, порождаемые использованием ИИ?».
Старые-добрые ловушки вроде «эффекта ореола», «эффекта фрейминга» и, конечно, «эффекта Элизы» уже давно изучены, а вот новые - пока не очень.
Пока новые исследования по этой теме пишутся, вот тут можно посмотреть легендарныйфайл с 176 когнитивными искажениями, с которыми мы сталкиваемся ежедневно. Скорее всего, применение ИИ просто усугубит многие из них.
#papers
Ученые из Института химии растворов им. Г.А. Крестова РАН методом твердофазного синтеза с механохимической активацией получили фотокатализатор, содержащий гетероструктуры Fe2TiO5. Они изучили механизмы образования кристаллических фаз, а также эволюцию структурных и физико-химических свойств полученных материалов при отжиге на воздухе и в азоте. На основании исследований фотокаталитической активности нанокатализаторов при разложении органического красителя родамина Б учеными был предложен механизм разделения зарядов в исследуемых керамических нанокомпозиционных материалах, связанный с различным поглощением фотонов и образованием электронно-дырочных пар.
Подробнее об исследовании см.: https://www.sciencedirect.com/science/article/pii/S0254058423002018?via%3Dihub
Ivanov K.V., Noskov A.V., Alekseeva O.V., Agafonov A.V. Effect of annealing conditions on the physicochemical and photocatalytic properties of a nanopowder based on Fe2TiO5. Materials Chemistry and Physics. 2023, Vol. 299, 127493.
https://doi.org/10.1016/j.matchemphys.2023.127493
#ИХРРАН#papers
#LLMs#papers
Tree of Thoughts: Deliberate Problem Solving with Large Language Models
Language models are increasingly being deployed for general problem solving across a wide range of tasks, but are still confined to token-level, left-to-right decision-making processes during inference. This means they can fall short in tasks that require exploration, strategic lookahead, or where initial decisions play a pivotal role.
✍ Princeton and Google DeepMind
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----
Ученые ИХР РАН предложили способы идентификации энантиомеров противогрибковых препаратов класса 1,2,4-триазолов, которые можно будет применить для разработки лекарств.
Уникальность энантиомеров заключается в том, что они представляют собой зеркальные отражения друг друга и имеют близкие физические свойства, однако биологическая активность «правого» и «левого» энантиомеров не всегда одинакова. Например, один энантиомер в составе лекарства может оказывать терапевтическое действие, а другой - быть «пустышкой» или вызывать неблагоприятные побочные эффекты. Ключевая проблема фармацевтики состоит в том, чтобы определить, какой энантиомер или их смесь содержится в лекарстве.
Подробнее о способах решения этой задачи, предложенных в ИХР РАН, читайте на сайте: http://www.isc-ras.ru/ru/novosti/levyy-ili-pravyy, а также на портале "Научная Россия": https://scientificrussia.ru/articles/ucenye-vyasnili-kak-razdelat-pravye-i-levye-enantiomery-i-bezopasno-ispolzovat-ih-kak-osnovu-dla-lekarstv
#ISCRAS#papers#Media