• How do I compute sha256 for arbitrary python data

    Computing sha256 for python data is useful as ID or as filename. See this test.

    Tags:

  • How to print intermediate values in the langchain chain

    I don’t know why this isn’t documented anywhere. Let’s say there are two prompts. And then you add RunnableLambda.

    Tags:

  • LLM의 한계에 대하여

    LLM이 인간의 모든 지식을 담을 수 없다는 흥미로운 글을 읽었다. 인공지능이 인간의 지식을 다 표현할 수 있는가 아닌가는 상당히 오래된 주제이지만, 이 글의 열정적인 톤과 풍부한 사례는 무척 재미있었다. 예를들어 글에서는 performer (예를들어 피겨 스케이팅 선수) 의 perform 하는 기술은 글로 기술되지 않으며 글로 기술된다 하였다고 해도 그것이 그대로 그 퍼포먼스를 따라할 수 있단 이야기는…

    Tags:

  • Positional encoding for timeseries data

    This is positional encoding for timseries data inspired by A Transformer-based Framework for Multivariate Time Series Representation Learning. Assuming that the input is (batch_size, sequence_length, feature_dim) and each feature is a float, the way we add positional encoding is: This is applied like: See PositionalEncoding of keras_nlp here for generic implementation.

  • A trick to ignore a data in categorical cross entropy of keras

    When there’s a data point that you want to ignore in loss computation, you can use ignore_class parameter in tf.keras.losses.SparseCategoricalCrossentropy. But the same parameter doesn’t exist in tf.keras.losses.CategoricalCrossentropy. I don’t know why, but that’s troublesome when there’s needs. Even the SparseCategoricalCrossEntropy’s ignore_class isn’t easy to use either since it requires one to add a class…

  • Structural matching simplifies the code

    Well known structural matching in python would be match case. But there’s an other kind and it checks # of items, e.g., If foo() returns [1], it works fine. But if it returns either multiple items [1, 2, 3] or an empty list, it fails. This is pretty neat. I have been checking the length…

    Tags:

  • Better dict for configuration

    When I use dict as a config of deep learning algorithms, I often run multiple training runs, varying the config value. As a trivial example: And then I run multiple iterations varying the ‘lr’. When doing that, I feel worried about making mistake like updating the dict with wrong key, e.g., To address such concerns,…

  • 시간을 초월한 개발자에 대한 조언: 이름 짓기

    트위터에서 이런 글을 읽었다. 지나치게 표면적인 이야기처럼 들릴지 모르지만, 모두의 경험은 다르다. 서로 다른 제품을 만들었고, 다른 환경, 다른 사람들과 일해왔다. 관찰의 범위가 다르고 각자가 추구해온 목표도 다르다. 그러므로 조언은 … 어디까지나 개인적인 것이고 읽는 사람이 그것을 내 상황에 맞게 이해하는 것이 필요하다. 그렇다면 그 모두를 초월한 지혜는 없을까. 여기에 ‘이름 짓기’가 떠올랐다. 컴퓨터 과학에서…

    Tags:

  • Tuple is immutable in python

    I find this very interesting. These examples are from fluent python. Likewise… The reason of these behaviors are easier to understand if we take a look at the methods of tuple. Whenever += is called for tuple, say, a += b, what’s actually happening is a + b and then a = a + b.…

    Tags:

  • Keras 에서 Jax, Flax 로 코드를 옮겨본 소감

    성능이 더 개선된다는 이유로, 그리고 기술적인 호기심으로 Keras 코드를 Jax로 옮기고 있다. 그러면서 느낀 점들을 공유해서 같은 migration을 하고 싶은 경우에 참고가 되었으면 한다. Jax 의 첫인상은 배우기 어렵단 것이었다. 특히 Sharpbits 에 그 내용이 잘 정리되어있는데 대부분은 데이터가 immutable 하다는 것으로 요약된다. 이것이 처음에는 매우 당혹스럽다가 서서히 익숙해졌다. 그러나 몇가지는 생각지도 못한 문제가 있었다.…